fixed an error with darkstyle submodule... its not a submodule anymore

since i applied changes to it... maybe i can make a fork..
merge-requests/2/merge
_xeroxz 4 years ago
parent 02e3b691e0
commit efb44199d6

3
.gitmodules vendored

@ -1,9 +1,6 @@
[submodule "dependencies/vmprofiler"]
path = dependencies/vmprofiler
url = https://githacks.org/vmp2/vmprofiler.git
[submodule "dependencies/DarkStyle"]
path = dependencies/DarkStyle
url = https://github.com/Jorgen-VikingGod/Qt-Frameless-Window-DarkStyle.git
[submodule "dependencies/ia32-doc"]
path = dependencies/ia32-doc
url = https://github.com/wbenny/ia32-doc.git

@ -1 +0,0 @@
Subproject commit 79425f53ef154ea33faf4e2964f5762645b54d91

@ -1 +1 @@
Subproject commit e95ef2537184639e89a4dbbd38355a11ffc46bac
Subproject commit c8ff24a8b44466dd2a9e2e342c83774b61004eb5

@ -0,0 +1,40 @@
# C++ objects and libs
*.slo
*.lo
*.o
*.a
*.la
*.lai
*.so
*.dll
*.dylib
# Qt-es
/.qmake.cache
/.qmake.stash
*.pro.user
*.pro.user.*
*.qbs.user
*.qbs.user.*
*.moc
moc_*.cpp
moc_*.h
qrc_*.cpp
ui_*.h
Makefile*
*build-*
# QtCreator
*.autosave
# QtCtreator Qml
*.qmlproject.user
*.qmlproject.user.*
# QtCtreator CMake
CMakeLists.txt.user*
.directory

@ -0,0 +1,73 @@
/*
###############################################################################
# #
# The MIT License #
# #
# Copyright (C) 2017 by Juergen Skrotzky (JorgenVikingGod@gmail.com) #
# >> https://github.com/Jorgen-VikingGod #
# #
# Sources: https://github.com/Jorgen-VikingGod/Qt-Frameless-Window-DarkStyle #
# #
###############################################################################
*/
#include "DarkStyle.h"
DarkStyle::DarkStyle() : DarkStyle(styleBase()) {}
DarkStyle::DarkStyle(QStyle *style) : QProxyStyle(style) {}
QStyle *DarkStyle::styleBase(QStyle *style) const {
static QStyle *base =
!style ? QStyleFactory::create(QStringLiteral("Fusion")) : style;
return base;
}
QStyle *DarkStyle::baseStyle() const { return styleBase(); }
void DarkStyle::polish(QPalette &palette) {
// modify palette to dark
palette.setColor(QPalette::Window, QColor(53, 53, 53));
palette.setColor(QPalette::WindowText, Qt::white);
palette.setColor(QPalette::Disabled, QPalette::WindowText,
QColor(127, 127, 127));
palette.setColor(QPalette::Base, QColor(42, 42, 42));
palette.setColor(QPalette::AlternateBase, QColor(66, 66, 66));
palette.setColor(QPalette::ToolTipBase, Qt::white);
palette.setColor(QPalette::ToolTipText, QColor(53, 53, 53));
palette.setColor(QPalette::Text, Qt::white);
palette.setColor(QPalette::Disabled, QPalette::Text, QColor(127, 127, 127));
palette.setColor(QPalette::Dark, QColor(35, 35, 35));
palette.setColor(QPalette::Shadow, QColor(20, 20, 20));
palette.setColor(QPalette::Button, QColor(53, 53, 53));
palette.setColor(QPalette::ButtonText, Qt::white);
palette.setColor(QPalette::Disabled, QPalette::ButtonText,
QColor(127, 127, 127));
palette.setColor(QPalette::BrightText, Qt::red);
palette.setColor(QPalette::Link, QColor(42, 130, 218));
palette.setColor(QPalette::Highlight, QColor(42, 130, 218));
palette.setColor(QPalette::Disabled, QPalette::Highlight, QColor(80, 80, 80));
palette.setColor(QPalette::HighlightedText, Qt::white);
palette.setColor(QPalette::Disabled, QPalette::HighlightedText,
QColor(127, 127, 127));
}
void DarkStyle::polish(QApplication *app) {
if (!app) return;
// increase font size for better reading,
// setPointSize was reduced from +2 because when applied this way in Qt5, the
// font is larger than intended for some reason
QFont defaultFont = QApplication::font();
defaultFont.setPointSize(defaultFont.pointSize() + 1);
app->setFont(defaultFont);
// loadstylesheet
QFile qfDarkstyle(QStringLiteral(":/darkstyle/darkstyle.qss"));
if (qfDarkstyle.open(QIODevice::ReadOnly | QIODevice::Text)) {
// set stylesheet
QString qsStylesheet = QString::fromLatin1(qfDarkstyle.readAll());
app->setStyleSheet(qsStylesheet);
qfDarkstyle.close();
}
}

@ -0,0 +1,39 @@
/*
###############################################################################
# #
# The MIT License #
# #
# Copyright (C) 2017 by Juergen Skrotzky (JorgenVikingGod@gmail.com) #
# >> https://github.com/Jorgen-VikingGod #
# #
# Sources: https://github.com/Jorgen-VikingGod/Qt-Frameless-Window-DarkStyle #
# #
###############################################################################
*/
#ifndef DARKSTYLE_HPP
#define DARKSTYLE_HPP
#include <QApplication>
#include <QFile>
#include <QFont>
#include <QProxyStyle>
#include <QStyleFactory>
class DarkStyle : public QProxyStyle {
Q_OBJECT
public:
DarkStyle();
explicit DarkStyle(QStyle *style);
QStyle *baseStyle() const;
void polish(QPalette &palette) override;
void polish(QApplication *app) override;
private:
QStyle *styleBase(QStyle *style = Q_NULLPTR) const;
};
#endif // DARKSTYLE_HPP

@ -0,0 +1,104 @@
# Qt Frameless Window with DarkStyle
simple MainWindow class implementation with frameless window and custom dark style.
It adds also support for titlebar and buttons (minimize, maximize, close)
Look is based on the VS2013 application window (flat and frameless window)
<table>
<tr><th colspan="2">Screenshots</th></tr>
<tr><th>mac enabled</th><th>mac disabled</th></tr>
<tr>
<td><img src="https://github.com/Jorgen-VikingGod/Qt-Frameless-Window-DarkStyle/blob/master/screenshot_mac_frameless_window_qt_dark_style_enabled.png" title="screenshot mac frameless window qt dark style enabled" /></td>
<td><img src="https://github.com/Jorgen-VikingGod/Qt-Frameless-Window-DarkStyle/blob/master/screenshot_mac_frameless_window_qt_dark_style_disabled.png" title="screenshot mac frameless window qt dark style disabled" /></td>
</tr>
</table>
## Qt and OS
* tested with Qt5.5.0, Qt5.9.0 and Qt5.10.0
* tested on Windows 7, Windows 10,MacOSX 10.12.5 and MacOS 10.13.2
## PyQt5
Here is an [unofficial Python port](https://github.com/gmarull/qtmodern) of my implementation.
## How to use
* add additional include plath to **framelesswindow**
* add resources **framelesswindow.qrc** and **darkstyle.qrc**
* add ``#include "framelesswindow.h"`` into **main.cpp**, create window ``FramelessWindow framelessWindow;`` and assign your mainwindow object as content ``framelessWindow.setContent(mainWindow);`` and show it ``framelessWindow.show();``
* add ``#include "DarkStyle.h"`` into **main.cpp** and call ``a.setStyle(new DarkStyle);``
```qt
#include <QApplication>
#include "DarkStyle.h"
#include "framelesswindow.h"
#include "mainwindow.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
// style our application with custom dark style
QApplication::setStyle(new DarkStyle);
//QApplication::setPalette(QApplication::style()->standardPalette());
// create frameless window (and set windowState or title)
FramelessWindow framelessWindow;
//framelessWindow.setWindowState(Qt::WindowMaximized);
//framelessWindow.setWindowTitle("test title");
//framelessWindow.setWindowIcon(a.style()->standardIcon(QStyle::SP_DesktopIcon));
// create our mainwindow instance
MainWindow *mainWindow = new MainWindow;
// add the mainwindow to our custom frameless window
framelessWindow.setContent(mainWindow);
framelessWindow.show();
return a.exec();
}
```
## features
* frameless window
* custom dark style (based on **Fusion style** with dark palette and custom stylesheets)
* title bar
* buttons (minimize | restore | maximize | close)
* move window by drag the title bar
* dobule click title bar to toggle between window styte (maximize and normal)
* use of native events, like minimizing or system menu
## todo
* [ ] [resize window on each corner [#1]](https://github.com/Jorgen-VikingGod/Qt-Frameless-Window-DarkStyle/issues/1) (some work done by [notecola](https://github.com/notecola) :+1:)
* [ ] [snap on screen edges [#3]](https://github.com/Jorgen-VikingGod/Qt-Frameless-Window-DarkStyle/issues/3)
## thanks
Many thanks goes to the [Qt Forum](https://forum.qt.io/topic/80654/how-to-create-vs2013-like-frameless-window-with-dark-style) and especially to [Chris Kawa](https://forum.qt.io/user/chris-kawa) for pointing me to some usual issues and hints of great must have features.
## Licence
> The MIT License
>
> Copyright (c) 2018, Juergen Skrotzky (https://github.com/Jorgen-VikingGod, JorgenVikingGod@gmail.com)
>
> Permission is hereby granted, free of charge, to any person obtaining a copy
> of this software and associated documentation files (the "Software"), to deal
> in the Software without restriction, including without limitation the rights
> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
> copies of the Software, and to permit persons to whom the Software is
> furnished to do so, subject to the following conditions:
>
> The above copyright notice and this permission notice shall be included in
> all copies or substantial portions of the Software.
>
> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
> THE SOFTWARE.

@ -0,0 +1,28 @@
<RCC>
<qresource prefix="/">
<file>darkstyle/darkstyle.qss</file>
<file>darkstyle/icon_close.png</file>
<file>darkstyle/icon_restore.png</file>
<file>darkstyle/icon_undock.png</file>
<file>darkstyle/icon_branch_closed.png</file>
<file>darkstyle/icon_branch_end.png</file>
<file>darkstyle/icon_branch_more.png</file>
<file>darkstyle/icon_branch_open.png</file>
<file>darkstyle/icon_vline.png</file>
<file>darkstyle/icon_checkbox_checked.png</file>
<file>darkstyle/icon_checkbox_indeterminate.png</file>
<file>darkstyle/icon_checkbox_unchecked.png</file>
<file>darkstyle/icon_checkbox_checked_pressed.png</file>
<file>darkstyle/icon_checkbox_indeterminate_pressed.png</file>
<file>darkstyle/icon_checkbox_unchecked_pressed.png</file>
<file>darkstyle/icon_checkbox_checked_disabled.png</file>
<file>darkstyle/icon_checkbox_indeterminate_disabled.png</file>
<file>darkstyle/icon_checkbox_unchecked_disabled.png</file>
<file>darkstyle/icon_radiobutton_checked.png</file>
<file>darkstyle/icon_radiobutton_unchecked.png</file>
<file>darkstyle/icon_radiobutton_checked_pressed.png</file>
<file>darkstyle/icon_radiobutton_unchecked_pressed.png</file>
<file>darkstyle/icon_radiobutton_checked_disabled.png</file>
<file>darkstyle/icon_radiobutton_unchecked_disabled.png</file>
</qresource>
</RCC>

@ -0,0 +1,343 @@
QToolTip{
color:#ffffff;
background-color:palette(base);
border:1px solid palette(highlight);
border-radius:4px;
}
QStatusBar{
background-color:qlineargradient(x1:0,y1:0,x2:0,y2:1,stop:0 rgba(25,25,25,127),stop:1 rgba(53,53,53,75));
color:palette(mid);
}
QMenuBar{
background-color:qlineargradient(x1:0,y1:0,x2:0,y2:1,stop:0 rgba(25,25,25,127),stop:1 rgba(53,53,53,75));
border-bottom:2px solid rgba(25,25,25,75);
}
QMenuBar::item{
spacing:2px;
padding:3px 4px;
background:transparent;
}
QMenuBar::item:selected{
background-color:qlineargradient(x1:0,y1:0,x2:0,y2:1,stop:0 rgba(106,106,106,255),stop:1 rgba(106,106,106,75));
border-left:1px solid rgba(106,106,106,127);
border-right:1px solid rgba(106,106,106,127);
}
QMenuBar::item:pressed{
background-color:palette(highlight);
border-left:1px solid rgba(25,25,25,127);
border-right:1px solid rgba(25,25,25,127);
}
QMenu{
background-color:palette(window);
border:1px solid palette(shadow);
}
QMenu::item{
padding:3px 25px 3px 25px;
border:1px solid transparent;
}
QMenu::item:disabled{
background-color:rgba(35,35,35,127);
color:palette(disabled);
}
QMenu::item:selected{
border-color:rgba(147,191,236,127);
background:palette(highlight);
}
QMenu::icon:checked{
background-color:qlineargradient(x1:0,y1:1,x2:0,y2:0,stop:0 rgba(25,25,25,127),stop:1 rgba(53,53,53,75));
border:1px solid palette(highlight);
border-radius:2px;
}
QMenu::separator{
height:1px;
background:palette(alternate-base);
margin-left:5px;
margin-right:5px;
}
QMenu::indicator{
width:18px;
height:18px;
}
QMenu::indicator:non-exclusive:checked{
image:url(:/darkstyle/icon_checkbox_checked.png);
padding-left:2px;
}
QMenu::indicator:non-exclusive:unchecked{
image:url(:/darkstyle/icon_checkbox_unchecked.png);
padding-left:2px;
}
QMenu::indicator:exclusive:checked{
image:url(:/darkstyle/icon_radiobutton_checked.png);
padding-left:2px;
}
QMenu::indicator:exclusive:unchecked{
image:url(:/darkstyle/icon_radiobutton_unchecked.png);
padding-left:2px;
}
QToolBar::top{
background-color:qlineargradient(x1:0,y1:0,x2:0,y2:1,stop:0 rgba(25,25,25,127),stop:1 rgba(53,53,53,75));
border-bottom:3px solid qlineargradient(x1:0,y1:0,x2:0,y2:1,stop:0 rgba(25,25,25,127),stop:1 rgba(53,53,53,75));
}
QToolBar::bottom{
background-color:qlineargradient(x1:0,y1:1,x2:0,y2:0,stop:0 rgba(25,25,25,127),stop:1 rgba(53,53,53,75));
border-top:3px solid qlineargradient(x1:0,y1:1,x2:0,y2:0,stop:0 rgba(25,25,25,127),stop:1 rgba(53,53,53,75));
}
QToolBar::left{
background-color:qlineargradient(x1:0,y1:0,x2:1,y2:0,stop:0 rgba(25,25,25,127),stop:1 rgba(53,53,53,75));
border-right:3px solid qlineargradient(x1:0,y1:0,x2:1,y2:0,stop:0 rgba(25,25,25,127),stop:1 rgba(53,53,53,75));
}
QToolBar::right{
background-color:qlineargradient(x1:1,y1:0,x2:0,y2:0,stop:0 rgba(25,25,25,127),stop:1 rgba(53,53,53,75));
border-left:3px solid qlineargradient(x1:1,y1:0,x2:0,y2:0,stop:0 rgba(25,25,25,127),stop:1 rgba(53,53,53,75));
}
QMainWindow::separator{
width:6px;
height:5px;
padding:2px;
}
QSplitter::handle:horizontal{
width:10px;
}
QSplitter::handle:vertical{
height:10px;
}
QMainWindow::separator:hover,QSplitter::handle:hover{
background:palette(highlight);
}
QDockWidget::title{
padding:4px;
background-color:qlineargradient(x1:0,y1:1,x2:0,y2:0,stop:0 rgba(25,25,25,127),stop:1 rgba(53,53,53,75));
border:1px solid rgba(25,25,25,75);
border-bottom:2px solid rgba(25,25,25,75);
}
QDockWidget{
titlebar-close-icon:url(:/darkstyle/icon_close.png);
titlebar-normal-icon:url(:/darkstyle/icon_restore.png);
}
QDockWidget::close-button,QDockWidget::float-button{
subcontrol-position:top right;
subcontrol-origin:margin;
position:absolute;
top:3px;
bottom:0px;
width:20px;
height:20px;
}
QDockWidget::close-button{
right:3px;
}
QDockWidget::float-button{
right:25px;
}
QGroupBox{
background-color:rgba(66,66,66,50%);
margin-top:27px;
border:1px solid rgba(25,25,25,127);
border-radius:4px;
}
QGroupBox::title{
subcontrol-origin:margin;
subcontrol-position:left top;
padding:4px 6px;
margin-left:3px;
background-color:qlineargradient(x1:0,y1:1,x2:0,y2:0,stop:0 rgba(25,25,25,127),stop:1 rgba(53,53,53,75));
border:1px solid rgba(25,25,25,75);
border-bottom:2px solid rgb(127,127,127);
border-top-left-radius:4px;
border-top-right-radius:4px;
}
QTabWidget::pane{
background-color:rgba(66,66,66,50%);
border-top:1px solid rgba(25,25,25,50%);
}
QTabWidget::tab-bar{
left:3px;
top:1px;
}
QTabBar{
background-color:transparent;
qproperty-drawBase:0;
border-bottom:1px solid rgba(25,25,25,50%);
}
QTabBar::tab{
padding:4px 6px;
background-color:qlineargradient(x1:0,y1:1,x2:0,y2:0,stop:0 rgba(25,25,25,127),stop:1 rgba(53,53,53,75));
border:1px solid rgba(25,25,25,75);
border-top-left-radius:4px;
border-top-right-radius:4px;
}
QTabBar::tab:selected,QTabBar::tab:hover{
background-color:qlineargradient(x1:0,y1:0,x2:0,y2:1,stop:0 rgba(53,53,53,127),stop:1 rgba(66,66,66,50%));
border-bottom-color:rgba(66,66,66,75%);
}
QTabBar::tab:selected{
border-bottom:2px solid palette(highlight);
}
QTabBar::tab::selected:disabled{
border-bottom:2px solid rgb(127,127,127);
}
QTabBar::tab:!selected{
margin-top:2px;
}
QCheckBox::indicator{
width:18px;
height:18px;
}
QCheckBox::indicator:checked,QTreeView::indicator:checked,QTableView::indicator:checked,QGroupBox::indicator:checked{
image:url(:/darkstyle/icon_checkbox_checked.png);
}
QCheckBox::indicator:checked:pressed,QTreeView::indicator:checked:pressed,QTableView::indicator:checked:pressed,QGroupBox::indicator:checked:pressed{
image:url(:/darkstyle/icon_checkbox_checked_pressed.png);
}
QCheckBox::indicator:checked:disabled,QTreeView::indicator:checked:disabled,QTableView::indicator:checked:disabled,QGroupBox::indicator:checked:disabled{
image:url(:/darkstyle/icon_checkbox_checked_disabled.png);
}
QCheckBox::indicator:unchecked,QTreeView::indicator:unchecked,QTableView::indicator:unchecked,QGroupBox::indicator:unchecked{
image:url(:/darkstyle/icon_checkbox_unchecked.png);
}
QCheckBox::indicator:unchecked:pressed,QTreeView::indicator:unchecked:pressed,QTableView::indicator:unchecked:pressed,QGroupBox::indicator:unchecked:pressed{
image:url(:/darkstyle/icon_checkbox_unchecked_pressed.png);
}
QCheckBox::indicator:unchecked:disabled,QTreeView::indicator:unchecked:disabled,QTableView::indicator:unchecked:disabled,QGroupBox::indicator:unchecked:disabled{
image:url(:/darkstyle/icon_checkbox_unchecked_disabled.png);
}
QCheckBox::indicator:indeterminate,QTreeView::indicator:indeterminate,QTableView::indicator:indeterminate,QGroupBox::indicator:indeterminate{
image:url(:/darkstyle/icon_checkbox_indeterminate.png);
}
QCheckBox::indicator:indeterminate:pressed,QTreeView::indicator:indeterminate:pressed,QTableView::indicator:indeterminate:pressed,QGroupBox::indicator:indeterminate:pressed{
image:url(:/darkstyle/icon_checkbox_indeterminate_pressed.png);
}
QCheckBox::indicator:indeterminate:disabled,QTreeView::indicator:indeterminate:disabled,QTableView::indicator:indeterminate:disabled,QGroupBox::indicator:indeterminate:disabled{
image:url(:/darkstyle/icon_checkbox_indeterminate_disabled.png);
}
QRadioButton::indicator{
width:18px;
height:18px;
}
QRadioButton::indicator:checked{
image:url(:/darkstyle/icon_radiobutton_checked.png);
}
QRadioButton::indicator:checked:pressed{
image:url(:/darkstyle/icon_radiobutton_checked_pressed.png);
}
QRadioButton::indicator:checked:disabled{
image:url(:/darkstyle/icon_radiobutton_checked_disabled.png);
}
QRadioButton::indicator:unchecked{
image:url(:/darkstyle/icon_radiobutton_unchecked.png);
}
QRadioButton::indicator:unchecked:pressed{
image:url(:/darkstyle/icon_radiobutton_unchecked_pressed.png);
}
QRadioButton::indicator:unchecked:disabled{
image:url(:/darkstyle/icon_radiobutton_unchecked_disabled.png);
}
QTreeView, QTableView{
alternate-background-color:palette(window);
background:palette(base);
}
QTreeView QHeaderView::section, QTableView QHeaderView::section{
background-color:qlineargradient(x1:0,y1:1,x2:0,y2:0,stop:0 rgba(25,25,25,127),stop:1 rgba(53,53,53,75));
border-style:none;
border-bottom:1px solid palette(dark);
padding-left:5px;
padding-right:5px;
}
QTreeView::item:selected:disabled, QTableView::item:selected:disabled{
background:rgb(80,80,80);
}
QTreeView::branch{
background-color:palette(base);
}
QTreeView::branch:has-siblings:!adjoins-item{
border-image:url(:/darkstyle/icon_vline.png) 0;
}
QTreeView::branch:has-siblings:adjoins-item{
border-image:url(:/darkstyle/icon_branch_more.png) 0;
}
QTreeView::branch:!has-children:!has-siblings:adjoins-item{
border-image:url(:/darkstyle/icon_branch_end.png) 0;
}
QTreeView::branch:has-children:!has-siblings:closed,
QTreeView::branch:closed:has-children:has-siblings{
border-image:none;
image:url(:/darkstyle/icon_branch_closed.png);
}
QTreeView::branch:open:has-children:!has-siblings,
QTreeView::branch:open:has-children:has-siblings{
border-image:none;
image:url(:/darkstyle/icon_branch_open.png);
}
QScrollBar:vertical{
background:palette(base);
border-top-right-radius:2px;
border-bottom-right-radius:2px;
width:16px;
margin:0px;
}
QScrollBar::handle:vertical{
background-color:palette(alternate-base);
border-radius:2px;
min-height:20px;
margin:2px 4px 2px 4px;
}
QScrollBar::handle:vertical:hover{
background-color:palette(highlight);
}
QScrollBar::add-line:vertical{
background:none;
height:0px;
subcontrol-position:right;
subcontrol-origin:margin;
}
QScrollBar::sub-line:vertical{
background:none;
height:0px;
subcontrol-position:left;
subcontrol-origin:margin;
}
QScrollBar:horizontal{
background:palette(base);
height:16px;
margin:0px;
}
QScrollBar::handle:horizontal{
background-color:palette(alternate-base);
border-radius:2px;
min-width:20px;
margin:4px 2px 4px 2px;
}
QScrollBar::handle:horizontal:hover{
background-color:palette(highlight);
}
QScrollBar::add-line:horizontal{
background:none;
width:0px;
subcontrol-position:bottom;
subcontrol-origin:margin;
}
QScrollBar::sub-line:horizontal{
background:none;
width:0px;
subcontrol-position:top;
subcontrol-origin:margin;
}
QSlider::handle:horizontal{
border-radius:4px;
border:1px solid rgba(25,25,25,255);
background-color:palette(alternate-base);
min-height:20px;
margin:0 -4px;
}
QSlider::handle:horizontal:hover{
background:palette(highlight);
}
QSlider::add-page:horizontal{
background:palette(base);
}
QSlider::sub-page:horizontal{
background:palette(highlight);
}
QSlider::sub-page:horizontal:disabled{
background:rgb(80,80,80);
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 310 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 358 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 207 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 313 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 176 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 373 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 373 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 286 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 286 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 238 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 238 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 422 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 370 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 617 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 616 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 310 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 538 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 537 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 404 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 424 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 303 B

@ -0,0 +1,38 @@
###############################################################################
# #
# The MIT License #
# #
# Copyright (C) 2017 by Juergen Skrotzky (JorgenVikingGod@gmail.com) #
# >> https://github.com/Jorgen-VikingGod #
# #
# Sources: https://github.com/Jorgen-VikingGod/Qt-Frameless-Window-DarkStyle #
# #
###############################################################################
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
INCLUDEPATH +="framelesswindow"
TARGET = QtFramelessWindowDarkStyle
TEMPLATE = app
SOURCES += main.cpp\
mainwindow.cpp \
framelesswindow/framelesswindow.cpp \
framelesswindow/windowdragger.cpp \
DarkStyle.cpp
HEADERS += mainwindow.h \
framelesswindow/framelesswindow.h \
framelesswindow/windowdragger.h \
DarkStyle.h
FORMS += mainwindow.ui \
framelesswindow/framelesswindow.ui
RESOURCES += darkstyle.qrc \
framelesswindow.qrc

@ -0,0 +1,8 @@
<RCC>
<qresource prefix="/">
<file>images/icon_window_minimize.png</file>
<file>images/icon_window_restore.png</file>
<file>images/icon_window_maximize.png</file>
<file>images/icon_window_close.png</file>
</qresource>
</RCC>

@ -0,0 +1,458 @@
/*
###############################################################################
# #
# The MIT License #
# #
# Copyright (C) 2017 by Juergen Skrotzky (JorgenVikingGod@gmail.com) #
# >> https://github.com/Jorgen-VikingGod #
# #
# Sources: https://github.com/Jorgen-VikingGod/Qt-Frameless-Window-DarkStyle #
# #
###############################################################################
*/
#include "framelesswindow.h"
#include <QApplication>
#include <QDesktopWidget>
#include <QGraphicsDropShadowEffect>
#include <QScreen>
#include "ui_framelesswindow.h"
FramelessWindow::FramelessWindow(QWidget *parent)
: QWidget(parent),
ui(new Ui::FramelessWindow),
m_bMousePressed(false),
m_bDragTop(false),
m_bDragLeft(false),
m_bDragRight(false),
m_bDragBottom(false) {
setWindowFlags(Qt::FramelessWindowHint | Qt::WindowSystemMenuHint);
// append minimize button flag in case of windows,
// for correct windows native handling of minimize function
#if defined(Q_OS_WIN)
setWindowFlags(windowFlags() | Qt::WindowMinimizeButtonHint);
#endif
setAttribute(Qt::WA_NoSystemBackground, true);
setAttribute(Qt::WA_TranslucentBackground);
ui->setupUi(this);
ui->restoreButton->setVisible(false);
// shadow under window title text
QGraphicsDropShadowEffect *textShadow = new QGraphicsDropShadowEffect;
textShadow->setBlurRadius(4.0);
textShadow->setColor(QColor(0, 0, 0));
textShadow->setOffset(0.0);
ui->titleText->setGraphicsEffect(textShadow);
// window shadow
QGraphicsDropShadowEffect *windowShadow = new QGraphicsDropShadowEffect;
windowShadow->setBlurRadius(9.0);
windowShadow->setColor(palette().color(QPalette::Highlight));
windowShadow->setOffset(0.0);
ui->windowFrame->setGraphicsEffect(windowShadow);
QObject::connect(qApp, &QGuiApplication::applicationStateChanged, this,
&FramelessWindow::on_applicationStateChanged);
setMouseTracking(true);
// important to watch mouse move from all child widgets
QApplication::instance()->installEventFilter(this);
}
FramelessWindow::~FramelessWindow() { delete ui; }
void FramelessWindow::on_restoreButton_clicked() {
ui->restoreButton->setVisible(false);
ui->maximizeButton->setVisible(true);
setWindowState(Qt::WindowNoState);
// on MacOS this hack makes sure the
// background window is repaint correctly
hide();
show();
}
void FramelessWindow::on_maximizeButton_clicked() {
ui->restoreButton->setVisible(true);
ui->maximizeButton->setVisible(false);
this->setWindowState(Qt::WindowMaximized);
this->showMaximized();
styleWindow(true, false);
}
void FramelessWindow::changeEvent(QEvent *event) {
if (event->type() == QEvent::WindowStateChange) {
if (windowState().testFlag(Qt::WindowNoState)) {
ui->restoreButton->setVisible(false);
ui->maximizeButton->setVisible(true);
styleWindow(true, true);
event->ignore();
} else if (windowState().testFlag(Qt::WindowMaximized)) {
ui->restoreButton->setVisible(true);
ui->maximizeButton->setVisible(false);
styleWindow(true, false);
event->ignore();
}
}
event->accept();
}
void FramelessWindow::setContent(QWidget *w) {
ui->windowContent->layout()->addWidget(w);
}
void FramelessWindow::setWindowTitle(const QString &text) {
ui->titleText->setText(text);
}
void FramelessWindow::setWindowIcon(const QIcon &ico) {
ui->icon->setPixmap(ico.pixmap(16, 16));
}
void FramelessWindow::styleWindow(bool bActive, bool bNoState) {
if (bActive) {
if (bNoState) {
layout()->setMargin(15);
ui->windowTitlebar->setStyleSheet(QStringLiteral(
"#windowTitlebar{border: 0px none palette(shadow); "
"border-top-left-radius:5px; border-top-right-radius:5px; "
"background-color:palette(shadow); height:20px;}"));
ui->windowFrame->setStyleSheet(QStringLiteral(
"#windowFrame{border:1px solid palette(highlight); border-radius:5px "
"5px 5px 5px; background-color:palette(Window);}"));
QGraphicsEffect *oldShadow = ui->windowFrame->graphicsEffect();
if (oldShadow) delete oldShadow;
QGraphicsDropShadowEffect *windowShadow = new QGraphicsDropShadowEffect;
windowShadow->setBlurRadius(9.0);
windowShadow->setColor(palette().color(QPalette::Highlight));
windowShadow->setOffset(0.0);
ui->windowFrame->setGraphicsEffect(windowShadow);
} else {
layout()->setMargin(0);
ui->windowTitlebar->setStyleSheet(QStringLiteral(
"#windowTitlebar{border: 0px none palette(shadow); "
"border-top-left-radius:0px; border-top-right-radius:0px; "
"background-color:palette(shadow); height:20px;}"));
ui->windowFrame->setStyleSheet(QStringLiteral(
"#windowFrame{border:1px solid palette(dark); border-radius:0px 0px "
"0px 0px; background-color:palette(Window);}"));
QGraphicsEffect *oldShadow = ui->windowFrame->graphicsEffect();
if (oldShadow) delete oldShadow;
ui->windowFrame->setGraphicsEffect(nullptr);
} // if (bNoState) else maximize
} else {
if (bNoState) {
layout()->setMargin(15);
ui->windowTitlebar->setStyleSheet(QStringLiteral(
"#windowTitlebar{border: 0px none palette(shadow); "
"border-top-left-radius:5px; border-top-right-radius:5px; "
"background-color:palette(dark); height:20px;}"));
ui->windowFrame->setStyleSheet(QStringLiteral(
"#windowFrame{border:1px solid #000000; border-radius:5px 5px 5px "
"5px; background-color:palette(Window);}"));
QGraphicsEffect *oldShadow = ui->windowFrame->graphicsEffect();
if (oldShadow) delete oldShadow;
QGraphicsDropShadowEffect *windowShadow = new QGraphicsDropShadowEffect;
windowShadow->setBlurRadius(9.0);
windowShadow->setColor(palette().color(QPalette::Shadow));
windowShadow->setOffset(0.0);
ui->windowFrame->setGraphicsEffect(windowShadow);
} else {
layout()->setMargin(0);
ui->windowTitlebar->setStyleSheet(QStringLiteral(
"#titlebarWidget{border: 0px none palette(shadow); "
"border-top-left-radius:0px; border-top-right-radius:0px; "
"background-color:palette(dark); height:20px;}"));
ui->windowFrame->setStyleSheet(QStringLiteral(
"#windowFrame{border:1px solid palette(shadow); border-radius:0px "
"0px 0px 0px; background-color:palette(Window);}"));
QGraphicsEffect *oldShadow = ui->windowFrame->graphicsEffect();
if (oldShadow) delete oldShadow;
ui->windowFrame->setGraphicsEffect(nullptr);
} // if (bNoState) { else maximize
} // if (bActive) { else no focus
}
void FramelessWindow::on_applicationStateChanged(Qt::ApplicationState state) {
if (windowState().testFlag(Qt::WindowNoState)) {
if (state == Qt::ApplicationActive) {
styleWindow(true, true);
} else {
styleWindow(false, true);
}
} else if (windowState().testFlag(Qt::WindowFullScreen)) {
if (state == Qt::ApplicationActive) {
styleWindow(true, false);
} else {
styleWindow(false, false);
}
}
}
void FramelessWindow::on_minimizeButton_clicked() {
setWindowState(Qt::WindowMinimized);
}
void FramelessWindow::on_closeButton_clicked() { close(); }
void FramelessWindow::on_windowTitlebar_doubleClicked() {
if (windowState().testFlag(Qt::WindowNoState)) {
on_maximizeButton_clicked();
} else if (windowState().testFlag(Qt::WindowFullScreen)) {
on_restoreButton_clicked();
}
}
void FramelessWindow::mouseDoubleClickEvent(QMouseEvent *event) {
Q_UNUSED(event);
}
void FramelessWindow::checkBorderDragging(QMouseEvent *event) {
if (isMaximized()) {
return;
}
QPoint globalMousePos = event->globalPos();
if (m_bMousePressed) {
QScreen *screen = QGuiApplication::primaryScreen();
// available geometry excludes taskbar
QRect availGeometry = screen->availableGeometry();
int h = availGeometry.height();
int w = availGeometry.width();
QList<QScreen *> screenlist = screen->virtualSiblings();
if (screenlist.contains(screen)) {
QSize sz = QApplication::desktop()->size();
h = sz.height();
w = sz.width();
}
// top right corner
if (m_bDragTop && m_bDragRight) {
int diff =
globalMousePos.x() - (m_StartGeometry.x() + m_StartGeometry.width());
int neww = m_StartGeometry.width() + diff;
diff = globalMousePos.y() - m_StartGeometry.y();
int newy = m_StartGeometry.y() + diff;
if (neww > 0 && newy > 0 && newy < h - 50) {
QRect newg = m_StartGeometry;
newg.setWidth(neww);
newg.setX(m_StartGeometry.x());
newg.setY(newy);
setGeometry(newg);
}
}
// top left corner
else if (m_bDragTop && m_bDragLeft) {
int diff = globalMousePos.y() - m_StartGeometry.y();
int newy = m_StartGeometry.y() + diff;
diff = globalMousePos.x() - m_StartGeometry.x();
int newx = m_StartGeometry.x() + diff;
if (newy > 0 && newx > 0) {
QRect newg = m_StartGeometry;
newg.setY(newy);
newg.setX(newx);
setGeometry(newg);
}
}
// bottom right corner
else if (m_bDragBottom && m_bDragLeft) {
int diff =
globalMousePos.y() - (m_StartGeometry.y() + m_StartGeometry.height());
int newh = m_StartGeometry.height() + diff;
diff = globalMousePos.x() - m_StartGeometry.x();
int newx = m_StartGeometry.x() + diff;
if (newh > 0 && newx > 0) {
QRect newg = m_StartGeometry;
newg.setX(newx);
newg.setHeight(newh);
setGeometry(newg);
}
} else if (m_bDragTop) {
int diff = globalMousePos.y() - m_StartGeometry.y();
int newy = m_StartGeometry.y() + diff;
if (newy > 0 && newy < h - 50) {
QRect newg = m_StartGeometry;
newg.setY(newy);
setGeometry(newg);
}
} else if (m_bDragLeft) {
int diff = globalMousePos.x() - m_StartGeometry.x();
int newx = m_StartGeometry.x() + diff;
if (newx > 0 && newx < w - 50) {
QRect newg = m_StartGeometry;
newg.setX(newx);
setGeometry(newg);
}
} else if (m_bDragRight) {
int diff =
globalMousePos.x() - (m_StartGeometry.x() + m_StartGeometry.width());
int neww = m_StartGeometry.width() + diff;
if (neww > 0) {
QRect newg = m_StartGeometry;
newg.setWidth(neww);
newg.setX(m_StartGeometry.x());
setGeometry(newg);
}
} else if (m_bDragBottom) {
int diff =
globalMousePos.y() - (m_StartGeometry.y() + m_StartGeometry.height());
int newh = m_StartGeometry.height() + diff;
if (newh > 0) {
QRect newg = m_StartGeometry;
newg.setHeight(newh);
newg.setY(m_StartGeometry.y());
setGeometry(newg);
}
}
} else {
// no mouse pressed
if (leftBorderHit(globalMousePos) && topBorderHit(globalMousePos)) {
setCursor(Qt::SizeFDiagCursor);
} else if (rightBorderHit(globalMousePos) && topBorderHit(globalMousePos)) {
setCursor(Qt::SizeBDiagCursor);
} else if (leftBorderHit(globalMousePos) &&
bottomBorderHit(globalMousePos)) {
setCursor(Qt::SizeBDiagCursor);
} else {
if (topBorderHit(globalMousePos)) {
setCursor(Qt::SizeVerCursor);
} else if (leftBorderHit(globalMousePos)) {
setCursor(Qt::SizeHorCursor);
} else if (rightBorderHit(globalMousePos)) {
setCursor(Qt::SizeHorCursor);
} else if (bottomBorderHit(globalMousePos)) {
setCursor(Qt::SizeVerCursor);
} else {
m_bDragTop = false;
m_bDragLeft = false;
m_bDragRight = false;
m_bDragBottom = false;
setCursor(Qt::ArrowCursor);
}
}
}
}
// pos in global virtual desktop coordinates
bool FramelessWindow::leftBorderHit(const QPoint &pos) {
const QRect &rect = this->geometry();
if (pos.x() >= rect.x() && pos.x() <= rect.x() + CONST_DRAG_BORDER_SIZE) {
return true;
}
return false;
}
bool FramelessWindow::rightBorderHit(const QPoint &pos) {
const QRect &rect = this->geometry();
int tmp = rect.x() + rect.width();
if (pos.x() <= tmp && pos.x() >= (tmp - CONST_DRAG_BORDER_SIZE)) {
return true;
}
return false;
}
bool FramelessWindow::topBorderHit(const QPoint &pos) {
const QRect &rect = this->geometry();
if (pos.y() >= rect.y() && pos.y() <= rect.y() + CONST_DRAG_BORDER_SIZE) {
return true;
}
return false;
}
bool FramelessWindow::bottomBorderHit(const QPoint &pos) {
const QRect &rect = this->geometry();
int tmp = rect.y() + rect.height();
if (pos.y() <= tmp && pos.y() >= (tmp - CONST_DRAG_BORDER_SIZE)) {
return true;
}
return false;
}
void FramelessWindow::mousePressEvent(QMouseEvent *event) {
if (isMaximized()) {
return;
}
m_bMousePressed = true;
m_StartGeometry = this->geometry();
QPoint globalMousePos = mapToGlobal(QPoint(event->x(), event->y()));
if (leftBorderHit(globalMousePos) && topBorderHit(globalMousePos)) {
m_bDragTop = true;
m_bDragLeft = true;
setCursor(Qt::SizeFDiagCursor);
} else if (rightBorderHit(globalMousePos) && topBorderHit(globalMousePos)) {
m_bDragRight = true;
m_bDragTop = true;
setCursor(Qt::SizeBDiagCursor);
} else if (leftBorderHit(globalMousePos) && bottomBorderHit(globalMousePos)) {
m_bDragLeft = true;
m_bDragBottom = true;
setCursor(Qt::SizeBDiagCursor);
} else {
if (topBorderHit(globalMousePos)) {
m_bDragTop = true;
setCursor(Qt::SizeVerCursor);
} else if (leftBorderHit(globalMousePos)) {
m_bDragLeft = true;
setCursor(Qt::SizeHorCursor);
} else if (rightBorderHit(globalMousePos)) {
m_bDragRight = true;
setCursor(Qt::SizeHorCursor);
} else if (bottomBorderHit(globalMousePos)) {
m_bDragBottom = true;
setCursor(Qt::SizeVerCursor);
}
}
}
void FramelessWindow::mouseReleaseEvent(QMouseEvent *event) {
Q_UNUSED(event);
if (isMaximized()) {
return;
}
m_bMousePressed = false;
bool bSwitchBackCursorNeeded =
m_bDragTop || m_bDragLeft || m_bDragRight || m_bDragBottom;
m_bDragTop = false;
m_bDragLeft = false;
m_bDragRight = false;
m_bDragBottom = false;
if (bSwitchBackCursorNeeded) {
setCursor(Qt::ArrowCursor);
}
}
bool FramelessWindow::eventFilter(QObject *obj, QEvent *event) {
if (isMaximized()) {
return QWidget::eventFilter(obj, event);
}
// check mouse move event when mouse is moved on any object
if (event->type() == QEvent::MouseMove) {
QMouseEvent *pMouse = dynamic_cast<QMouseEvent *>(event);
if (pMouse) {
checkBorderDragging(pMouse);
}
}
// press is triggered only on frame window
else if (event->type() == QEvent::MouseButtonPress && obj == this) {
QMouseEvent *pMouse = dynamic_cast<QMouseEvent *>(event);
if (pMouse) {
mousePressEvent(pMouse);
}
} else if (event->type() == QEvent::MouseButtonRelease) {
if (m_bMousePressed) {
QMouseEvent *pMouse = dynamic_cast<QMouseEvent *>(event);
if (pMouse) {
mouseReleaseEvent(pMouse);
}
}
}
return QWidget::eventFilter(obj, event);
}

@ -0,0 +1,69 @@
/*
###############################################################################
# #
# The MIT License #
# #
# Copyright (C) 2017 by Juergen Skrotzky (JorgenVikingGod@gmail.com) #
# >> https://github.com/Jorgen-VikingGod #
# #
# Sources: https://github.com/Jorgen-VikingGod/Qt-Frameless-Window-DarkStyle #
# #
###############################################################################
*/
#ifndef FRAMELESSWINDOW_H
#define FRAMELESSWINDOW_H
#include <QWidget>
namespace Ui {
class FramelessWindow;
}
class FramelessWindow : public QWidget {
Q_OBJECT
public:
explicit FramelessWindow(QWidget *parent = Q_NULLPTR);
virtual ~FramelessWindow();
void setContent(QWidget *w);
private:
bool leftBorderHit(const QPoint &pos);
bool rightBorderHit(const QPoint &pos);
bool topBorderHit(const QPoint &pos);
bool bottomBorderHit(const QPoint &pos);
void styleWindow(bool bActive, bool bNoState);
public slots:
void setWindowTitle(const QString &text);
void setWindowIcon(const QIcon &ico);
private slots:
void on_applicationStateChanged(Qt::ApplicationState state);
void on_minimizeButton_clicked();
void on_restoreButton_clicked();
void on_maximizeButton_clicked();
void on_closeButton_clicked();
void on_windowTitlebar_doubleClicked();
protected:
virtual void changeEvent(QEvent *event);
virtual void mouseDoubleClickEvent(QMouseEvent *event);
virtual void checkBorderDragging(QMouseEvent *event);
virtual void mousePressEvent(QMouseEvent *event);
virtual void mouseReleaseEvent(QMouseEvent *event);
virtual bool eventFilter(QObject *obj, QEvent *event);
private:
Ui::FramelessWindow *ui;
QRect m_StartGeometry;
const quint8 CONST_DRAG_BORDER_SIZE = 15;
bool m_bMousePressed;
bool m_bDragTop;
bool m_bDragLeft;
bool m_bDragRight;
bool m_bDragBottom;
};
#endif // FRAMELESSWINDOW_H

@ -0,0 +1,304 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>FramelessWindow</class>
<widget class="QWidget" name="FramelessWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>1737</width>
<height>1157</height>
</rect>
</property>
<property name="windowTitle">
<string/>
</property>
<property name="autoFillBackground">
<bool>false</bool>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>5</number>
</property>
<property name="topMargin">
<number>5</number>
</property>
<property name="rightMargin">
<number>5</number>
</property>
<property name="bottomMargin">
<number>5</number>
</property>
<item>
<widget class="QWidget" name="windowFrame" native="true">
<property name="autoFillBackground">
<bool>false</bool>
</property>
<property name="styleSheet">
<string notr="true">#windowFrame{border:1px solid palette(highlight); border-radius:5px 5px 5px 5px; background-color:palette(Window);}</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>1</number>
</property>
<property name="topMargin">
<number>1</number>
</property>
<property name="rightMargin">
<number>1</number>
</property>
<property name="bottomMargin">
<number>1</number>
</property>
<item>
<widget class="WindowDragger" name="windowTitlebar" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="autoFillBackground">
<bool>false</bool>
</property>
<property name="styleSheet">
<string notr="true">#windowTitlebar{border: 0px none palette(base); border-top-left-radius:5px; border-top-right-radius:5px; background-color:palette(shadow); height:20px;}</string>
</property>
<layout class="QHBoxLayout" name="horizontalLayout" stretch="0,0,0,0,0,0,0">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QLabel" name="spacer">
<property name="minimumSize">
<size>
<width>4</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>4</width>
<height>16777215</height>
</size>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="icon">
<property name="minimumSize">
<size>
<width>16</width>
<height>16</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16</width>
<height>16</height>
</size>
</property>
<property name="contextMenuPolicy">
<enum>Qt::NoContextMenu</enum>
</property>
<property name="styleSheet">
<string notr="true">#icon {background-color:palette(shadow);}</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="titleText">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="styleSheet">
<string notr="true"> padding-left:5px;
color:rgb(153,153,153);</string>
</property>
<property name="text">
<string>VMProtect 2 - Virtual Instruction Inspector (v1.6 BETA)</string>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QToolButton" name="minimizeButton">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="styleSheet">
<string notr="true">#minimizeButton{
background-color:none;
border:none;
width:16px;
height:16px;
padding:4px;
image:url(:/images/icon_window_minimize.png);
}
#minimizeButton:hover{
background-color:palette(alternate-base);
}
#minimizeButton:pressed{
background-color:palette(highlight);
}</string>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
<item>
<widget class="QToolButton" name="restoreButton">
<property name="styleSheet">
<string notr="true">#restoreButton{
background-color:none;
border:none;
width:16px;
height:16px;
padding:4px;
image:url(:/images/icon_window_restore.png);
}
#restoreButton:hover{
background-color:palette(alternate-base);
}
#restoreButton:pressed{
background-color:palette(highlight);
}</string>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
<item>
<widget class="QToolButton" name="maximizeButton">
<property name="styleSheet">
<string notr="true">#maximizeButton{
background-color:none;
border:none;
width:16px;
height:16px;
padding:4px;
image:url(:/images/icon_window_maximize.png);
}
#maximizeButton:hover{
background-color:palette(alternate-base);
}
##maximizeButton:pressed{
background-color:palette(highlight);
}</string>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
<item>
<widget class="QToolButton" name="closeButton">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="styleSheet">
<string notr="true">#closeButton{
background-color:none;
border:none;
width:16px;
height:16px;
padding:4px;
image:url(:/images/icon_window_close.png);
border-top-right-radius: 5px;
}
#closeButton:hover{
background-color:palette(alternate-base);
}
##closeButton:pressed{
background-color:palette(highlight);
}</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QWidget" name="windowContent" native="true">
<property name="autoFillBackground">
<bool>false</bool>
</property>
<property name="styleSheet">
<string notr="true">#windowContent{
border: 0px none palette(base);
border-radius:0px 0px 5px 5px;
}</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_3">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
</layout>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<layoutdefault spacing="6" margin="11"/>
<customwidgets>
<customwidget>
<class>WindowDragger</class>
<extends>QWidget</extends>
<header>windowdragger.h</header>
<container>1</container>
</customwidget>
</customwidgets>
<resources/>
<connections/>
</ui>

@ -0,0 +1,56 @@
/*
###############################################################################
# #
# The MIT License #
# #
# Copyright (C) 2017 by Juergen Skrotzky (JorgenVikingGod@gmail.com) #
# >> https://github.com/Jorgen-VikingGod #
# #
# Sources: https://github.com/Jorgen-VikingGod/Qt-Frameless-Window-DarkStyle #
# #
###############################################################################
*/
#include "windowdragger.h"
#include <QPainter>
#include <QStyleOption>
WindowDragger::WindowDragger(QWidget *parent) : QWidget(parent) {
mousePressed = false;
}
void WindowDragger::mousePressEvent(QMouseEvent *event) {
mousePressed = true;
mousePos = event->globalPos();
QWidget *parent = parentWidget();
if (parent) parent = parent->parentWidget();
if (parent) wndPos = parent->pos();
}
void WindowDragger::mouseMoveEvent(QMouseEvent *event) {
QWidget *parent = parentWidget();
if (parent) parent = parent->parentWidget();
if (parent && mousePressed)
parent->move(wndPos + (event->globalPos() - mousePos));
}
void WindowDragger::mouseReleaseEvent(QMouseEvent *event) {
Q_UNUSED(event);
mousePressed = false;
}
void WindowDragger::paintEvent(QPaintEvent *event) {
Q_UNUSED(event);
QStyleOption styleOption;
styleOption.init(this);
QPainter painter(this);
style()->drawPrimitive(QStyle::PE_Widget, &styleOption, &painter, this);
}
void WindowDragger::mouseDoubleClickEvent(QMouseEvent *event) {
Q_UNUSED(event);
emit doubleClicked();
}

@ -0,0 +1,43 @@
/*
###############################################################################
# #
# The MIT License #
# #
# Copyright (C) 2017 by Juergen Skrotzky (JorgenVikingGod@gmail.com) #
# >> https://github.com/Jorgen-VikingGod #
# #
# Sources: https://github.com/Jorgen-VikingGod/Qt-Frameless-Window-DarkStyle #
# #
###############################################################################
*/
#ifndef WINDOWDRAGGER_H
#define WINDOWDRAGGER_H
#include <QMouseEvent>
#include <QWidget>
class WindowDragger : public QWidget {
Q_OBJECT
public:
explicit WindowDragger(QWidget *parent = Q_NULLPTR);
virtual ~WindowDragger() {}
signals:
void doubleClicked();
protected:
void mousePressEvent(QMouseEvent *event);
void mouseMoveEvent(QMouseEvent *event);
void mouseReleaseEvent(QMouseEvent *event);
void mouseDoubleClickEvent(QMouseEvent *event);
void paintEvent(QPaintEvent *event);
protected:
QPoint mousePos;
QPoint wndPos;
bool mousePressed;
};
#endif // WINDOWDRAGGER_H

Binary file not shown.

After

Width:  |  Height:  |  Size: 422 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 386 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 364 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 404 B

@ -0,0 +1,40 @@
/*
###############################################################################
# #
# The MIT License #
# #
# Copyright (C) 2017 by Juergen Skrotzky (JorgenVikingGod@gmail.com) #
# >> https://github.com/Jorgen-VikingGod #
# #
# Sources: https://github.com/Jorgen-VikingGod/Qt-Frameless-Window-DarkStyle #
# #
###############################################################################
*/
#include <QApplication>
#include "DarkStyle.h"
#include "framelesswindow.h"
#include "mainwindow.h"
int main(int argc, char *argv[]) {
QApplication a(argc, argv);
// style our application with custom dark style
QApplication::setStyle(new DarkStyle);
QApplication::setPalette(QApplication::style()->standardPalette());
// create frameless window (and set windowState or title)
FramelessWindow framelessWindow;
//framelessWindow.setWindowState(Qt::WindowFullScreen);
//framelessWindow.setWindowTitle("test title");
framelessWindow.setWindowIcon(a.style()->standardIcon(QStyle::SP_DesktopIcon));
// create our mainwindow instance
MainWindow *mainWindow = new MainWindow;
// add the mainwindow to our custom frameless window
framelessWindow.setContent(mainWindow);
framelessWindow.show();
return a.exec();
}

@ -0,0 +1,23 @@
/*
###############################################################################
# #
# The MIT License #
# #
# Copyright (C) 2017 by Juergen Skrotzky (JorgenVikingGod@gmail.com) #
# >> https://github.com/Jorgen-VikingGod #
# #
# Sources: https://github.com/Jorgen-VikingGod/Qt-Frameless-Window-DarkStyle #
# #
###############################################################################
*/
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent /*, Qt::FramelessWindowHint*/),
ui(new Ui::MainWindow) {
ui->setupUi(this);
}
MainWindow::~MainWindow() { delete ui; }

@ -0,0 +1,34 @@
/*
###############################################################################
# #
# The MIT License #
# #
# Copyright (C) 2017 by Juergen Skrotzky (JorgenVikingGod@gmail.com) #
# >> https://github.com/Jorgen-VikingGod #
# #
# Sources: https://github.com/Jorgen-VikingGod/Qt-Frameless-Window-DarkStyle #
# #
###############################################################################
*/
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QtWidgets>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow {
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = Q_NULLPTR);
~MainWindow();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H

@ -0,0 +1,645 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>670</width>
<height>559</height>
</rect>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<widget class="QWidget" name="centralWidget">
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="0" colspan="2">
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>Label</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="comboBox">
<item>
<property name="text">
<string>New Item</string>
</property>
</item>
<item>
<property name="text">
<string>New Item 2</string>
</property>
</item>
<item>
<property name="text">
<string>New Item 3</string>
</property>
</item>
</widget>
</item>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QCheckBox" name="checkBox_4">
<property name="text">
<string>Disable Widgets</string>
</property>
<property name="checked">
<bool>false</bool>
</property>
</widget>
</item>
</layout>
</item>
<item row="1" column="0">
<widget class="QGroupBox" name="groupBox">
<property name="title">
<string>GroupBox</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_4">
<item>
<widget class="QRadioButton" name="radioButton">
<property name="toolTipDuration">
<number>-10</number>
</property>
<property name="text">
<string>RadioButton</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="radioButton_2">
<property name="text">
<string>RadioButton</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="radioButton_3">
<property name="text">
<string>RadioButton</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="checkBox">
<property name="text">
<string>CheckBox</string>
</property>
<property name="checkable">
<bool>true</bool>
</property>
<property name="checked">
<bool>false</bool>
</property>
<property name="autoExclusive">
<bool>false</bool>
</property>
<property name="tristate">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="1" column="1">
<widget class="QGroupBox" name="groupBox_2">
<property name="title">
<string>GroupBox</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<widget class="QPushButton" name="pushButton">
<property name="text">
<string>PushButton</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_2">
<property name="text">
<string>PushButton</string>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_3">
<property name="text">
<string>PushButton</string>
</property>
<property name="flat">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_4">
<property name="text">
<string>PushButton</string>
</property>
<property name="default">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="2" column="0">
<widget class="QTabWidget" name="tabWidget">
<property name="currentIndex">
<number>1</number>
</property>
<widget class="QWidget" name="tab">
<attribute name="title">
<string>TextEdit</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QTextEdit" name="textEdit">
<property name="html">
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'.SF NS Text'; font-size:13pt;&quot;&gt;test&lt;br /&gt;test&lt;br /&gt;test&lt;br /&gt;test&lt;br /&gt;test&lt;br /&gt;test&lt;br /&gt;test&lt;br /&gt;test&lt;br /&gt;test&lt;br /&gt;test&lt;br /&gt;test&lt;br /&gt;test&lt;br /&gt;test&lt;br /&gt;test&lt;br /&gt;test&lt;br /&gt;test&lt;br /&gt;test&lt;br /&gt;test&lt;br /&gt;test&lt;br /&gt;test&lt;br /&gt;test&lt;br /&gt;test&lt;br /&gt;test&lt;br /&gt;test&lt;br /&gt;test&lt;br /&gt;test&lt;br /&gt;test&lt;br /&gt;test&lt;br /&gt;test&lt;br /&gt;test&lt;br /&gt;test&lt;br /&gt;test&lt;br /&gt;test&lt;br /&gt;test&lt;br /&gt;test&lt;br /&gt;test&lt;br /&gt;test&lt;br /&gt;test&lt;br /&gt;test&lt;br /&gt;test&lt;br /&gt;test&lt;br /&gt;test&lt;br /&gt;test&lt;br /&gt;test&lt;br /&gt;test&lt;br /&gt;test&lt;br /&gt;test&lt;br /&gt;test&lt;br /&gt;test&lt;br /&gt;test&lt;br /&gt;test&lt;br /&gt;test&lt;br /&gt;test&lt;br /&gt;test&lt;br /&gt;test&lt;br /&gt;test&lt;br /&gt;test&lt;br /&gt;test&lt;br /&gt;test&lt;br /&gt;test&lt;br /&gt;test&lt;br /&gt;test&lt;br /&gt;test&lt;br /&gt;test&lt;br /&gt;test&lt;br /&gt;test&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="tab_2">
<attribute name="title">
<string>Tab Table</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QTableWidget" name="tableWidget">
<row>
<property name="text">
<string>1</string>
</property>
</row>
<row>
<property name="text">
<string>2</string>
</property>
</row>
<row>
<property name="text">
<string>3</string>
</property>
</row>
<row>
<property name="text">
<string>4</string>
</property>
</row>
<row>
<property name="text">
<string>5</string>
</property>
</row>
<row>
<property name="text">
<string>6</string>
</property>
</row>
<row>
<property name="text">
<string>7</string>
</property>
</row>
<row>
<property name="text">
<string>8</string>
</property>
</row>
<row>
<property name="text">
<string>9</string>
</property>
</row>
<row>
<property name="text">
<string>10</string>
</property>
</row>
<column>
<property name="text">
<string>1</string>
</property>
</column>
<column>
<property name="text">
<string>2</string>
</property>
</column>
<column>
<property name="text">
<string>3</string>
</property>
</column>
<column>
<property name="text">
<string>4</string>
</property>
</column>
<column>
<property name="text">
<string>5</string>
</property>
</column>
<column>
<property name="text">
<string>6</string>
</property>
</column>
<column>
<property name="text">
<string>7</string>
</property>
</column>
<column>
<property name="text">
<string>8</string>
</property>
</column>
<column>
<property name="text">
<string>9</string>
</property>
</column>
<column>
<property name="text">
<string>10</string>
</property>
</column>
<item row="0" column="0">
<property name="text">
<string>Cell 1/1</string>
</property>
</item>
<item row="0" column="1">
<property name="text">
<string>Cell 2/1</string>
</property>
</item>
<item row="1" column="0">
<property name="text">
<string>Cell 1/2</string>
</property>
</item>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
<item row="2" column="1">
<widget class="QGroupBox" name="groupBox_3">
<property name="title">
<string>GroupBox</string>
</property>
<property name="checkable">
<bool>true</bool>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="3" column="1" rowspan="2">
<widget class="QDial" name="dial">
<property name="value">
<number>30</number>
</property>
</widget>
</item>
<item row="2" column="0" colspan="2">
<widget class="QDateTimeEdit" name="dateTimeEdit"/>
</item>
<item row="3" column="0">
<widget class="QSlider" name="horizontalSlider">
<property name="value">
<number>60</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item row="1" column="0" colspan="2">
<widget class="QSpinBox" name="spinBox"/>
</item>
<item row="4" column="0">
<widget class="QScrollBar" name="horizontalScrollBar">
<property name="value">
<number>25</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item row="0" column="0" colspan="2">
<widget class="QLineEdit" name="lineEdit">
<property name="text">
<string>test</string>
</property>
<property name="echoMode">
<enum>QLineEdit::Password</enum>
</property>
</widget>
</item>
<item row="5" column="0" colspan="2">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
<item row="3" column="0" colspan="2">
<widget class="QProgressBar" name="progressBar">
<property name="value">
<number>24</number>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QMenuBar" name="menuBar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>670</width>
<height>20</height>
</rect>
</property>
<widget class="QMenu" name="menuTest">
<property name="title">
<string>Test</string>
</property>
<addaction name="actionTest"/>
<addaction name="actionTest_2"/>
<addaction name="separator"/>
<addaction name="actionTest_3"/>
</widget>
<widget class="QMenu" name="menuTest2">
<property name="title">
<string>Test2</string>
</property>
<widget class="QMenu" name="menuTest2_2">
<property name="title">
<string>Test2</string>
</property>
<addaction name="actionTest3"/>
<addaction name="actionTest3_2"/>
</widget>
<addaction name="menuTest2_2"/>
</widget>
<addaction name="menuTest"/>
<addaction name="menuTest2"/>
</widget>
<widget class="QToolBar" name="mainToolBar">
<attribute name="toolBarArea">
<enum>TopToolBarArea</enum>
</attribute>
<attribute name="toolBarBreak">
<bool>false</bool>
</attribute>
<addaction name="actionTest"/>
<addaction name="actionTest_2"/>
<addaction name="actionTest3"/>
</widget>
<widget class="QStatusBar" name="statusBar"/>
<action name="actionTest">
<property name="text">
<string>Test</string>
</property>
</action>
<action name="actionTest_2">
<property name="checkable">
<bool>true</bool>
</property>
<property name="checked">
<bool>true</bool>
</property>
<property name="text">
<string>Test</string>
</property>
</action>
<action name="actionTest_3">
<property name="checkable">
<bool>true</bool>
</property>
<property name="text">
<string>Test</string>
</property>
</action>
<action name="actionTest3">
<property name="text">
<string>Test3</string>
</property>
</action>
<action name="actionTest3_2">
<property name="text">
<string>Test3</string>
</property>
</action>
</widget>
<layoutdefault spacing="6" margin="11"/>
<resources/>
<connections>
<connection>
<sender>checkBox_4</sender>
<signal>toggled(bool)</signal>
<receiver>groupBox_2</receiver>
<slot>setDisabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>543</x>
<y>70</y>
</hint>
<hint type="destinationlabel">
<x>376</x>
<y>97</y>
</hint>
</hints>
</connection>
<connection>
<sender>checkBox_4</sender>
<signal>toggled(bool)</signal>
<receiver>groupBox</receiver>
<slot>setDisabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>617</x>
<y>70</y>
</hint>
<hint type="destinationlabel">
<x>47</x>
<y>104</y>
</hint>
</hints>
</connection>
<connection>
<sender>checkBox_4</sender>
<signal>toggled(bool)</signal>
<receiver>tabWidget</receiver>
<slot>setDisabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>623</x>
<y>74</y>
</hint>
<hint type="destinationlabel">
<x>234</x>
<y>264</y>
</hint>
</hints>
</connection>
<connection>
<sender>checkBox_4</sender>
<signal>toggled(bool)</signal>
<receiver>groupBox_3</receiver>
<slot>setDisabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>503</x>
<y>80</y>
</hint>
<hint type="destinationlabel">
<x>503</x>
<y>262</y>
</hint>
</hints>
</connection>
<connection>
<sender>checkBox_4</sender>
<signal>toggled(bool)</signal>
<receiver>progressBar</receiver>
<slot>setDisabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>631</x>
<y>73</y>
</hint>
<hint type="destinationlabel">
<x>607</x>
<y>517</y>
</hint>
</hints>
</connection>
<connection>
<sender>checkBox_4</sender>
<signal>toggled(bool)</signal>
<receiver>mainToolBar</receiver>
<slot>setDisabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>648</x>
<y>71</y>
</hint>
<hint type="destinationlabel">
<x>105</x>
<y>33</y>
</hint>
</hints>
</connection>
<connection>
<sender>checkBox_4</sender>
<signal>toggled(bool)</signal>
<receiver>menuBar</receiver>
<slot>setDisabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>634</x>
<y>73</y>
</hint>
<hint type="destinationlabel">
<x>64</x>
<y>7</y>
</hint>
</hints>
</connection>
<connection>
<sender>checkBox_4</sender>
<signal>toggled(bool)</signal>
<receiver>statusBar</receiver>
<slot>setDisabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>650</x>
<y>70</y>
</hint>
<hint type="destinationlabel">
<x>533</x>
<y>549</y>
</hint>
</hints>
</connection>
<connection>
<sender>checkBox_4</sender>
<signal>toggled(bool)</signal>
<receiver>comboBox</receiver>
<slot>setDisabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>626</x>
<y>70</y>
</hint>
<hint type="destinationlabel">
<x>297</x>
<y>65</y>
</hint>
</hints>
</connection>
<connection>
<sender>checkBox_4</sender>
<signal>toggled(bool)</signal>
<receiver>label</receiver>
<slot>setDisabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>639</x>
<y>78</y>
</hint>
<hint type="destinationlabel">
<x>28</x>
<y>66</y>
</hint>
</hints>
</connection>
</connections>
</ui>

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 128 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

@ -19,9 +19,9 @@
</ProjectReference>
</ItemGroup>
<ItemGroup>
<ClCompile Include="dependencies\DarkStyle\DarkStyle.cpp" />
<ClCompile Include="dependencies\DarkStyle\framelesswindow\framelesswindow.cpp" />
<ClCompile Include="dependencies\DarkStyle\framelesswindow\windowdragger.cpp" />
<ClCompile Include="src\darkstyle\DarkStyle.cpp" />
<ClCompile Include="src\darkstyle\framelesswindow\framelesswindow.cpp" />
<ClCompile Include="src\darkstyle\framelesswindow\windowdragger.cpp" />
<ClCompile Include="src\main.cpp" />
<ClCompile Include="src\qvirt_instrs.cpp" />
<ClCompile Include="src\qvminspector.cpp" />
@ -33,22 +33,13 @@
<QtMoc Include="src\qvminspector.h" />
</ItemGroup>
<ItemGroup>
<QtMoc Include="dependencies\DarkStyle\DarkStyle.h" />
</ItemGroup>
<ItemGroup>
<QtRcc Include="dependencies\DarkStyle\darkstyle.qrc" />
<QtRcc Include="dependencies\DarkStyle\framelesswindow.qrc" />
<QtRcc Include="resources\qvminspector.qrc" />
<QtRcc Include="src\darkstyle\darkstyle.qrc" />
<QtRcc Include="src\darkstyle\framelesswindow.qrc" />
</ItemGroup>
<ItemGroup>
<QtMoc Include="dependencies\DarkStyle\framelesswindow\framelesswindow.h" />
</ItemGroup>
<ItemGroup>
<QtMoc Include="dependencies\DarkStyle\framelesswindow\windowdragger.h" />
</ItemGroup>
<ItemGroup>
<QtUic Include="dependencies\DarkStyle\framelesswindow\framelesswindow.ui" />
<QtUic Include="resources\qvminspector.ui" />
<QtUic Include="src\darkstyle\framelesswindow\framelesswindow.ui" />
</ItemGroup>
<ItemGroup>
<Image Include="resources\icon.ico" />
@ -61,6 +52,9 @@
</ItemGroup>
<ItemGroup>
<ClInclude Include="dependencies\ia32-doc\out\ia32.hpp" />
<QtMoc Include="src\darkstyle\framelesswindow\windowdragger.h" />
<QtMoc Include="src\darkstyle\framelesswindow\framelesswindow.h" />
<QtMoc Include="src\darkstyle\DarkStyle.h" />
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{A0485AE3-1965-4BE3-A2C4-A8257337C271}</ProjectGuid>
@ -107,10 +101,10 @@
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
<IncludePath>G:\Qt\5.15.1\msvc2019_64\include;$(ProjectDir);$(ProjectDir)dependencies\DarkStyle\framelesswindow\;$(ProjectDir)dependencies\DarkStyle;$(IncludePath);$(ProjectDir)dependencies\vmprofiler\include;$(ProjectDir)dependencies\vmprofiler\dependencies\zydis\include;$(ProjectDir)dependencies\vmprofiler\dependencies\zydis\dependencies\zycore\include;$(ProjectDir)dependencies\vmprofiler\dependencies\zydis\msvc;$(ProjectDir)dependencies\ia32-doc\out\</IncludePath>
<IncludePath>G:\Qt\5.15.1\msvc2019_64\include;$(ProjectDir);$(ProjectDir)src\DarkStyle\framelesswindow\;$(ProjectDir)src\DarkStyle;$(IncludePath);$(ProjectDir)dependencies\vmprofiler\include;$(ProjectDir)dependencies\vmprofiler\dependencies\zydis\include;$(ProjectDir)dependencies\vmprofiler\dependencies\zydis\dependencies\zycore\include;$(ProjectDir)dependencies\vmprofiler\dependencies\zydis\msvc;$(ProjectDir)dependencies\ia32-doc\out\</IncludePath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
<IncludePath>G:\Qt\5.15.1\msvc2019_64\include;$(ProjectDir);$(ProjectDir)dependencies\DarkStyle\framelesswindow\;$(ProjectDir)dependencies\DarkStyle;$(IncludePath);$(ProjectDir)dependencies\vmprofiler\include;$(ProjectDir)dependencies\vmprofiler\dependencies\zydis\include;$(ProjectDir)dependencies\vmprofiler\dependencies\zydis\dependencies\zycore\include;$(ProjectDir)dependencies\vmprofiler\dependencies\zydis\msvc;$(ProjectDir)dependencies\ia32-doc\out\</IncludePath>
<IncludePath>G:\Qt\5.15.1\msvc2019_64\include;$(ProjectDir);$(ProjectDir)src\DarkStyle\framelesswindow\;$(ProjectDir)src\DarkStyle;$(IncludePath);$(ProjectDir)dependencies\vmprofiler\include;$(ProjectDir)dependencies\vmprofiler\dependencies\zydis\include;$(ProjectDir)dependencies\vmprofiler\dependencies\zydis\dependencies\zycore\include;$(ProjectDir)dependencies\vmprofiler\dependencies\zydis\msvc;$(ProjectDir)dependencies\ia32-doc\out\</IncludePath>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>

@ -11,16 +11,16 @@
<UniqueIdentifier>{8c45819e-3375-4fa3-81c3-ef06ca9b22f8}</UniqueIdentifier>
</Filter>
<Filter Include="Header Files\darkstyle">
<UniqueIdentifier>{3be16123-7e90-4e97-86f4-92801c3f4ede}</UniqueIdentifier>
<UniqueIdentifier>{12ad7b7f-216d-4e4f-a08a-c42ed0fc9450}</UniqueIdentifier>
</Filter>
<Filter Include="Header Files\darkstyle\framelesswindow">
<UniqueIdentifier>{5a2542d9-b470-4c74-9c19-80a1e210d6ab}</UniqueIdentifier>
<UniqueIdentifier>{105cb913-ac75-4192-b597-963e012ddf2e}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\darkstyle">
<UniqueIdentifier>{fdddc2b4-b9cf-403b-96b3-604807a6d797}</UniqueIdentifier>
<UniqueIdentifier>{d58a423a-4c09-4775-a839-0ab9e403f57e}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\darkstyle\framelesswindow">
<UniqueIdentifier>{12186088-c49f-41bf-b3c9-b41a8d847495}</UniqueIdentifier>
<UniqueIdentifier>{48472175-af91-4abd-bcc9-9801caeb83c9}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
@ -33,13 +33,13 @@
<ClCompile Include="src\qvminspector.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="dependencies\DarkStyle\framelesswindow\framelesswindow.cpp">
<ClCompile Include="src\darkstyle\framelesswindow\framelesswindow.cpp">
<Filter>Source Files\darkstyle\framelesswindow</Filter>
</ClCompile>
<ClCompile Include="dependencies\DarkStyle\framelesswindow\windowdragger.cpp">
<ClCompile Include="src\darkstyle\framelesswindow\windowdragger.cpp">
<Filter>Source Files\darkstyle\framelesswindow</Filter>
</ClCompile>
<ClCompile Include="dependencies\DarkStyle\DarkStyle.cpp">
<ClCompile Include="src\darkstyle\DarkStyle.cpp">
<Filter>Source Files\darkstyle</Filter>
</ClCompile>
</ItemGroup>
@ -50,32 +50,32 @@
<QtMoc Include="src\qvminspector.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="dependencies\DarkStyle\DarkStyle.h">
<QtMoc Include="src\darkstyle\DarkStyle.h">
<Filter>Header Files\darkstyle</Filter>
</QtMoc>
<QtMoc Include="dependencies\DarkStyle\framelesswindow\framelesswindow.h">
<QtMoc Include="src\darkstyle\framelesswindow\framelesswindow.h">
<Filter>Header Files\darkstyle\framelesswindow</Filter>
</QtMoc>
<QtMoc Include="dependencies\DarkStyle\framelesswindow\windowdragger.h">
<QtMoc Include="src\darkstyle\framelesswindow\windowdragger.h">
<Filter>Header Files\darkstyle\framelesswindow</Filter>
</QtMoc>
</ItemGroup>
<ItemGroup>
<QtRcc Include="dependencies\DarkStyle\darkstyle.qrc">
<QtRcc Include="resources\qvminspector.qrc">
<Filter>Resource Files</Filter>
</QtRcc>
<QtRcc Include="dependencies\DarkStyle\framelesswindow.qrc">
<QtRcc Include="src\darkstyle\darkstyle.qrc">
<Filter>Resource Files</Filter>
</QtRcc>
<QtRcc Include="resources\qvminspector.qrc">
<QtRcc Include="src\darkstyle\framelesswindow.qrc">
<Filter>Resource Files</Filter>
</QtRcc>
</ItemGroup>
<ItemGroup>
<QtUic Include="dependencies\DarkStyle\framelesswindow\framelesswindow.ui">
<QtUic Include="resources\qvminspector.ui">
<Filter>Resource Files</Filter>
</QtUic>
<QtUic Include="resources\qvminspector.ui">
<QtUic Include="src\darkstyle\framelesswindow\framelesswindow.ui">
<Filter>Resource Files</Filter>
</QtUic>
</ItemGroup>

Loading…
Cancel
Save