Add themes and implement theme support
authorSoeren Apel <soeren@apelpie.net>
Sun, 14 Oct 2018 20:27:33 +0000 (22:27 +0200)
committerUwe Hermann <uwe@hermann-uwe.de>
Tue, 16 Oct 2018 21:37:19 +0000 (23:37 +0200)
73 files changed:
README
icons/settings-general.png [new file with mode: 0644]
main.cpp
pulseview.qrc
pv/dialogs/settings.cpp
pv/dialogs/settings.hpp
pv/globalsettings.cpp
pv/globalsettings.hpp
themes/darkstyle/darkstyle.qss [new file with mode: 0644]
themes/darkstyle/icon_branch_closed.png [new file with mode: 0644]
themes/darkstyle/icon_branch_end.png [new file with mode: 0644]
themes/darkstyle/icon_branch_more.png [new file with mode: 0644]
themes/darkstyle/icon_branch_open.png [new file with mode: 0644]
themes/darkstyle/icon_checkbox_checked.png [new file with mode: 0644]
themes/darkstyle/icon_checkbox_checked_disabled.png [new file with mode: 0644]
themes/darkstyle/icon_checkbox_checked_pressed.png [new file with mode: 0644]
themes/darkstyle/icon_checkbox_indeterminate.png [new file with mode: 0644]
themes/darkstyle/icon_checkbox_indeterminate_disabled.png [new file with mode: 0644]
themes/darkstyle/icon_checkbox_indeterminate_pressed.png [new file with mode: 0644]
themes/darkstyle/icon_checkbox_unchecked.png [new file with mode: 0644]
themes/darkstyle/icon_checkbox_unchecked_disabled.png [new file with mode: 0644]
themes/darkstyle/icon_checkbox_unchecked_pressed.png [new file with mode: 0644]
themes/darkstyle/icon_close.png [new file with mode: 0644]
themes/darkstyle/icon_radiobutton_checked.png [new file with mode: 0644]
themes/darkstyle/icon_radiobutton_checked_disabled.png [new file with mode: 0644]
themes/darkstyle/icon_radiobutton_checked_pressed.png [new file with mode: 0644]
themes/darkstyle/icon_radiobutton_unchecked.png [new file with mode: 0644]
themes/darkstyle/icon_radiobutton_unchecked_disabled.png [new file with mode: 0644]
themes/darkstyle/icon_radiobutton_unchecked_pressed.png [new file with mode: 0644]
themes/darkstyle/icon_restore.png [new file with mode: 0644]
themes/darkstyle/icon_undock.png [new file with mode: 0644]
themes/darkstyle/icon_vline.png [new file with mode: 0644]
themes/qdarkstyle/rc/Hmovetoolbar.png [new file with mode: 0644]
themes/qdarkstyle/rc/Hsepartoolbar.png [new file with mode: 0644]
themes/qdarkstyle/rc/Vmovetoolbar.png [new file with mode: 0644]
themes/qdarkstyle/rc/Vsepartoolbar.png [new file with mode: 0644]
themes/qdarkstyle/rc/branch_closed-on.png [new file with mode: 0644]
themes/qdarkstyle/rc/branch_closed.png [new file with mode: 0644]
themes/qdarkstyle/rc/branch_open-on.png [new file with mode: 0644]
themes/qdarkstyle/rc/branch_open.png [new file with mode: 0644]
themes/qdarkstyle/rc/checkbox_checked.png [new file with mode: 0644]
themes/qdarkstyle/rc/checkbox_checked_disabled.png [new file with mode: 0644]
themes/qdarkstyle/rc/checkbox_checked_focus.png [new file with mode: 0644]
themes/qdarkstyle/rc/checkbox_indeterminate.png [new file with mode: 0644]
themes/qdarkstyle/rc/checkbox_indeterminate_disabled.png [new file with mode: 0644]
themes/qdarkstyle/rc/checkbox_indeterminate_focus.png [new file with mode: 0644]
themes/qdarkstyle/rc/checkbox_unchecked.png [new file with mode: 0644]
themes/qdarkstyle/rc/checkbox_unchecked_disabled.png [new file with mode: 0644]
themes/qdarkstyle/rc/checkbox_unchecked_focus.png [new file with mode: 0644]
themes/qdarkstyle/rc/close-hover.png [new file with mode: 0644]
themes/qdarkstyle/rc/close-pressed.png [new file with mode: 0644]
themes/qdarkstyle/rc/close.png [new file with mode: 0644]
themes/qdarkstyle/rc/down_arrow.png [new file with mode: 0644]
themes/qdarkstyle/rc/down_arrow_disabled.png [new file with mode: 0644]
themes/qdarkstyle/rc/left_arrow.png [new file with mode: 0644]
themes/qdarkstyle/rc/left_arrow_disabled.png [new file with mode: 0644]
themes/qdarkstyle/rc/radio_checked.png [new file with mode: 0644]
themes/qdarkstyle/rc/radio_checked_disabled.png [new file with mode: 0644]
themes/qdarkstyle/rc/radio_checked_focus.png [new file with mode: 0644]
themes/qdarkstyle/rc/radio_unchecked.png [new file with mode: 0644]
themes/qdarkstyle/rc/radio_unchecked_disabled.png [new file with mode: 0644]
themes/qdarkstyle/rc/radio_unchecked_focus.png [new file with mode: 0644]
themes/qdarkstyle/rc/right_arrow.png [new file with mode: 0644]
themes/qdarkstyle/rc/right_arrow_disabled.png [new file with mode: 0644]
themes/qdarkstyle/rc/sizegrip.png [new file with mode: 0644]
themes/qdarkstyle/rc/stylesheet-branch-end.png [new file with mode: 0644]
themes/qdarkstyle/rc/stylesheet-branch-more.png [new file with mode: 0644]
themes/qdarkstyle/rc/stylesheet-vline.png [new file with mode: 0644]
themes/qdarkstyle/rc/transparent.png [new file with mode: 0644]
themes/qdarkstyle/rc/undock.png [new file with mode: 0644]
themes/qdarkstyle/rc/up_arrow.png [new file with mode: 0644]
themes/qdarkstyle/rc/up_arrow_disabled.png [new file with mode: 0644]
themes/qdarkstyle/style.qss [new file with mode: 0644]

diff --git a/README b/README
index 613ecc5c2faba3be33fe45f831586aaa474eaeb2..8a3f8e9f88ad41f219e20e00747179ba7cf93750 100644 (file)
--- a/README
+++ b/README
@@ -44,12 +44,19 @@ is to be interpreted as
  Copyright (C) 2010,2011,2012,2013 Contributor Name
 
 
-Icons authors and licenses
+Resource authors and licenses
 --------------------------
 
 icons/information.svg: Bobarino
   https://en.wikipedia.org/wiki/File:Information.svg
 
+QDarkStyleSheet: Colin Duquesnoy
+  https://github.com/ColinDuquesnoy/QDarkStyleSheet
+  License: https://github.com/ColinDuquesnoy/QDarkStyleSheet/blob/master/LICENSE.md
+
+DarkStyle: Juergen Skrotzky
+  https://github.com/Jorgen-VikingGod/Qt-Frameless-Window-DarkStyle
+
 
 Mailing list
 ------------
diff --git a/icons/settings-general.png b/icons/settings-general.png
new file mode 100644 (file)
index 0000000..4decc89
Binary files /dev/null and b/icons/settings-general.png differ
index c7fe9bb2dedc38029d115b324c3da58d2a3f6d58..4bd6388e1051fd506d99ae24f19fa5d43704346f 100644 (file)
--- a/main.cpp
+++ b/main.cpp
@@ -256,7 +256,9 @@ int main(int argc, char *argv[])
 
        // Prepare the global settings since logging needs them early on
        pv::GlobalSettings settings;
+       settings.save_default_palette();
        settings.set_defaults_where_needed();
+       settings.apply_theme();
 
        pv::logging.init();
 
index 9b7510d2f76b99d35cddb215b503b46740adeba2..33e36100b075b92783de804a2dd841ce9b1e8f8b 100644 (file)
@@ -1,5 +1,5 @@
 <RCC>
-    <qresource prefix="/" >
+    <qresource prefix="/">
        <file>icons/add-decoder.svg</file>
        <file>icons/application-exit.png</file>
        <file>icons/channels.svg</file>
@@ -15,6 +15,7 @@
        <file>icons/media-playback-start.png</file>
        <file>icons/menu.svg</file>
        <file>icons/preferences-system.png</file>
+       <file>icons/settings-general.png</file>
        <file>icons/settings-views.svg</file>
        <file>icons/pulseview.png</file>
        <file>icons/pulseview.svg</file>
        <file>icons/zoom-in.png</file>
        <file>icons/zoom-out.png</file>
     </qresource>
+
+    <qresource prefix="/">
+       <!-- QDarkStyleSheet -->
+       <file>themes/qdarkstyle/style.qss</file>
+       <file>themes/qdarkstyle/rc/up_arrow_disabled.png</file>
+       <file>themes/qdarkstyle/rc/Hmovetoolbar.png</file>
+       <file>themes/qdarkstyle/rc/stylesheet-branch-end.png</file>
+       <file>themes/qdarkstyle/rc/branch_closed-on.png</file>
+       <file>themes/qdarkstyle/rc/stylesheet-vline.png</file>
+       <file>themes/qdarkstyle/rc/branch_closed.png</file>
+       <file>themes/qdarkstyle/rc/branch_open-on.png</file>
+       <file>themes/qdarkstyle/rc/transparent.png</file>
+       <file>themes/qdarkstyle/rc/right_arrow_disabled.png</file>
+       <file>themes/qdarkstyle/rc/sizegrip.png</file>
+       <file>themes/qdarkstyle/rc/close.png</file>
+       <file>themes/qdarkstyle/rc/close-hover.png</file>
+       <file>themes/qdarkstyle/rc/close-pressed.png</file>
+       <file>themes/qdarkstyle/rc/down_arrow.png</file>
+       <file>themes/qdarkstyle/rc/Vmovetoolbar.png</file>
+       <file>themes/qdarkstyle/rc/left_arrow.png</file>
+       <file>themes/qdarkstyle/rc/stylesheet-branch-more.png</file>
+       <file>themes/qdarkstyle/rc/up_arrow.png</file>
+       <file>themes/qdarkstyle/rc/right_arrow.png</file>
+       <file>themes/qdarkstyle/rc/left_arrow_disabled.png</file>
+       <file>themes/qdarkstyle/rc/Hsepartoolbar.png</file>
+       <file>themes/qdarkstyle/rc/branch_open.png</file>
+       <file>themes/qdarkstyle/rc/Vsepartoolbar.png</file>
+       <file>themes/qdarkstyle/rc/down_arrow_disabled.png</file>
+       <file>themes/qdarkstyle/rc/undock.png</file>
+       <file>themes/qdarkstyle/rc/checkbox_checked_disabled.png</file>
+       <file>themes/qdarkstyle/rc/checkbox_checked_focus.png</file>
+       <file>themes/qdarkstyle/rc/checkbox_checked.png</file>
+       <file>themes/qdarkstyle/rc/checkbox_indeterminate.png</file>
+       <file>themes/qdarkstyle/rc/checkbox_indeterminate_focus.png</file>
+       <file>themes/qdarkstyle/rc/checkbox_unchecked_disabled.png</file>
+       <file>themes/qdarkstyle/rc/checkbox_unchecked_focus.png</file>
+       <file>themes/qdarkstyle/rc/checkbox_unchecked.png</file>
+       <file>themes/qdarkstyle/rc/radio_checked_disabled.png</file>
+       <file>themes/qdarkstyle/rc/radio_checked_focus.png</file>
+       <file>themes/qdarkstyle/rc/radio_checked.png</file>
+       <file>themes/qdarkstyle/rc/radio_unchecked_disabled.png</file>
+       <file>themes/qdarkstyle/rc/radio_unchecked_focus.png</file>
+       <file>themes/qdarkstyle/rc/radio_unchecked.png</file>
+    </qresource>
+
+    <qresource prefix="/">
+       <!-- DarkStyle -->
+       <file>themes/darkstyle/darkstyle.qss</file>
+       <file>themes/darkstyle/icon_close.png</file>
+       <file>themes/darkstyle/icon_restore.png</file>
+       <file>themes/darkstyle/icon_undock.png</file>
+       <file>themes/darkstyle/icon_branch_closed.png</file>
+       <file>themes/darkstyle/icon_branch_end.png</file>
+       <file>themes/darkstyle/icon_branch_more.png</file>
+       <file>themes/darkstyle/icon_branch_open.png</file>
+       <file>themes/darkstyle/icon_vline.png</file>
+       <file>themes/darkstyle/icon_checkbox_checked.png</file>
+       <file>themes/darkstyle/icon_checkbox_indeterminate.png</file>
+       <file>themes/darkstyle/icon_checkbox_unchecked.png</file>
+       <file>themes/darkstyle/icon_checkbox_checked_pressed.png</file>
+       <file>themes/darkstyle/icon_checkbox_indeterminate_pressed.png</file>
+       <file>themes/darkstyle/icon_checkbox_unchecked_pressed.png</file>
+       <file>themes/darkstyle/icon_checkbox_checked_disabled.png</file>
+       <file>themes/darkstyle/icon_checkbox_indeterminate_disabled.png</file>
+       <file>themes/darkstyle/icon_checkbox_unchecked_disabled.png</file>
+       <file>themes/darkstyle/icon_radiobutton_checked.png</file>
+       <file>themes/darkstyle/icon_radiobutton_unchecked.png</file>
+       <file>themes/darkstyle/icon_radiobutton_checked_pressed.png</file>
+       <file>themes/darkstyle/icon_radiobutton_unchecked_pressed.png</file>
+       <file>themes/darkstyle/icon_radiobutton_checked_disabled.png</file>
+       <file>themes/darkstyle/icon_radiobutton_unchecked_disabled.png</file>
+</qresource>
 </RCC>
index ad4fd4a5f6c31519175e3877457179bd8c9340d9..0795879675054403477a3744ebec6079c7a34246 100644 (file)
@@ -126,6 +126,15 @@ Settings::Settings(DeviceManager &device_manager, QWidget *parent) :
 
 void Settings::create_pages()
 {
+       // General page
+       pages->addWidget(get_general_settings_form(pages));
+
+       QListWidgetItem *generalButton = new QListWidgetItem(page_list);
+       generalButton->setIcon(QIcon(":/icons/settings-general.png"));
+       generalButton->setText(tr("General"));
+       generalButton->setTextAlignment(Qt::AlignVCenter);
+       generalButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
+
        // View page
        pages->addWidget(get_view_settings_form(pages));
 
@@ -192,6 +201,37 @@ QPlainTextEdit *Settings::create_log_view() const
        return log_view;
 }
 
+QWidget *Settings::get_general_settings_form(QWidget *parent) const
+{
+       GlobalSettings settings;
+
+       QWidget *form = new QWidget(parent);
+       QVBoxLayout *form_layout = new QVBoxLayout(form);
+
+       // General settings
+       QGroupBox *general_group = new QGroupBox(tr("General"));
+       form_layout->addWidget(general_group);
+
+       QFormLayout *general_layout = new QFormLayout();
+       general_group->setLayout(general_layout);
+
+       QComboBox *theme_cb = new QComboBox();
+       for (pair<QString, QString> entry : Themes)
+               theme_cb->addItem(entry.first, entry.second);
+
+       theme_cb->setCurrentIndex(
+               settings.value(GlobalSettings::Key_General_Theme).toInt());
+       connect(theme_cb, SIGNAL(currentIndexChanged(int)),
+               this, SLOT(on_general_theme_changed_changed(int)));
+       general_layout->addRow(tr("User interface theme"), theme_cb);
+
+       QLabel *description_1 = new QLabel(tr("(You may need to restart PulseView for all UI elements to update)"));
+       description_1->setAlignment(Qt::AlignRight);
+       general_layout->addRow(description_1);
+
+       return form;
+}
+
 QWidget *Settings::get_view_settings_form(QWidget *parent) const
 {
        GlobalSettings settings;
@@ -507,6 +547,13 @@ void Settings::on_page_changed(QListWidgetItem *current, QListWidgetItem *previo
        pages->setCurrentIndex(page_list->row(current));
 }
 
+void Settings::on_general_theme_changed_changed(int state)
+{
+       GlobalSettings settings;
+       settings.setValue(GlobalSettings::Key_General_Theme, state);
+       settings.apply_theme();
+}
+
 void Settings::on_view_zoomToFitDuringAcq_changed(int state)
 {
        GlobalSettings settings;
index f5efe35342b5e35ac82fb0786d66b4328b64b97a..1473aa59298ebf62fb6cebcc078d4dbe8eedbbd6 100644 (file)
@@ -47,6 +47,7 @@ public:
        QCheckBox *create_checkbox(const QString& key, const char* slot) const;
        QPlainTextEdit *create_log_view() const;
 
+       QWidget *get_general_settings_form(QWidget *parent) const;
        QWidget *get_view_settings_form(QWidget *parent) const;
        QWidget *get_decoder_settings_form(QWidget *parent);
        QWidget *get_about_page(QWidget *parent) const;
@@ -57,6 +58,7 @@ public:
 
 private Q_SLOTS:
        void on_page_changed(QListWidgetItem *current, QListWidgetItem *previous);
+       void on_general_theme_changed_changed(int state);
        void on_view_zoomToFitDuringAcq_changed(int state);
        void on_view_zoomToFitAfterAcq_changed(int state);
        void on_view_triggerIsZero_changed(int state);
index ae8682a68f3ba9ec6a31edf7ac9d96c212d6fc97..55ceb5a9e4e382b80cef0ad61cde72f0e0142888 100644 (file)
 #include <QApplication>
 #include <QColor>
 #include <QDebug>
+#include <QFile>
 #include <QFontMetrics>
+#include <QPixmapCache>
 #include <QString>
 
 using std::map;
+using std::pair;
 using std::string;
 using std::vector;
 
 namespace pv {
 
+const vector< pair<QString, QString> > Themes {
+       {"None" , ""},
+       {"QDarkStyleSheet", ":/themes/qdarkstyle/style.qss"},
+       {"DarkStyle", ":/themes/darkstyle/darkstyle.qss"}
+};
+
+const QString GlobalSettings::Key_General_Theme = "General_Theme";
 const QString GlobalSettings::Key_View_ZoomToFitDuringAcq = "View_ZoomToFitDuringAcq";
 const QString GlobalSettings::Key_View_ZoomToFitAfterAcq = "View_ZoomToFitAfterAcq";
 const QString GlobalSettings::Key_View_TriggerIsZeroTime = "View_TriggerIsZeroTime";
@@ -53,6 +63,7 @@ const QString GlobalSettings::Key_Log_NotifyOfStacktrace = "Log_NotifyOfStacktra
 vector<GlobalSettingsInterface*> GlobalSettings::callbacks_;
 bool GlobalSettings::tracking_ = false;
 map<QString, QVariant> GlobalSettings::tracked_changes_;
+QPalette GlobalSettings::default_palette_;
 
 GlobalSettings::GlobalSettings() :
        QSettings()
@@ -62,6 +73,10 @@ GlobalSettings::GlobalSettings() :
 
 void GlobalSettings::set_defaults_where_needed()
 {
+       // Use no theme by default
+       if (!contains(Key_General_Theme))
+               setValue(Key_General_Theme, 0);
+
        // Enable zoom-to-fit after acquisition by default
        if (!contains(Key_View_ZoomToFitAfterAcq))
                setValue(Key_View_ZoomToFitAfterAcq, true);
@@ -107,6 +122,61 @@ void GlobalSettings::set_defaults_where_needed()
                setValue(Key_Log_NotifyOfStacktrace, true);
 }
 
+void GlobalSettings::save_default_palette()
+{
+       default_palette_ = QApplication::palette();
+}
+
+void GlobalSettings::apply_theme()
+{
+       QString theme_name    = Themes.at(value(Key_General_Theme).toInt()).first;
+       QString resource_name = Themes.at(value(Key_General_Theme).toInt()).second;
+
+       if (!resource_name.isEmpty()) {
+               QFile file(resource_name);
+               file.open(QFile::ReadOnly | QFile::Text);
+               qApp->setStyleSheet(file.readAll());
+       } else
+               qApp->setStyleSheet("");
+
+       qApp->setPalette(default_palette_);
+
+       if (theme_name.compare("QDarkStyleSheet") == 0) {
+               QPalette dark_palette;
+               dark_palette.setColor(QPalette::Window, QColor(53, 53, 53));
+               dark_palette.setColor(QPalette::WindowText, Qt::white);
+               dark_palette.setColor(QPalette::Base, QColor(42, 42, 42));
+               dark_palette.setColor(QPalette::Dark, QColor(35, 35, 35));
+               dark_palette.setColor(QPalette::Highlight, QColor(42, 130, 218));
+               qApp->setPalette(dark_palette);
+       } else if (theme_name.compare("DarkStyle") == 0) {
+               QPalette dark_palette;
+               dark_palette.setColor(QPalette::Window, QColor(53, 53, 53));
+               dark_palette.setColor(QPalette::WindowText, Qt::white);
+               dark_palette.setColor(QPalette::Disabled, QPalette::WindowText, QColor(127, 127, 127));
+               dark_palette.setColor(QPalette::Base, QColor(42, 42, 42));
+               dark_palette.setColor(QPalette::AlternateBase, QColor(66, 66, 66));
+               dark_palette.setColor(QPalette::ToolTipBase, Qt::white);
+               dark_palette.setColor(QPalette::ToolTipText, QColor(53, 53, 53));
+               dark_palette.setColor(QPalette::Text, Qt::white);
+               dark_palette.setColor(QPalette::Disabled, QPalette::Text, QColor(127, 127, 127));
+               dark_palette.setColor(QPalette::Dark, QColor(35, 35, 35));
+               dark_palette.setColor(QPalette::Shadow, QColor(20, 20, 20));
+               dark_palette.setColor(QPalette::Button, QColor(53, 53, 53));
+               dark_palette.setColor(QPalette::ButtonText, Qt::white);
+               dark_palette.setColor(QPalette::Disabled, QPalette::ButtonText, QColor(127, 127, 127));
+               dark_palette.setColor(QPalette::BrightText, Qt::red);
+               dark_palette.setColor(QPalette::Link, QColor(42, 130, 218));
+               dark_palette.setColor(QPalette::Highlight, QColor(42, 130, 218));
+               dark_palette.setColor(QPalette::Disabled, QPalette::Highlight, QColor(80, 80, 80));
+               dark_palette.setColor(QPalette::HighlightedText, Qt::white);
+               dark_palette.setColor(QPalette::Disabled, QPalette::HighlightedText, QColor(127, 127, 127));
+               qApp->setPalette(dark_palette);
+       }
+
+       QPixmapCache::clear();
+}
+
 void GlobalSettings::add_change_handler(GlobalSettingsInterface *cb)
 {
        callbacks_.push_back(cb);
index 6e027d782c97dd3e4a449e72282fa8c2ad55e646..d23bf637153a093b277671aad684d506ec31a561 100644 (file)
 #include <glib.h>
 #include <glibmm/variant.h>
 
+#include <QPalette>
 #include <QSettings>
 #include <QString>
 #include <QVariant>
 
 using std::map;
+using std::pair;
 using std::vector;
 
 namespace pv {
 
+extern const vector< pair<QString, QString> > Themes;
+
+
 class GlobalSettingsInterface
 {
 public:
@@ -46,6 +51,7 @@ class GlobalSettings : public QSettings
        Q_OBJECT
 
 public:
+       static const QString Key_General_Theme;
        static const QString Key_View_ZoomToFitDuringAcq;
        static const QString Key_View_ZoomToFitAfterAcq;
        static const QString Key_View_TriggerIsZeroTime;
@@ -76,6 +82,9 @@ public:
 
        void set_defaults_where_needed();
 
+       void save_default_palette();
+       void apply_theme();
+
        static void add_change_handler(GlobalSettingsInterface *cb);
        static void remove_change_handler(GlobalSettingsInterface *cb);
 
@@ -112,6 +121,8 @@ private:
 
        static bool tracking_;
        static map<QString, QVariant> tracked_changes_;
+
+       static QPalette default_palette_;
 };
 
 } // namespace pv
diff --git a/themes/darkstyle/darkstyle.qss b/themes/darkstyle/darkstyle.qss
new file mode 100644 (file)
index 0000000..1cb03ad
--- /dev/null
@@ -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(:/themes/darkstyle/icon_checkbox_checked.png);
+  padding-left:2px;
+}
+QMenu::indicator:non-exclusive:unchecked{
+  image:url(:/themes/darkstyle/icon_checkbox_unchecked.png);
+  padding-left:2px;
+}
+QMenu::indicator:exclusive:checked{
+  image:url(:/themes/darkstyle/icon_radiobutton_checked.png);
+  padding-left:2px;
+}
+QMenu::indicator:exclusive:unchecked{
+  image:url(:/themes/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(:/themes/darkstyle/icon_close.png);
+  titlebar-normal-icon:url(:/themes/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(:/themes/darkstyle/icon_checkbox_checked.png);
+}
+QCheckBox::indicator:checked:pressed,QTreeView::indicator:checked:pressed,QTableView::indicator:checked:pressed,QGroupBox::indicator:checked:pressed{
+  image:url(:/themes/darkstyle/icon_checkbox_checked_pressed.png);
+}
+QCheckBox::indicator:checked:disabled,QTreeView::indicator:checked:disabled,QTableView::indicator:checked:disabled,QGroupBox::indicator:checked:disabled{
+  image:url(:/themes/darkstyle/icon_checkbox_checked_disabled.png);
+}
+QCheckBox::indicator:unchecked,QTreeView::indicator:unchecked,QTableView::indicator:unchecked,QGroupBox::indicator:unchecked{
+  image:url(:/themes/darkstyle/icon_checkbox_unchecked.png);
+}
+QCheckBox::indicator:unchecked:pressed,QTreeView::indicator:unchecked:pressed,QTableView::indicator:unchecked:pressed,QGroupBox::indicator:unchecked:pressed{
+  image:url(:/themes/darkstyle/icon_checkbox_unchecked_pressed.png);
+}
+QCheckBox::indicator:unchecked:disabled,QTreeView::indicator:unchecked:disabled,QTableView::indicator:unchecked:disabled,QGroupBox::indicator:unchecked:disabled{
+  image:url(:/themes/darkstyle/icon_checkbox_unchecked_disabled.png);
+}
+QCheckBox::indicator:indeterminate,QTreeView::indicator:indeterminate,QTableView::indicator:indeterminate,QGroupBox::indicator:indeterminate{
+  image:url(:/themes/darkstyle/icon_checkbox_indeterminate.png);
+}
+QCheckBox::indicator:indeterminate:pressed,QTreeView::indicator:indeterminate:pressed,QTableView::indicator:indeterminate:pressed,QGroupBox::indicator:indeterminate:pressed{
+  image:url(:/themes/darkstyle/icon_checkbox_indeterminate_pressed.png);
+}
+QCheckBox::indicator:indeterminate:disabled,QTreeView::indicator:indeterminate:disabled,QTableView::indicator:indeterminate:disabled,QGroupBox::indicator:indeterminate:disabled{
+  image:url(:/themes/darkstyle/icon_checkbox_indeterminate_disabled.png);
+}
+QRadioButton::indicator{
+  width:18px;
+  height:18px;
+}
+QRadioButton::indicator:checked{
+  image:url(:/themes/darkstyle/icon_radiobutton_checked.png);
+}
+QRadioButton::indicator:checked:pressed{
+  image:url(:/themes/darkstyle/icon_radiobutton_checked_pressed.png);
+}
+QRadioButton::indicator:checked:disabled{
+  image:url(:/themes/darkstyle/icon_radiobutton_checked_disabled.png);
+}
+QRadioButton::indicator:unchecked{
+  image:url(:/themes/darkstyle/icon_radiobutton_unchecked.png);
+}
+QRadioButton::indicator:unchecked:pressed{
+  image:url(:/themes/darkstyle/icon_radiobutton_unchecked_pressed.png);
+}
+QRadioButton::indicator:unchecked:disabled{
+  image:url(:/themes/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(:/themes/darkstyle/icon_vline.png) 0;
+}
+QTreeView::branch:has-siblings:adjoins-item{
+  border-image:url(:/themes/darkstyle/icon_branch_more.png) 0;
+}
+QTreeView::branch:!has-children:!has-siblings:adjoins-item{
+  border-image:url(:/themes/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(:/themes/darkstyle/icon_branch_closed.png);
+}
+QTreeView::branch:open:has-children:!has-siblings,
+QTreeView::branch:open:has-children:has-siblings{
+  border-image:none;
+  image:url(:/themes/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);
+}
diff --git a/themes/darkstyle/icon_branch_closed.png b/themes/darkstyle/icon_branch_closed.png
new file mode 100644 (file)
index 0000000..fa785cc
Binary files /dev/null and b/themes/darkstyle/icon_branch_closed.png differ
diff --git a/themes/darkstyle/icon_branch_end.png b/themes/darkstyle/icon_branch_end.png
new file mode 100644 (file)
index 0000000..d90a04c
Binary files /dev/null and b/themes/darkstyle/icon_branch_end.png differ
diff --git a/themes/darkstyle/icon_branch_more.png b/themes/darkstyle/icon_branch_more.png
new file mode 100644 (file)
index 0000000..bdbe4ed
Binary files /dev/null and b/themes/darkstyle/icon_branch_more.png differ
diff --git a/themes/darkstyle/icon_branch_open.png b/themes/darkstyle/icon_branch_open.png
new file mode 100644 (file)
index 0000000..9dd05d6
Binary files /dev/null and b/themes/darkstyle/icon_branch_open.png differ
diff --git a/themes/darkstyle/icon_checkbox_checked.png b/themes/darkstyle/icon_checkbox_checked.png
new file mode 100644 (file)
index 0000000..fa22907
Binary files /dev/null and b/themes/darkstyle/icon_checkbox_checked.png differ
diff --git a/themes/darkstyle/icon_checkbox_checked_disabled.png b/themes/darkstyle/icon_checkbox_checked_disabled.png
new file mode 100644 (file)
index 0000000..441d0d9
Binary files /dev/null and b/themes/darkstyle/icon_checkbox_checked_disabled.png differ
diff --git a/themes/darkstyle/icon_checkbox_checked_pressed.png b/themes/darkstyle/icon_checkbox_checked_pressed.png
new file mode 100644 (file)
index 0000000..7b508c8
Binary files /dev/null and b/themes/darkstyle/icon_checkbox_checked_pressed.png differ
diff --git a/themes/darkstyle/icon_checkbox_indeterminate.png b/themes/darkstyle/icon_checkbox_indeterminate.png
new file mode 100644 (file)
index 0000000..87ebf23
Binary files /dev/null and b/themes/darkstyle/icon_checkbox_indeterminate.png differ
diff --git a/themes/darkstyle/icon_checkbox_indeterminate_disabled.png b/themes/darkstyle/icon_checkbox_indeterminate_disabled.png
new file mode 100644 (file)
index 0000000..ee7d112
Binary files /dev/null and b/themes/darkstyle/icon_checkbox_indeterminate_disabled.png differ
diff --git a/themes/darkstyle/icon_checkbox_indeterminate_pressed.png b/themes/darkstyle/icon_checkbox_indeterminate_pressed.png
new file mode 100644 (file)
index 0000000..562c482
Binary files /dev/null and b/themes/darkstyle/icon_checkbox_indeterminate_pressed.png differ
diff --git a/themes/darkstyle/icon_checkbox_unchecked.png b/themes/darkstyle/icon_checkbox_unchecked.png
new file mode 100644 (file)
index 0000000..c3c14dd
Binary files /dev/null and b/themes/darkstyle/icon_checkbox_unchecked.png differ
diff --git a/themes/darkstyle/icon_checkbox_unchecked_disabled.png b/themes/darkstyle/icon_checkbox_unchecked_disabled.png
new file mode 100644 (file)
index 0000000..3ac26d8
Binary files /dev/null and b/themes/darkstyle/icon_checkbox_unchecked_disabled.png differ
diff --git a/themes/darkstyle/icon_checkbox_unchecked_pressed.png b/themes/darkstyle/icon_checkbox_unchecked_pressed.png
new file mode 100644 (file)
index 0000000..c24130c
Binary files /dev/null and b/themes/darkstyle/icon_checkbox_unchecked_pressed.png differ
diff --git a/themes/darkstyle/icon_close.png b/themes/darkstyle/icon_close.png
new file mode 100644 (file)
index 0000000..ece7c28
Binary files /dev/null and b/themes/darkstyle/icon_close.png differ
diff --git a/themes/darkstyle/icon_radiobutton_checked.png b/themes/darkstyle/icon_radiobutton_checked.png
new file mode 100644 (file)
index 0000000..f747f49
Binary files /dev/null and b/themes/darkstyle/icon_radiobutton_checked.png differ
diff --git a/themes/darkstyle/icon_radiobutton_checked_disabled.png b/themes/darkstyle/icon_radiobutton_checked_disabled.png
new file mode 100644 (file)
index 0000000..fa554cb
Binary files /dev/null and b/themes/darkstyle/icon_radiobutton_checked_disabled.png differ
diff --git a/themes/darkstyle/icon_radiobutton_checked_pressed.png b/themes/darkstyle/icon_radiobutton_checked_pressed.png
new file mode 100644 (file)
index 0000000..7b4bb11
Binary files /dev/null and b/themes/darkstyle/icon_radiobutton_checked_pressed.png differ
diff --git a/themes/darkstyle/icon_radiobutton_unchecked.png b/themes/darkstyle/icon_radiobutton_unchecked.png
new file mode 100644 (file)
index 0000000..e74f040
Binary files /dev/null and b/themes/darkstyle/icon_radiobutton_unchecked.png differ
diff --git a/themes/darkstyle/icon_radiobutton_unchecked_disabled.png b/themes/darkstyle/icon_radiobutton_unchecked_disabled.png
new file mode 100644 (file)
index 0000000..87d1846
Binary files /dev/null and b/themes/darkstyle/icon_radiobutton_unchecked_disabled.png differ
diff --git a/themes/darkstyle/icon_radiobutton_unchecked_pressed.png b/themes/darkstyle/icon_radiobutton_unchecked_pressed.png
new file mode 100644 (file)
index 0000000..8f4d548
Binary files /dev/null and b/themes/darkstyle/icon_radiobutton_unchecked_pressed.png differ
diff --git a/themes/darkstyle/icon_restore.png b/themes/darkstyle/icon_restore.png
new file mode 100644 (file)
index 0000000..be29650
Binary files /dev/null and b/themes/darkstyle/icon_restore.png differ
diff --git a/themes/darkstyle/icon_undock.png b/themes/darkstyle/icon_undock.png
new file mode 100644 (file)
index 0000000..25e317e
Binary files /dev/null and b/themes/darkstyle/icon_undock.png differ
diff --git a/themes/darkstyle/icon_vline.png b/themes/darkstyle/icon_vline.png
new file mode 100644 (file)
index 0000000..14228c8
Binary files /dev/null and b/themes/darkstyle/icon_vline.png differ
diff --git a/themes/qdarkstyle/rc/Hmovetoolbar.png b/themes/qdarkstyle/rc/Hmovetoolbar.png
new file mode 100644 (file)
index 0000000..cead99e
Binary files /dev/null and b/themes/qdarkstyle/rc/Hmovetoolbar.png differ
diff --git a/themes/qdarkstyle/rc/Hsepartoolbar.png b/themes/qdarkstyle/rc/Hsepartoolbar.png
new file mode 100644 (file)
index 0000000..7f183c8
Binary files /dev/null and b/themes/qdarkstyle/rc/Hsepartoolbar.png differ
diff --git a/themes/qdarkstyle/rc/Vmovetoolbar.png b/themes/qdarkstyle/rc/Vmovetoolbar.png
new file mode 100644 (file)
index 0000000..512edce
Binary files /dev/null and b/themes/qdarkstyle/rc/Vmovetoolbar.png differ
diff --git a/themes/qdarkstyle/rc/Vsepartoolbar.png b/themes/qdarkstyle/rc/Vsepartoolbar.png
new file mode 100644 (file)
index 0000000..d9dc156
Binary files /dev/null and b/themes/qdarkstyle/rc/Vsepartoolbar.png differ
diff --git a/themes/qdarkstyle/rc/branch_closed-on.png b/themes/qdarkstyle/rc/branch_closed-on.png
new file mode 100644 (file)
index 0000000..d081e9b
Binary files /dev/null and b/themes/qdarkstyle/rc/branch_closed-on.png differ
diff --git a/themes/qdarkstyle/rc/branch_closed.png b/themes/qdarkstyle/rc/branch_closed.png
new file mode 100644 (file)
index 0000000..d652159
Binary files /dev/null and b/themes/qdarkstyle/rc/branch_closed.png differ
diff --git a/themes/qdarkstyle/rc/branch_open-on.png b/themes/qdarkstyle/rc/branch_open-on.png
new file mode 100644 (file)
index 0000000..ec372b2
Binary files /dev/null and b/themes/qdarkstyle/rc/branch_open-on.png differ
diff --git a/themes/qdarkstyle/rc/branch_open.png b/themes/qdarkstyle/rc/branch_open.png
new file mode 100644 (file)
index 0000000..66f8e1a
Binary files /dev/null and b/themes/qdarkstyle/rc/branch_open.png differ
diff --git a/themes/qdarkstyle/rc/checkbox_checked.png b/themes/qdarkstyle/rc/checkbox_checked.png
new file mode 100644 (file)
index 0000000..830cfee
Binary files /dev/null and b/themes/qdarkstyle/rc/checkbox_checked.png differ
diff --git a/themes/qdarkstyle/rc/checkbox_checked_disabled.png b/themes/qdarkstyle/rc/checkbox_checked_disabled.png
new file mode 100644 (file)
index 0000000..cb63cc2
Binary files /dev/null and b/themes/qdarkstyle/rc/checkbox_checked_disabled.png differ
diff --git a/themes/qdarkstyle/rc/checkbox_checked_focus.png b/themes/qdarkstyle/rc/checkbox_checked_focus.png
new file mode 100644 (file)
index 0000000..671be27
Binary files /dev/null and b/themes/qdarkstyle/rc/checkbox_checked_focus.png differ
diff --git a/themes/qdarkstyle/rc/checkbox_indeterminate.png b/themes/qdarkstyle/rc/checkbox_indeterminate.png
new file mode 100644 (file)
index 0000000..41024f7
Binary files /dev/null and b/themes/qdarkstyle/rc/checkbox_indeterminate.png differ
diff --git a/themes/qdarkstyle/rc/checkbox_indeterminate_disabled.png b/themes/qdarkstyle/rc/checkbox_indeterminate_disabled.png
new file mode 100644 (file)
index 0000000..abdc01d
Binary files /dev/null and b/themes/qdarkstyle/rc/checkbox_indeterminate_disabled.png differ
diff --git a/themes/qdarkstyle/rc/checkbox_indeterminate_focus.png b/themes/qdarkstyle/rc/checkbox_indeterminate_focus.png
new file mode 100644 (file)
index 0000000..415f9b6
Binary files /dev/null and b/themes/qdarkstyle/rc/checkbox_indeterminate_focus.png differ
diff --git a/themes/qdarkstyle/rc/checkbox_unchecked.png b/themes/qdarkstyle/rc/checkbox_unchecked.png
new file mode 100644 (file)
index 0000000..2159aca
Binary files /dev/null and b/themes/qdarkstyle/rc/checkbox_unchecked.png differ
diff --git a/themes/qdarkstyle/rc/checkbox_unchecked_disabled.png b/themes/qdarkstyle/rc/checkbox_unchecked_disabled.png
new file mode 100644 (file)
index 0000000..ade721e
Binary files /dev/null and b/themes/qdarkstyle/rc/checkbox_unchecked_disabled.png differ
diff --git a/themes/qdarkstyle/rc/checkbox_unchecked_focus.png b/themes/qdarkstyle/rc/checkbox_unchecked_focus.png
new file mode 100644 (file)
index 0000000..e4258cc
Binary files /dev/null and b/themes/qdarkstyle/rc/checkbox_unchecked_focus.png differ
diff --git a/themes/qdarkstyle/rc/close-hover.png b/themes/qdarkstyle/rc/close-hover.png
new file mode 100644 (file)
index 0000000..657943a
Binary files /dev/null and b/themes/qdarkstyle/rc/close-hover.png differ
diff --git a/themes/qdarkstyle/rc/close-pressed.png b/themes/qdarkstyle/rc/close-pressed.png
new file mode 100644 (file)
index 0000000..937d005
Binary files /dev/null and b/themes/qdarkstyle/rc/close-pressed.png differ
diff --git a/themes/qdarkstyle/rc/close.png b/themes/qdarkstyle/rc/close.png
new file mode 100644 (file)
index 0000000..bc0f576
Binary files /dev/null and b/themes/qdarkstyle/rc/close.png differ
diff --git a/themes/qdarkstyle/rc/down_arrow.png b/themes/qdarkstyle/rc/down_arrow.png
new file mode 100644 (file)
index 0000000..e271f7f
Binary files /dev/null and b/themes/qdarkstyle/rc/down_arrow.png differ
diff --git a/themes/qdarkstyle/rc/down_arrow_disabled.png b/themes/qdarkstyle/rc/down_arrow_disabled.png
new file mode 100644 (file)
index 0000000..5805d98
Binary files /dev/null and b/themes/qdarkstyle/rc/down_arrow_disabled.png differ
diff --git a/themes/qdarkstyle/rc/left_arrow.png b/themes/qdarkstyle/rc/left_arrow.png
new file mode 100644 (file)
index 0000000..f808d2d
Binary files /dev/null and b/themes/qdarkstyle/rc/left_arrow.png differ
diff --git a/themes/qdarkstyle/rc/left_arrow_disabled.png b/themes/qdarkstyle/rc/left_arrow_disabled.png
new file mode 100644 (file)
index 0000000..f5b9af8
Binary files /dev/null and b/themes/qdarkstyle/rc/left_arrow_disabled.png differ
diff --git a/themes/qdarkstyle/rc/radio_checked.png b/themes/qdarkstyle/rc/radio_checked.png
new file mode 100644 (file)
index 0000000..235e6b0
Binary files /dev/null and b/themes/qdarkstyle/rc/radio_checked.png differ
diff --git a/themes/qdarkstyle/rc/radio_checked_disabled.png b/themes/qdarkstyle/rc/radio_checked_disabled.png
new file mode 100644 (file)
index 0000000..bf0051e
Binary files /dev/null and b/themes/qdarkstyle/rc/radio_checked_disabled.png differ
diff --git a/themes/qdarkstyle/rc/radio_checked_focus.png b/themes/qdarkstyle/rc/radio_checked_focus.png
new file mode 100644 (file)
index 0000000..700c6b5
Binary files /dev/null and b/themes/qdarkstyle/rc/radio_checked_focus.png differ
diff --git a/themes/qdarkstyle/rc/radio_unchecked.png b/themes/qdarkstyle/rc/radio_unchecked.png
new file mode 100644 (file)
index 0000000..9a4def6
Binary files /dev/null and b/themes/qdarkstyle/rc/radio_unchecked.png differ
diff --git a/themes/qdarkstyle/rc/radio_unchecked_disabled.png b/themes/qdarkstyle/rc/radio_unchecked_disabled.png
new file mode 100644 (file)
index 0000000..6ece890
Binary files /dev/null and b/themes/qdarkstyle/rc/radio_unchecked_disabled.png differ
diff --git a/themes/qdarkstyle/rc/radio_unchecked_focus.png b/themes/qdarkstyle/rc/radio_unchecked_focus.png
new file mode 100644 (file)
index 0000000..564e022
Binary files /dev/null and b/themes/qdarkstyle/rc/radio_unchecked_focus.png differ
diff --git a/themes/qdarkstyle/rc/right_arrow.png b/themes/qdarkstyle/rc/right_arrow.png
new file mode 100644 (file)
index 0000000..9b0a4e6
Binary files /dev/null and b/themes/qdarkstyle/rc/right_arrow.png differ
diff --git a/themes/qdarkstyle/rc/right_arrow_disabled.png b/themes/qdarkstyle/rc/right_arrow_disabled.png
new file mode 100644 (file)
index 0000000..5c0bee4
Binary files /dev/null and b/themes/qdarkstyle/rc/right_arrow_disabled.png differ
diff --git a/themes/qdarkstyle/rc/sizegrip.png b/themes/qdarkstyle/rc/sizegrip.png
new file mode 100644 (file)
index 0000000..350583a
Binary files /dev/null and b/themes/qdarkstyle/rc/sizegrip.png differ
diff --git a/themes/qdarkstyle/rc/stylesheet-branch-end.png b/themes/qdarkstyle/rc/stylesheet-branch-end.png
new file mode 100644 (file)
index 0000000..cb5d3b5
Binary files /dev/null and b/themes/qdarkstyle/rc/stylesheet-branch-end.png differ
diff --git a/themes/qdarkstyle/rc/stylesheet-branch-more.png b/themes/qdarkstyle/rc/stylesheet-branch-more.png
new file mode 100644 (file)
index 0000000..6271140
Binary files /dev/null and b/themes/qdarkstyle/rc/stylesheet-branch-more.png differ
diff --git a/themes/qdarkstyle/rc/stylesheet-vline.png b/themes/qdarkstyle/rc/stylesheet-vline.png
new file mode 100644 (file)
index 0000000..87536cc
Binary files /dev/null and b/themes/qdarkstyle/rc/stylesheet-vline.png differ
diff --git a/themes/qdarkstyle/rc/transparent.png b/themes/qdarkstyle/rc/transparent.png
new file mode 100644 (file)
index 0000000..483df25
Binary files /dev/null and b/themes/qdarkstyle/rc/transparent.png differ
diff --git a/themes/qdarkstyle/rc/undock.png b/themes/qdarkstyle/rc/undock.png
new file mode 100644 (file)
index 0000000..88691d7
Binary files /dev/null and b/themes/qdarkstyle/rc/undock.png differ
diff --git a/themes/qdarkstyle/rc/up_arrow.png b/themes/qdarkstyle/rc/up_arrow.png
new file mode 100644 (file)
index 0000000..abcc724
Binary files /dev/null and b/themes/qdarkstyle/rc/up_arrow.png differ
diff --git a/themes/qdarkstyle/rc/up_arrow_disabled.png b/themes/qdarkstyle/rc/up_arrow_disabled.png
new file mode 100644 (file)
index 0000000..b9c8e3b
Binary files /dev/null and b/themes/qdarkstyle/rc/up_arrow_disabled.png differ
diff --git a/themes/qdarkstyle/style.qss b/themes/qdarkstyle/style.qss
new file mode 100644 (file)
index 0000000..5c8a259
--- /dev/null
@@ -0,0 +1,1248 @@
+QToolTip {
+    border: 1px solid #76797C;
+    background-color: #5A7566;
+    color: white;
+    padding: 0px;                /*remove padding, for fix combobox tooltip.*/
+    opacity: 200;
+}
+
+QWidget {
+    color: #eff0f1;
+    background-color: #31363b;
+    selection-background-color: #3daee9;
+    selection-color: #eff0f1;
+    background-clip: border;
+    border-image: none;
+    border: 0px transparent black;
+    outline: 0;
+}
+
+QWidget:item:hover {
+    background-color: #18465d;
+    color: #eff0f1;
+}
+
+QWidget:item:selected {
+    background-color: #18465d;
+}
+
+QCheckBox {
+    spacing: 5px;
+    outline: none;
+    color: #eff0f1;
+    margin-bottom: 2px;
+}
+
+QCheckBox:disabled {
+    color: #76797C;
+}
+
+QCheckBox::indicator,
+QGroupBox::indicator {
+    width: 18px;
+    height: 18px;
+}
+
+QGroupBox::indicator {
+    margin-left: 2px;
+}
+
+QCheckBox::indicator:unchecked,
+QGroupBox::indicator:unchecked {
+    image: url(:/themes/qdarkstyle/rc/checkbox_unchecked.png);
+}
+
+QCheckBox::indicator:unchecked:hover,
+QCheckBox::indicator:unchecked:focus,
+QCheckBox::indicator:unchecked:pressed,
+QGroupBox::indicator:unchecked:hover,
+QGroupBox::indicator:unchecked:focus,
+QGroupBox::indicator:unchecked:pressed {
+    border: none;
+    image: url(:/themes/qdarkstyle/rc/checkbox_unchecked_focus.png);
+}
+
+QCheckBox::indicator:checked,
+QGroupBox::indicator:checked {
+    image: url(:/themes/qdarkstyle/rc/checkbox_checked.png);
+}
+
+QCheckBox::indicator:checked:hover,
+QCheckBox::indicator:checked:focus,
+QCheckBox::indicator:checked:pressed,
+QGroupBox::indicator:checked:hover,
+QGroupBox::indicator:checked:focus,
+QGroupBox::indicator:checked:pressed {
+    border: none;
+    image: url(:/themes/qdarkstyle/rc/checkbox_checked_focus.png);
+}
+
+QCheckBox::indicator:indeterminate {
+    image: url(:/themes/qdarkstyle/rc/checkbox_indeterminate.png);
+}
+
+QCheckBox::indicator:indeterminate:focus,
+QCheckBox::indicator:indeterminate:hover,
+QCheckBox::indicator:indeterminate:pressed {
+    image: url(:/themes/qdarkstyle/rc/checkbox_indeterminate_focus.png);
+}
+
+QCheckBox::indicator:checked:disabled,
+QGroupBox::indicator:checked:disabled {
+    image: url(:/themes/qdarkstyle/rc/checkbox_checked_disabled.png);
+}
+
+QCheckBox::indicator:unchecked:disabled,
+QGroupBox::indicator:unchecked:disabled {
+    image: url(:/themes/qdarkstyle/rc/checkbox_unchecked_disabled.png);
+}
+
+QRadioButton {
+    spacing: 5px;
+    outline: none;
+    color: #eff0f1;
+    margin-bottom: 2px;
+}
+
+QRadioButton:disabled {
+    color: #76797C;
+}
+
+QRadioButton::indicator {
+    width: 21px;
+    height: 21px;
+}
+
+QRadioButton::indicator:unchecked {
+    image: url(:/themes/qdarkstyle/rc/radio_unchecked.png);
+}
+
+QRadioButton::indicator:unchecked:hover,
+QRadioButton::indicator:unchecked:focus,
+QRadioButton::indicator:unchecked:pressed {
+    border: none;
+    outline: none;
+    image: url(:/themes/qdarkstyle/rc/radio_unchecked_focus.png);
+}
+
+QRadioButton::indicator:checked {
+    border: none;
+    outline: none;
+    image: url(:/themes/qdarkstyle/rc/radio_checked.png);
+}
+
+QRadioButton::indicator:checked:hover,
+QRadioButton::indicator:checked:focus,
+QRadioButton::indicator:checked:pressed {
+    border: none;
+    outline: none;
+    image: url(:/themes/qdarkstyle/rc/radio_checked_focus.png);
+}
+
+QRadioButton::indicator:checked:disabled {
+    outline: none;
+    image: url(:/themes/qdarkstyle/rc/radio_checked_disabled.png);
+}
+
+QRadioButton::indicator:unchecked:disabled {
+    image: url(:/themes/qdarkstyle/rc/radio_unchecked_disabled.png);
+}
+
+QMenuBar {
+    background-color: #31363b;
+    color: #eff0f1;
+}
+
+QMenuBar::item {
+    background: transparent;
+}
+
+QMenuBar::item:selected {
+    background: transparent;
+    border: 1px solid #76797C;
+}
+
+QMenuBar::item:pressed {
+    border: 1px solid #76797C;
+    background-color: #3daee9;
+    color: #eff0f1;
+    margin-bottom: -1px;
+    padding-bottom: 1px;
+}
+
+QMenu {
+    border: 1px solid #76797C;
+    color: #eff0f1;
+    margin: 2px;
+}
+
+QMenu::icon {
+    margin: 5px;
+}
+
+QMenu::item {
+    padding: 5px 30px 5px 30px;
+    border: 1px solid transparent;
+    /* reserve space for selection border */
+}
+
+QMenu::item:selected {
+    color: #eff0f1;
+}
+
+QMenu::separator {
+    height: 2px;
+    background: lightblue;
+    margin-left: 10px;
+    margin-right: 5px;
+}
+
+QMenu::indicator {
+    width: 18px;
+    height: 18px;
+}
+
+
+/* non-exclusive indicator = check box style indicator
+   (see QActionGroup::setExclusive) */
+
+QMenu::indicator:non-exclusive:unchecked {
+    image: url(:/themes/qdarkstyle/rc/checkbox_unchecked.png);
+}
+
+QMenu::indicator:non-exclusive:unchecked:selected {
+    image: url(:/themes/qdarkstyle/rc/checkbox_unchecked_disabled.png);
+}
+
+QMenu::indicator:non-exclusive:checked {
+    image: url(:/themes/qdarkstyle/rc/checkbox_checked.png);
+}
+
+QMenu::indicator:non-exclusive:checked:selected {
+    image: url(:/themes/qdarkstyle/rc/checkbox_checked_disabled.png);
+}
+
+
+/* exclusive indicator = radio button style indicator (see QActionGroup::setExclusive) */
+
+QMenu::indicator:exclusive:unchecked {
+    image: url(:/themes/qdarkstyle/rc/radio_unchecked.png);
+}
+
+QMenu::indicator:exclusive:unchecked:selected {
+    image: url(:/themes/qdarkstyle/rc/radio_unchecked_disabled.png);
+}
+
+QMenu::indicator:exclusive:checked {
+    image: url(:/themes/qdarkstyle/rc/radio_checked.png);
+}
+
+QMenu::indicator:exclusive:checked:selected {
+    image: url(:/themes/qdarkstyle/rc/radio_checked_disabled.png);
+}
+
+QMenu::right-arrow {
+    margin: 5px;
+    image: url(:/themes/qdarkstyle/rc/right_arrow.png)
+}
+
+QWidget:disabled {
+    color: #454545;
+    background-color: #31363b;
+}
+
+QAbstractItemView {
+    alternate-background-color: #31363b;
+    color: #eff0f1;
+    border: 1px solid #3A3939;
+    border-radius: 2px;
+}
+
+QWidget:focus,
+QMenuBar:focus {
+    border: 1px solid #3daee9;
+}
+
+QTabWidget:focus,
+QCheckBox:focus,
+QRadioButton:focus,
+QSlider:focus {
+    border: none;
+}
+
+QLineEdit {
+    background-color: #232629;
+    padding: 5px;
+    border-style: solid;
+    border: 1px solid #76797C;
+    border-radius: 2px;
+    color: #eff0f1;
+}
+
+QAbstractItemView QLineEdit {
+    padding: 0;
+}
+
+QGroupBox {
+    border: 1px solid #76797C;
+    border-radius: 2px;
+    margin-top: 20px;
+}
+
+QGroupBox::title {
+    subcontrol-origin: margin;
+    subcontrol-position: top center;
+    padding-left: 10px;
+    padding-right: 10px;
+    padding-top: 10px;
+}
+
+QAbstractScrollArea {
+    border-radius: 2px;
+    border: 1px solid #76797C;
+    background-color: transparent;
+}
+
+QScrollBar:horizontal {
+    height: 15px;
+    margin: 3px 15px 3px 15px;
+    border: 1px transparent #2A2929;
+    border-radius: 4px;
+    background-color: #2A2929;
+}
+
+QScrollBar::handle:horizontal {
+    background-color: #605F5F;
+    min-width: 5px;
+    border-radius: 4px;
+}
+
+QScrollBar::add-line:horizontal {
+    margin: 0px 3px 0px 3px;
+    border-image: url(:/themes/qdarkstyle/rc/right_arrow_disabled.png);
+    width: 10px;
+    height: 10px;
+    subcontrol-position: right;
+    subcontrol-origin: margin;
+}
+
+QScrollBar::sub-line:horizontal {
+    margin: 0px 3px 0px 3px;
+    border-image: url(:/themes/qdarkstyle/rc/left_arrow_disabled.png);
+    height: 10px;
+    width: 10px;
+    subcontrol-position: left;
+    subcontrol-origin: margin;
+}
+
+QScrollBar::add-line:horizontal:hover,
+QScrollBar::add-line:horizontal:on {
+    border-image: url(:/themes/qdarkstyle/rc/right_arrow.png);
+    height: 10px;
+    width: 10px;
+    subcontrol-position: right;
+    subcontrol-origin: margin;
+}
+
+QScrollBar::sub-line:horizontal:hover,
+QScrollBar::sub-line:horizontal:on {
+    border-image: url(:/themes/qdarkstyle/rc/left_arrow.png);
+    height: 10px;
+    width: 10px;
+    subcontrol-position: left;
+    subcontrol-origin: margin;
+}
+
+QScrollBar::up-arrow:horizontal,
+QScrollBar::down-arrow:horizontal {
+    background: none;
+}
+
+QScrollBar::add-page:horizontal,
+QScrollBar::sub-page:horizontal {
+    background: none;
+}
+
+QScrollBar:vertical {
+    background-color: #2A2929;
+    width: 15px;
+    margin: 15px 3px 15px 3px;
+    border: 1px transparent #2A2929;
+    border-radius: 4px;
+}
+
+QScrollBar::handle:vertical {
+    background-color: #605F5F;
+    min-height: 5px;
+    border-radius: 4px;
+}
+
+QScrollBar::sub-line:vertical {
+    margin: 3px 0px 3px 0px;
+    border-image: url(:/themes/qdarkstyle/rc/up_arrow_disabled.png);
+    height: 10px;
+    width: 10px;
+    subcontrol-position: top;
+    subcontrol-origin: margin;
+}
+
+QScrollBar::add-line:vertical {
+    margin: 3px 0px 3px 0px;
+    border-image: url(:/themes/qdarkstyle/rc/down_arrow_disabled.png);
+    height: 10px;
+    width: 10px;
+    subcontrol-position: bottom;
+    subcontrol-origin: margin;
+}
+
+QScrollBar::sub-line:vertical:hover,
+QScrollBar::sub-line:vertical:on {
+    border-image: url(:/themes/qdarkstyle/rc/up_arrow.png);
+    height: 10px;
+    width: 10px;
+    subcontrol-position: top;
+    subcontrol-origin: margin;
+}
+
+QScrollBar::add-line:vertical:hover,
+QScrollBar::add-line:vertical:on {
+    border-image: url(:/themes/qdarkstyle/rc/down_arrow.png);
+    height: 10px;
+    width: 10px;
+    subcontrol-position: bottom;
+    subcontrol-origin: margin;
+}
+
+QScrollBar::up-arrow:vertical,
+QScrollBar::down-arrow:vertical {
+    background: none;
+}
+
+QScrollBar::add-page:vertical,
+QScrollBar::sub-page:vertical {
+    background: none;
+}
+
+QTextEdit {
+    background-color: #232629;
+    color: #eff0f1;
+    border: 1px solid #76797C;
+}
+
+QPlainTextEdit {
+    background-color: #232629;
+    ;
+    color: #eff0f1;
+    border-radius: 2px;
+    border: 1px solid #76797C;
+}
+
+QHeaderView::section {
+    background-color: #76797C;
+    color: #eff0f1;
+    padding: 5px;
+    border: 1px solid #76797C;
+}
+
+QSizeGrip {
+    image: url(:/themes/qdarkstyle/rc/sizegrip.png);
+    width: 12px;
+    height: 12px;
+}
+
+QMainWindow::separator {
+    background-color: #31363b;
+    color: white;
+    padding-left: 4px;
+    spacing: 2px;
+    border: 1px dashed #76797C;
+}
+
+QMainWindow::separator:hover {
+    background-color: #787876;
+    color: white;
+    padding-left: 4px;
+    border: 1px solid #76797C;
+    spacing: 2px;
+}
+
+QMenu::separator {
+    height: 1px;
+    background-color: #76797C;
+    color: white;
+    padding-left: 4px;
+    margin-left: 10px;
+    margin-right: 5px;
+}
+
+QFrame {
+    border-radius: 2px;
+    border: 1px solid #76797C;
+}
+
+QFrame[frameShape="0"] {
+    border-radius: 2px;
+    border: 1px transparent #76797C;
+}
+
+QStackedWidget {
+    border: 1px transparent black;
+}
+
+QToolBar {
+    border: 1px transparent #393838;
+    background: 1px solid #31363b;
+    font-weight: bold;
+}
+
+QToolBar::handle:horizontal {
+    image: url(:/themes/qdarkstyle/rc/Hmovetoolbar.png);
+}
+
+QToolBar::handle:vertical {
+    image: url(:/themes/qdarkstyle/rc/Vmovetoolbar.png);
+}
+
+QToolBar::separator:horizontal {
+    image: url(:/themes/qdarkstyle/rc/Hsepartoolbar.png);
+}
+
+QToolBar::separator:vertical {
+    image: url(:/themes/qdarkstyle/rc/Vsepartoolbar.png);
+}
+
+QToolButton#qt_toolbar_ext_button {
+    background: #58595a
+}
+
+QPushButton {
+    color: #eff0f1;
+    background-color: #31363b;
+    border-width: 1px;
+    border-color: #76797C;
+    border-style: solid;
+    padding: 5px;
+    border-radius: 2px;
+    outline: none;
+}
+
+QPushButton:disabled {
+    background-color: #31363b;
+    border-width: 1px;
+    border-color: #454545;
+    border-style: solid;
+    padding-top: 5px;
+    padding-bottom: 5px;
+    padding-left: 10px;
+    padding-right: 10px;
+    border-radius: 2px;
+    color: #454545;
+}
+
+QPushButton:focus {
+    background-color: #3daee9;
+    color: white;
+}
+
+QPushButton:pressed {
+    background-color: #3daee9;
+    padding-top: -15px;
+    padding-bottom: -17px;
+}
+
+QComboBox {
+    selection-background-color: #3daee9;
+    border-style: solid;
+    border: 1px solid #76797C;
+    border-radius: 2px;
+    padding: 5px;
+    min-width: 75px;
+}
+
+QPushButton:checked {
+    background-color: #76797C;
+    border-color: #6A6969;
+}
+
+QComboBox:hover,
+QPushButton:hover,
+QAbstractSpinBox:hover,
+QLineEdit:hover,
+QTextEdit:hover,
+QPlainTextEdit:hover,
+QAbstractView:hover,
+QTreeView:hover {
+    border: 1px solid #3daee9;
+    color: #eff0f1;
+}
+
+QComboBox:on {
+    padding-top: 3px;
+    padding-left: 4px;
+    selection-background-color: #4a4a4a;
+}
+
+QComboBox QAbstractItemView {
+    background-color: #232629;
+    border-radius: 2px;
+    border: 1px solid #76797C;
+    selection-background-color: #18465d;
+}
+
+QComboBox::drop-down {
+    subcontrol-origin: padding;
+    subcontrol-position: top right;
+    width: 15px;
+    border-left-width: 0px;
+    border-left-color: darkgray;
+    border-left-style: solid;
+    border-top-right-radius: 3px;
+    border-bottom-right-radius: 3px;
+}
+
+QComboBox::down-arrow {
+    image: url(:/themes/qdarkstyle/rc/down_arrow_disabled.png);
+}
+
+QComboBox::down-arrow:on,
+QComboBox::down-arrow:hover,
+QComboBox::down-arrow:focus {
+    image: url(:/themes/qdarkstyle/rc/down_arrow.png);
+}
+
+QAbstractSpinBox {
+    padding: 5px;
+    border: 1px solid #76797C;
+    background-color: #232629;
+    color: #eff0f1;
+    border-radius: 2px;
+    min-width: 75px;
+}
+
+QAbstractSpinBox:up-button {
+    background-color: transparent;
+    subcontrol-origin: border;
+    subcontrol-position: center right;
+}
+
+QAbstractSpinBox:down-button {
+    background-color: transparent;
+    subcontrol-origin: border;
+    subcontrol-position: center left;
+}
+
+QAbstractSpinBox::up-arrow,
+QAbstractSpinBox::up-arrow:disabled,
+QAbstractSpinBox::up-arrow:off {
+    image: url(:/themes/qdarkstyle/rc/up_arrow_disabled.png);
+    width: 10px;
+    height: 10px;
+}
+
+QAbstractSpinBox::up-arrow:hover {
+    image: url(:/themes/qdarkstyle/rc/up_arrow.png);
+}
+
+QAbstractSpinBox::down-arrow,
+QAbstractSpinBox::down-arrow:disabled,
+QAbstractSpinBox::down-arrow:off {
+    image: url(:/themes/qdarkstyle/rc/down_arrow_disabled.png);
+    width: 10px;
+    height: 10px;
+}
+
+QAbstractSpinBox::down-arrow:hover {
+    image: url(:/themes/qdarkstyle/rc/down_arrow.png);
+}
+
+QLabel {
+    border: 0px solid black;
+}
+
+QTabWidget {
+    border: 0px transparent black;
+}
+
+QTabWidget::pane {
+    border: 1px solid #76797C;
+    padding: 5px;
+    margin: 0px;
+}
+
+QTabWidget::tab-bar {
+    /* left: 5px; move to the right by 5px */
+}
+
+QTabBar {
+    qproperty-drawBase: 0;
+    border-radius: 3px;
+}
+
+QTabBar:focus {
+    border: 0px transparent black;
+}
+
+QTabBar::close-button {
+    image: url(:/themes/qdarkstyle/rc/close.png);
+    background: transparent;
+}
+
+QTabBar::close-button:hover {
+    image: url(:/themes/qdarkstyle/rc/close-hover.png);
+    background: transparent;
+}
+
+QTabBar::close-button:pressed {
+    image: url(:/themes/qdarkstyle/rc/close-pressed.png);
+    background: transparent;
+}
+
+
+/* TOP TABS */
+
+QTabBar::tab:top {
+    color: #eff0f1;
+    border: 1px solid #76797C;
+    border-bottom: 1px transparent black;
+    background-color: #31363b;
+    padding: 5px;
+    min-width: 50px;
+    border-top-left-radius: 2px;
+    border-top-right-radius: 2px;
+}
+
+QTabBar::tab:top:selected {
+    color: #eff0f1;
+    background-color: #54575B;
+    border: 1px solid #76797C;
+    border-bottom: 2px solid #3daee9;
+    border-top-left-radius: 2px;
+    border-top-right-radius: 2px;
+}
+
+QTabBar::tab:top:!selected:hover {
+    background-color: #3daee9;
+}
+
+
+/* BOTTOM TABS */
+
+QTabBar::tab:bottom {
+    color: #eff0f1;
+    border: 1px solid #76797C;
+    border-top: 1px transparent black;
+    background-color: #31363b;
+    padding: 5px;
+    border-bottom-left-radius: 2px;
+    border-bottom-right-radius: 2px;
+    min-width: 50px;
+}
+
+QTabBar::tab:bottom:selected {
+    color: #eff0f1;
+    background-color: #54575B;
+    border: 1px solid #76797C;
+    border-top: 2px solid #3daee9;
+    border-bottom-left-radius: 2px;
+    border-bottom-right-radius: 2px;
+}
+
+QTabBar::tab:bottom:!selected:hover {
+    background-color: #3daee9;
+}
+
+
+/* LEFT TABS */
+
+QTabBar::tab:left {
+    color: #eff0f1;
+    border: 1px solid #76797C;
+    border-left: 1px transparent black;
+    background-color: #31363b;
+    padding: 5px;
+    border-top-right-radius: 2px;
+    border-bottom-right-radius: 2px;
+    min-height: 50px;
+}
+
+QTabBar::tab:left:selected {
+    color: #eff0f1;
+    background-color: #54575B;
+    border: 1px solid #76797C;
+    border-left: 2px solid #3daee9;
+    border-top-right-radius: 2px;
+    border-bottom-right-radius: 2px;
+}
+
+QTabBar::tab:left:!selected:hover {
+    background-color: #3daee9;
+}
+
+
+/* RIGHT TABS */
+
+QTabBar::tab:right {
+    color: #eff0f1;
+    border: 1px solid #76797C;
+    border-right: 1px transparent black;
+    background-color: #31363b;
+    padding: 5px;
+    border-top-left-radius: 2px;
+    border-bottom-left-radius: 2px;
+    min-height: 50px;
+}
+
+QTabBar::tab:right:selected {
+    color: #eff0f1;
+    background-color: #54575B;
+    border: 1px solid #76797C;
+    border-right: 2px solid #3daee9;
+    border-top-left-radius: 2px;
+    border-bottom-left-radius: 2px;
+}
+
+QTabBar::tab:right:!selected:hover {
+    background-color: #3daee9;
+}
+
+QTabBar QToolButton::right-arrow:enabled {
+    image: url(:/themes/qdarkstyle/rc/right_arrow.png);
+}
+
+QTabBar QToolButton::left-arrow:enabled {
+    image: url(:/themes/qdarkstyle/rc/left_arrow.png);
+}
+
+QTabBar QToolButton::right-arrow:disabled {
+    image: url(:/themes/qdarkstyle/rc/right_arrow_disabled.png);
+}
+
+QTabBar QToolButton::left-arrow:disabled {
+    image: url(:/themes/qdarkstyle/rc/left_arrow_disabled.png);
+}
+
+QDockWidget {
+    background: #31363b;
+    border: 1px solid #403F3F;
+    titlebar-close-icon: url(:/themes/qdarkstyle/rc/close.png);
+    titlebar-normal-icon: url(:/themes/qdarkstyle/rc/undock.png);
+}
+
+QDockWidget::close-button,
+QDockWidget::float-button {
+    border: 1px solid transparent;
+    border-radius: 2px;
+    background: transparent;
+}
+
+QDockWidget::close-button:hover,
+QDockWidget::float-button:hover {
+    background: rgba(255, 255, 255, 10);
+}
+
+QDockWidget::close-button:pressed,
+QDockWidget::float-button:pressed {
+    padding: 1px -1px -1px 1px;
+    background: rgba(255, 255, 255, 10);
+}
+
+QTreeView,
+QListView {
+    border: 1px solid #76797C;
+    background-color: #232629;
+}
+
+QTreeView:branch:selected,
+QTreeView:branch:hover {
+    background: url(:/themes/qdarkstyle/rc/transparent.png);
+}
+
+QTreeView::branch:has-siblings:!adjoins-item {
+    border-image: url(:/themes/qdarkstyle/rc/transparent.png);
+}
+
+QTreeView::branch:has-siblings:adjoins-item {
+    border-image: url(:/themes/qdarkstyle/rc/transparent.png);
+}
+
+QTreeView::branch:!has-children:!has-siblings:adjoins-item {
+    border-image: url(:/themes/qdarkstyle/rc/transparent.png);
+}
+
+QTreeView::branch:has-children:!has-siblings:closed,
+QTreeView::branch:closed:has-children:has-siblings {
+    image: url(:/themes/qdarkstyle/rc/branch_closed.png);
+}
+
+QTreeView::branch:open:has-children:!has-siblings,
+QTreeView::branch:open:has-children:has-siblings {
+    image: url(:/themes/qdarkstyle/rc/branch_open.png);
+}
+
+QTreeView::branch:has-children:!has-siblings:closed:hover,
+QTreeView::branch:closed:has-children:has-siblings:hover {
+    image: url(:/themes/qdarkstyle/rc/branch_closed-on.png);
+}
+
+QTreeView::branch:open:has-children:!has-siblings:hover,
+QTreeView::branch:open:has-children:has-siblings:hover {
+    image: url(:/themes/qdarkstyle/rc/branch_open-on.png);
+}
+
+QListView::item:!selected:hover,
+QTreeView::item:!selected:hover {
+    background: #18465d;
+    outline: 0;
+    color: #eff0f1
+}
+
+QListView::item:selected:hover,
+QTreeView::item:selected:hover {
+    background: #287399;
+    color: #eff0f1;
+}
+
+QTreeView::indicator:checked,
+QListView::indicator:checked {
+    image: url(:/themes/qdarkstyle/rc/checkbox_checked.png);
+}
+
+QTreeView::indicator:unchecked,
+QListView::indicator:unchecked {
+    image: url(:/themes/qdarkstyle/rc/checkbox_unchecked.png);
+}
+
+QTreeView::indicator:indeterminate,
+QListView::indicator:indeterminate {
+    image: url(:/themes/qdarkstyle/rc/checkbox_indeterminate.png);
+}
+
+QTreeView::indicator:checked:hover,
+QTreeView::indicator:checked:focus,
+QTreeView::indicator:checked:pressed,
+QListView::indicator:checked:hover,
+QListView::indicator:checked:focus,
+QListView::indicator:checked:pressed {
+    image: url(:/themes/qdarkstyle/rc/checkbox_checked_focus.png);
+}
+
+QTreeView::indicator:unchecked:hover,
+QTreeView::indicator:unchecked:focus,
+QTreeView::indicator:unchecked:pressed,
+QListView::indicator:unchecked:hover,
+QListView::indicator:unchecked:focus,
+QListView::indicator:unchecked:pressed {
+    image: url(:/themes/qdarkstyle/rc/checkbox_unchecked_focus.png);
+}
+
+QTreeView::indicator:indeterminate:hover,
+QTreeView::indicator:indeterminate:focus,
+QTreeView::indicator:indeterminate:pressed,
+QListView::indicator:indeterminate:hover,
+QListView::indicator:indeterminate:focus,
+QListView::indicator:indeterminate:pressed {
+    image: url(:/themes/qdarkstyle/rc/checkbox_indeterminate_focus.png);
+}
+
+QSlider::groove:horizontal {
+    border: 1px solid #565a5e;
+    height: 4px;
+    background: #565a5e;
+    margin: 0px;
+    border-radius: 2px;
+}
+
+QSlider::handle:horizontal {
+    background: #232629;
+    border: 1px solid #565a5e;
+    width: 16px;
+    height: 16px;
+    margin: -8px 0;
+    border-radius: 9px;
+}
+
+QSlider::sub-page:horizontal {
+    border: 1px solid #565a5e;
+    height: 4px;
+    background: #3daee9;
+    margin: 0px;
+    border-radius: 2px;
+}
+
+QSlider::groove:vertical {
+    border: 1px solid #565a5e;
+    width: 4px;
+    background: #565a5e;
+    margin: 0px;
+    border-radius: 3px;
+}
+
+QSlider::handle:vertical {
+    background: #232629;
+    border: 1px solid #565a5e;
+    width: 16px;
+    height: 16px;
+    margin: 0 -8px;
+    border-radius: 9px;
+}
+
+QSlider::sub-page:vertical {
+    border: 1px solid #565a5e;
+    width: 4px;
+    background: #3daee9;
+    margin: 0px;
+    border-radius: 3px;
+}
+
+QToolButton {
+    background-color: transparent;
+    border: 1px transparent #76797C;
+    border-radius: 2px;
+    margin: 3px;
+    padding: 5px;
+}
+
+QToolButton[popupMode="1"] {
+    /* only for MenuButtonPopup */
+    padding-right: 20px;
+    /* make way for the popup button */
+    border: 1px #76797C;
+    border-radius: 5px;
+}
+
+QToolButton[popupMode="2"] {
+    /* only for InstantPopup */
+    padding-right: 10px;
+    /* make way for the popup button */
+    border: 1px #76797C;
+}
+
+QToolButton:hover,
+QToolButton::menu-button:hover {
+    background-color: transparent;
+    border: 1px solid #3daee9;
+}
+
+QToolButton:checked,
+QToolButton:pressed,
+QToolButton::menu-button:pressed {
+    background-color: #3daee9;
+    border: 1px solid #3daee9;
+    padding: 5px;
+}
+
+
+/* the subcontrol below is used only in the InstantPopup or DelayedPopup mode */
+
+QToolButton::menu-indicator {
+    image: url(:/themes/qdarkstyle/rc/down_arrow.png);
+    top: -7px;
+}
+
+
+/* the subcontrols below are used only in the MenuButtonPopup mode */
+
+QToolButton::menu-button {
+    border: 1px transparent #76797C;
+    border-top-right-radius: 6px;
+    border-bottom-right-radius: 6px;
+    /* 16px width + 4px for border = 20px allocated above */
+    width: 16px;
+    outline: none;
+}
+
+QToolButton::menu-arrow {
+    image: url(:/themes/qdarkstyle/rc/down_arrow.png);
+}
+
+QToolButton::menu-arrow:open {
+    border: 1px solid #76797C;
+}
+
+QPushButton::menu-indicator {
+    subcontrol-origin: padding;
+    subcontrol-position: bottom right;
+    bottom: 5px;
+}
+
+QTableView {
+    border: 1px solid #76797C;
+    gridline-color: #31363b;
+    background-color: #232629;
+}
+
+QTableView,
+QHeaderView {
+    border-radius: 0px;
+}
+
+QTableView::item:pressed,
+QListView::item:pressed,
+QTreeView::item:pressed {
+    background: #18465d;
+    color: #eff0f1;
+}
+
+QTableView::item:selected:active,
+QTreeView::item:selected:active,
+QListView::item:selected:active {
+    background: #287399;
+    color: #eff0f1;
+}
+
+QHeaderView {
+    background-color: #31363b;
+    border: 1px transparent;
+    border-radius: 0px;
+    margin: 0px;
+    padding: 0px;
+}
+
+QHeaderView::section {
+    background-color: #31363b;
+    color: #eff0f1;
+    padding: 5px;
+    border: 1px solid #76797C;
+    border-radius: 0px;
+    text-align: center;
+}
+
+QHeaderView::section::vertical::first,
+QHeaderView::section::vertical::only-one {
+    border-top: 1px solid #76797C;
+}
+
+QHeaderView::section::vertical {
+    border-top: transparent;
+}
+
+QHeaderView::section::horizontal::first,
+QHeaderView::section::horizontal::only-one {
+    border-left: 1px solid #76797C;
+}
+
+QHeaderView::section::horizontal {
+    border-left: transparent;
+}
+
+QHeaderView::section:checked {
+    color: white;
+    background-color: #334e5e;
+}
+
+
+/* style the sort indicator */
+
+QHeaderView::down-arrow {
+    image: url(:/themes/qdarkstyle/rc/down_arrow.png);
+}
+
+QHeaderView::up-arrow {
+    image: url(:/themes/qdarkstyle/rc/up_arrow.png);
+}
+
+QTableCornerButton::section {
+    background-color: #31363b;
+    border: 1px transparent #76797C;
+    border-radius: 0px;
+}
+
+QToolBox {
+    padding: 5px;
+    border: 1px transparent black;
+}
+
+QToolBox::tab {
+    color: #eff0f1;
+    background-color: #31363b;
+    border: 1px solid #76797C;
+    border-bottom: 1px transparent #31363b;
+    border-top-left-radius: 5px;
+    border-top-right-radius: 5px;
+}
+
+QToolBox::tab:selected {
+    /* italicize selected tabs */
+    font: italic;
+    background-color: #31363b;
+    border-color: #3daee9;
+}
+
+QStatusBar::item {
+    border: 0px transparent dark;
+}
+
+QFrame[height="3"],
+QFrame[width="3"] {
+    background-color: #76797C;
+}
+
+QSplitter::handle {
+    border: 1px dashed #76797C;
+}
+
+QSplitter::handle:hover {
+    background-color: #787876;
+    border: 1px solid #76797C;
+}
+
+QSplitter::handle:horizontal {
+    width: 1px;
+}
+
+QSplitter::handle:vertical {
+    height: 1px;
+}
+
+QProgressBar {
+    border: 1px solid #76797C;
+    border-radius: 5px;
+    text-align: center;
+}
+
+QProgressBar::chunk {
+    background-color: #05B8CC;
+}
+
+QDateEdit {
+    selection-background-color: #3daee9;
+    border-style: solid;
+    border: 1px solid #3375A3;
+    border-radius: 2px;
+    padding: 1px;
+    min-width: 75px;
+}
+
+QDateEdit:on {
+    padding-top: 3px;
+    padding-left: 4px;
+    selection-background-color: #4a4a4a;
+}
+
+QDateEdit QAbstractItemView {
+    background-color: #232629;
+    border-radius: 2px;
+    border: 1px solid #3375A3;
+    selection-background-color: #3daee9;
+}
+
+QDateEdit::drop-down {
+    subcontrol-origin: padding;
+    subcontrol-position: top right;
+    width: 15px;
+    border-left-width: 0px;
+    border-left-color: darkgray;
+    border-left-style: solid;
+    border-top-right-radius: 3px;
+    border-bottom-right-radius: 3px;
+}
+
+QDateEdit::down-arrow {
+    image: url(:/themes/qdarkstyle/rc/down_arrow_disabled.png);
+}
+
+QDateEdit::down-arrow:on,
+QDateEdit::down-arrow:hover,
+QDateEdit::down-arrow:focus {
+    image: url(:/themes/qdarkstyle/rc/down_arrow.png);
+}