Support dark mode on Windows (feature 7985)
@ -0,0 +1,98 @@
|
||||
#include "application.hpp"
|
||||
|
||||
#include <QFile>
|
||||
#include <QStyle>
|
||||
#include <QStyleHints>
|
||||
|
||||
#include <components/debug/debuglog.hpp>
|
||||
#include <components/misc/scalableicon.hpp>
|
||||
|
||||
namespace Platform
|
||||
{
|
||||
Application::Application(int& argc, char* argv[])
|
||||
: QApplication(argc, argv)
|
||||
{
|
||||
#if defined(WIN32) && QT_VERSION >= QT_VERSION_CHECK(6, 5, 0)
|
||||
init();
|
||||
}
|
||||
|
||||
void Application::init()
|
||||
{
|
||||
connect(this, &Application::darkModeChanged, this, &Application::updateStyle);
|
||||
|
||||
const auto* hints = QGuiApplication::styleHints();
|
||||
const auto currentStyle = QApplication::style()->objectName();
|
||||
mInitialStyle = currentStyle.toStdString();
|
||||
mCurrentStyle = currentStyle.toStdString();
|
||||
if (hints->colorScheme() == Qt::ColorScheme::Dark)
|
||||
{
|
||||
mDarkMode = true;
|
||||
if (currentStyle == "windowsvista")
|
||||
{
|
||||
mCurrentStyle = "windows";
|
||||
setStyle("windows");
|
||||
|
||||
QFile file(":/dark/dark.qss");
|
||||
file.open(QIODevice::ReadOnly);
|
||||
setStyleSheet(file.readAll());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Application::updateStyle(bool isDark)
|
||||
{
|
||||
if (mInitialStyle != "windowsvista")
|
||||
return;
|
||||
|
||||
if (isDark)
|
||||
{
|
||||
mCurrentStyle = "windows";
|
||||
setStyle("windows");
|
||||
|
||||
QFile file(":/dark/dark.qss");
|
||||
file.open(QIODevice::ReadOnly);
|
||||
setStyleSheet(file.readAll());
|
||||
}
|
||||
else
|
||||
{
|
||||
mCurrentStyle = mInitialStyle;
|
||||
setStyleSheet("");
|
||||
setStyle(mInitialStyle.c_str());
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
bool Application::notify(QObject* receiver, QEvent* event)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (event->type() == QEvent::ThemeChange || event->type() == QEvent::PaletteChange)
|
||||
{
|
||||
#if defined(WIN32) && QT_VERSION >= QT_VERSION_CHECK(6, 5, 0)
|
||||
const auto* hints = QGuiApplication::styleHints();
|
||||
const auto currentStyle = QApplication::style()->objectName();
|
||||
bool isDark = hints->colorScheme() == Qt::ColorScheme::Dark;
|
||||
if (isDark != mDarkMode)
|
||||
{
|
||||
mDarkMode = isDark;
|
||||
|
||||
bool result = QApplication::notify(receiver, event);
|
||||
|
||||
emit darkModeChanged(isDark);
|
||||
|
||||
return result;
|
||||
}
|
||||
#endif
|
||||
Misc::ScalableIcon::updateAllIcons();
|
||||
}
|
||||
|
||||
return QApplication::notify(receiver, event);
|
||||
}
|
||||
catch (const std::exception& exception)
|
||||
{
|
||||
Log(Debug::Error) << "An exception has been caught: " << exception.what();
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
@ -0,0 +1,30 @@
|
||||
#include <QApplication>
|
||||
#include <QEvent>
|
||||
|
||||
namespace Platform
|
||||
{
|
||||
class Application : public QApplication
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
Application(int& argc, char* argv[]);
|
||||
|
||||
#if defined(WIN32) && QT_VERSION >= QT_VERSION_CHECK(6, 5, 0)
|
||||
void init();
|
||||
|
||||
private slots:
|
||||
void updateStyle(bool isDark);
|
||||
#endif
|
||||
|
||||
signals:
|
||||
void darkModeChanged(bool);
|
||||
|
||||
private:
|
||||
bool notify(QObject* receiver, QEvent* event) override;
|
||||
|
||||
std::string mCurrentStyle{};
|
||||
std::string mInitialStyle{};
|
||||
bool mDarkMode{ false };
|
||||
};
|
||||
}
|
@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg width="1300" height="1300" viewBox="0 0 1300 1300" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect x="50" y="50" width="1200" height="1200" style="stroke:#7e7e7e;stroke-width:100;fill:#505050;" />
|
||||
<polyline points="250,700 500,950 1100,350" stroke="#7e7e7e" stroke-width="150" fill="none" />
|
||||
</svg>
|
After Width: | Height: | Size: 336 B |
@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg width="1300" height="1300" viewBox="0 0 1300 1300" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect x="50" y="50" width="1200" height="1200" style="stroke:#7e7e7e;stroke-width:100;fill:none;" />
|
||||
<polyline points="250,700 500,950 1100,350" stroke="#7e7e7e" stroke-width="150" fill="none" />
|
||||
</svg>
|
After Width: | Height: | Size: 333 B |
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg width="1300" height="1300" viewBox="0 0 1300 1300" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect x="50" y="50" width="1200" height="1200" style="stroke:#7e7e7e;stroke-width:100;fill:#505050;" />
|
||||
</svg>
|
After Width: | Height: | Size: 241 B |
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg width="1300" height="1300" viewBox="0 0 1300 1300" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect x="50" y="50" width="1200" height="1200" style="stroke:#7e7e7e;stroke-width:100;fill:none;" />
|
||||
</svg>
|
After Width: | Height: | Size: 238 B |
@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg width="1300" height="1300" viewBox="0 0 1300 1300" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect x="50" y="50" width="1200" height="1200" style="stroke:#7e7e7e;stroke-width:100;fill:#505050;" />
|
||||
<rect x="350" y="350" width="600" height="600" style="stroke:#7e7e7e;stroke-width:100;fill:#7e7e7e;" />
|
||||
</svg>
|
After Width: | Height: | Size: 345 B |
@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg width="1300" height="1300" viewBox="0 0 1300 1300" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect x="50" y="50" width="1200" height="1200" style="stroke:#7e7e7e;stroke-width:100;fill:none;" />
|
||||
<rect x="350" y="350" width="600" height="600" style="stroke:#7e7e7e;stroke-width:100;fill:#7e7e7e;" />
|
||||
</svg>
|
After Width: | Height: | Size: 342 B |
@ -0,0 +1,30 @@
|
||||
<RCC>
|
||||
<qresource prefix="/dark">
|
||||
<file>dark.qss</file>
|
||||
<file>checkbox-checked.svg</file>
|
||||
<file>checkbox-checked-disabled.svg</file>
|
||||
<file>checkbox-empty.svg</file>
|
||||
<file>checkbox-empty-disabled.svg</file>
|
||||
<file>checkbox-half.svg</file>
|
||||
<file>checkbox-half-disabled.svg</file>
|
||||
<file>dockwidget-close.svg</file>
|
||||
<file>dockwidget-undock.svg</file>
|
||||
<file>down-triangle.svg</file>
|
||||
<file>down-triangle-spinbox.svg</file>
|
||||
<file>dropdown-arrow.svg</file>
|
||||
<file>left-triangle-tabbar.svg</file>
|
||||
<file>radiobutton-checked.svg</file>
|
||||
<file>radiobutton-checked-disabled.svg</file>
|
||||
<file>radiobutton-empty.svg</file>
|
||||
<file>radiobutton-empty-disabled.svg</file>
|
||||
<file>right-triangle-tabbar.svg</file>
|
||||
<file>scrollbar-arrow-down.svg</file>
|
||||
<file>scrollbar-arrow-left.svg</file>
|
||||
<file>scrollbar-arrow-right.svg</file>
|
||||
<file>scrollbar-arrow-up.svg</file>
|
||||
<file>table-header-sort-arrow-down.svg</file>
|
||||
<file>table-header-sort-arrow-up.svg</file>
|
||||
<file>up-triangle.svg</file>
|
||||
<file>up-triangle-spinbox.svg</file>
|
||||
</qresource>
|
||||
</RCC>
|
@ -0,0 +1,613 @@
|
||||
QMenu
|
||||
{
|
||||
border: 1px solid #4e4e4e;
|
||||
}
|
||||
QMenuBar
|
||||
{
|
||||
background-color: #232323;
|
||||
color: #dcdcdc;
|
||||
border: 0px;
|
||||
}
|
||||
QMenu, QMessageBox
|
||||
{
|
||||
background-color: #232323;
|
||||
color: #dcdcdc;
|
||||
border: 1px solid #4e4e4e;
|
||||
}
|
||||
QScrollArea
|
||||
{
|
||||
border: 1px solid #4e4e4e;
|
||||
}
|
||||
QMenuBar::item
|
||||
{
|
||||
background-color: #232323;
|
||||
color: #dcdcdc;
|
||||
}
|
||||
QMenuBar
|
||||
{
|
||||
border-color: #404040;
|
||||
}
|
||||
QMenuBar::item:hover, QMenuBar::item:selected, QMenu::item:hover, QMenu::item:selected
|
||||
{
|
||||
background-color: #404040;
|
||||
color: #dcdcdc;
|
||||
}
|
||||
QMenuBar::item:disabled, QMenu::item:disabled
|
||||
{
|
||||
color: #919191;
|
||||
}
|
||||
QMenu::separator
|
||||
{
|
||||
height: 1px;
|
||||
background-color: #4e4e4e;
|
||||
margin-left: 2px;
|
||||
margin-right: 2px;
|
||||
margin-top: 5px;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
QToolTip, QColumnView, QListView, QTableView, QTableWidget, QTreeView
|
||||
{
|
||||
background-color: #232323;
|
||||
alternate-background-color: #282828;
|
||||
border: 1px solid #4e4e4e;
|
||||
selection-background-color: #505050;
|
||||
gridline-color: #606060;
|
||||
}
|
||||
|
||||
QHeaderView::section
|
||||
{
|
||||
background-color: #232323;
|
||||
border: 0px;
|
||||
border-right: 1px solid #4e4e4e;
|
||||
}
|
||||
QHeaderView::section:hover, QHeaderView::section:checked
|
||||
{
|
||||
background-color: #202020;
|
||||
}
|
||||
QHeaderView::down-arrow
|
||||
{
|
||||
subcontrol-origin: content;
|
||||
subcontrol-position: right;
|
||||
image: url(:/dark/table-header-sort-arrow-down.svg);
|
||||
width: 10px;
|
||||
height: 7px;
|
||||
background: transparent;
|
||||
left: -5px;
|
||||
}
|
||||
QHeaderView::up-arrow
|
||||
{
|
||||
subcontrol-origin: content;
|
||||
subcontrol-position: right;
|
||||
image: url(:/dark/table-header-sort-arrow-up.svg);
|
||||
width: 10px;
|
||||
height: 7px;
|
||||
background: transparent;
|
||||
left: -5px;
|
||||
}
|
||||
|
||||
QTabWidget::pane
|
||||
{
|
||||
border: 1px solid #4e4e4e;
|
||||
top: -1px;
|
||||
}
|
||||
QTabBar
|
||||
{
|
||||
outline: 0px;
|
||||
}
|
||||
QTabBar::tab
|
||||
{
|
||||
background-color: #232323;
|
||||
border-left: 1px solid #4e4e4e;
|
||||
border-right: 1px solid #4e4e4e;
|
||||
border-top: 1px solid #4e4e4e;
|
||||
border-bottom: 1px solid #4e4e4e;
|
||||
padding-top: 2px;
|
||||
padding-bottom: 2px;
|
||||
padding-left: 9px;
|
||||
padding-right: 10px;
|
||||
margin-right: -1px;
|
||||
}
|
||||
QTabBar::tab:only-one
|
||||
{
|
||||
margin-right: 0px;
|
||||
}
|
||||
QTabBar::tab:last
|
||||
{
|
||||
margin-right: 0px;
|
||||
}
|
||||
QTabBar::tab:hover
|
||||
{
|
||||
background-color: #404040;
|
||||
}
|
||||
QTabBar::tab:selected
|
||||
{
|
||||
border-bottom: 0px;
|
||||
background-color: #1e1e1e;
|
||||
padding-bottom: 4px;
|
||||
}
|
||||
QTabBar::tab:!selected
|
||||
{
|
||||
margin-top: 2px;
|
||||
}
|
||||
|
||||
QProgressBar
|
||||
{
|
||||
background-color: #1e1e1e;
|
||||
border: 1px solid #4e4e4e;
|
||||
color: #dfe1e2;
|
||||
text-align: center;
|
||||
}
|
||||
QProgressBar:disabled
|
||||
{
|
||||
background-color: #1e1e1e;
|
||||
border: 1px solid #4e4e4e;
|
||||
color: #788d9c;
|
||||
text-align: center;
|
||||
}
|
||||
QProgressBar::chunk
|
||||
{
|
||||
background-color: #0e651e;
|
||||
color: #19232D;
|
||||
}
|
||||
QProgressBar::chunk:disabled
|
||||
{
|
||||
background-color: #404040;
|
||||
color: #788D9C;
|
||||
}
|
||||
|
||||
QDockWidget
|
||||
{
|
||||
background-color: #232323;
|
||||
titlebar-close-icon: url(:/dark/dockwidget-close.svg);
|
||||
titlebar-normal-icon: url(:/dark/dockwidget-undock.svg);
|
||||
}
|
||||
QDockWidget::title
|
||||
{
|
||||
background-color: #212121;
|
||||
}
|
||||
QDockWidget::float-button
|
||||
{
|
||||
border: 0;
|
||||
}
|
||||
QDockWidget::close-button
|
||||
{
|
||||
border: 0;
|
||||
}
|
||||
QDockWidget::float-button:hover
|
||||
{
|
||||
background-color: #4e4e4e;
|
||||
}
|
||||
QDockWidget::float-button:pressed
|
||||
{
|
||||
background-color: #5e5e5e;
|
||||
}
|
||||
QDockWidget::close-button:hover
|
||||
{
|
||||
background-color: #4e4e4e;
|
||||
}
|
||||
QDockWidget::close-button:pressed
|
||||
{
|
||||
background-color: #5e5e5e;
|
||||
}
|
||||
|
||||
QPushButton
|
||||
{
|
||||
background-color: #232323;
|
||||
border: 1px solid #4e4e4e;
|
||||
padding: 2px;
|
||||
}
|
||||
|
||||
QToolButton[autoRaise="false"]
|
||||
{
|
||||
background-color: #232323;
|
||||
border: 1px solid #4e4e4e;
|
||||
padding: 2px;
|
||||
}
|
||||
|
||||
QWizard QPushButton
|
||||
{
|
||||
min-width: 67px;
|
||||
}
|
||||
QDialogButtonBox QPushButton
|
||||
{
|
||||
min-width: 67px;
|
||||
}
|
||||
QPushButton:hover, QToolButton:hover
|
||||
{
|
||||
background-color: #404040;
|
||||
}
|
||||
QDialogButtonBox QPushButton:focus, QToolButton:focus
|
||||
{
|
||||
border: 2px solid #7e7e7e;
|
||||
}
|
||||
QPushButton:pressed, QToolButton:pressed
|
||||
{
|
||||
border: 1px solid #7e7e7e;
|
||||
}
|
||||
QPushButton:selected, QToolButton:selected
|
||||
{
|
||||
border: 1px solid #7e7e7e;
|
||||
}
|
||||
QPushButton:disabled, QToolButton:disabled
|
||||
{
|
||||
background-color: #313131;
|
||||
}
|
||||
|
||||
/* the dropdownarrow on the right of the button in menu popup mode */
|
||||
QToolButton[popupMode="1"]
|
||||
{
|
||||
padding-right: 19px;
|
||||
}
|
||||
QToolButton::menu-button
|
||||
{
|
||||
border: 0px;
|
||||
border-left: 1px solid #4e4e4e;
|
||||
width: 18px;
|
||||
}
|
||||
QToolButton::menu-arrow
|
||||
{
|
||||
image: url(:/dark/down-triangle.svg);
|
||||
width: 14px;
|
||||
}
|
||||
|
||||
QToolBar
|
||||
{
|
||||
border: 0px;
|
||||
}
|
||||
QToolBar QToolButton
|
||||
{
|
||||
border: 0px;
|
||||
padding: 0px;
|
||||
padding-left: 3px;
|
||||
padding-right: 2px;
|
||||
background-color: #1e1e1e;
|
||||
}
|
||||
QToolBar QToolButton:hover
|
||||
{
|
||||
background-color: #404040;
|
||||
}
|
||||
QToolBar QToolButton:checked
|
||||
{
|
||||
background-color: #505050;
|
||||
}
|
||||
QToolBar QToolButton:focus
|
||||
{
|
||||
background-color: #404040;
|
||||
}
|
||||
QToolBar QToolButton:disabled
|
||||
{
|
||||
background-color: #242424;
|
||||
}
|
||||
QToolBar::separator
|
||||
{
|
||||
min-width: 0px;
|
||||
width: 1px;
|
||||
margin-left: 3px;
|
||||
margin-right: 2px;
|
||||
background-color: #4e4e4e;
|
||||
}
|
||||
|
||||
QGroupBox
|
||||
{
|
||||
border: 1px solid #4e4e4e;
|
||||
margin-top: 9px;
|
||||
padding-top: 7px;
|
||||
padding-bottom: 0px;
|
||||
padding-left: 1px;
|
||||
padding-right: 1px;
|
||||
}
|
||||
QGroupBox::title
|
||||
{
|
||||
subcontrol-origin: margin;
|
||||
subcontrol-position: top left;
|
||||
left: 9px;
|
||||
padding-top: 1px;
|
||||
min-width: 0px;
|
||||
}
|
||||
|
||||
QLineEdit, QTextEdit, QPlainTextEdit
|
||||
{
|
||||
border: 1px solid #4e4e4e;
|
||||
}
|
||||
QLineEdit:disabled, QTextEdit, QPlainTextEdit:disabled
|
||||
{
|
||||
background-color: #313131;
|
||||
}
|
||||
|
||||
QComboBox
|
||||
{
|
||||
background-color: #232323;
|
||||
border: 1px solid #4e4e4e;
|
||||
margin: 0px;
|
||||
padding-left: 3px;
|
||||
padding-right: 3px;
|
||||
padding-top: 1px;
|
||||
padding-bottom: 1px;
|
||||
}
|
||||
QComboBox:disabled
|
||||
{
|
||||
background-color: #313131;
|
||||
}
|
||||
QComboBox:selected
|
||||
{
|
||||
background-color: #404040;
|
||||
}
|
||||
QComboBox:editable {
|
||||
background-color: #232323;
|
||||
}
|
||||
QComboBox::drop-down
|
||||
{
|
||||
border: 0px;
|
||||
}
|
||||
QComboBox::down-arrow
|
||||
{
|
||||
image: url(:/dark/dropdown-arrow.svg);
|
||||
height: 10px;
|
||||
width: 15px;
|
||||
}
|
||||
QComboBox QAbstractItemView
|
||||
{
|
||||
background-color: #232323;
|
||||
selection-background-color: #404040;
|
||||
border: 1px solid #4e4e4e;
|
||||
padding: 0px;
|
||||
margin: 0px;
|
||||
outline: 0px;
|
||||
}
|
||||
QComboBox QAbstractItemView::item:selected
|
||||
{
|
||||
color: #dcdcdc;
|
||||
background-color: #404040;
|
||||
}
|
||||
QComboBox QAbstractItemView::item:last
|
||||
{
|
||||
border: 0px;
|
||||
}
|
||||
|
||||
QScrollBar:vertical
|
||||
{
|
||||
border: 0px;
|
||||
background: #2a2a2a;
|
||||
width: 15px;
|
||||
margin: 15px 0px;
|
||||
}
|
||||
QScrollBar::handle:vertical
|
||||
{
|
||||
border: 0px;
|
||||
background: #606060;
|
||||
min-height: 20px;
|
||||
}
|
||||
QScrollBar::add-line:vertical
|
||||
{
|
||||
border: 0px;
|
||||
background: #232323;
|
||||
height: 15px;
|
||||
subcontrol-position: bottom;
|
||||
subcontrol-origin: margin;
|
||||
}
|
||||
QScrollBar::sub-line:vertical
|
||||
{
|
||||
border: 0px;
|
||||
background: #232323;
|
||||
height: 15px;
|
||||
subcontrol-position: top;
|
||||
subcontrol-origin: margin;
|
||||
}
|
||||
QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical
|
||||
{
|
||||
border: 0px;
|
||||
background: none;
|
||||
}
|
||||
QScrollBar::up-arrow:vertical
|
||||
{
|
||||
image: url(:/dark/scrollbar-arrow-up.svg);
|
||||
height: 15px;
|
||||
}
|
||||
QScrollBar::down-arrow:vertical
|
||||
{
|
||||
image: url(:/dark/scrollbar-arrow-down.svg);
|
||||
height: 15px;
|
||||
}
|
||||
QScrollBar:horizontal
|
||||
{
|
||||
border: 0px;
|
||||
background: #2a2a2a;
|
||||
height: 15px;
|
||||
margin: 0px 15px;
|
||||
}
|
||||
QScrollBar::handle:horizontal
|
||||
{
|
||||
border: 0px;
|
||||
background: #606060;
|
||||
min-width: 20px;
|
||||
}
|
||||
QScrollBar::add-line:horizontal
|
||||
{
|
||||
border: 0px;
|
||||
background: #232323;
|
||||
width: 15px;
|
||||
subcontrol-position: right;
|
||||
subcontrol-origin: margin;
|
||||
}
|
||||
QScrollBar::sub-line:horizontal
|
||||
{
|
||||
border: 0px;
|
||||
background: #232323;
|
||||
width: 15px;
|
||||
subcontrol-position: left;
|
||||
subcontrol-origin: margin;
|
||||
}
|
||||
QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal
|
||||
{
|
||||
border: 0px;
|
||||
background: none;
|
||||
}
|
||||
QScrollBar::left-arrow:horizontal
|
||||
{
|
||||
image: url(:/dark/scrollbar-arrow-left.svg);
|
||||
width: 15px;
|
||||
}
|
||||
QScrollBar::right-arrow:horizontal
|
||||
{
|
||||
image: url(:/dark/scrollbar-arrow-right.svg);
|
||||
width: 15px;
|
||||
}
|
||||
|
||||
QSpinBox, QDateEdit, QDateTimeEdit, QTimeEdit, QDoubleSpinBox
|
||||
{
|
||||
border: 1px solid #4e4e4e;
|
||||
padding-right: 15px;
|
||||
}
|
||||
QSpinBox:disabled, QDateEdit:disabled, QDateTimeEdit:disabled, QTimeEdit:disabled, QDoubleSpinBox:disabled
|
||||
{
|
||||
background-color: #313131;
|
||||
}
|
||||
QSpinBox::up-button, QDateEdit::up-button, QDateTimeEdit::up-button, QTimeEdit::up-button, QDoubleSpinBox::up-button
|
||||
{
|
||||
border: 1px solid #4e4e4e;
|
||||
subcontrol-origin: margin;
|
||||
subcontrol-position: top right;
|
||||
width: 12px;
|
||||
height: 6px;
|
||||
margin: 2px 2px;
|
||||
}
|
||||
QSpinBox::down-button, QDateEdit::down-button, QDateTimeEdit::down-button, QTimeEdit::down-button, QDoubleSpinBox::down-button
|
||||
{
|
||||
border: 1px solid #4e4e4e;
|
||||
subcontrol-origin: margin;
|
||||
subcontrol-position: bottom right;
|
||||
width: 12px;
|
||||
height: 6px;
|
||||
margin: 2px 2px;
|
||||
}
|
||||
QSpinBox::up-button:hover, QDateEdit::up-button:hover, QDateTimeEdit::up-button:hover, QTimeEdit::up-button:hover, QDoubleSpinBox::up-button:hover
|
||||
{
|
||||
background-color: #404040;
|
||||
}
|
||||
QSpinBox::down-button:hover, QDateEdit::down-button:hover, QDateTimeEdit::down-button:hover, QTimeEdit::down-button:hover, QDoubleSpinBox::down-button:hover
|
||||
{
|
||||
background-color: #404040;
|
||||
}
|
||||
QSpinBox::up-arrow, QDateEdit::up-arrow, QDateTimeEdit::up-arrow, QTimeEdit::up-arrow, QDoubleSpinBox::up-arrow
|
||||
{
|
||||
image: url(:/dark/up-triangle-spinbox.svg);
|
||||
width: 10px;
|
||||
height: 5px;
|
||||
}
|
||||
QSpinBox::down-arrow, QDateEdit::down-arrow, QDateTimeEdit::down-arrow, QTimeEdit::down-arrow, QDoubleSpinBox::down-arrow
|
||||
{
|
||||
image: url(:/dark/down-triangle-spinbox.svg);
|
||||
width: 10px;
|
||||
height: 5px;
|
||||
}
|
||||
|
||||
QSlider::handle
|
||||
{
|
||||
background-color: #dcdcdc;
|
||||
}
|
||||
QSlider::handle:disabled
|
||||
{
|
||||
background-color: #4e4e4e;
|
||||
}
|
||||
|
||||
QCheckBox
|
||||
{
|
||||
padding: 2px 0px;
|
||||
}
|
||||
QCheckBox::indicator
|
||||
{
|
||||
padding: 0px;
|
||||
margin: 0px;
|
||||
border: 0px;
|
||||
width: 13px;
|
||||
height: 13px;
|
||||
}
|
||||
QCheckBox::indicator:unchecked, QObject::indicator:unchecked
|
||||
{
|
||||
image: url(:/dark/checkbox-empty.svg);
|
||||
}
|
||||
QCheckBox::indicator:unchecked:disabled, QObject::indicator:unchecked:disabled
|
||||
{
|
||||
image: url(:/dark/checkbox-empty-disabled.svg);
|
||||
}
|
||||
QCheckBox::indicator:checked, QObject::indicator:checked
|
||||
{
|
||||
image: url(:/dark/checkbox-checked.svg);
|
||||
}
|
||||
QCheckBox::indicator:checked:disabled, QObject::indicator:checked:disabled
|
||||
{
|
||||
image: url(:/dark/checkbox-checked-disabled.svg);
|
||||
}
|
||||
QCheckBox::indicator:indeterminate, QObject::indicator:indeterminate
|
||||
{
|
||||
image: url(:/dark/checkbox-half.svg);
|
||||
}
|
||||
QCheckBox::indicator:indeterminate:disabled, QObject::indicator:indeterminate:disabled
|
||||
{
|
||||
image: url(:/dark/checkbox-half-disabled.svg);
|
||||
}
|
||||
|
||||
QRadioButton
|
||||
{
|
||||
padding: 2px 0px;
|
||||
}
|
||||
QRadioButton::indicator
|
||||
{
|
||||
padding: 0px;
|
||||
margin: 0px;
|
||||
border: 0px;
|
||||
width: 13px;
|
||||
height: 13px;
|
||||
}
|
||||
QRadioButton::indicator:unchecked
|
||||
{
|
||||
image: url(:/dark/radiobutton-empty.svg);
|
||||
}
|
||||
QRadioButton::indicator:unchecked:disabled
|
||||
{
|
||||
image: url(:/dark/radiobutton-empty-disabled.svg);
|
||||
}
|
||||
QRadioButton::indicator:checked
|
||||
{
|
||||
image: url(:/dark/radiobutton-checked.svg);
|
||||
}
|
||||
QRadioButton::indicator:checked:disabled
|
||||
{
|
||||
image: url(:/dark/radiobutton-checked-disabled.svg);
|
||||
}
|
||||
|
||||
QListView::indicator:unchecked
|
||||
{
|
||||
image: url(:/dark/checkbox-empty.svg);
|
||||
}
|
||||
QListView::indicator:checked
|
||||
{
|
||||
image: url(:/dark/checkbox-checked.svg);
|
||||
}
|
||||
QListView::indicator:indeterminate
|
||||
{
|
||||
image: url(:/dark/checkbox-half.svg);
|
||||
}
|
||||
|
||||
QTabBar QToolButton
|
||||
{
|
||||
background-color: #232323;
|
||||
min-width: 0px;
|
||||
}
|
||||
QTabBar QToolButton::left-arrow
|
||||
{
|
||||
image: url(:/dark/left-triangle-tabbar.svg);
|
||||
}
|
||||
QTabBar QToolButton::right-arrow
|
||||
{
|
||||
image: url(:/dark/right-triangle-tabbar.svg);
|
||||
}
|
||||
QTableCornerButton::section
|
||||
{
|
||||
background-color: #232323;
|
||||
border: 1px solid #4e4e4e;
|
||||
border-top: 0px;
|
||||
border-left: 0px;
|
||||
border-bottom: 0px;
|
||||
}
|
@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg width="1300" height="1300" viewBox="0 0 1300 1300" xmlns="http://www.w3.org/2000/svg">
|
||||
<line x1="100" y1="100" x2="1200" y2="1200" stroke="#7e7e7e" stroke-width="100" />
|
||||
<line x1="100" y1="1200" x2="1200" y2="100" stroke="#7e7e7e" stroke-width="100" />
|
||||
</svg>
|
After Width: | Height: | Size: 303 B |
@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg width="1300" height="1300" viewBox="0 0 1300 1300" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect x="50" y="350" width="900" height="900" style="stroke:#7e7e7e;stroke-width:100;fill:none;" />
|
||||
<polyline points="350,350 350,50 1250,50 1250,950 950,950" stroke="#7e7e7e" stroke-width="100" fill="none" />
|
||||
</svg>
|
After Width: | Height: | Size: 347 B |
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg width="100" height="40" viewBox="0 0 100 40" xmlns="http://www.w3.org/2000/svg">
|
||||
<polyline points="20,5 50,35 80,5" fill="#cfcfcf" />
|
||||
</svg>
|
After Width: | Height: | Size: 184 B |
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg width="100" height="100" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
|
||||
<polyline points="20,40 50,70 80,40" fill="#cfcfcf" />
|
||||
</svg>
|
After Width: | Height: | Size: 188 B |
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg width="100" height="100" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
|
||||
<polyline points="20,50 50,80 80,50" stroke="#cfcfcf" stroke-width="15" fill="none" />
|
||||
</svg>
|
After Width: | Height: | Size: 220 B |
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg width="40" height="100" viewBox="0 0 40 100" xmlns="http://www.w3.org/2000/svg">
|
||||
<polyline points="35,20 5,50 35,80" fill="#cfcfcf" />
|
||||
</svg>
|
After Width: | Height: | Size: 185 B |
@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg width="1000" height="1000" viewBox="0 0 1000 1000" xmlns="http://www.w3.org/2000/svg">
|
||||
<circle cx="500" cy="500" r="450" style="stroke:#7e7e7e;stroke-width:100;fill:#505050;" />
|
||||
<circle cx="500" cy="500" r="250" style="fill:#7e7e7e;" />
|
||||
</svg>
|
After Width: | Height: | Size: 287 B |
@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg width="1000" height="1000" viewBox="0 0 1000 1000" xmlns="http://www.w3.org/2000/svg">
|
||||
<circle cx="500" cy="500" r="450" style="stroke:#7e7e7e;stroke-width:100;fill:none;" />
|
||||
<circle cx="500" cy="500" r="250" style="fill:#7e7e7e;" />
|
||||
</svg>
|
After Width: | Height: | Size: 284 B |
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg width="1000" height="1000" viewBox="0 0 1000 1000" xmlns="http://www.w3.org/2000/svg">
|
||||
<circle cx="500" cy="500" r="450" style="stroke:#7e7e7e;stroke-width:100;fill:#505050;" />
|
||||
</svg>
|
After Width: | Height: | Size: 228 B |
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg width="1000" height="1000" viewBox="0 0 1000 1000" xmlns="http://www.w3.org/2000/svg">
|
||||
<circle cx="500" cy="500" r="450" style="stroke:#7e7e7e;stroke-width:100;fill:none;" />
|
||||
</svg>
|
After Width: | Height: | Size: 225 B |
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg width="40" height="100" viewBox="0 0 40 100" xmlns="http://www.w3.org/2000/svg">
|
||||
<polyline points="5,20 35,50 5,80" fill="#cfcfcf" />
|
||||
</svg>
|
After Width: | Height: | Size: 184 B |
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg width="100" height="100" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
|
||||
<polyline points="25,35 50,60 75,35" stroke="#cfcfcf" stroke-width="15" fill="none" />
|
||||
</svg>
|
After Width: | Height: | Size: 220 B |
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg width="100" height="100" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
|
||||
<polyline points="65,25 40,50 65,75" stroke="#cfcfcf" stroke-width="15" fill="none" />
|
||||
</svg>
|
After Width: | Height: | Size: 220 B |
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg width="100" height="100" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
|
||||
<polyline points="35,25 60,50 35,75" stroke="#cfcfcf" stroke-width="15" fill="none" />
|
||||
</svg>
|
After Width: | Height: | Size: 220 B |
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg width="100" height="100" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
|
||||
<polyline points="25,65 50,40 75,65" stroke="#cfcfcf" stroke-width="15" fill="none" />
|
||||
</svg>
|
After Width: | Height: | Size: 220 B |
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg width="60" height="50" viewBox="0 0 60 50" xmlns="http://www.w3.org/2000/svg">
|
||||
<polyline points="5,10 30,35 55,10" stroke="#cfcfcf" stroke-width="10" fill="none" />
|
||||
</svg>
|
After Width: | Height: | Size: 215 B |
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg width="60" height="50" viewBox="0 0 60 50" xmlns="http://www.w3.org/2000/svg">
|
||||
<polyline points="5,35 30,10 55,35" stroke="#dcdcdc" stroke-width="10" fill="none" />
|
||||
</svg>
|
After Width: | Height: | Size: 215 B |
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg width="100" height="40" viewBox="0 0 100 40" xmlns="http://www.w3.org/2000/svg">
|
||||
<polyline points="20,35 50,5 80,35" fill="#dcdcdc" />
|
||||
</svg>
|
After Width: | Height: | Size: 185 B |
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg width="100" height="100" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
|
||||
<polyline points="20,60 50,30 80,60" fill="#dcdcdc" />
|
||||
</svg>
|
After Width: | Height: | Size: 188 B |