public inbox for [email protected]
help / color / mirror / Atom feedFrom: Neel Patel <[email protected]>
To: Dave Page <[email protected]>
To: Akshay Joshi <[email protected]>
Cc: pgadmin-hackers <[email protected]>
Subject: Re: RM4292 - Dark mode support for Windows/macOS
Date: Fri, 10 Apr 2020 17:40:49 +0530
Message-ID: <CACCA4P2z6SSa_yCq_omQswoxJ4YVtZXjZxQs+dw9Jdo61dLnfQ@mail.gmail.com> (raw)
In-Reply-To: <CACCA4P0L-0PS_8-9i-sa4ECvH16kK6eJSgUcMHP57fTyzBHCBA@mail.gmail.com>
References: <CA+OCxoyiLYcN0N00nFPT9YCOFo8HT47rcoidccq2N5fDJFuqtQ@mail.gmail.com>
<CANxoLDdFpBpAg_V5r5M2ni9ycQzr-vhRkeQmMUfqEMYZXq-pZw@mail.gmail.com>
<CACCA4P1U8iLJWDM4_by0+HC9oPyUrrfArsu522FgWC6+sjjzWA@mail.gmail.com>
<CA+OCxowhYTCS0g7q=9BVi-Nd0=++3dWugAeZQTRzEVikwSdosA@mail.gmail.com>
<CACCA4P0L-0PS_8-9i-sa4ECvH16kK6eJSgUcMHP57fTyzBHCBA@mail.gmail.com>
Hi Dave/Akshay,
I had manually added the theme parameter in registry but after changing
those from the control panel as suggested by Dave, all control looks fine
in dark theme.
Please find the attached patch for review.
Thanks,
Neel Patel
On Thu, Apr 9, 2020 at 10:26 PM Neel Patel <[email protected]>
wrote:
> Hi Dave,
>
> On Thu, Apr 9, 2020 at 10:19 PM Dave Page <[email protected]> wrote:
>
>> Hi
>>
>> On Thu, Apr 9, 2020 at 2:28 PM Neel Patel <[email protected]>
>> wrote:
>>
>>> Hi Dave,
>>>
>>> I reviewed and tested the code on Windows and fixed below issues. Except
>>> below, it looks good to me.
>>>
>>> - Compilation error on windows
>>>
>>> Oops, thanks.
>>
>>>
>>> - In configuration window, "maximumSize" of the control is provided
>>> along with "minimumSize" so it prevents control from expanding when the
>>> user resizes the window. Removed maxSize and set as default.
>>>
>>> OK.
>>
>>
>>> A Couple of points for discussion.
>>>
>>> - AFAIK - Users need to manually set the "AppsUseLightTheme" value
>>> in the registry, right ? Do we need to document that somewhere ?
>>>
>>> No, it's an option if you go to personalise your desktop:
>>
>
> OK
>
>
>>
>> [image: Screenshot 2020-04-09 at 17.45.02.png]
>>
>>
>>>
>>> - As we have introduced 2 new "dark.qss" & "light.qss" files, so
>>> during packaging we need to make sure that it should reside along with
>>> "pgAdmin4" application binary otherwise those css will not be applied at
>>> runtime. right ?
>>>
>>> Hmm, that's a good point. I'll look at that.
>>
>>>
>>> - Checkbox is not visible in Configure window UI as per below
>>> screenshot. Are you able to see on Mac ? If no, I can take a look at it.
>>>
>>> [image: Screenshot 2020-04-09 at 5.05.25 PM.png]
>>>
>>
>> No, that works on Mac. If you can look at it that would be great (are the
>> SVGs from the patch in your filesystem?):
>>
>
> Yes, all SVGs from the patch are there. I will take a look.
>
>
>>
>> [image: Screenshot 2020-04-09 at 17.47.39.png]
>> Thanks!
>>
>>
>>>
>>> Attached is the updated patch.
>>>
>>> Thanks,
>>> Neel Patel
>>>
>>> On Thu, Apr 9, 2020 at 11:12 AM Akshay Joshi <
>>> [email protected]> wrote:
>>>
>>>> Neel,
>>>>
>>>> Can you please review/test it?
>>>>
>>>> On Wed, Apr 8, 2020 at 9:08 PM Dave Page <[email protected]> wrote:
>>>>
>>>>> The attached patch detects if dark mode is enabled on Windows
>>>>> (10+)/macOS (10.14+) at server start, and styles the runtime accordingly.
>>>>> It doesn't dynamically switch if the user changes their preferences.
>>>>>
>>>>> Linux builds continue to use the standard styling from Qt.
>>>>>
>>>>> NOTE: I've tested this on macOS, but my Windows build system is
>>>>> playing up at the moment. Akshay, can you have someone on your team test it
>>>>> please? I believe the code should work; it's just a case of reading a reg
>>>>> key and then doing the same thing as on macOS to set the theme accordingly.
>>>>>
>>>>> --
>>>>> Dave Page
>>>>> Blog: http://pgsnake.blogspot.com
>>>>> Twitter: @pgsnake
>>>>>
>>>>> EnterpriseDB UK: http://www.enterprisedb.com
>>>>> The Enterprise PostgreSQL Company
>>>>>
>>>>
>>>>
>>>> --
>>>> *Thanks & Regards*
>>>> *Akshay Joshi*
>>>>
>>>> *Sr. Software Architect*
>>>> *EnterpriseDB Software India Private Limited*
>>>> *Mobile: +91 976-788-8246*
>>>>
>>>
>>
>> --
>> Dave Page
>> Blog: http://pgsnake.blogspot.com
>> Twitter: @pgsnake
>>
>> EnterpriseDB UK: http://www.enterprisedb.com
>> The Enterprise PostgreSQL Company
>>
>
Attachments:
[image/png] Screenshot 2020-04-09 at 5.05.25 PM.png (74.0K, 3-Screenshot%202020-04-09%20at%205.05.25%20PM.png)
download | view image
[image/png] Screenshot 2020-04-09 at 17.45.02.png (103.6K, 4-Screenshot%202020-04-09%20at%2017.45.02.png)
download | view image
[image/png] Screenshot 2020-04-09 at 17.47.39.png (398.3K, 5-Screenshot%202020-04-09%20at%2017.47.39.png)
download | view image
[application/octet-stream] Runtime_dark_mode_for_Windows_Mac_v2.patch (122.0K, 6-Runtime_dark_mode_for_Windows_Mac_v2.patch)
download | inline diff:
diff --git a/runtime/ConfigWindow.ui b/runtime/ConfigWindow.ui
index 6757f1bab..fbdddfc2d 100644
--- a/runtime/ConfigWindow.ui
+++ b/runtime/ConfigWindow.ui
@@ -71,7 +71,7 @@
<item>
<widget class="QLabel" name="pythonPathLabel_2">
<property name="sizePolicy">
- <sizepolicy hsizetype="Fixed" vsizetype="Preferred">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
@@ -84,7 +84,7 @@
</property>
<property name="maximumSize">
<size>
- <width>150</width>
+ <width>16777215</width>
<height>16777215</height>
</size>
</property>
@@ -93,6 +93,22 @@
</property>
</widget>
</item>
+ <item>
+ <spacer name="horizontalSpacer_4">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Fixed</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
<item>
<widget class="QLineEdit" name="browserCommandLineEdit">
<property name="placeholderText">
@@ -143,7 +159,7 @@
</property>
<property name="maximumSize">
<size>
- <width>150</width>
+ <width>16777215</width>
<height>16777215</height>
</size>
</property>
diff --git a/runtime/breeze.qrc b/runtime/breeze.qrc
new file mode 100644
index 000000000..88fb18574
--- /dev/null
+++ b/runtime/breeze.qrc
@@ -0,0 +1,89 @@
+<RCC>
+ <qresource>
+ <file>light/hmovetoolbar.svg</file>
+ <file>light/vmovetoolbar.svg</file>
+ <file>light/hsepartoolbar.svg</file>
+ <file>light/vsepartoolbars.svg</file>
+ <file>light/stylesheet-branch-end.svg</file>
+ <file>light/stylesheet-branch-end-closed.svg</file>
+ <file>light/stylesheet-branch-end-open.svg</file>
+ <file>light/stylesheet-vline.svg</file>
+ <file>light/stylesheet-branch-more.svg</file>
+ <file>light/branch_closed.svg</file>
+ <file>light/branch_closed-on.svg</file>
+ <file>light/branch_open.svg</file>
+ <file>light/branch_open-on.svg</file>
+ <file>light/down_arrow.svg</file>
+ <file>light/down_arrow_disabled.svg</file>
+ <file>light/down_arrow-hover.svg</file>
+ <file>light/left_arrow.svg</file>
+ <file>light/left_arrow_disabled.svg</file>
+ <file>light/right_arrow.svg</file>
+ <file>light/right_arrow_disabled.svg</file>
+ <file>light/up_arrow.svg</file>
+ <file>light/up_arrow_disabled.svg</file>
+ <file>light/up_arrow-hover.svg</file>
+ <file>light/sizegrip.svg</file>
+ <file>light/transparent.svg</file>
+ <file>light/close.svg</file>
+ <file>light/close-hover.svg</file>
+ <file>light/close-pressed.svg</file>
+ <file>light/undock.svg</file>
+ <file>light/undock-hover.svg</file>
+ <file>light/checkbox_checked-hover.svg</file>
+ <file>light/checkbox_checked.svg</file>
+ <file>light/checkbox_checked_disabled.svg</file>
+ <file>light/checkbox_indeterminate.svg</file>
+ <file>light/checkbox_indeterminate-hover.svg</file>
+ <file>light/checkbox_indeterminate_disabled.svg</file>
+ <file>light/checkbox_unchecked-hover.svg</file>
+ <file>light/checkbox_unchecked_disabled.svg</file>
+ <file>light/radio_checked-hover.svg</file>
+ <file>light/radio_checked.svg</file>
+ <file>light/radio_checked_disabled.svg</file>
+ <file>light/radio_unchecked-hover.svg</file>
+ <file>light/radio_unchecked_disabled.svg</file>
+ <file>dark/hmovetoolbar.svg</file>
+ <file>dark/vmovetoolbar.svg</file>
+ <file>dark/hsepartoolbar.svg</file>
+ <file>dark/vsepartoolbars.svg</file>
+ <file>dark/stylesheet-branch-end.svg</file>
+ <file>dark/stylesheet-branch-end-closed.svg</file>
+ <file>dark/stylesheet-branch-end-open.svg</file>
+ <file>dark/stylesheet-vline.svg</file>
+ <file>dark/stylesheet-branch-more.svg</file>
+ <file>dark/branch_closed.svg</file>
+ <file>dark/branch_closed-on.svg</file>
+ <file>dark/branch_open.svg</file>
+ <file>dark/branch_open-on.svg</file>
+ <file>dark/down_arrow.svg</file>
+ <file>dark/down_arrow_disabled.svg</file>
+ <file>dark/down_arrow-hover.svg</file>
+ <file>dark/left_arrow.svg</file>
+ <file>dark/left_arrow_disabled.svg</file>
+ <file>dark/right_arrow.svg</file>
+ <file>dark/right_arrow_disabled.svg</file>
+ <file>dark/up_arrow.svg</file>
+ <file>dark/up_arrow_disabled.svg</file>
+ <file>dark/up_arrow-hover.svg</file>
+ <file>dark/sizegrip.svg</file>
+ <file>dark/transparent.svg</file>
+ <file>dark/close.svg</file>
+ <file>dark/close-hover.svg</file>
+ <file>dark/close-pressed.svg</file>
+ <file>dark/undock.svg</file>
+ <file>dark/undock-hover.svg</file>
+ <file>dark/checkbox_checked.svg</file>
+ <file>dark/checkbox_checked_disabled.svg</file>
+ <file>dark/checkbox_indeterminate.svg</file>
+ <file>dark/checkbox_indeterminate_disabled.svg</file>
+ <file>dark/checkbox_unchecked.svg</file>
+ <file>dark/checkbox_unchecked_disabled.svg</file>
+ <file>dark/radio_checked.svg</file>
+ <file>dark/radio_checked_disabled.svg</file>
+ <file>dark/radio_unchecked.svg</file>
+ <file>dark/radio_unchecked_disabled.svg</file>
+ <file>light.qss</file>
+ <file>dark.qss</file>
+ </qresource>
+</RCC>
diff --git a/runtime/dark.qss b/runtime/dark.qss
new file mode 100644
index 000000000..65938c8c4
--- /dev/null
+++ b/runtime/dark.qss
@@ -0,0 +1,1648 @@
+/*
+ * BreezeDark stylesheet.
+ *
+ * :author: Colin Duquesnoy
+ * :editor: Alex Huszagh
+ * :license: MIT, see LICENSE.md
+ *
+ * This is originally a fork of QDarkStyleSheet, and is based on Breeze/
+ * BreezeDark color scheme, but is in no way affiliated with KDE.
+ *
+ * ---------------------------------------------------------------------
+ * The MIT License (MIT)
+ *
+ * Copyright (c) <2013-2014> <Colin Duquesnoy>
+ * Copyright (c) <2015-2016> <Alex Huszagh>
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sublicense, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ * ---------------------------------------------------------------------
+ */
+
+QToolTip
+{
+ border: 0.1ex solid #eff0f1;
+ background-color: #31363b;
+ alternate-background-color: #3b4045;
+ color: #eff0f1;
+ padding: 0.5ex;
+ 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: #3daee9;
+ color: #eff0f1;
+}
+
+QWidget:item:selected
+{
+ background-color: #3daee9;
+}
+
+
+QCheckBox
+{
+ spacing: 0.5ex;
+ outline: none;
+ color: #eff0f1;
+ margin-bottom: 0.2ex;
+ opacity: 200;
+}
+
+QCheckBox:disabled
+{
+ color: #76797c;
+}
+
+QGroupBox::indicator
+{
+ margin-left: 0.2ex;
+}
+
+QCheckBox::indicator:unchecked,
+QCheckBox::indicator:unchecked:focus
+{
+ border-image: url(:/dark/checkbox_unchecked_disabled.svg);
+}
+
+QCheckBox::indicator:unchecked:hover,
+QCheckBox::indicator:unchecked:pressed,
+QGroupBox::indicator:unchecked:hover,
+QGroupBox::indicator:unchecked:focus,
+QGroupBox::indicator:unchecked:pressed
+{
+ border: none;
+ border-image: url(:/dark/checkbox_unchecked.svg);
+}
+
+QCheckBox::indicator:checked
+{
+ border-image: url(:/dark/checkbox_checked.svg);
+}
+
+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;
+ border-image: url(:/dark/checkbox_checked.svg);
+}
+
+QCheckBox::indicator:indeterminate
+{
+ border-image: url(:/dark/checkbox_indeterminate.svg);
+}
+
+QCheckBox::indicator:indeterminate:focus,
+QCheckBox::indicator:indeterminate:hover,
+QCheckBox::indicator:indeterminate:pressed
+{
+ border-image: url(:/dark/checkbox_indeterminate.svg);
+}
+
+QCheckBox::indicator:indeterminate:disabled
+{
+ border-image: url(:/dark/checkbox_indeterminate_disabled.svg);
+}
+
+QCheckBox::indicator:checked:disabled,
+QGroupBox::indicator:checked:disabled
+{
+ border-image: url(:/dark/checkbox_checked_disabled.svg);
+}
+
+QCheckBox::indicator:unchecked:disabled,
+QGroupBox::indicator:unchecked:disabled
+{
+ border-image: url(:/dark/checkbox_unchecked_disabled.svg);
+}
+
+QRadioButton
+{
+ spacing: 0.5ex;
+ outline: none;
+ color: #eff0f1;
+ margin-bottom: 0.2ex;
+}
+
+QRadioButton:disabled
+{
+ color: #76797c;
+}
+
+QRadioButton::indicator:unchecked,
+QRadioButton::indicator:unchecked:focus
+{
+ border-image: url(:/dark/radio_unchecked_disabled.svg);
+}
+
+
+QRadioButton::indicator:unchecked:hover,
+QRadioButton::indicator:unchecked:pressed
+{
+ border: none;
+ outline: none;
+ border-image: url(:/dark/radio_unchecked.svg);
+}
+
+
+QRadioButton::indicator:checked
+{
+ border: none;
+ outline: none;
+ border-image: url(:/dark/radio_checked.svg);
+}
+
+QRadioButton::indicator:checked:hover,
+QRadioButton::indicator:checked:focus,
+QRadioButton::indicator:checked:pressed
+{
+ border: none;
+ outline: none;
+ border-image: url(:/dark/radio_checked.svg);
+}
+
+QRadioButton::indicator:checked:disabled
+{
+ outline: none;
+ border-image: url(:/dark/radio_checked_disabled.svg);
+}
+
+QRadioButton::indicator:unchecked:disabled
+{
+ border-image: url(:/dark/radio_unchecked_disabled.svg);
+}
+
+QMenuBar
+{
+ background-color: #31363b;
+ color: #eff0f1;
+}
+
+QMenuBar::item
+{
+ background: transparent;
+}
+
+QMenuBar::item:selected
+{
+ background: transparent;
+ border: 0.1ex solid #76797c;
+}
+
+QMenuBar::item:pressed
+{
+ border: 0.1ex solid #76797c;
+ background-color: #3daee9;
+ color: #eff0f1;
+ margin-bottom: -0.1ex;
+ padding-bottom: 0.1ex;
+}
+
+QMenu
+{
+ border: 0.1ex solid #76797c;
+ color: #eff0f1;
+ margin: 0.2ex;
+}
+
+QMenu::icon
+{
+ margin: 0.5ex;
+}
+
+QMenu::item
+{
+ padding: 0.5ex 3ex 0.5ex 3ex;
+ margin-left: 0.5ex;
+ border: 0.1ex solid transparent; /* reserve space for selection border */
+}
+
+QMenu::item:selected
+{
+ color: #eff0f1;
+}
+
+QMenu::separator
+{
+ height: 0.2ex;
+ background: lightblue;
+ margin-left: 1ex;
+ margin-right: 0.5ex;
+}
+
+/* non-exclusive indicator = check box style indicator
+ (see QActionGroup::setExclusive) */
+QMenu::indicator:non-exclusive:unchecked
+{
+ border-image: url(:/dark/checkbox_unchecked_disabled.svg);
+}
+
+QMenu::indicator:non-exclusive:unchecked:selected
+{
+ border-image: url(:/dark/checkbox_unchecked_disabled.svg);
+}
+
+QMenu::indicator:non-exclusive:checked
+{
+ border-image: url(:/dark/checkbox_checked.svg);
+}
+
+QMenu::indicator:non-exclusive:checked:selected
+{
+ border-image: url(:/dark/checkbox_checked.svg);
+}
+
+/* exclusive indicator = radio button style indicator (see QActionGroup::setExclusive) */
+QMenu::indicator:exclusive:unchecked
+{
+ border-image: url(:/dark/radio_unchecked_disabled.svg);
+}
+
+QMenu::indicator:exclusive:unchecked:selected
+{
+ border-image: url(:/dark/radio_unchecked_disabled.svg);
+}
+
+QMenu::indicator:exclusive:checked
+{
+ border-image: url(:/dark/radio_checked.svg);
+}
+
+QMenu::indicator:exclusive:checked:selected
+{
+ border-image: url(:/dark/radio_checked.svg);
+}
+
+QMenu::right-arrow
+{
+ margin: 0.5ex;
+ border-image: url(:/light/right_arrow.svg);
+ width: 0.6ex;
+ height: 0.9ex;
+}
+
+
+QWidget:disabled
+{
+ color: #454545;
+ background-color: #31363b;
+}
+
+QAbstractItemView
+{
+ alternate-background-color: #31363b;
+ color: #eff0f1;
+ border: 0.1ex solid 3A3939;
+ border-radius: 0.2ex;
+}
+
+QWidget:focus,
+QMenuBar:focus
+{
+ border: 0.1ex solid #3daee9;
+}
+
+QTabWidget:focus,
+QCheckBox:focus,
+QRadioButton:focus,
+QSlider:focus
+{
+ border: none;
+}
+
+QLineEdit
+{
+ background-color: #232629;
+ padding: 0.5ex;
+ border-style: solid;
+ border: 0.1ex solid #76797c;
+ border-radius: 0.2ex;
+ color: #eff0f1;
+}
+
+QGroupBox
+{
+ border: 0.1ex solid #76797c;
+ border-radius: 0.2ex;
+ padding-top: 1ex;
+ margin-top: 1ex;
+}
+
+QGroupBox::title
+{
+ subcontrol-origin: margin;
+ subcontrol-position: top center;
+ padding-left: 0.1ex;
+ padding-right: 0.1ex;
+ margin-top: -0.7ex;
+}
+
+QAbstractScrollArea
+{
+ border-radius: 0.2ex;
+ border: 0.1ex solid #76797c;
+ background-color: transparent;
+}
+
+QScrollBar:horizontal
+{
+ height: 1.5ex;
+ margin: 0.3ex 1.5ex 0.3ex 1.5ex;
+ border: 0.1ex transparent #2A2929;
+ border-radius: 0.4ex;
+ background-color: #2A2929;
+}
+
+QScrollBar::handle:horizontal
+{
+ background-color: #3daee9;
+ min-width: 0.5ex;
+ border-radius: 0.4ex;
+}
+
+QScrollBar::add-line:horizontal
+{
+ margin: 0px 0.3ex 0px 0.3ex;
+ border-image: url(:/dark/right_arrow_disabled.svg);
+ width: 1ex;
+ height: 1ex;
+ subcontrol-position: right;
+ subcontrol-origin: margin;
+}
+
+QScrollBar::sub-line:horizontal
+{
+ margin: 0ex 0.3ex 0ex 0.3ex;
+ border-image: url(:/dark/left_arrow_disabled.svg);
+ width: 1ex;
+ height: 1ex;
+ subcontrol-position: left;
+ subcontrol-origin: margin;
+}
+
+QScrollBar::add-line:horizontal:hover,
+QScrollBar::add-line:horizontal:on
+{
+ border-image: url(:/dark/right_arrow.svg);
+ width: 1ex;
+ height: 1ex;
+ subcontrol-position: right;
+ subcontrol-origin: margin;
+}
+
+
+QScrollBar::sub-line:horizontal:hover,
+QScrollBar::sub-line:horizontal:on
+{
+ border-image: url(:/dark/left_arrow.svg);
+ width: 1ex;
+ height: 1ex;
+ 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: 1.5ex;
+ margin: 1.5ex 0.3ex 1.5ex 0.3ex;
+ border: 0.1ex transparent #2A2929;
+ border-radius: 0.4ex;
+}
+
+QScrollBar::handle:vertical
+{
+ background-color: #3daee9;
+ min-height: 0.5ex;
+ border-radius: 0.4ex;
+}
+
+QScrollBar::sub-line:vertical
+{
+ margin: 0.3ex 0ex 0.3ex 0ex;
+ border-image: url(:/dark/up_arrow_disabled.svg);
+ height: 1ex;
+ width: 1ex;
+ subcontrol-position: top;
+ subcontrol-origin: margin;
+}
+
+QScrollBar::add-line:vertical
+{
+ margin: 0.3ex 0ex 0.3ex 0ex;
+ border-image: url(:/dark/down_arrow_disabled.svg);
+ height: 1ex;
+ width: 1ex;
+ subcontrol-position: bottom;
+ subcontrol-origin: margin;
+}
+
+QScrollBar::sub-line:vertical:hover,
+QScrollBar::sub-line:vertical:on
+{
+
+ border-image: url(:/dark/up_arrow.svg);
+ height: 1ex;
+ width: 1ex;
+ subcontrol-position: top;
+ subcontrol-origin: margin;
+}
+
+
+QScrollBar::add-line:vertical:hover,
+QScrollBar::add-line:vertical:on
+{
+ border-image: url(:/dark/down_arrow.svg);
+ height: 1ex;
+ width: 1ex;
+ 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: 0.1ex solid #76797c;
+}
+
+QPlainTextEdit
+{
+ background-color: #232629;;
+ color: #eff0f1;
+ border-radius: 0.2ex;
+ border: 0.1ex solid #76797c;
+}
+
+QHeaderView::section
+{
+ background-color: #76797c;
+ color: #eff0f1;
+ padding: 0.5ex;
+ border: 0.1ex solid #76797c;
+}
+
+QSizeGrip
+{
+ border-image: url(:/dark/sizegrip.svg);
+ width: 1.2ex;
+ height: 1.2ex;
+}
+
+QMainWindow::separator
+{
+ background-color: #31363b;
+ color: white;
+ padding-left: 0.4ex;
+ spacing: 0.2ex;
+ border: 0.1ex dashed #76797c;
+}
+
+QMainWindow::separator:hover
+{
+
+ background-color: #787876;
+ color: white;
+ padding-left: 0.4ex;
+ border: 0.1ex solid #76797c;
+ spacing: 0.2ex;
+}
+
+QMenu::separator
+{
+ height: 0.1ex;
+ background-color: #76797c;
+ color: white;
+ padding-left: 0.4ex;
+ margin-left: 1ex;
+ margin-right: 0.5ex;
+}
+
+QFrame[frameShape="2"], /* QFrame::Panel == 0x0003 */
+QFrame[frameShape="3"], /* QFrame::WinPanel == 0x0003 */
+QFrame[frameShape="4"], /* QFrame::HLine == 0x0004 */
+QFrame[frameShape="5"], /* QFrame::VLine == 0x0005 */
+QFrame[frameShape="6"] /* QFrame::StyledPanel == 0x0006 */
+{
+ border-width: 0.1ex;
+ padding: 0.1ex;
+ border-style: solid;
+ border-color: #31363b;
+ background-color: #76797c;
+ border-radius: 0.5ex;
+}
+
+QStackedWidget
+{
+ border: 0.1ex transparent black;
+}
+
+QToolBar
+{
+ border: 0.1ex transparent #393838;
+ background: 0.1ex solid #31363b;
+ font-weight: bold;
+}
+
+QToolBar::handle:horizontal
+{
+ border-image: url(:/dark/hmovetoolbar.svg);
+ width = 1.6ex;
+ height = 6.4ex;
+}
+
+QToolBar::handle:vertical
+{
+ border-image: url(:/dark/vmovetoolbar.svg);
+ width = 5.4ex;
+ height = 1ex;
+}
+
+QToolBar::separator:horizontal
+{
+ border-image: url(:/dark/hsepartoolbar.svg);
+ width = 0.7ex;
+ height = 6.3ex;
+}
+
+QToolBar::separator:vertical
+{
+ border-image: url(:/dark/vsepartoolbars.svg);
+ width = 6.3ex;
+ height = 0.7ex;
+}
+
+QPushButton
+{
+ color: #eff0f1;
+ background-color: qlineargradient(x1: 0.5, y1: 0.5 x2: 0.5, y2: 1, stop: 0 #3b4045, stop: 0.5 #31363b);
+ border-width: 0.1ex;
+ border-color: #76797c;
+ border-style: solid;
+ padding: 0.5ex;
+ border-radius: 0.2ex;
+ outline: none;
+}
+
+QPushButton:disabled
+{
+ background-color: #31363b;
+ border-width: 0.1ex;
+ border-color: #454545;
+ border-style: solid;
+ padding-top: 0.5ex;
+ padding-bottom: 0.5ex;
+ padding-left: 1ex;
+ padding-right: 1ex;
+ border-radius: 0.2ex;
+ color: #454545;
+}
+
+QPushButton:focus
+{
+ color: white;
+}
+
+QPushButton:pressed
+{
+ background-color: #31363b;
+ padding-top: -1.5ex;
+ padding-bottom: -1.7ex;
+}
+
+QComboBox
+{
+ selection-background-color: #3daee9;
+ border-style: solid;
+ border: 0.1ex solid #76797c;
+ border-radius: 0.2ex;
+ padding: 0.5ex;
+ min-width: 7.5ex;
+}
+
+QPushButton:checked
+{
+ background-color: #76797c;
+ border-color: #6A6969;
+}
+
+QPushButton:hover
+{
+ background-color: qlineargradient(x1: 0.5, y1: 0.5 x2: 0.5, y2: 1, stop: 0 #454a4f, stop: 0.5 #3b4045);
+ border: 0.1ex solid #3daee9;
+ color: #eff0f1;
+}
+
+QPushButton:checked:hover
+{
+ background-color: qlineargradient(x1: 0.5, y1: 0.5 x2: 0.5, y2: 1, stop: 0 #808386, stop: 0.5 #76797c);
+ border: 0.1ex solid #3daee9;
+ color: #eff0f1;
+}
+
+QComboBox:hover,
+QAbstractSpinBox:hover,
+QLineEdit:hover,
+QTextEdit:hover,
+QPlainTextEdit:hover,
+QAbstractView:hover,
+QTreeView:hover
+{
+ border: 0.1ex solid #3daee9;
+ color: #eff0f1;
+}
+
+QComboBox:hover:pressed,
+QPushButton:hover:pressed,
+QAbstractSpinBox:hover:pressed,
+QLineEdit:hover:pressed,
+QTextEdit:hover:pressed,
+QPlainTextEdit:hover:pressed,
+QAbstractView:hover:pressed,
+QTreeView:hover:pressed
+{
+ background-color: #31363b;
+}
+
+QComboBox:on
+{
+ padding-top: 0.3ex;
+ padding-left: 0.4ex;
+ selection-background-color: #4a4a4a;
+}
+
+QComboBox QAbstractItemView
+{
+ background-color: #232629;
+ border-radius: 0.2ex;
+ border: 0.1ex solid #76797c;
+ selection-background-color: #3daee9;
+}
+
+QComboBox::drop-down
+{
+ subcontrol-origin: padding;
+ subcontrol-position: top right;
+ width: 1.5ex;
+
+ border-left-width: 0ex;
+ border-left-color: darkgray;
+ border-left-style: solid;
+ border-top-right-radius: 0.3ex;
+ border-bottom-right-radius: 0.3ex;
+}
+
+QComboBox::down-arrow
+{
+ border-image: url(:/dark/down_arrow_disabled.svg);
+ width: 0.9ex;
+ height: 0.6ex;
+}
+
+QComboBox::down-arrow:on,
+QComboBox::down-arrow:hover,
+QComboBox::down-arrow:focus
+{
+ border-image: url(:/dark/down_arrow.svg);
+ width: 0.9ex;
+ height: 0.6ex;
+}
+
+QAbstractSpinBox
+{
+ padding: 0.5ex;
+ border: 0.1ex solid #76797c;
+ background-color: #232629;
+ color: #eff0f1;
+ border-radius: 0.2ex;
+ min-width: 7.5ex;
+}
+
+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
+{
+ border-image: url(:/dark/up_arrow_disabled.svg);
+ width: 0.9ex;
+ height: 0.6ex;
+}
+
+QAbstractSpinBox::up-arrow:hover
+{
+ border-image: url(:/dark/up_arrow.svg);
+ width: 0.9ex;
+ height: 0.6ex;
+}
+
+QAbstractSpinBox::down-arrow,
+QAbstractSpinBox::down-arrow:disabled,
+QAbstractSpinBox::down-arrow:off
+{
+ border-image: url(:/dark/down_arrow_disabled.svg);
+ width: 0.9ex;
+ height: 0.6ex;
+}
+
+QAbstractSpinBox::down-arrow:hover
+{
+ border-image: url(:/dark/down_arrow.svg);
+ width: 0.9ex;
+ height: 0.6ex;
+}
+
+QLabel
+{
+ border: 0ex solid black;
+}
+
+/* BORDERS */
+QTabWidget::pane
+{
+ padding: 0.5ex;
+ margin: 0.1ex;
+}
+
+QTabWidget::pane:top
+{
+ border: 0.1ex solid #76797c;
+ top: -0.1ex;
+}
+
+QTabWidget::pane:bottom
+{
+ border: 0.1ex solid #76797c;
+ bottom: -0.1ex;
+}
+
+QTabWidget::pane:left
+{
+ border: 0.1ex solid #76797c;
+ right: -0.1ex;
+}
+
+QTabWidget::pane:right
+{
+ border: 0.1ex solid #76797c;
+ left: -0.1ex;
+}
+
+
+QTabBar
+{
+ qproperty-drawBase: 0;
+ left: 0.5ex; /* move to the right by 0.5ex */
+ border-radius: 0.3ex;
+}
+
+QTabBar:focus
+{
+ border: 0ex transparent black;
+}
+
+QTabBar::close-button
+{
+ border-image: url(:/dark/close.svg);
+ background: transparent;
+}
+
+QTabBar::close-button:hover
+{
+ border-image: url(:/dark/close-hover.svg);
+ width: 1.2ex;
+ height: 1.2ex;
+ background: transparent;
+}
+
+QTabBar::close-button:pressed
+{
+ border-image: url(:/dark/close-pressed.svg);
+ width: 1.2ex;
+ height: 1.2ex;
+ background: transparent;
+}
+
+/* TOP TABS */
+QTabBar::tab:top
+{
+ color: #eff0f1;
+ border: 0.1ex transparent black;
+ border-left: 0.1ex solid #76797c;
+ border-top: 0.1ex solid #76797c;
+ background-color: #31363b;
+ padding: 0.5ex;
+ min-width: 50px;
+ border-top-left-radius: 0.2ex;
+ border-top-right-radius: 0.2ex;
+}
+
+QTabBar::tab:top:last,
+QTabBar::tab:top:only-one
+{
+ color: #eff0f1;
+ border: 0.1ex transparent black;
+ border-left: 0.1ex solid #76797c;
+ border-right: 0.1ex solid #76797c;
+ border-top: 0.1ex solid #76797c;
+ background-color: #31363b;
+ padding: 0.5ex;
+ min-width: 50px;
+ border-top-left-radius: 0.2ex;
+ border-top-right-radius: 0.2ex;
+}
+
+QTabBar::tab:top:!selected
+{
+ color: #eff0f1;
+ background-color: #54575B;
+ border: 0.1ex transparent black;
+ border-left: 0.1ex solid #76797c;
+ border-top-left-radius: 0.2ex;
+ border-top-right-radius: 0.2ex;
+}
+
+QTabBar::tab:top:first:!selected
+{
+ color: #eff0f1;
+ background-color: #54575B;
+ border: 0.1ex transparent black;
+ border-top-left-radius: 0.2ex;
+ border-top-right-radius: 0.2ex;
+}
+
+QTabBar::tab:top:!selected:hover
+{
+ background-color: rgba(61, 173, 232, 0.2);
+ border: 0.1ex rgba(61, 173, 232, 0.2);
+ border-left: 0.1ex solid #76797c;
+}
+
+QTabBar::tab:top:!selected:first:hover
+{
+ background-color: rgba(61, 173, 232, 0.2);
+ border: 0.1ex rgba(61, 173, 232, 0.2);
+}
+
+/* BOTTOM TABS */
+
+QTabBar::tab:bottom
+{
+ color: #eff0f1;
+ border: 0.1ex transparent black;
+ border-left: 0.1ex solid #76797c;
+ border-bottom: 0.1ex solid #76797c;
+ background-color: #31363b;
+ padding: 0.5ex;
+ border-bottom-left-radius: 0.2ex;
+ border-bottom-right-radius: 0.2ex;
+ min-width: 50px;
+}
+
+QTabBar::tab:bottom:last,
+QTabBar::tab:bottom:only-one
+{
+ color: #eff0f1;
+ border: 0.1ex transparent black;
+ border-left: 0.1ex solid #76797c;
+ border-right: 0.1ex solid #76797c;
+ border-bottom: 0.1ex solid #76797c;
+ background-color: #31363b;
+ padding: 0.5ex;
+ border-bottom-left-radius: 0.2ex;
+ border-bottom-right-radius: 0.2ex;
+ min-width: 50px;
+}
+
+QTabBar::tab:bottom:!selected
+{
+ color: #eff0f1;
+ background-color: #54575B;
+ border: 0.1ex transparent black;
+ border-left: 0.1ex solid #76797c;
+ border-bottom-left-radius: 0.2ex;
+ border-bottom-right-radius: 0.2ex;
+}
+
+QTabBar::tab:bottom:first:!selected
+{
+ color: #eff0f1;
+ background-color: #54575B;
+ border: 0.1ex transparent black;
+ border-top-left-radius: 0.2ex;
+ border-top-right-radius: 0.2ex;
+}
+
+QTabBar::tab:bottom:!selected:hover
+{
+ background-color: rgba(61, 173, 232, 0.2);
+ border: 0.1ex rgba(61, 173, 232, 0.2);
+ border-left: 0.1ex solid #76797c;
+}
+
+QTabBar::tab:bottom:!selected:first:hover
+{
+ background-color: rgba(61, 173, 232, 0.2);
+ border: 0.1ex rgba(61, 173, 232, 0.2);
+}
+
+/* LEFT TABS */
+QTabBar::tab:left
+{
+ color: #eff0f1;
+ border: 0.1ex transparent black;
+ border-top: 0.1ex solid #76797c;
+ border-right: 0.1ex solid #76797c;
+ background-color: #31363b;
+ padding: 0.5ex;
+ border-top-right-radius: 0.2ex;
+ border-bottom-right-radius: 0.2ex;
+ min-height: 50px;
+}
+
+QTabBar::tab:left:last,
+QTabBar::tab:left:only-one
+{
+ color: #eff0f1;
+ border: 0.1ex transparent black;
+ border-top: 0.1ex solid #76797c;
+ border-bottom: 0.1ex solid #76797c;
+ border-right: 0.1ex solid #76797c;
+ background-color: #31363b;
+ padding: 0.5ex;
+ border-top-right-radius: 0.2ex;
+ border-bottom-right-radius: 0.2ex;
+ min-height: 50px;
+}
+
+QTabBar::tab:left:!selected
+{
+ color: #eff0f1;
+ background-color: #54575B;
+ border: 0.1ex transparent black;
+ border-top: 0.1ex solid #76797c;
+ border-top-right-radius: 0.2ex;
+ border-bottom-right-radius: 0.2ex;
+}
+
+QTabBar::tab:left:!selected:hover
+{
+ background-color: rgba(61, 173, 232, 0.2);
+ border: 0.1ex rgba(61, 173, 232, 0.2);
+ border-top: 0.1ex solid #76797c;
+}
+
+QTabBar::tab:left:!selected:first:hover
+{
+ background-color: rgba(61, 173, 232, 0.2);
+ border: 0.1ex rgba(61, 173, 232, 0.2);
+}
+
+/* RIGHT TABS */
+QTabBar::tab:right
+{
+ color: #eff0f1;
+ border: 0.1ex transparent black;
+ border-top: 0.1ex solid #76797c;
+ border-left: 0.1ex solid #76797c;
+ background-color: #31363b;
+ padding: 0.5ex;
+ border-top-left-radius: 0.2ex;
+ border-bottom-left-radius: 0.2ex;
+ min-height: 50px;
+}
+
+QTabBar::tab:right:last,
+QTabBar::tab:right:only-one
+{
+ color: #eff0f1;
+ border: 0.1ex transparent black;
+ border-top: 0.1ex solid #76797c;
+ border-bottom: 0.1ex solid #76797c;
+ border-left: 0.1ex solid #76797c;
+ background-color: #31363b;
+ padding: 0.5ex;
+ border-top-left-radius: 0.2ex;
+ border-bottom-left-radius: 0.2ex;
+ min-height: 50px;
+}
+
+QTabBar::tab:right:!selected
+{
+ color: #eff0f1;
+ background-color: #54575B;
+ border: 0.1ex transparent black;
+ border-top: 0.1ex solid #76797c;
+ border-top-left-radius: 0.2ex;
+ border-bottom-left-radius: 0.2ex;
+}
+
+QTabBar::tab:right:!selected:hover
+{
+ background-color: rgba(61, 173, 232, 0.2);
+ border: 0.1ex rgba(61, 173, 232, 0.2);
+ border-top: 0.1ex solid #76797c;
+}
+
+QTabBar::tab:right:!selected:first:hover
+{
+ background-color: rgba(61, 173, 232, 0.2);
+ border: 0.1ex rgba(61, 173, 232, 0.2);
+}
+
+QTabBar QToolButton::right-arrow:enabled
+{
+ border-image: url(:/dark/right_arrow.svg);
+}
+
+QTabBar QToolButton::left-arrow:enabled
+{
+ border-image: url(:/dark/left_arrow.svg);
+}
+
+QTabBar QToolButton::right-arrow:disabled
+{
+ border-image: url(:/dark/right_arrow_disabled.svg);
+}
+
+QTabBar QToolButton::left-arrow:disabled
+{
+ border-image: url(:/dark/left_arrow_disabled.svg);
+}
+
+QDockWidget
+{
+ background: #31363b;
+ border: 0.1ex solid #403F3F;
+ titlebar-close-icon: url(:/dark/transparent.svg);
+ titlebar-normal-icon: url(:/dark/transparent.svg);
+}
+
+QDockWidget::close-button,
+QDockWidget::float-button
+{
+ border: 0.1ex solid transparent;
+ border-radius: 0.2ex;
+ background: transparent;
+}
+
+QDockWidget::float-button
+{
+ border-image: url(:/dark/undock.svg);
+}
+
+QDockWidget::float-button:hover
+{
+ border-image: url(:/dark/undock-hover.svg) ;
+}
+
+QDockWidget::close-button
+{
+ border-image: url(:/dark/close.svg) ;
+}
+
+QDockWidget::close-button:hover
+{
+ border-image: url(:/dark/close-hover.svg) ;
+}
+
+QDockWidget::close-button:pressed
+{
+ border-image: url(:/dark/close-pressed.svg) ;
+}
+
+QTreeView,
+QListView
+{
+ border: 0.1ex solid #76797c;
+ background-color: #232629;
+}
+
+QTreeView::branch:has-siblings:!adjoins-item
+{
+ border-image: url(:/dark/stylesheet-vline.svg) 0;
+}
+
+QTreeView::branch:has-siblings:adjoins-item
+{
+ border-image: url(:/dark/stylesheet-branch-more.svg) 0;
+}
+
+QTreeView::branch:!has-children:!has-siblings:adjoins-item
+{
+ border-image: url(:/dark/stylesheet-branch-end.svg) 0;
+}
+
+QTreeView::branch:has-children:!has-siblings:closed,
+QTreeView::branch:closed:has-children:has-siblings
+{
+ border-image: url(:/dark/stylesheet-branch-end-closed.svg) 0;
+ image: url(:/dark/branch_closed.svg);
+}
+
+QTreeView::branch:open:has-children:!has-siblings,
+QTreeView::branch:open:has-children:has-siblings
+{
+ border-image: url(:/dark/stylesheet-branch-end-open.svg) 0;
+ image: url(:/dark/branch_open.svg);
+}
+
+/*
+QTreeView::branch:has-siblings:!adjoins-item {
+ background: cyan;
+}
+
+QTreeView::branch:has-siblings:adjoins-item {
+ background: red;
+}
+
+QTreeView::branch:!has-children:!has-siblings:adjoins-item {
+ background: blue;
+}
+
+QTreeView::branch:closed:has-children:has-siblings {
+ background: pink;
+}
+
+QTreeView::branch:has-children:!has-siblings:closed {
+ background: gray;
+}
+
+QTreeView::branch:open:has-children:has-siblings {
+ background: magenta;
+}
+
+QTreeView::branch:open:has-children:!has-siblings {
+ background: green;
+}
+*/
+
+QTableView::item,
+QListView::item,
+QTreeView::item
+{
+ padding: 0.3ex;
+}
+
+QTableView::item:!selected:hover,
+QListView::item:!selected:hover,
+QTreeView::item:!selected:hover
+{
+ background-color: rgba(61, 173, 232, 0.2);
+ outline: 0;
+ color: #eff0f1;
+ padding: 0.3ex;
+}
+
+
+QSlider::groove:horizontal
+{
+ border: 0.1ex solid #31363b;
+ height: 0.4ex;
+ background: #565a5e;
+ margin: 0ex;
+ border-radius: 0.2ex;
+}
+
+QSlider::handle:horizontal
+{
+ background: #232629;
+ border: 0.1ex solid #626568;
+ width: 1.6ex;
+ height: 1.6ex;
+ margin: -0.8ex 0;
+ border-radius: 0.9ex;
+}
+
+QSlider::groove:vertical
+{
+ border: 0.1ex solid #31363b;
+ width: 0.4ex;
+ background: #565a5e;
+ margin: 0ex;
+ border-radius: 0.3ex;
+}
+
+QSlider::handle:vertical
+{
+ background: #232629;
+ border: 0.1ex solid #626568;
+ width: 1.6ex;
+ height: 1.6ex;
+ margin: 0 -0.8ex;
+ border-radius: 0.9ex;
+}
+
+QSlider::handle:horizontal:hover,
+QSlider::handle:horizontal:focus,
+QSlider::handle:vertical:hover,
+QSlider::handle:vertical:focus
+{
+ border: 0.1ex solid #3daee9;
+}
+
+QSlider::sub-page:horizontal,
+QSlider::add-page:vertical
+{
+ background: #3daee9;
+ border-radius: 0.3ex;
+}
+
+QSlider::add-page:horizontal,
+QSlider::sub-page:vertical
+{
+ background: #626568;
+ border-radius: 0.3ex;
+}
+
+QToolButton
+{
+ background-color: transparent;
+ border: 0.1ex solid #76797c;
+ border-radius: 0.2ex;
+ margin: 0.3ex;
+ padding: 0.5ex;
+}
+
+QToolButton[popupMode="1"] /* only for MenuButtonPopup */
+{
+ padding-right: 2ex; /* make way for the popup button */
+}
+
+QToolButton[popupMode="2"] /* only for InstantPopup */
+{
+ padding-right: 1ex; /* make way for the popup button */
+}
+
+QToolButton::menu-indicator
+{
+ border-image: none;
+ image: url(:/dark/down_arrow.svg);
+ top: -0.7ex;
+ left: -0.2ex;
+}
+
+QToolButton::menu-arrow
+{
+ border-image: none;
+ image: url(:/dark/down_arrow.svg);
+}
+
+QToolButton:hover,
+QToolButton::menu-button:hover
+{
+ background-color: transparent;
+ border: 0.1ex solid #3daee9;
+}
+
+QToolButton:checked,
+QToolButton:pressed,
+QToolButton::menu-button:pressed
+{
+ background-color: #3daee9;
+ border: 0.1ex solid #3daee9;
+ padding: 0.5ex;
+}
+
+QToolButton::menu-button
+{
+ border: 0.1ex solid #76797c;
+ border-top-right-radius: 6px;
+ border-bottom-right-radius: 6px;
+ /* 1ex width + 0.4ex for border + no text = 2ex allocated above */
+ width: 1ex;
+ padding: 0.5ex;
+ outline: none;
+}
+
+QToolButton::menu-arrow:open
+{
+ border: 0.1ex solid #76797c;
+}
+
+QPushButton::menu-indicator
+{
+ subcontrol-origin: padding;
+ subcontrol-position: bottom right;
+ left: 0.8ex;
+}
+
+QTableView
+{
+ border: 0.1ex solid #76797c;
+ gridline-color: #31363b;
+ background-color: #232629;
+}
+
+
+QTableView,
+QHeaderView
+{
+ border-radius: 0px;
+}
+
+QTableView::item:pressed,
+QListView::item:pressed,
+QTreeView::item:pressed
+{
+ background: #3daee9;
+ color: #eff0f1;
+}
+
+QTableView::item:selected:active,
+QTreeView::item:selected:active,
+QListView::item:selected:active
+{
+ background: #3daee9;
+ color: #eff0f1;
+}
+
+QListView::item:selected:hover,
+QTreeView::item:selected:hover
+{
+ background-color: #47b8f3;
+ color: #eff0f1;
+}
+
+QHeaderView
+{
+ background-color: #31363b;
+ border: 0.1ex transparent;
+ border-radius: 0px;
+ margin: 0px;
+ padding: 0px;
+
+}
+
+QHeaderView::section
+{
+ background-color: #31363b;
+ color: #eff0f1;
+ padding: 0.5ex;
+ border: 0.1ex solid #76797c;
+ border-radius: 0px;
+ text-align: center;
+}
+
+QHeaderView::section::vertical::first,
+QHeaderView::section::vertical::only-one
+{
+ border-top: 0.1ex solid #76797c;
+}
+
+QHeaderView::section::vertical
+{
+ border-top: transparent;
+}
+
+QHeaderView::section::horizontal::first,
+QHeaderView::section::horizontal::only-one
+{
+ border-left: 0.1ex 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(:/dark/down_arrow.svg);
+}
+
+QHeaderView::up-arrow
+{
+ image: url(:/dark/up_arrow.svg);
+}
+
+QTableCornerButton::section
+{
+ background-color: #31363b;
+ border: 0.1ex transparent #76797c;
+ border-radius: 0px;
+}
+
+QToolBox
+{
+ padding: 0.5ex;
+ border: 0.1ex transparent black;
+}
+
+QToolBox:selected
+{
+ background-color: #31363b;
+ border-color: #3daee9;
+}
+
+QToolBox:hover
+{
+ border-color: #3daee9;
+}
+
+QStatusBar::item
+{
+ border: 0px transparent dark;
+}
+
+QFrame[height="3"],
+QFrame[width="3"]
+{
+ background-color: #76797c;
+}
+
+QSplitter::handle
+{
+ border: 0.1ex dashed #76797c;
+}
+
+QSplitter::handle:hover
+{
+ background-color: #787876;
+ border: 0.1ex solid #76797c;
+}
+
+QSplitter::handle:horizontal
+{
+ width: 0.1ex;
+}
+
+QSplitter::handle:vertical
+{
+ height: 0.1ex;
+}
+
+QProgressBar:horizontal
+{
+ background-color: #626568;
+ border: 0.1ex solid #31363b;
+ border-radius: 0.3ex;
+ height: 0.5ex;
+ text-align: right;
+ margin-top: 0.5ex;
+ margin-bottom: 0.5ex;
+ margin-right: 5ex;
+ padding: 0px;
+}
+
+QProgressBar::chunk:horizontal
+{
+ background-color: #3daee9;
+ border: 0.1ex transparent;
+ border-radius: 0.3ex;
+}
+
+QSpinBox,
+QDoubleSpinBox
+{
+ padding-right: 1.5ex;
+}
+
+QSpinBox::up-button,
+QDoubleSpinBox::up-button
+{
+ subcontrol-origin: content;
+ subcontrol-position: right top;
+
+ width: 1.6ex;
+ border-width: 0.1ex;
+}
+
+QSpinBox::up-arrow,
+QDoubleSpinBox::up-arrow
+{
+ border-image: url(:/dark/up_arrow.svg);
+ width: 0.9ex;
+ height: 0.6ex;
+}
+
+QSpinBox::up-arrow:hover,
+QSpinBox::up-arrow:pressed,
+QDoubleSpinBox::up-arrow:hover,
+QDoubleSpinBox::up-arrow:pressed
+{
+ border-image: url(:/dark/up_arrow-hover.svg);
+ width: 0.9ex;
+ height: 0.6ex;
+}
+
+QSpinBox::up-arrow:disabled,
+QSpinBox::up-arrow:off,
+QDoubleSpinBox::up-arrow:disabled,
+QDoubleSpinBox::up-arrow:off
+{
+ border-image: url(:/dark/up_arrow_disabled.svg);
+}
+
+QSpinBox::down-button,
+QDoubleSpinBox::down-button
+{
+ subcontrol-origin: content;
+ subcontrol-position: right bottom;
+
+ width: 1.6ex;
+ border-width: 0.1ex;
+}
+
+QSpinBox::down-arrow,
+QDoubleSpinBox::down-arrow
+{
+ border-image: url(:/dark/down_arrow.svg);
+ width: 0.9ex;
+ height: 0.6ex;
+}
+
+QSpinBox::down-arrow:hover,
+QSpinBox::down-arrow:pressed,
+QDoubleSpinBox::down-arrow:hover,
+QDoubleSpinBox::down-arrow:pressed
+{
+ border-image: url(:/dark/down_arrow-hover.svg);
+ width: 0.9ex;
+ height: 0.6ex;
+}
+
+QSpinBox::down-arrow:disabled,
+QSpinBox::down-arrow:off,
+QDoubleSpinBox::down-arrow:disabled,
+QDoubleSpinBox::down-arrow:off
+{
+ border-image: url(:/dark/down_arrow_disabled.svg);
+}
diff --git a/runtime/dark/branch_closed-on.svg b/runtime/dark/branch_closed-on.svg
new file mode 100644
index 000000000..8bd398f80
--- /dev/null
+++ b/runtime/dark/branch_closed-on.svg
@@ -0,0 +1,3 @@
+<svg width="6" height="9">
+ <path fill="#fff" fill-rule="evenodd" d="M1,8V1L5,4.5Z"/>
+</svg>
diff --git a/runtime/dark/branch_closed.svg b/runtime/dark/branch_closed.svg
new file mode 100644
index 000000000..f5a072f4b
--- /dev/null
+++ b/runtime/dark/branch_closed.svg
@@ -0,0 +1,3 @@
+<svg width="12" height="18">
+ <path fill="#afafaf" d="M5,12V6L9,9Z"/>
+</svg>
diff --git a/runtime/dark/branch_open-on.svg b/runtime/dark/branch_open-on.svg
new file mode 100644
index 000000000..4dd0c0655
--- /dev/null
+++ b/runtime/dark/branch_open-on.svg
@@ -0,0 +1,3 @@
+<svg width="9" height="6">
+ <path fill="#fff" d="M1,1H8L4.5,5Z"/>
+</svg>
diff --git a/runtime/dark/branch_open.svg b/runtime/dark/branch_open.svg
new file mode 100644
index 000000000..0745890db
--- /dev/null
+++ b/runtime/dark/branch_open.svg
@@ -0,0 +1,3 @@
+<svg width="18" height="12">
+ <path fill="#afafaf" d="M5.5,3H12.5L9,9Z"/>
+</svg>
diff --git a/runtime/dark/checkbox_checked.svg b/runtime/dark/checkbox_checked.svg
new file mode 100644
index 000000000..6753d8bd2
--- /dev/null
+++ b/runtime/dark/checkbox_checked.svg
@@ -0,0 +1,5 @@
+<svg x="0px" y="0px" width="18px" height="18px" viewBox="0 0 18 18" enable-background="new 0 0 18 18" xml:space="preserve">
+ <path d="M2,2 h14 v14 h-0.9 v-13.1 h-13.1 z" fill="#58d3ff"/>
+ <path d="M16,16 h-14 v-14 h0.9 v13.1 h13.1 z" fill="#58d3ff"/>
+ <path d="M5,5 h8 v8 h-8 v-8 z" fill="#58d3ff" fill-rule="evenodd"/>
+</svg>
diff --git a/runtime/dark/checkbox_checked_disabled.svg b/runtime/dark/checkbox_checked_disabled.svg
new file mode 100644
index 000000000..ff7e63aaa
--- /dev/null
+++ b/runtime/dark/checkbox_checked_disabled.svg
@@ -0,0 +1,5 @@
+<svg x="0px" y="0px" width="18px" height="18px" viewBox="0 0 18 18" enable-background="new 0 0 18 18" xml:space="preserve">
+ <path d="M2,2 h14 v14 h-0.9 v-13.1 h-13.1 z" fill="#c8c9ca"/>
+ <path d="M16,16 h-14 v-14 h0.9 v13.1 h13.1 z" fill="#c8c9ca"/>
+ <path d="M5,5 h8 v8 h-8 v-8 z" fill="#c8c9ca" fill-rule="evenodd"/>
+</svg>
diff --git a/runtime/dark/checkbox_indeterminate.svg b/runtime/dark/checkbox_indeterminate.svg
new file mode 100644
index 000000000..0f171248d
--- /dev/null
+++ b/runtime/dark/checkbox_indeterminate.svg
@@ -0,0 +1,7 @@
+<svg x="0px" y="0px" width="18px" height="18px" viewBox="0 0 18 18" enable-background="new 0 0 18 18" xml:space="preserve">
+ <path d="M2,2 h14 v14 h-0.9 v-13.1 h-13.1 z" fill="#58d3ff"/>
+ <path d="M16,16 h-14 v-14 h0.9 v13.1 h13.1 z" fill="#58d3ff"/>
+ <path d="M5,5 h8 v8 h-0.9 v-7.1 h-7.1 z" fill="#58d3ff" fill-rule="evenodd"/>
+ <path d="M13,13 h-8 v-8 h0.9 v7.1 h7.1 z" fill="#58d3ff" fill-rule="evenodd"/>
+ <path d="M13,5 L 5,13 v-8 h8 z" fill="#58d3ff" fill-rule="evenodd"/>
+</svg>
diff --git a/runtime/dark/checkbox_indeterminate_disabled.svg b/runtime/dark/checkbox_indeterminate_disabled.svg
new file mode 100644
index 000000000..bc0f285f0
--- /dev/null
+++ b/runtime/dark/checkbox_indeterminate_disabled.svg
@@ -0,0 +1,7 @@
+<svg x="0px" y="0px" width="18px" height="18px" viewBox="0 0 18 18" enable-background="new 0 0 18 18" xml:space="preserve">
+ <path d="M2,2 h14 v14 h-0.9 v-13.1 h-13.1 z" fill="#c8c9ca"/>
+ <path d="M16,16 h-14 v-14 h0.9 v13.1 h13.1 z" fill="#c8c9ca"/>
+ <path d="M5,5 h8 v8 h-0.9 v-7.1 h-7.1 z" fill="#c8c9ca" fill-rule="evenodd"/>
+ <path d="M13,13 h-8 v-8 h0.9 v7.1 h7.1 z" fill="#c8c9ca" fill-rule="evenodd"/>
+ <path d="M13,5 L 5,13 v-8 h8 z" fill="#c8c9ca" fill-rule="evenodd"/>
+</svg>
diff --git a/runtime/dark/checkbox_unchecked.svg b/runtime/dark/checkbox_unchecked.svg
new file mode 100644
index 000000000..6f3e56946
--- /dev/null
+++ b/runtime/dark/checkbox_unchecked.svg
@@ -0,0 +1,4 @@
+<svg x="0px" y="0px" width="18px" height="18px" viewBox="0 0 18 18" enable-background="new 0 0 18 18" xml:space="preserve">
+ <path d="M2,2 h14 v14 h-0.9 v-13.1 h-13.1 z" fill="#58d3ff"/>
+ <path d="M16,16 h-14 v-14 h0.9 v13.1 h13.1 z" fill="#58d3ff"/>
+</svg>
diff --git a/runtime/dark/checkbox_unchecked_disabled.svg b/runtime/dark/checkbox_unchecked_disabled.svg
new file mode 100644
index 000000000..dd73f7584
--- /dev/null
+++ b/runtime/dark/checkbox_unchecked_disabled.svg
@@ -0,0 +1,4 @@
+<svg x="0px" y="0px" width="18px" height="18px" viewBox="0 0 18 18" enable-background="new 0 0 18 18" xml:space="preserve">
+ <path d="M2,2 h14 v14 h-0.9 v-13.1 h-13.1 z" fill="#c8c9ca"/>
+ <path d="M16,16 h-14 v-14 h0.9 v13.1 h13.1 z" fill="#c8c9ca"/>
+</svg>
diff --git a/runtime/dark/close-hover.svg b/runtime/dark/close-hover.svg
new file mode 100644
index 000000000..e2b0dd89a
--- /dev/null
+++ b/runtime/dark/close-hover.svg
@@ -0,0 +1,3 @@
+<svg width="1200" height="1200">
+ <path d="M 600,1050 C 351.472,1050 150,848.528 150,600 150,351.472 351.472,150 600,150 c 248.528,0 450,201.472 450,450 0,248.528 -201.472,450 -450,450 z M 888.462,827.851 661.974,601.122 l 0,-2.244 226.488,-226.729 0,-60.611 -60.848,0 Q 727.339,411.986 627.043,512.451 613.524,525.358 600,538.267 l -226.487,-226.729 -61.975,0 0,60.611 L 538.026,600 311.538,826.729 l 0,61.733 60.848,0 q 34.363,-34.792 68.735,-69.59 L 600,661.733 l 226.487,226.729 61.975,0 0,-60.611 z" fill="#b37979"/>
+</svg>
diff --git a/runtime/dark/close-pressed.svg b/runtime/dark/close-pressed.svg
new file mode 100644
index 000000000..a0dc2496f
--- /dev/null
+++ b/runtime/dark/close-pressed.svg
@@ -0,0 +1,3 @@
+<svg width="1200" height="1200">
+ <path d="M 600,1050 C 351.472,1050 150,848.528 150,600 150,351.472 351.472,150 600,150 c 248.528,0 450,201.472 450,450 0,248.528 -201.472,450 -450,450 z M 888.462,827.851 661.974,601.122 l 0,-2.244 226.488,-226.729 0,-60.611 -60.848,0 Q 727.339,411.986 627.043,512.451 613.524,525.358 600,538.267 l -226.487,-226.729 -61.975,0 0,60.611 L 538.026,600 311.538,826.729 l 0,61.733 60.848,0 q 34.363,-34.792 68.735,-69.59 L 600,661.733 l 226.487,226.729 61.975,0 0,-60.611 z" fill="#b33e3e"/>
+</svg>
diff --git a/runtime/dark/close.svg b/runtime/dark/close.svg
new file mode 100644
index 000000000..07b50c9e3
--- /dev/null
+++ b/runtime/dark/close.svg
@@ -0,0 +1,3 @@
+<svg width="1200" height="1200">
+ <path d="M 600,1050 C 351.472,1050 150,848.528 150,600 150,351.472 351.472,150 600,150 c 248.528,0 450,201.472 450,450 0,248.528 -201.472,450 -450,450 z M 888.462,827.851 661.974,601.122 l 0,-2.244 226.488,-226.729 0,-60.611 -60.848,0 Q 727.339,411.986 627.043,512.451 613.524,525.358 600,538.267 l -226.487,-226.729 -61.975,0 0,60.611 L 538.026,600 311.538,826.729 l 0,61.733 60.848,0 q 34.363,-34.792 68.735,-69.59 L 600,661.733 l 226.487,226.729 61.975,0 0,-60.611 z" fill="#626568"/>
+</svg>
diff --git a/runtime/dark/down_arrow-hover.svg b/runtime/dark/down_arrow-hover.svg
new file mode 100644
index 000000000..408397f95
--- /dev/null
+++ b/runtime/dark/down_arrow-hover.svg
@@ -0,0 +1,3 @@
+<svg x="0px" y="0px" width="9px" height="6px" viewBox="0 0 9 6" enable-background="new 0 0 9 6" xml:space="preserve">
+ <path d="M 1.1894592,0.91769718 4.5,4.2280182 7.8105408,0.91627648 c 0.1577125,-0.157702 0.4134624,-0.157702 0.5711749,0 0.1577124,0.15770202 0.1577124,0.41343492 0,0.57113692 l -3.5961283,3.5973102 0,0 0,0 c -0.1577124,0.1577019 -0.4134624,0.1577019 -0.5711748,0 L 0.6182843,1.4874134 c -0.1577124,-0.157702 -0.1577124,-0.4134349 0,-0.57113692 0.1577125,-0.15628131 0.4134624,-0.15628131 0.5711749,0.00142 z" fill="#3daee9"/>
+</svg>
diff --git a/runtime/dark/down_arrow.svg b/runtime/dark/down_arrow.svg
new file mode 100644
index 000000000..a50df0014
--- /dev/null
+++ b/runtime/dark/down_arrow.svg
@@ -0,0 +1,3 @@
+<svg x="0px" y="0px" width="9px" height="6px" viewBox="0 0 9 6" enable-background="new 0 0 9 6" xml:space="preserve">
+ <path d="M 1.1894592,0.91769718 4.5,4.2280182 7.8105408,0.91627648 c 0.1577125,-0.157702 0.4134624,-0.157702 0.5711749,0 0.1577124,0.15770202 0.1577124,0.41343492 0,0.57113692 l -3.5961283,3.5973102 0,0 0,0 c -0.1577124,0.1577019 -0.4134624,0.1577019 -0.5711748,0 L 0.6182843,1.4874134 c -0.1577124,-0.157702 -0.1577124,-0.4134349 0,-0.57113692 0.1577125,-0.15628131 0.4134624,-0.15628131 0.5711749,0.00142 z" fill="#fff"/>
+</svg>
diff --git a/runtime/dark/down_arrow_disabled.svg b/runtime/dark/down_arrow_disabled.svg
new file mode 100644
index 000000000..af74a3075
--- /dev/null
+++ b/runtime/dark/down_arrow_disabled.svg
@@ -0,0 +1,3 @@
+<svg x="0px" y="0px" width="9px" height="6px" viewBox="0 0 9 6" enable-background="new 0 0 9 6" xml:space="preserve">
+ <path d="M 1.1894592,0.91769718 4.5,4.2280182 7.8105408,0.91627648 c 0.1577125,-0.157702 0.4134624,-0.157702 0.5711749,0 0.1577124,0.15770202 0.1577124,0.41343492 0,0.57113692 l -3.5961283,3.5973102 0,0 0,0 c -0.1577124,0.1577019 -0.4134624,0.1577019 -0.5711748,0 L 0.6182843,1.4874134 c -0.1577124,-0.157702 -0.1577124,-0.4134349 0,-0.57113692 0.1577125,-0.15628131 0.4134624,-0.15628131 0.5711749,0.00142 z" fill="#b0b0b0"/>
+</svg>
diff --git a/runtime/dark/hmovetoolbar.svg b/runtime/dark/hmovetoolbar.svg
new file mode 100644
index 000000000..e4904db02
--- /dev/null
+++ b/runtime/dark/hmovetoolbar.svg
@@ -0,0 +1,4 @@
+<svg x="0px" y="0px" width="16px" height="64px" viewBox="0 0 16 64" enable-background="new 0 0 16 64" xml:space="preserve">
+ <rect fill="#5f5f5f" x="2" y="1" width="1" height="62.5"/>
+ <rect fill="#5f5f5f" x="9" y="1" width="1" height="62.5"/>
+</svg>
diff --git a/runtime/dark/hsepartoolbar.svg b/runtime/dark/hsepartoolbar.svg
new file mode 100644
index 000000000..89beb2265
--- /dev/null
+++ b/runtime/dark/hsepartoolbar.svg
@@ -0,0 +1,3 @@
+<svg x="0px" y="0px" width="7px" height="63px" viewBox="0 0 7 63" enable-background="new 0 0 7 63" xml:space="preserve">
+ <rect fill="#5f5f5f" x="2" y="13" width="1" height="37"/>
+</svg>
diff --git a/runtime/dark/left_arrow.svg b/runtime/dark/left_arrow.svg
new file mode 100644
index 000000000..9c787cec0
--- /dev/null
+++ b/runtime/dark/left_arrow.svg
@@ -0,0 +1,3 @@
+<svg x="0px" y="0px" width="6px" height="9px" viewBox="0 0 6 9" enable-background="new 0 0 6 9" xml:space="preserve">
+ <path d="m 5.0823028,1.1894593 -3.310321,3.3105408 3.3117417,3.3105408 c 0.157702,0.1577125 0.157702,0.4134624 0,0.5711749 -0.157702,0.1577123 -0.4134349,0.1577123 -0.5711369,0 l -3.59731017,-3.5961283 0,0 0,0 c -0.15770191,-0.1577124 -0.15770191,-0.4134624 0,-0.5711748 L 4.5125866,0.61828437 c 0.157702,-0.1577124 0.4134349,-0.1577124 0.5711369,0 0.1562813,0.1577125 0.1562813,0.41346243 -0.00142,0.57117493 z" fill="#fff"/>
+</svg>
diff --git a/runtime/dark/left_arrow_disabled.svg b/runtime/dark/left_arrow_disabled.svg
new file mode 100644
index 000000000..2d749e725
--- /dev/null
+++ b/runtime/dark/left_arrow_disabled.svg
@@ -0,0 +1,3 @@
+<svg x="0px" y="0px" width="6px" height="9px" viewBox="0 0 6 9" enable-background="new 0 0 6 9" xml:space="preserve">
+ <path d="m 5.0823028,1.1894593 -3.310321,3.3105408 3.3117417,3.3105408 c 0.157702,0.1577125 0.157702,0.4134624 0,0.5711749 -0.157702,0.1577123 -0.4134349,0.1577123 -0.5711369,0 l -3.59731017,-3.5961283 0,0 0,0 c -0.15770191,-0.1577124 -0.15770191,-0.4134624 0,-0.5711748 L 4.5125866,0.61828437 c 0.157702,-0.1577124 0.4134349,-0.1577124 0.5711369,0 0.1562813,0.1577125 0.1562813,0.41346243 -0.00142,0.57117493 z" fill="#b0b0b0"/>
+</svg>
diff --git a/runtime/dark/radio_checked.svg b/runtime/dark/radio_checked.svg
new file mode 100644
index 000000000..b8f706486
--- /dev/null
+++ b/runtime/dark/radio_checked.svg
@@ -0,0 +1,5 @@
+<svg x="0px" y="0px" width="20px" height="20px" viewBox="0 0 20 20" enable-background="new 0 0 20 20" xml:space="preserve">
+ <path d="M1,10a9,9 0 1,0 18,0 h-0.9 a8.1,8.1 0 1,1 -16.2,0 h-0.9" fill="#58d3ff" fill-rule="evenodd"/>
+ <path d="M1,10a9,9 0 1,1 18,0 h-0.9 a8.1,8.1 0 1,0 -16.2,0 h-0.9" fill="#58d3ff" fill-rule="evenodd"/>
+ <path d="M4,10a6,6 0 1,0 12,0a6,6 0 1,0 -12,0" fill="#58d3ff" fill-rule="evenodd"/>
+</svg>
diff --git a/runtime/dark/radio_checked_disabled.svg b/runtime/dark/radio_checked_disabled.svg
new file mode 100644
index 000000000..523ee0049
--- /dev/null
+++ b/runtime/dark/radio_checked_disabled.svg
@@ -0,0 +1,5 @@
+<svg x="0px" y="0px" width="20px" height="20px" viewBox="0 0 20 20" enable-background="new 0 0 20 20" xml:space="preserve">
+ <path d="M1,10a9,9 0 1,0 18,0 h-0.9 a8.1,8.1 0 1,1 -16.2,0 h-0.9" fill="#c8c9ca" fill-rule="evenodd"/>
+ <path d="M1,10a9,9 0 1,1 18,0 h-0.9 a8.1,8.1 0 1,0 -16.2,0 h-0.9" fill="#c8c9ca" fill-rule="evenodd"/>
+ <path d="M4,10a6,6 0 1,0 12,0a6,6 0 1,0 -12,0" fill="#c8c9ca" fill-rule="evenodd"/>
+</svg>
diff --git a/runtime/dark/radio_unchecked.svg b/runtime/dark/radio_unchecked.svg
new file mode 100644
index 000000000..1a556e360
--- /dev/null
+++ b/runtime/dark/radio_unchecked.svg
@@ -0,0 +1,4 @@
+<svg x="0px" y="0px" width="20px" height="20px" viewBox="0 0 20 20" enable-background="new 0 0 20 20" xml:space="preserve">
+ <path d="M1,10a9,9 0 1,0 18,0 h-0.9 a8.1,8.1 0 1,1 -16.2,0 h-0.9" fill="#58d3ff" fill-rule="evenodd"/>
+ <path d="M1,10a9,9 0 1,1 18,0 h-0.9 a8.1,8.1 0 1,0 -16.2,0 h-0.9" fill="#58d3ff" fill-rule="evenodd"/>
+</svg>
diff --git a/runtime/dark/radio_unchecked_disabled.svg b/runtime/dark/radio_unchecked_disabled.svg
new file mode 100644
index 000000000..b3da8a2dc
--- /dev/null
+++ b/runtime/dark/radio_unchecked_disabled.svg
@@ -0,0 +1,4 @@
+<svg x="0px" y="0px" width="20px" height="20px" viewBox="0 0 20 20" enable-background="new 0 0 20 20" xml:space="preserve">
+ <path d="M1,10a9,9 0 1,0 18,0 h-0.9 a8.1,8.1 0 1,1 -16.2,0 h-0.9" fill="#c8c9ca" fill-rule="evenodd"/>
+ <path d="M1,10a9,9 0 1,1 18,0 h-0.9 a8.1,8.1 0 1,0 -16.2,0 h-0.9" fill="#c8c9ca" fill-rule="evenodd"/>
+</svg>
diff --git a/runtime/dark/right_arrow.svg b/runtime/dark/right_arrow.svg
new file mode 100644
index 000000000..b793513f2
--- /dev/null
+++ b/runtime/dark/right_arrow.svg
@@ -0,0 +1,3 @@
+<svg width="6" height="9">
+ <path d="m 0.9166972,1.1894593 3.310321,3.3105408 -3.3117417,3.3105408 c -0.157702,0.1577125 -0.157702,0.4134624 0,0.5711749 0.157702,0.1577123 0.4134349,0.1577123 0.5711369,0 l 3.5973102,-3.5961283 0,0 0,0 c 0.1577019,-0.1577124 0.1577019,-0.4134624 0,-0.5711748 L 1.4864134,0.61828437 c -0.157702,-0.1577124 -0.4134349,-0.1577124 -0.5711369,0 -0.1562813,0.1577125 -0.1562813,0.41346243 0.00142,0.57117493 z" fill="#fff"/>
+</svg>
diff --git a/runtime/dark/right_arrow_disabled.svg b/runtime/dark/right_arrow_disabled.svg
new file mode 100644
index 000000000..4940025ef
--- /dev/null
+++ b/runtime/dark/right_arrow_disabled.svg
@@ -0,0 +1,3 @@
+<svg width="6" height="9">
+ <path d="m 0.9166972,1.1894593 3.310321,3.3105408 -3.3117417,3.3105408 c -0.157702,0.1577125 -0.157702,0.4134624 0,0.5711749 0.157702,0.1577123 0.4134349,0.1577123 0.5711369,0 l 3.5973102,-3.5961283 0,0 0,0 c 0.1577019,-0.1577124 0.1577019,-0.4134624 0,-0.5711748 L 1.4864134,0.61828437 c -0.157702,-0.1577124 -0.4134349,-0.1577124 -0.5711369,0 -0.1562813,0.1577125 -0.1562813,0.41346243 0.00142,0.57117493 z" fill="#b0b0b0"/>
+</svg>
diff --git a/runtime/dark/sizegrip.svg b/runtime/dark/sizegrip.svg
new file mode 100644
index 000000000..3388f07dc
--- /dev/null
+++ b/runtime/dark/sizegrip.svg
@@ -0,0 +1,3 @@
+<svg width="1000" height="1000">
+ <path fill="#b0b0b0" d="M22.1,1022.1L-22.1,977.9l1000-1000L1022.1,22.1Zm220,30L197.9,1007.9l1000-1000L1242.1,52.1Zm250,0L447.9,1007.9l1000-1000L1492.1,52.1Zm250,0L697.9,1007.9l1030-1030L1772.1,22.1Z"/>
+</svg>
diff --git a/runtime/dark/spinup_disabled.svg b/runtime/dark/spinup_disabled.svg
new file mode 100644
index 000000000..838436d0a
--- /dev/null
+++ b/runtime/dark/spinup_disabled.svg
@@ -0,0 +1,3 @@
+<svg width="9" height="6">
+ <path d="M 1.1894592,5.0833028 4.5,1.7729818 7.8105408,5.0847235 c 0.1577125,0.157702 0.4134624,0.157702 0.5711749,0 0.1577124,-0.157702 0.1577124,-0.4134349 0,-0.5711369 l -3.5961283,-3.59731019 0,0 0,0 c -0.1577124,-0.1577019 -0.4134624,-0.1577019 -0.5711748,0 L 0.6182843,4.5135866 c -0.1577124,0.157702 -0.1577124,0.4134349 0,0.5711369 0.1577125,0.1562813 0.4134624,0.1562813 0.5711749,-0.00142 z" fill="#b0b0b0"/>
+</svg>
diff --git a/runtime/dark/stylesheet-branch-end-closed.svg b/runtime/dark/stylesheet-branch-end-closed.svg
new file mode 100644
index 000000000..eb73b13a3
--- /dev/null
+++ b/runtime/dark/stylesheet-branch-end-closed.svg
@@ -0,0 +1,4 @@
+<svg width="81" height="58">
+ <rect id="VLine" fill="#626568" x="36" width="2" height="14"/>
+ <rect id="HLine" fill="#626568" x="65" y="28" height="1" width="28"/>
+</svg>
diff --git a/runtime/dark/stylesheet-branch-end-open.svg b/runtime/dark/stylesheet-branch-end-open.svg
new file mode 100644
index 000000000..eb73b13a3
--- /dev/null
+++ b/runtime/dark/stylesheet-branch-end-open.svg
@@ -0,0 +1,4 @@
+<svg width="81" height="58">
+ <rect id="VLine" fill="#626568" x="36" width="2" height="14"/>
+ <rect id="HLine" fill="#626568" x="65" y="28" height="1" width="28"/>
+</svg>
diff --git a/runtime/dark/stylesheet-branch-end.svg b/runtime/dark/stylesheet-branch-end.svg
new file mode 100644
index 000000000..334ca0cdf
--- /dev/null
+++ b/runtime/dark/stylesheet-branch-end.svg
@@ -0,0 +1,4 @@
+<svg width="81" height="58">
+ <rect id="VLine" fill="#626568" x="36" width="2" height="28"/>
+ <rect id="HLine" fill="#626568" x="36" y="28" height="1" width="57"/>
+</svg>
diff --git a/runtime/dark/stylesheet-branch-more.svg b/runtime/dark/stylesheet-branch-more.svg
new file mode 100644
index 000000000..f5250ba38
--- /dev/null
+++ b/runtime/dark/stylesheet-branch-more.svg
@@ -0,0 +1,4 @@
+<svg width="81" height="58">
+ <rect id="VLine" fill="#626568" x="36" width="2" height="58"/>
+ <rect id="HLine" fill="#626568" x="36" y="30" height="1" width="44"/>
+</svg>
diff --git a/runtime/dark/stylesheet-vline.svg b/runtime/dark/stylesheet-vline.svg
new file mode 100644
index 000000000..4e7ff6aaa
--- /dev/null
+++ b/runtime/dark/stylesheet-vline.svg
@@ -0,0 +1,3 @@
+<svg width="81" height="58">
+ <rect fill="#626568" x="36" width="2" height="58"/>
+</svg>
diff --git a/runtime/dark/transparent.svg b/runtime/dark/transparent.svg
new file mode 100644
index 000000000..3a8ca5cf6
--- /dev/null
+++ b/runtime/dark/transparent.svg
@@ -0,0 +1 @@
+<svg width="64" height="64"/>
diff --git a/runtime/dark/undock-hover.svg b/runtime/dark/undock-hover.svg
new file mode 100644
index 000000000..6bddbd721
--- /dev/null
+++ b/runtime/dark/undock-hover.svg
@@ -0,0 +1,5 @@
+<svg width="1000" height="1000" >
+ <path id="BottomCircle" d="M100,500 a250,250, 0, 1,0, 800,0 M775,500 L500,775 L225,500 z" fill="#a2a2a2" />
+ <path id="TopCircle" d="M900,500 a250,250, 0, 1,0, -800,0 M225,500 L500,225 L775,500 z" fill="#a2a2a2" />
+ <path id="Inside" d="M275,500 L 500,725 L 725,500 L 500,275 z" fill="#a2a2a2" />
+</svg>
diff --git a/runtime/dark/undock.svg b/runtime/dark/undock.svg
new file mode 100644
index 000000000..9ab21971c
--- /dev/null
+++ b/runtime/dark/undock.svg
@@ -0,0 +1,3 @@
+<svg width="1000" height="1000" >
+ <path d="M250,500 L 500,750 L 750,500 L 500,250 z" fill="none" stroke="#a2a2a2" stroke-width="50" />
+</svg>
diff --git a/runtime/dark/up_arrow-hover.svg b/runtime/dark/up_arrow-hover.svg
new file mode 100644
index 000000000..dd1271a5b
--- /dev/null
+++ b/runtime/dark/up_arrow-hover.svg
@@ -0,0 +1,3 @@
+<svg x="0px" y="0px" width="9px" height="6px" viewBox="0 0 9 6" enable-background="new 0 0 9 6" xml:space="preserve">
+ <path d="M 1.1894592,5.0833028 4.5,1.7729818 7.8105408,5.0847235 c 0.1577125,0.157702 0.4134624,0.157702 0.5711749,0 0.1577124,-0.157702 0.1577124,-0.4134349 0,-0.5711369 l -3.5961283,-3.59731019 0,0 0,0 c -0.1577124,-0.1577019 -0.4134624,-0.1577019 -0.5711748,0 L 0.6182843,4.5135866 c -0.1577124,0.157702 -0.1577124,0.4134349 0,0.5711369 0.1577125,0.1562813 0.4134624,0.1562813 0.5711749,-0.00142 z" fill="#3daee9"/>
+</svg>
diff --git a/runtime/dark/up_arrow.svg b/runtime/dark/up_arrow.svg
new file mode 100644
index 000000000..9f42239b3
--- /dev/null
+++ b/runtime/dark/up_arrow.svg
@@ -0,0 +1,3 @@
+<svg x="0px" y="0px" width="9px" height="6px" viewBox="0 0 9 6" enable-background="new 0 0 9 6" xml:space="preserve">
+ <path d="M 1.1894592,5.0833028 4.5,1.7729818 7.8105408,5.0847235 c 0.1577125,0.157702 0.4134624,0.157702 0.5711749,0 0.1577124,-0.157702 0.1577124,-0.4134349 0,-0.5711369 l -3.5961283,-3.59731019 0,0 0,0 c -0.1577124,-0.1577019 -0.4134624,-0.1577019 -0.5711748,0 L 0.6182843,4.5135866 c -0.1577124,0.157702 -0.1577124,0.4134349 0,0.5711369 0.1577125,0.1562813 0.4134624,0.1562813 0.5711749,-0.00142 z" fill="#fff"/>
+</svg>
diff --git a/runtime/dark/up_arrow_disabled.svg b/runtime/dark/up_arrow_disabled.svg
new file mode 100644
index 000000000..742e1c549
--- /dev/null
+++ b/runtime/dark/up_arrow_disabled.svg
@@ -0,0 +1,3 @@
+<svg x="0px" y="0px" width="9px" height="6px" viewBox="0 0 9 6" enable-background="new 0 0 9 6" xml:space="preserve">
+ <path d="M 1.1894592,5.0833028 4.5,1.7729818 7.8105408,5.0847235 c 0.1577125,0.157702 0.4134624,0.157702 0.5711749,0 0.1577124,-0.157702 0.1577124,-0.4134349 0,-0.5711369 l -3.5961283,-3.59731019 0,0 0,0 c -0.1577124,-0.1577019 -0.4134624,-0.1577019 -0.5711748,0 L 0.6182843,4.5135866 c -0.1577124,0.157702 -0.1577124,0.4134349 0,0.5711369 0.1577125,0.1562813 0.4134624,0.1562813 0.5711749,-0.00142 z" fill="#b0b0b0"/>
+</svg>
diff --git a/runtime/dark/vmovetoolbar.svg b/runtime/dark/vmovetoolbar.svg
new file mode 100644
index 000000000..0a30d45ef
--- /dev/null
+++ b/runtime/dark/vmovetoolbar.svg
@@ -0,0 +1,8 @@
+<svg x="0px" y="0px" width="54px" height="10px" viewBox="0 0 54 10" enable-background="new 0 0 54 10" xml:space="preserve">
+ <rect id="Dark1" data-name="Dark1" fill="#292c31" x="16" y="1" width="4" height="8"/>
+ <rect id="Light1" data-name="Light1" fill="#7f8795" x="16" y="1" width="3" height="7"/>
+ <rect id="Dark2" data-name="Dark2" fill="#292c31" x="25" y="1" width="4" height="8"/>
+ <rect id="Light2" data-name="Light2" fill="#7f8795" x="25" y="1" width="3" height="7"/>
+ <rect id="Dark3" data-name="Dark3" fill="#292c31" x="34" y="1" width="4" height="8"/>
+ <rect id="Light3" data-name="Light3" fill="#7f8795" x="34" y="1" width="3" height="7"/>
+</svg>
diff --git a/runtime/dark/vsepartoolbars.svg b/runtime/dark/vsepartoolbars.svg
new file mode 100644
index 000000000..00e91ab8d
--- /dev/null
+++ b/runtime/dark/vsepartoolbars.svg
@@ -0,0 +1,7 @@
+<svg x="0px" y="0px" width="63px" height="7px" viewBox="0 0 63 7" enable-background="new 0 0 63 7" xml:space="preserve">
+ <rect id="Dark1" data-name="Dark1" fill="#292c31" x="25" y="1" width="1" height="5"/>
+ <rect id="Dark2" data-name="Dark2" fill="#292c31" x="38" y="1" width="1" height="5"/>
+ <rect id="Light1" data-name="Light1" fill="#7f8795" x="23" y="1" width="2" height="5"/>
+ <rect id="Light2" data-name="Light2" fill="#7f8795" x="30" y="1" width="2" height="5"/>
+ <rect id="Light3" data-name="Light3" fill="#7f8795" x="36" y="1" width="2" height="5"/>
+</svg>
diff --git a/runtime/light.qss b/runtime/light.qss
new file mode 100644
index 000000000..e62523169
--- /dev/null
+++ b/runtime/light.qss
@@ -0,0 +1,1654 @@
+/*
+ * Breeze stylesheet.
+ *
+ * :author: Colin Duquesnoy
+ * :editor: Alex Huszagh
+ * :license: MIT, see LICENSE.md
+ *
+ * This is originally a fork of QDarkStyleSheet, and is based on Breeze/
+ * BreezeDark color scheme, but is in no way affiliated with KDE.
+ *
+ * ---------------------------------------------------------------------
+ * The MIT License (MIT)
+ *
+ * Copyright (c) <2013-2014> <Colin Duquesnoy>
+ * Copyright (c) <2015-2016> <Alex Huszagh>
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sublicense, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ * ---------------------------------------------------------------------
+ */
+
+QToolTip
+{
+ background-color: black;
+ color: white;
+ padding: 0.5ex;
+}
+
+QWidget
+{
+ color: #31363B;
+ background-color: #EFF0F1;
+ selection-background-color:#33A4DF;
+ selection-color: #31363B;
+ background-clip: border;
+ border-image: none;
+ border: 0px transparent black;
+ outline: 0;
+}
+
+QWidget:item:hover
+{
+ background-color: #33A4DF;
+ color: #31363B;
+}
+
+QWidget:item:selected
+{
+ background-color: #33A4DF;
+}
+
+
+QCheckBox
+{
+ spacing: 0.5ex;
+ outline: none;
+ color: #31363B;
+ margin-bottom: 0.2ex;
+ opacity: 200;
+}
+
+QCheckBox:disabled
+{
+ color: #BAB9B8;
+}
+
+QGroupBox::indicator
+{
+ margin-left: 0.2ex;
+ margin-left: 0.2ex;
+}
+
+QCheckBox::indicator:unchecked,
+QCheckBox::indicator:unchecked:focus
+{
+ border-image: url(:/light/checkbox_unchecked_disabled.svg);
+}
+
+QCheckBox::indicator:unchecked:hover,
+QCheckBox::indicator:unchecked:pressed,
+QGroupBox::indicator:unchecked:hover,
+QGroupBox::indicator:unchecked:focus,
+QGroupBox::indicator:unchecked:pressed
+{
+ border: none;
+ border-image: url(:/light/checkbox_unchecked-hover.svg);
+}
+
+QCheckBox::indicator:checked
+{
+ border-image: url(:/light/checkbox_checked.svg);
+}
+
+QCheckBox::indicator:checked:focus,
+QCheckBox::indicator:checked:pressed,
+QGroupBox::indicator:checked:focus,
+QGroupBox::indicator:checked:pressed
+{
+ border: none;
+ border-image: url(:/light/checkbox_checked.svg);
+}
+
+QCheckBox::indicator:checked:hover,
+QGroupBox::indicator:checked:hover
+{
+ border-image: url(:/light/checkbox_checked-hover.svg);
+}
+
+QCheckBox::indicator:indeterminate
+{
+ border-image: url(:/light/checkbox_indeterminate.svg);
+}
+
+QCheckBox::indicator:indeterminate:hover
+{
+ border-image: url(:/light/checkbox_indeterminate-hover.svg);
+}
+
+QCheckBox::indicator:indeterminate:focus,
+QCheckBox::indicator:indeterminate:pressed
+{
+}
+
+QCheckBox::indicator:indeterminate:disabled
+{
+ border-image: url(:/light/checkbox_indeterminate_disabled.svg);
+}
+
+QCheckBox::indicator:checked:disabled,
+QGroupBox::indicator:checked:disabled
+{
+ border-image: url(:/light/checkbox_checked_disabled.svg);
+}
+
+QCheckBox::indicator:unchecked:disabled,
+QGroupBox::indicator:unchecked:disabled
+{
+ border-image: url(:/light/checkbox_unchecked_disabled.svg);
+}
+
+QRadioButton
+{
+ spacing: 0.5ex;
+ outline: none;
+ color: #31363B;
+ margin-bottom: 0.2ex;
+}
+
+QRadioButton:disabled
+{
+ color: #BAB9B8;
+}
+
+QRadioButton::indicator:unchecked,
+QRadioButton::indicator:unchecked:focus
+{
+ border-image: url(:/light/radio_unchecked_disabled.svg);
+}
+
+QRadioButton::indicator:unchecked:hover,
+QRadioButton::indicator:unchecked:pressed
+{
+ border: none;
+ outline: none;
+ border-image: url(:/light/radio_unchecked-hover.svg);
+}
+
+QRadioButton::indicator:checked
+{
+ border: none;
+ outline: none;
+ border-image: url(:/light/radio_checked.svg);
+}
+
+QRadioButton::indicator:checked:focus,
+QRadioButton::indicator:checked:pressed
+{
+ border: none;
+ outline: none;
+ border-image: url(:/light/radio_checked.svg);
+}
+
+QRadioButton::indicator:checked:hover
+{
+ border-image: url(:/light/radio_checked-hover.svg);
+}
+
+QRadioButton::indicator:checked:disabled
+{
+ outline: none;
+ border-image: url(:/light/radio_checked_disabled.svg);
+}
+
+QRadioButton::indicator:unchecked:disabled
+{
+ border-image: url(:/light/radio_unchecked_disabled.svg);
+}
+
+QMenuBar
+{
+ background-color: #EFF0F1;
+ color: #31363B;
+}
+
+QMenuBar::item
+{
+ background: transparent;
+}
+
+QMenuBar::item:selected
+{
+ background: transparent;
+ border: 0.1ex solid #BAB9B8;
+}
+
+QMenuBar::item:pressed
+{
+ border: 0.1ex solid #BAB9B8;
+ background-color: #33A4DF;
+ color: #31363B;
+ margin-bottom: -0.1ex;
+ padding-bottom: 0.1ex;
+}
+
+QMenu
+{
+ border: 0.1ex solid #BAB9B8;
+ color: #31363B;
+ margin: 0.2ex;
+}
+
+QMenu::icon
+{
+ margin: 0.5ex;
+}
+
+QMenu::item
+{
+ padding: 0.5ex 3ex 0.5ex 3ex;
+ margin-left: 0.5ex;
+ border: 0.1ex solid transparent; /* reserve space for selection border */
+}
+
+QMenu::item:selected
+{
+ color: #31363B;
+}
+
+QMenu::separator
+{
+ height: 0.2ex;
+ background: lightblue;
+ margin-left: 1ex;
+ margin-right: 0.5ex;
+}
+
+/* non-exclusive indicator = check box style indicator
+ (see QActionGroup::setExclusive) */
+QMenu::indicator:non-exclusive:unchecked
+{
+ border-image: url(:/light/checkbox_unchecked_disabled.svg);
+}
+
+QMenu::indicator:non-exclusive:unchecked:selected
+{
+ border-image: url(:/light/checkbox_unchecked_disabled.svg);
+}
+
+QMenu::indicator:non-exclusive:checked
+{
+ border-image: url(:/light/checkbox_checked.svg);
+}
+
+QMenu::indicator:non-exclusive:checked:selected
+{
+ border-image: url(:/light/checkbox_checked.svg);
+}
+
+/* exclusive indicator = radio button style indicator (see QActionGroup::setExclusive) */
+QMenu::indicator:exclusive:unchecked
+{
+ border-image: url(:/light/radio_unchecked_disabled.svg);
+}
+
+QMenu::indicator:exclusive:unchecked:selected
+{
+ border-image: url(:/light/radio_unchecked_disabled.svg);
+}
+
+QMenu::indicator:exclusive:checked
+{
+ border-image: url(:/light/radio_checked.svg);
+}
+
+QMenu::indicator:exclusive:checked:selected
+{
+ border-image: url(:/light/radio_checked.svg);
+}
+
+QMenu::right-arrow
+{
+ margin: 0.5ex;
+ border-image: url(:/light/right_arrow.svg);
+ width: 0.6ex;
+ height: 0.9ex;
+}
+
+
+QWidget:disabled
+{
+ color: #454545;
+ background-color: #EFF0F1;
+}
+
+QAbstractItemView
+{
+ alternate-background-color: #EFF0F1;
+ color: #31363B;
+ border: 0.1ex solid 3A3939;
+ border-radius: 0.2ex;
+}
+
+QWidget:focus,
+QMenuBar:focus
+{
+ border: 0.1ex solid #33A4DF;
+}
+
+QTabWidget:focus,
+QCheckBox:focus,
+QRadioButton:focus,
+QSlider:focus
+{
+ border: none;
+}
+
+QLineEdit
+{
+ background-color: #FCFCFC;
+ padding: 0.5ex;
+ border-style: solid;
+ border: 0.1ex solid #BAB9B8;
+ border-radius: 0.2ex;
+ color: #31363B;
+}
+
+QGroupBox
+{
+ border: 0.1ex solid #BAB9B8;
+ border-radius: 0.2ex;
+ padding-top: 1ex;
+ margin-top: 1ex;
+}
+
+QGroupBox::title
+{
+ subcontrol-origin: margin;
+ subcontrol-position: top center;
+ padding-left: 0.1ex;
+ padding-right: 0.1ex;
+ margin-top: -0.7ex;
+}
+
+QAbstractScrollArea
+{
+ border-radius: 0.2ex;
+ border: 0.1ex solid #BAB9B8;
+ background-color: transparent;
+}
+
+QScrollBar:horizontal
+{
+ height: 1.5ex;
+ margin: 0.3ex 1.5ex 0.3ex 1.5ex;
+ border: 0.1ex transparent #2A2929;
+ border-radius: 0.4ex;
+ background-color: #2A2929;
+}
+
+QScrollBar::handle:horizontal
+{
+ background-color: #605F5F;
+ min-width: 0.5ex;
+ border-radius: 0.4ex;
+}
+
+QScrollBar::add-line:horizontal
+{
+ margin: 0ex 0.3ex 0ex 0.3ex;
+ border-image: url(:/light/right_arrow_disabled.svg);
+ width: 1ex;
+ height: 1ex;
+ subcontrol-position: right;
+ subcontrol-origin: margin;
+}
+
+QScrollBar::sub-line:horizontal
+{
+ margin: 0px 0.3ex 0px 0.3ex;
+ border-image: url(:/light/left_arrow_disabled.svg);
+ height: 1ex;
+ width: 1ex;
+ subcontrol-position: left;
+ subcontrol-origin: margin;
+}
+
+QScrollBar::add-line:horizontal:hover,QScrollBar::add-line:horizontal:on
+{
+ border-image: url(:/light/right_arrow.svg);
+ width: 1ex;
+ height: 1ex;
+ subcontrol-position: right;
+ subcontrol-origin: margin;
+}
+
+
+QScrollBar::sub-line:horizontal:hover, QScrollBar::sub-line:horizontal:on
+{
+ border-image: url(:/light/left_arrow.svg);
+ width: 1ex;
+ height: 1ex;
+ 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: 1.5ex;
+ margin: 1.5ex 0.3ex 1.5ex 0.3ex;
+ border: 0.1ex transparent #2A2929;
+ border-radius: 0.4ex;
+}
+
+QScrollBar::handle:vertical
+{
+ background-color: #605F5F;
+ min-height: 0.5ex;
+ border-radius: 0.4ex;
+}
+
+QScrollBar::sub-line:vertical
+{
+ margin: 0.3ex 0ex 0.3ex 0ex;
+ border-image: url(:/light/up_arrow_disabled.svg);
+ height: 1ex;
+ width: 1ex;
+ subcontrol-position: top;
+ subcontrol-origin: margin;
+}
+
+QScrollBar::add-line:vertical
+{
+ margin: 0.3ex 0ex 0.3ex 0ex;
+ border-image: url(:/light/down_arrow_disabled.svg);
+ height: 1ex;
+ width: 1ex;
+ subcontrol-position: bottom;
+ subcontrol-origin: margin;
+}
+
+QScrollBar::sub-line:vertical:hover,
+QScrollBar::sub-line:vertical:on
+{
+
+ border-image: url(:/light/up_arrow.svg);
+ height: 1ex;
+ width: 1ex;
+ subcontrol-position: top;
+ subcontrol-origin: margin;
+}
+
+
+QScrollBar::add-line:vertical:hover,
+QScrollBar::add-line:vertical:on
+{
+ border-image: url(:/light/down_arrow.svg);
+ height: 1ex;
+ width: 1ex;
+ 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: #EFF0F1;
+ color: #31363B;
+ border: 0.1ex solid #BAB9B8;
+}
+
+QPlainTextEdit
+{
+ background-color: #EFF0F1;
+ color: #31363B;
+ border-radius: 0.2ex;
+ border: 0.1ex solid #BAB9B8;
+}
+
+QHeaderView::section
+{
+ background-color: #BAB9B8;
+ color: #31363B;
+ padding: 0.5ex;
+ border: 0.1ex solid #BAB9B8;
+}
+
+QSizeGrip
+{
+ border-image: url(:/light/sizegrip.svg);
+ width: 1.2ex;
+ height: 1.2ex;
+}
+
+QMainWindow::separator
+{
+ background-color: #EFF0F1;
+ color: white;
+ padding-left: 0.4ex;
+ spacing: 0.2ex;
+ border: 0.1ex dashed #BAB9B8;
+}
+
+QMainWindow::separator:hover
+{
+
+ background-color: #787876;
+ color: white;
+ padding-left: 0.4ex;
+ border: 0.1ex solid #BAB9B8;
+ spacing: 0.2x;
+}
+
+QMenu::separator
+{
+ height: 0.1ex;
+ background-color: #BAB9B8;
+ color: white;
+ padding-left: 0.4ex;
+ margin-left: 1ex;
+ margin-right: 0.5ex;
+}
+
+QFrame[frameShape="2"], /* QFrame::Panel == 0x0003 */
+QFrame[frameShape="3"], /* QFrame::WinPanel == 0x0003 */
+QFrame[frameShape="4"], /* QFrame::HLine == 0x0004 */
+QFrame[frameShape="5"], /* QFrame::VLine == 0x0005 */
+QFrame[frameShape="6"] /* QFrame::StyledPanel == 0x0006 */
+{
+ border-width: 0.1ex;
+ padding: 0.1ex;
+ border-style: solid;
+ border-color: #EFF0F1;
+ background-color: #bcbfc2;
+ border-radius: 0.5ex;
+}
+
+QStackedWidget
+{
+ border: 0.1ex transparent black;
+}
+
+QToolBar
+{
+ border: 0.1ex transparent #393838;
+ background: 0.1ex solid #EFF0F1;
+ font-weight: bold;
+}
+
+QToolBar::handle:horizontal
+{
+ border-image: url(:/light/hmovetoolbar.svg);
+ width = 1.6ex;
+ height = 6.4ex;
+}
+
+QToolBar::handle:vertical
+{
+ border-image: url(:/light/vmovetoolbar.svg);
+ width = 5.4ex;
+ height = 1ex;
+}
+
+QToolBar::separator:horizontal
+{
+ border-image: url(:/light/hsepartoolbar.svg);
+ width = 0.7ex;
+ height = 6.3ex;
+}
+
+QToolBar::separator:vertical
+{
+ border-image: url(:/light/vsepartoolbars.svg);
+ width = 6.3ex;
+ height = 0.7ex;
+}
+
+QPushButton
+{
+ color: #31363B;
+ background-color: qlineargradient(x1: 0.5, y1: 0.5 x2: 0.5, y2: 1, stop: 0 #EFF0F1, stop: 0.5 #eaebec);
+ border-width: 0.1ex;
+ border-color: #BAB9B8;
+ border-style: solid;
+ padding: 0.5ex;
+ border-radius: 0.2ex;
+ outline: none;
+}
+
+QPushButton:disabled
+{
+ background-color: #e0e1e2;
+ border-width: 0.1ex;
+ border-color: #b4b4b4;
+ border-style: solid;
+ padding-top: 0.5ex;
+ padding-bottom: 0.5ex;
+ padding-left: 1ex;
+ padding-right: 1ex;
+ border-radius: 0.2ex;
+ color: #b4b4b4;
+}
+
+QPushButton:focus
+{
+ color: black;
+}
+
+QComboBox
+{
+ selection-background-color: #33A4DF;
+ border-style: solid;
+ border: 0.1ex solid #BAB9B8;
+ border-radius: 0.2ex;
+ padding: 0.5ex;
+ min-width: 7.5ex;
+}
+
+QPushButton:checked
+{
+ background-color: #BAB9B8;
+ border-color: #6A6969;
+}
+
+QComboBox:hover,
+QAbstractSpinBox:hover,
+QLineEdit:hover,
+QTextEdit:hover,
+QPlainTextEdit:hover,
+QAbstractView:hover,
+QTreeView:hover
+{
+ border: 0.1ex solid #33A4DF;
+ color: #31363B;
+}
+
+QComboBox:hover:pressed,
+QPushButton:hover:pressed,
+QAbstractSpinBox:hover:pressed,
+QLineEdit:hover:pressed,
+QTextEdit:hover:pressed,
+QPlainTextEdit:hover:pressed,
+QAbstractView:hover:pressed,
+QTreeView:hover:pressed
+{
+ background-color: #EFF0F1;
+}
+
+QComboBox:on
+{
+ padding-top: 0.3ex;
+ padding-left: 0.4ex;
+ selection-background-color: #4a4a4a;
+}
+
+QComboBox QAbstractItemView
+{
+ background-color: #FCFCFC;
+ border-radius: 0.2ex;
+ border: 0.1ex solid #BAB9B8;
+ selection-background-color: #33A4DF;
+}
+
+QComboBox::drop-down
+{
+ subcontrol-origin: padding;
+ subcontrol-position: top right;
+ width: 1.5ex;
+
+ border-left-width: 0ex;
+ border-left-color: darkgray;
+ border-left-style: solid;
+ border-top-right-radius: 0.3ex;
+ border-bottom-right-radius: 0.3ex;
+}
+
+QComboBox::down-arrow
+{
+ border-image: url(:/light/down_arrow_disabled.svg);
+ width: 0.9ex;
+ height: 0.6ex;
+}
+
+QComboBox::down-arrow:on,
+QComboBox::down-arrow:hover,
+QComboBox::down-arrow:focus
+{
+ border-image: url(:/light/down_arrow.svg);
+ width: 0.9ex;
+ height: 0.6ex;
+}
+
+QAbstractSpinBox
+{
+ padding: 0.5ex;
+ border: 0.1ex solid #BAB9B8;
+ background-color: #D9D8D7;
+ color: #31363B;
+ border-radius: 0.2ex;
+ min-width: 7.5ex;
+}
+
+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
+{
+ border-image: url(:/light/up_arrow_disabled.svg);
+ width: 0.9ex;
+ height: 0.6ex;
+}
+
+QAbstractSpinBox::up-arrow:hover
+{
+ border-image: url(:/light/up_arrow.svg);
+ width: 0.9ex;
+ height: 0.6ex;
+}
+
+QAbstractSpinBox::down-arrow,
+QAbstractSpinBox::down-arrow:disabled,
+QAbstractSpinBox::down-arrow:off
+{
+ border-image: url(:/light/down_arrow_disabled.svg);
+ width: 0.9ex;
+ height: 0.6ex;
+}
+
+QAbstractSpinBox::down-arrow:hover
+{
+ border-image: url(:/light/down_arrow.svg);
+ width: 0.9ex;
+ height: 0.6ex;
+}
+
+QLabel
+{
+ border: 0ex solid black;
+}
+
+QTabWidget{
+ border: 0.1ex solid #BAB9B8;
+}
+
+/* BORDERS */
+QTabWidget::pane
+{
+ padding: 0.5ex;
+ margin: 0.1ex;
+}
+
+QTabWidget::pane:top
+{
+ border: 0.1ex solid #BAB9B8;
+ top: -0.1ex;
+}
+
+QTabWidget::pane:bottom
+{
+ border: 0.1ex solid #BAB9B8;
+ bottom: -0.1ex;
+}
+
+QTabWidget::pane:left
+{
+ border: 0.1ex solid #BAB9B8;
+ right: -0.1ex;
+}
+
+QTabWidget::pane:right
+{
+ border: 0.1ex solid #BAB9B8;
+ left: -0.1ex;
+}
+
+QTabBar
+{
+ qproperty-drawBase: 0;
+ left: 0.5ex; /* move to the right by 0.5ex */
+ border-radius: 0.3ex;
+}
+
+QTabBar:focus
+{
+ border: 0ex transparent black;
+}
+
+QTabBar::close-button
+{
+ border-image: url(:/light/close.svg);
+ width: 1.2ex;
+ height: 1.2ex;
+ background: transparent;
+}
+
+QTabBar::close-button:hover
+{
+ border-image: url(:/light/close-hover.svg);
+ width: 1.2ex;
+ height: 1.2ex;
+ background: transparent;
+}
+
+QTabBar::close-button:pressed
+{
+ border-image: url(:/light/close-pressed.svg);
+ width: 1.2ex;
+ height: 1.2ex;
+ background: transparent;
+}
+
+/* TOP TABS */
+QTabBar::tab:top
+{
+ color: #31363B;
+ border: 0.1ex transparent black;
+ border-left: 0.1ex solid #BAB9B8;
+ border-top: 0.1ex solid #BAB9B8;
+ background-color: #EFF0F1;
+ padding: 0.5ex;
+ min-width: 5ex;
+ border-top-left-radius: 0.2ex;
+ border-top-right-radius: 0.2ex;
+}
+
+QTabBar::tab:top:last,
+QTabBar::tab:top:only-one
+{
+ color: #31363B;
+ border: 0.1ex transparent black;
+ border-left: 0.1ex solid #BAB9B8;
+ border-right: 0.1ex solid #BAB9B8;
+ border-top: 0.1ex solid #BAB9B8;
+ background-color: #EFF0F1;
+ padding: 0.5ex;
+ min-width: 5ex;
+ border-top-left-radius: 0.2ex;
+ border-top-right-radius: 0.2ex;
+}
+
+QTabBar::tab:top:!selected
+{
+ color: #31363B;
+ background-color: #D9D8D7;
+ border: 0.1ex transparent black;
+ border-left: 0.1ex solid #BAB9B8;
+ border-top-left-radius: 0.2ex;
+ border-top-right-radius: 0.2ex;
+}
+
+QTabBar::tab:top:first:!selected
+{
+ color: #31363B;
+ background-color: #D9D8D7;
+ border: 0.1ex transparent black;
+ border-top-left-radius: 0.2ex;
+ border-top-right-radius: 0.2ex;
+}
+
+QTabBar::tab:top:!selected:hover
+{
+ background-color: rgba(61, 173, 232, 0.1);
+ border: 0.1ex rgba(61, 173, 232, 0.1);
+ border-left: 0.1ex solid #BAB9B8;
+}
+
+QTabBar::tab:top:!selected:first:hover
+{
+ background-color: rgba(61, 173, 232, 0.1);
+ border: 0.1ex rgba(61, 173, 232, 0.1);
+}
+
+/* BOTTOM TABS */
+QTabBar::tab:bottom
+{
+ color: #31363B;
+ border: 0.1ex transparent black;
+ border-left: 0.1ex solid #BAB9B8;
+ border-bottom: 0.1ex solid #BAB9B8;
+ background-color: #EFF0F1;
+ padding: 0.5ex;
+ border-bottom-left-radius: 0.2ex;
+ border-bottom-right-radius: 0.2ex;
+ min-width: 5ex;
+}
+
+QTabBar::tab:bottom:last,
+QTabBar::tab:bottom:only-one
+{
+ color: #31363B;
+ border: 0.1ex transparent black;
+ border-left: 0.1ex solid #BAB9B8;
+ border-right: 0.1ex solid #BAB9B8;
+ border-bottom: 0.1ex solid #BAB9B8;
+ background-color: #EFF0F1;
+ padding: 0.5ex;
+ border-bottom-left-radius: 0.2ex;
+ border-bottom-right-radius: 0.2ex;
+ min-width: 5ex;
+}
+
+QTabBar::tab:bottom:!selected
+{
+ color: #31363B;
+ background-color: #D9D8D7;
+ border: 0.1ex transparent black;
+ border-left: 0.1ex solid #BAB9B8;
+ border-bottom-left-radius: 0.2ex;
+ border-bottom-right-radius: 0.2ex;
+}
+
+QTabBar::tab:bottom:first:!selected
+{
+ color: #31363B;
+ background-color: #D9D8D7;
+ border: 0.1ex transparent black;
+ border-bottom-left-radius: 0.2ex;
+ border-bottom-right-radius: 0.2ex;
+}
+
+QTabBar::tab:bottom:!selected:hover
+{
+ background-color: rgba(61, 173, 232, 0.1);
+ border: 0.1ex rgba(61, 173, 232, 0.1);
+ border-left: 0.1ex solid #BAB9B8;
+}
+
+QTabBar::tab:bottom:!selected:first:hover
+{
+ background-color: rgba(61, 173, 232, 0.1);
+ border: 0.1ex rgba(61, 173, 232, 0.1);
+}
+
+/* LEFT TABS */
+QTabBar::tab:left
+{
+ color: #31363B;
+ border: 0.1ex transparent black;
+ border-top: 0.1ex solid #BAB9B8;
+ border-right: 0.1ex solid #BAB9B8;
+ background-color: #EFF0F1;
+ padding: 0.5ex;
+ border-top-right-radius: 0.2ex;
+ border-bottom-right-radius: 0.2ex;
+ min-height: 5ex;
+}
+
+QTabBar::tab:left:last,
+QTabBar::tab:left:only-one
+{
+ color: #31363B;
+ border: 0.1ex transparent black;
+ border-top: 0.1ex solid #BAB9B8;
+ border-bottom: 0.1ex solid #BAB9B8;
+ border-right: 0.1ex solid #BAB9B8;
+ background-color: #EFF0F1;
+ padding: 0.5ex;
+ border-top-right-radius: 0.2ex;
+ border-bottom-right-radius: 0.2ex;
+ min-height: 5ex;
+}
+
+QTabBar::tab:left:!selected
+{
+ color: #31363B;
+ background-color: #D9D8D7;
+ border: 0.1ex transparent black;
+ border-top: 0.1ex solid #BAB9B8;
+ border-top-right-radius: 0.2ex;
+ border-bottom-right-radius: 0.2ex;
+}
+
+QTabBar::tab:left:!selected:hover
+{
+ background-color: rgba(61, 173, 232, 0.1);
+ border: 0.1ex rgba(61, 173, 232, 0.1);
+ border-top: 0.1ex solid #BAB9B8;
+}
+
+QTabBar::tab:left:!selected:first:hover
+{
+ background-color: rgba(61, 173, 232, 0.1);
+ border: 0.1ex rgba(61, 173, 232, 0.1);
+}
+
+/* RIGHT TABS */
+QTabBar::tab:right
+{
+ color: #31363B;
+ border: 0.1ex transparent black;
+ border-top: 0.1ex solid #BAB9B8;
+ border-left: 0.1ex solid #BAB9B8;
+ background-color: #D9D8D7;
+ padding: 0.5ex;
+ border-top-left-radius: 0.2ex;
+ border-bottom-left-radius: 0.2ex;
+ min-height: 5ex;
+}
+
+QTabBar::tab:right:last,
+QTabBar::tab:right:only-one
+{
+ color: #31363B;
+ border: 0.1ex transparent black;
+ border-top: 0.1ex solid #BAB9B8;
+ border-bottom: 0.1ex solid #BAB9B8;
+ border-left: 0.1ex solid #BAB9B8;
+ background-color: #D9D8D7;
+ padding: 0.5ex;
+ border-top-left-radius: 0.2ex;
+ border-bottom-left-radius: 0.2ex;
+ min-height: 5ex;
+}
+
+QTabBar::tab:right:!selected
+{
+ color: #31363B;
+ background-color: #54575B;
+ border: 0.1ex transparent black;
+ border-top: 0.1ex solid #BAB9B8;
+ border-top-left-radius: 0.2ex;
+ border-bottom-left-radius: 0.2ex;
+}
+
+QTabBar::tab:right:!selected:hover
+{
+ background-color: rgba(61, 173, 232, 0.1);
+ border: 0.1ex rgba(61, 173, 232, 0.1);
+ border-top: 0.1ex solid #BAB9B8;
+}
+
+QTabBar::tab:right:!selected:first:hover
+{
+ background-color: rgba(61, 173, 232, 0.1);
+ border: 0.1ex rgba(61, 173, 232, 0.1);
+}
+
+QTabBar QToolButton::right-arrow:enabled
+{
+ border-image: url(:/light/right_arrow.svg);
+}
+
+QTabBar QToolButton::left-arrow:enabled
+{
+ border-image: url(:/light/left_arrow.svg);
+}
+
+QTabBar QToolButton::right-arrow:disabled
+{
+ border-image: url(:/light/right_arrow_disabled.svg);
+}
+
+QTabBar QToolButton::left-arrow:disabled
+{
+ border-image: url(:/light/left_arrow_disabled.svg);
+}
+
+QDockWidget
+{
+ background: #EFF0F1;
+ border: 0.1ex solid #403F3F;
+ titlebar-close-icon: url(:/light/transparent.svg);
+ titlebar-normal-icon: url(:/light/transparent.svg);
+}
+
+QDockWidget::close-button,
+QDockWidget::float-button
+{
+ border: 0.1ex solid transparent;
+ border-radius: 0.2ex;
+ background: transparent;
+}
+
+
+QDockWidget::float-button
+{
+ border-image: url(:/dark/undock.svg);
+}
+
+QDockWidget::float-button:hover
+{
+ border-image: url(:/dark/undock-hover.svg) ;
+}
+
+QDockWidget::close-button
+{
+ border-image: url(:/dark/close.svg) ;
+}
+
+QDockWidget::close-button:hover
+{
+ border-image: url(:/dark/close-hover.svg) ;
+}
+
+QDockWidget::close-button:pressed
+{
+ border-image: url(:/dark/close-pressed.svg) ;
+}
+
+QTreeView,
+QListView
+{
+ border: 0.1ex solid #BAB9B8;
+ background-color: #FCFCFC;
+}
+
+
+QTreeView::branch:has-siblings:!adjoins-item
+{
+ border-image: url(:/light/stylesheet-vline.svg) 0;
+}
+
+QTreeView::branch:has-siblings:adjoins-item
+{
+ border-image: url(:/light/stylesheet-branch-more.svg) 0;
+}
+
+QTreeView::branch:!has-children:!has-siblings:adjoins-item
+{
+ border-image: url(:/light/stylesheet-branch-end.svg) 0;
+}
+
+QTreeView::branch:has-children:!has-siblings:closed,
+QTreeView::branch:closed:has-children:has-siblings
+{
+ border-image: url(:/light/stylesheet-branch-end-closed.svg) 0;
+ image: url(:/light/branch_closed.svg);
+}
+
+QTreeView::branch:open:has-children:!has-siblings,
+QTreeView::branch:open:has-children:has-siblings
+{
+ border-image: url(:/light/stylesheet-branch-end-open.svg) 0;
+ image: url(:/light/branch_open.svg);
+}
+
+QTableView::item,
+QListView::item,
+QTreeView::item
+{
+ padding: 0.3ex;
+}
+
+QTableView::item:!selected:hover,
+QListView::item:!selected:hover,
+QTreeView::item:!selected:hover
+{
+ background-color: rgba(61, 173, 232, 0.1);
+ outline: 0;
+ color: #31363B;
+ padding: 0.3ex;
+}
+
+QSlider::groove:horizontal
+{
+ border: 0.1ex solid #EFF0F1;
+ height: 0.4ex;
+ background: #9CA0A4;
+ margin: 0px;
+ border-radius: 0.2ex;
+}
+
+QSlider::handle:horizontal
+{
+ background: #D9D8D7;
+ border: 0.1ex solid #BABEC2;
+ width: 1.6ex;
+ height: 1.6ex;
+ margin: -0.8ex 0;
+ border-radius: 0.9ex;
+}
+
+QSlider::groove:vertical
+{
+ border: 0.1ex solid #EFF0F1;
+ width: 0.4ex;
+ background: #9CA0A4;
+ margin: 0ex;
+ border-radius: 0.3ex;
+}
+
+QSlider::handle:vertical
+{
+ background: #D9D8D7;
+ border: 0.1ex solid #BABEC2;
+ width: 1.6ex;
+ height: 1.6ex;
+ margin: 0 -0.8ex;
+ border-radius: 0.9ex;
+}
+
+QSlider::handle:horizontal:focus,
+QSlider::handle:vertical:focus
+{
+ border: 0.1ex solid #33A4DF;
+}
+
+QSlider::handle:horizontal:hover,
+QSlider::handle:vertical:hover
+{
+ border: 0.1ex solid #51c2fc;
+}
+
+QSlider::sub-page:horizontal,
+QSlider::add-page:vertical
+{
+ background: #33A4DF;
+ border-radius: 0.3ex;
+}
+
+QSlider::add-page:horizontal,
+QSlider::sub-page:vertical
+{
+ background: #BABEC2;
+ border-radius: 0.3ex;
+}
+
+QToolButton
+{
+ background-color: transparent;
+ border: 0.1ex solid #BAB9B8;
+ border-radius: 0.2ex;
+ margin: 0.3ex;
+ padding: 0.5ex;
+}
+
+QToolButton[popupMode="1"] /* only for MenuButtonPopup */
+{
+ padding-right: 2ex; /* make way for the popup button */
+}
+
+QToolButton[popupMode="2"] /* only for InstantPopup */
+{
+ padding-right: 1ex; /* make way for the popup button */
+}
+
+QToolButton::menu-indicator
+{
+ border-image: url(:/light/down_arrow.svg);
+ top: -0.7ex; left: -0.2ex; /* shift it a bit */
+ width = 0.9ex;
+ height = 0.6ex;
+}
+
+QToolButton::menu-arrow
+{
+ border-image: url(:/light/down_arrow.svg);
+ width = 0.9ex;
+ height = 0.6ex;
+}
+
+QToolButton:hover,
+QToolButton::menu-button:hover
+{
+ background-color: transparent;
+ border: 0.1ex solid #33A4DF;
+}
+
+QToolButton:checked,
+QToolButton:pressed,
+QToolButton::menu-button:pressed
+{
+ background-color: #47b8fc;
+ border: 0.1ex solid #47b8fc;
+ padding: 0.5ex;
+}
+
+QToolButton::menu-button
+{
+ border: 0.1ex solid #BAB9B8;
+ border-top-right-radius: 6px;
+ border-bottom-right-radius: 6px;
+ /* 1ex width + 0.4ex for border + no text = 2ex allocated above */
+ width: 1ex;
+ padding: 0.5ex;
+ outline: none;
+}
+
+QToolButton::menu-arrow:open
+{
+ border: 0.1ex solid #BAB9B8;
+}
+
+QPushButton::menu-indicator
+{
+ subcontrol-origin: padding;
+ subcontrol-position: bottom right;
+ left: 0.8ex;
+}
+
+QTableView
+{
+ border: 0.1ex solid #BAB9B8;
+ gridline-color: #BAB9B8;
+ background-color: #FCFCFC;
+}
+
+
+QTableView,
+QHeaderView
+{
+ border-radius: 0px;
+}
+
+QTableView::item:pressed
+{
+ background: #33A4DF;
+ color: #31363B;
+}
+
+QTableView::item:selected:active
+{
+ background: #33A4DF;
+ color: #31363B;
+}
+
+QTableView::item:selected:hover
+{
+ background-color: #47b8f3;
+ color: #31363B;
+}
+
+QListView::item:pressed,
+QTreeView::item:pressed
+{
+ background: #3daee9;
+ color: #31363B;
+}
+
+QTreeView::item:selected:active,
+QListView::item:selected:active
+{
+ background: #3daee9;
+ color: #31363B;
+}
+
+QListView::item:selected:hover,
+QTreeView::item:selected:hover
+{
+ background-color: #51c2fc;
+ color: #31363B;
+}
+
+
+QHeaderView
+{
+ background-color: #EFF0F1;
+ border: 0.1ex transparent;
+ border-radius: 0px;
+ margin: 0px;
+ padding: 0px;
+
+}
+
+QHeaderView::section
+{
+ background-color: #EFF0F1;
+ color: #31363B;
+ padding: 0.5ex;
+ border: 0.1ex solid #BAB9B8;
+ border-radius: 0px;
+ text-align: center;
+}
+
+QHeaderView::section::vertical::first,
+QHeaderView::section::vertical::only-one
+{
+ border-top: 0.1ex solid #BAB9B8;
+}
+
+QHeaderView::section::vertical
+{
+ border-top: transparent;
+}
+
+QHeaderView::section::horizontal::first, QHeaderView::section::horizontal::only-one
+{
+ border-left: 0.1ex solid #BAB9B8;
+}
+
+QHeaderView::section::horizontal
+{
+ border-left: transparent;
+}
+
+
+QHeaderView::section:checked
+
+ {
+ color: black;
+ background-color: #b9dae7;
+ }
+
+ /* style the sort indicator */
+QHeaderView::down-arrow
+{
+ image: url(:/light/down_arrow.svg);
+}
+
+QHeaderView::up-arrow
+{
+ image: url(:/light/up_arrow.svg);
+}
+
+QTableCornerButton::section
+{
+ background-color: #EFF0F1;
+ border: 0.1ex transparent #BAB9B8;
+ border-radius: 0px;
+}
+
+QToolBox
+{
+ padding: 0.5ex;
+ border: 0.1ex transparent black;
+}
+
+QToolBox:selected
+{
+ background-color: #EFF0F1;
+ border-color: #33A4DF;
+}
+
+QToolBox:hover
+{
+ border-color: #33A4DF;
+}
+
+QStatusBar::item
+{
+ border: 0px transparent dark;
+}
+
+QSplitter::handle
+{
+ border: 0.1ex dashed #BAB9B8;
+}
+
+QSplitter::handle:hover
+{
+ background-color: #787876;
+ border: 0.1ex solid #BAB9B8;
+}
+
+QSplitter::handle:horizontal
+{
+ width: 0.1ex;
+}
+
+QSplitter::handle:vertical
+{
+ height: 0.1ex;
+}
+
+QProgressBar:horizontal
+{
+ background-color: #BABEC2;
+ border: 0.1ex solid #EFF0F1;
+ border-radius: 0.3ex;
+ height: 0.5ex;
+ text-align: right;
+ margin-top: 0.5ex;
+ margin-bottom: 0.5ex;
+ margin-right: 5ex;
+ padding: 0px;
+}
+
+QProgressBar::chunk:horizontal
+{
+ background-color: #33A4DF;
+ border: 0.1ex transparent;
+ border-radius: 0.3ex;
+}
+
+QAbstractSpinBox
+{
+ background-color: #EFF0F1;
+}
+
+QSpinBox,
+QDoubleSpinBox
+{
+ padding-right: 1.5ex;
+}
+
+QSpinBox::up-button,
+QDoubleSpinBox::up-button
+{
+ subcontrol-origin: content;
+ subcontrol-position: right top;
+
+ width: 1.6ex;
+ border-width: 0.1ex;
+}
+
+QSpinBox::up-arrow,
+QDoubleSpinBox::up-arrow
+{
+ border-image: url(:/light/up_arrow.svg);
+ width: 0.9ex;
+ height: 0.6ex;
+}
+
+QSpinBox::up-arrow:hover,
+QSpinBox::up-arrow:pressed,
+QDoubleSpinBox::up-arrow:hover,
+QDoubleSpinBox::up-arrow:pressed
+{
+ border-image: url(:/light/up_arrow-hover.svg);
+ width: 0.9ex;
+ height: 0.6ex;
+}
+
+QSpinBox::up-arrow:disabled,
+QSpinBox::up-arrow:off,
+QDoubleSpinBox::up-arrow:disabled,
+QDoubleSpinBox::up-arrow:off
+{
+ border-image: url(:/light/up_arrow_disabled.svg);
+}
+
+QSpinBox::down-button,
+QDoubleSpinBox::down-button
+{
+ subcontrol-origin: content;
+ subcontrol-position: right bottom;
+
+ width: 1.6ex;
+ border-width: 0.1ex;
+}
+
+QSpinBox::down-arrow,
+QDoubleSpinBox::down-arrow
+{
+ border-image: url(:/light/down_arrow.svg);
+ width: 0.9ex;
+ height: 0.6ex;
+}
+
+QSpinBox::down-arrow:hover,
+QSpinBox::down-arrow:pressed,
+QDoubleSpinBox::down-arrow:hover,
+QDoubleSpinBox::down-arrow:pressed
+{
+ border-image: url(:/light/down_arrow-hover.svg);
+ width: 0.9ex;
+ height: 0.6ex;
+}
+
+QSpinBox::down-arrow:disabled,
+QSpinBox::down-arrow:off,
+QDoubleSpinBox::down-arrow:disabled,
+QDoubleSpinBox::down-arrow:off
+{
+ border-image: url(:/light/down_arrow_disabled.svg);
+}
+
+QPushButton:hover
+{
+ border: 0.1ex solid #3daef3;
+ color: #31363B;
+}
+
+QPushButton:focus
+{
+ background-color: qlineargradient(x1: 0.5, y1: 0.5 x2: 0.5, y2: 1, stop: 0 #4cbdff, stop: 0.5 #33a4e8);
+ color: white;
+}
+
+QPushButton:focus:hover
+{
+ background-color: qlineargradient(x1: 0.5, y1: 0.5 x2: 0.5, y2: 1, stop: 0 #bedfec, stop: 0.5 #b9dae7);
+ color: #31363B;
+}
+
+QPushButton:focus:pressed,
+QPushButton:pressed
+{
+ background-color: qlineargradient(x1: 0.5, y1: 0.5 x2: 0.5, y2: 1, stop: 0 #bedfec, stop: 0.5 #b9dae7);
+ color: #31363B;
+}
+
diff --git a/runtime/light/branch_closed-on.svg b/runtime/light/branch_closed-on.svg
new file mode 100644
index 000000000..23c542188
--- /dev/null
+++ b/runtime/light/branch_closed-on.svg
@@ -0,0 +1,3 @@
+<svg width="6" height="9">
+ <path fill="#000" fill-rule="evenodd" d="M1,8V1L5,4.5Z"/>
+</svg>
diff --git a/runtime/light/branch_closed.svg b/runtime/light/branch_closed.svg
new file mode 100644
index 000000000..286c1a9e9
--- /dev/null
+++ b/runtime/light/branch_closed.svg
@@ -0,0 +1,3 @@
+<svg width="12" height="18">
+ <path fill="#4b4b4b" d="M5,12V6L9,9Z"/>
+</svg>
diff --git a/runtime/light/branch_open-on.svg b/runtime/light/branch_open-on.svg
new file mode 100644
index 000000000..9e759272b
--- /dev/null
+++ b/runtime/light/branch_open-on.svg
@@ -0,0 +1,3 @@
+<svg width="9" height="6">
+ <path fill="#000" d="M1,1H8L4.5,5Z"/>
+</svg>
diff --git a/runtime/light/branch_open.svg b/runtime/light/branch_open.svg
new file mode 100644
index 000000000..514a3125d
--- /dev/null
+++ b/runtime/light/branch_open.svg
@@ -0,0 +1,3 @@
+<svg width="18" height="12">
+ <path fill="#4b4b4b" d="M5.5,3H12.5L9,9Z"/>
+</svg>
diff --git a/runtime/light/checkbox_checked-hover.svg b/runtime/light/checkbox_checked-hover.svg
new file mode 100644
index 000000000..64d666710
--- /dev/null
+++ b/runtime/light/checkbox_checked-hover.svg
@@ -0,0 +1,5 @@
+<svg x="0px" y="0px" width="18px" height="18px" viewBox="0 0 18 18" enable-background="new 0 0 18 18" xml:space="preserve">
+ <path d="M2,2 h14 v14 h-0.9 v-13.1 h-13.1 z" fill="#51c2fc"/>
+ <path d="M16,16 h-14 v-14 h0.9 v13.1 h13.1 z" fill="#51c2fc"/>
+ <path d="M5,5 h8 v8 h-8 v-8 z" fill="#51c2fc" fill-rule="evenodd"/>
+</svg>
diff --git a/runtime/light/checkbox_checked.svg b/runtime/light/checkbox_checked.svg
new file mode 100644
index 000000000..f3acb639c
--- /dev/null
+++ b/runtime/light/checkbox_checked.svg
@@ -0,0 +1,5 @@
+<svg x="0px" y="0px" width="18px" height="18px" viewBox="0 0 18 18" enable-background="new 0 0 18 18" xml:space="preserve">
+ <path d="M2,2 h14 v14 h-0.9 v-13.1 h-13.1 z" fill="#3daee9"/>
+ <path d="M16,16 h-14 v-14 h0.9 v13.1 h13.1 z" fill="#3daee9"/>
+ <path d="M5,5 h8 v8 h-8 v-8 z" fill="#3daee9" fill-rule="evenodd"/>
+</svg>
diff --git a/runtime/light/checkbox_checked_disabled.svg b/runtime/light/checkbox_checked_disabled.svg
new file mode 100644
index 000000000..b7be04b6a
--- /dev/null
+++ b/runtime/light/checkbox_checked_disabled.svg
@@ -0,0 +1,5 @@
+<svg x="0px" y="0px" width="18px" height="18px" viewBox="0 0 18 18" enable-background="new 0 0 18 18" xml:space="preserve">
+ <path d="M2,2 h14 v14 h-0.9 v-13.1 h-13.1 z" fill="#31363B"/>
+ <path d="M16,16 h-14 v-14 h0.9 v13.1 h13.1 z" fill="#31363B"/>
+ <path d="M5,5 h8 v8 h-8 v-8 z" fill="#31363B" fill-rule="evenodd"/>
+</svg>
diff --git a/runtime/light/checkbox_indeterminate-hover.svg b/runtime/light/checkbox_indeterminate-hover.svg
new file mode 100644
index 000000000..def959679
--- /dev/null
+++ b/runtime/light/checkbox_indeterminate-hover.svg
@@ -0,0 +1,7 @@
+<svg x="0px" y="0px" width="18px" height="18px" viewBox="0 0 18 18" enable-background="new 0 0 18 18" xml:space="preserve">
+ <path d="M2,2 h14 v14 h-0.9 v-13.1 h-13.1 z" fill="#51c2fc"/>
+ <path d="M16,16 h-14 v-14 h0.9 v13.1 h13.1 z" fill="#51c2fc"/>
+ <path d="M5,5 h8 v8 h-0.9 v-7.1 h-7.1 z" fill="#51c2fc" fill-rule="evenodd"/>
+ <path d="M13,13 h-8 v-8 h0.9 v7.1 h7.1 z" fill="#51c2fc" fill-rule="evenodd"/>
+ <path d="M13,5 L 5,13 v-8 h8 z" fill="#51c2fc" fill-rule="evenodd"/>
+</svg>
diff --git a/runtime/light/checkbox_indeterminate.svg b/runtime/light/checkbox_indeterminate.svg
new file mode 100644
index 000000000..a619ab03e
--- /dev/null
+++ b/runtime/light/checkbox_indeterminate.svg
@@ -0,0 +1,7 @@
+<svg x="0px" y="0px" width="18px" height="18px" viewBox="0 0 18 18" enable-background="new 0 0 18 18" xml:space="preserve">
+ <path d="M2,2 h14 v14 h-0.9 v-13.1 h-13.1 z" fill="#3daee9"/>
+ <path d="M16,16 h-14 v-14 h0.9 v13.1 h13.1 z" fill="#3daee9"/>
+ <path d="M5,5 h8 v8 h-0.9 v-7.1 h-7.1 z" fill="#3daee9" fill-rule="evenodd"/>
+ <path d="M13,13 h-8 v-8 h0.9 v7.1 h7.1 z" fill="#3daee9" fill-rule="evenodd"/>
+ <path d="M13,5 L 5,13 v-8 h8 z" fill="#3daee9" fill-rule="evenodd"/>
+</svg>
diff --git a/runtime/light/checkbox_indeterminate_disabled.svg b/runtime/light/checkbox_indeterminate_disabled.svg
new file mode 100644
index 000000000..74d716860
--- /dev/null
+++ b/runtime/light/checkbox_indeterminate_disabled.svg
@@ -0,0 +1,7 @@
+<svg x="0px" y="0px" width="18px" height="18px" viewBox="0 0 18 18" enable-background="new 0 0 18 18" xml:space="preserve">
+ <path d="M2,2 h14 v14 h-0.9 v-13.1 h-13.1 z" fill="#31363B"/>
+ <path d="M16,16 h-14 v-14 h0.9 v13.1 h13.1 z" fill="#31363B"/>
+ <path d="M5,5 h8 v8 h-0.9 v-7.1 h-7.1 z" fill="#31363B" fill-rule="evenodd"/>
+ <path d="M13,13 h-8 v-8 h0.9 v7.1 h7.1 z" fill="#31363B" fill-rule="evenodd"/>
+ <path d="M13,5 L 5,13 v-8 h8 z" fill="#31363B" fill-rule="evenodd"/>
+</svg>
diff --git a/runtime/light/checkbox_unchecked-hover.svg b/runtime/light/checkbox_unchecked-hover.svg
new file mode 100644
index 000000000..8f0bb0145
--- /dev/null
+++ b/runtime/light/checkbox_unchecked-hover.svg
@@ -0,0 +1,4 @@
+<svg x="0px" y="0px" width="18px" height="18px" viewBox="0 0 18 18" enable-background="new 0 0 18 18" xml:space="preserve">
+ <path d="M2,2 h14 v14 h-0.9 v-13.1 h-13.1 z" fill="#51c2fc"/>
+ <path d="M16,16 h-14 v-14 h0.9 v13.1 h13.1 z" fill="#51c2fc"/>
+</svg>
diff --git a/runtime/light/checkbox_unchecked_disabled.svg b/runtime/light/checkbox_unchecked_disabled.svg
new file mode 100644
index 000000000..0ef430079
--- /dev/null
+++ b/runtime/light/checkbox_unchecked_disabled.svg
@@ -0,0 +1,4 @@
+<svg x="0px" y="0px" width="18px" height="18px" viewBox="0 0 18 18" enable-background="new 0 0 18 18" xml:space="preserve">
+ <path d="M2,2 h14 v14 h-0.9 v-13.1 h-13.1 z" fill="#31363B"/>
+ <path d="M16,16 h-14 v-14 h0.9 v13.1 h13.1 z" fill="#31363B"/>
+</svg>
diff --git a/runtime/light/close-hover.svg b/runtime/light/close-hover.svg
new file mode 100644
index 000000000..cb44c7811
--- /dev/null
+++ b/runtime/light/close-hover.svg
@@ -0,0 +1,3 @@
+<svg width="1200" height="1200">
+ <path d="M 600,1050 C 351.472,1050 150,848.528 150,600 150,351.472 351.472,150 600,150 c 248.528,0 450,201.472 450,450 0,248.528 -201.472,450 -450,450 z M 888.462,827.851 661.974,601.122 l 0,-2.244 226.488,-226.729 0,-60.611 -60.848,0 Q 727.339,411.986 627.043,512.451 613.524,525.358 600,538.267 l -226.487,-226.729 -61.975,0 0,60.611 L 538.026,600 311.538,826.729 l 0,61.733 60.848,0 q 34.363,-34.792 68.735,-69.59 L 600,661.733 l 226.487,226.729 61.975,0 0,-60.611 z" fill="#dc7676"/>
+</svg>
diff --git a/runtime/light/close-pressed.svg b/runtime/light/close-pressed.svg
new file mode 100644
index 000000000..a0dc2496f
--- /dev/null
+++ b/runtime/light/close-pressed.svg
@@ -0,0 +1,3 @@
+<svg width="1200" height="1200">
+ <path d="M 600,1050 C 351.472,1050 150,848.528 150,600 150,351.472 351.472,150 600,150 c 248.528,0 450,201.472 450,450 0,248.528 -201.472,450 -450,450 z M 888.462,827.851 661.974,601.122 l 0,-2.244 226.488,-226.729 0,-60.611 -60.848,0 Q 727.339,411.986 627.043,512.451 613.524,525.358 600,538.267 l -226.487,-226.729 -61.975,0 0,60.611 L 538.026,600 311.538,826.729 l 0,61.733 60.848,0 q 34.363,-34.792 68.735,-69.59 L 600,661.733 l 226.487,226.729 61.975,0 0,-60.611 z" fill="#b33e3e"/>
+</svg>
diff --git a/runtime/light/close.svg b/runtime/light/close.svg
new file mode 100644
index 000000000..07b50c9e3
--- /dev/null
+++ b/runtime/light/close.svg
@@ -0,0 +1,3 @@
+<svg width="1200" height="1200">
+ <path d="M 600,1050 C 351.472,1050 150,848.528 150,600 150,351.472 351.472,150 600,150 c 248.528,0 450,201.472 450,450 0,248.528 -201.472,450 -450,450 z M 888.462,827.851 661.974,601.122 l 0,-2.244 226.488,-226.729 0,-60.611 -60.848,0 Q 727.339,411.986 627.043,512.451 613.524,525.358 600,538.267 l -226.487,-226.729 -61.975,0 0,60.611 L 538.026,600 311.538,826.729 l 0,61.733 60.848,0 q 34.363,-34.792 68.735,-69.59 L 600,661.733 l 226.487,226.729 61.975,0 0,-60.611 z" fill="#626568"/>
+</svg>
diff --git a/runtime/light/down_arrow-hover.svg b/runtime/light/down_arrow-hover.svg
new file mode 100644
index 000000000..408397f95
--- /dev/null
+++ b/runtime/light/down_arrow-hover.svg
@@ -0,0 +1,3 @@
+<svg x="0px" y="0px" width="9px" height="6px" viewBox="0 0 9 6" enable-background="new 0 0 9 6" xml:space="preserve">
+ <path d="M 1.1894592,0.91769718 4.5,4.2280182 7.8105408,0.91627648 c 0.1577125,-0.157702 0.4134624,-0.157702 0.5711749,0 0.1577124,0.15770202 0.1577124,0.41343492 0,0.57113692 l -3.5961283,3.5973102 0,0 0,0 c -0.1577124,0.1577019 -0.4134624,0.1577019 -0.5711748,0 L 0.6182843,1.4874134 c -0.1577124,-0.157702 -0.1577124,-0.4134349 0,-0.57113692 0.1577125,-0.15628131 0.4134624,-0.15628131 0.5711749,0.00142 z" fill="#3daee9"/>
+</svg>
diff --git a/runtime/light/down_arrow.svg b/runtime/light/down_arrow.svg
new file mode 100644
index 000000000..34c5d6a31
--- /dev/null
+++ b/runtime/light/down_arrow.svg
@@ -0,0 +1,3 @@
+<svg x="0px" y="0px" width="9px" height="6px" viewBox="0 0 9 6" enable-background="new 0 0 9 6" xml:space="preserve">
+ <path d="M 1.1894592,0.91769718 4.5,4.2280182 7.8105408,0.91627648 c 0.1577125,-0.157702 0.4134624,-0.157702 0.5711749,0 0.1577124,0.15770202 0.1577124,0.41343492 0,0.57113692 l -3.5961283,3.5973102 0,0 0,0 c -0.1577124,0.1577019 -0.4134624,0.1577019 -0.5711748,0 L 0.6182843,1.4874134 c -0.1577124,-0.157702 -0.1577124,-0.4134349 0,-0.57113692 0.1577125,-0.15628131 0.4134624,-0.15628131 0.5711749,0.00142 z" fill="#31363B"/>
+</svg>
diff --git a/runtime/light/down_arrow_disabled.svg b/runtime/light/down_arrow_disabled.svg
new file mode 100644
index 000000000..af74a3075
--- /dev/null
+++ b/runtime/light/down_arrow_disabled.svg
@@ -0,0 +1,3 @@
+<svg x="0px" y="0px" width="9px" height="6px" viewBox="0 0 9 6" enable-background="new 0 0 9 6" xml:space="preserve">
+ <path d="M 1.1894592,0.91769718 4.5,4.2280182 7.8105408,0.91627648 c 0.1577125,-0.157702 0.4134624,-0.157702 0.5711749,0 0.1577124,0.15770202 0.1577124,0.41343492 0,0.57113692 l -3.5961283,3.5973102 0,0 0,0 c -0.1577124,0.1577019 -0.4134624,0.1577019 -0.5711748,0 L 0.6182843,1.4874134 c -0.1577124,-0.157702 -0.1577124,-0.4134349 0,-0.57113692 0.1577125,-0.15628131 0.4134624,-0.15628131 0.5711749,0.00142 z" fill="#b0b0b0"/>
+</svg>
diff --git a/runtime/light/hmovetoolbar.svg b/runtime/light/hmovetoolbar.svg
new file mode 100644
index 000000000..57e54c95a
--- /dev/null
+++ b/runtime/light/hmovetoolbar.svg
@@ -0,0 +1,5 @@
+<svg x="0px" y="0px" width="16px" height="64px" viewBox="0 0 16 64" enable-background="new 0 0 16 64" xml:space="preserve">
+ <rect fill="#76797c" x="2" y="1" width="1" height="62.5"/>
+ <rect fill="#76797c" x="9" y="1" width="1" height="62.5"/>
+</svg>
+
diff --git a/runtime/light/hsepartoolbar.svg b/runtime/light/hsepartoolbar.svg
new file mode 100644
index 000000000..a44642539
--- /dev/null
+++ b/runtime/light/hsepartoolbar.svg
@@ -0,0 +1,3 @@
+<svg x="0px" y="0px" width="7px" height="63px" viewBox="0 0 7 63" enable-background="new 0 0 7 63" xml:space="preserve">
+ <rect fill="#76797c" x="2" y="13" width="1" height="37"/>
+</svg>
diff --git a/runtime/light/left_arrow.svg b/runtime/light/left_arrow.svg
new file mode 100644
index 000000000..f77acf4cf
--- /dev/null
+++ b/runtime/light/left_arrow.svg
@@ -0,0 +1,3 @@
+<svg x="0px" y="0px" width="6px" height="9px" viewBox="0 0 6 9" enable-background="new 0 0 6 9" xml:space="preserve">
+ <path d="m 5.0823028,1.1894593 -3.310321,3.3105408 3.3117417,3.3105408 c 0.157702,0.1577125 0.157702,0.4134624 0,0.5711749 -0.157702,0.1577123 -0.4134349,0.1577123 -0.5711369,0 l -3.59731017,-3.5961283 0,0 0,0 c -0.15770191,-0.1577124 -0.15770191,-0.4134624 0,-0.5711748 L 4.5125866,0.61828437 c 0.157702,-0.1577124 0.4134349,-0.1577124 0.5711369,0 0.1562813,0.1577125 0.1562813,0.41346243 -0.00142,0.57117493 z" fill="#31363B"/>
+</svg>
diff --git a/runtime/light/left_arrow_disabled.svg b/runtime/light/left_arrow_disabled.svg
new file mode 100644
index 000000000..2d749e725
--- /dev/null
+++ b/runtime/light/left_arrow_disabled.svg
@@ -0,0 +1,3 @@
+<svg x="0px" y="0px" width="6px" height="9px" viewBox="0 0 6 9" enable-background="new 0 0 6 9" xml:space="preserve">
+ <path d="m 5.0823028,1.1894593 -3.310321,3.3105408 3.3117417,3.3105408 c 0.157702,0.1577125 0.157702,0.4134624 0,0.5711749 -0.157702,0.1577123 -0.4134349,0.1577123 -0.5711369,0 l -3.59731017,-3.5961283 0,0 0,0 c -0.15770191,-0.1577124 -0.15770191,-0.4134624 0,-0.5711748 L 4.5125866,0.61828437 c 0.157702,-0.1577124 0.4134349,-0.1577124 0.5711369,0 0.1562813,0.1577125 0.1562813,0.41346243 -0.00142,0.57117493 z" fill="#b0b0b0"/>
+</svg>
diff --git a/runtime/light/radio_checked-hover.svg b/runtime/light/radio_checked-hover.svg
new file mode 100644
index 000000000..f3d5c9899
--- /dev/null
+++ b/runtime/light/radio_checked-hover.svg
@@ -0,0 +1,5 @@
+<svg x="0px" y="0px" width="20px" height="20px" viewBox="0 0 20 20" enable-background="new 0 0 20 20" xml:space="preserve">
+ <path d="M1,10a9,9 0 1,0 18,0 h-0.9 a8.1,8.1 0 1,1 -16.2,0 h-0.9" fill="#51c2fc" fill-rule="evenodd"/>
+ <path d="M1,10a9,9 0 1,1 18,0 h-0.9 a8.1,8.1 0 1,0 -16.2,0 h-0.9" fill="#51c2fc" fill-rule="evenodd"/>
+ <path d="M4,10a6,6 0 1,0 12,0a6,6 0 1,0 -12,0" fill="#51c2fc" fill-rule="evenodd"/>
+</svg>
diff --git a/runtime/light/radio_checked.svg b/runtime/light/radio_checked.svg
new file mode 100644
index 000000000..86ff6bfac
--- /dev/null
+++ b/runtime/light/radio_checked.svg
@@ -0,0 +1,5 @@
+<svg x="0px" y="0px" width="20px" height="20px" viewBox="0 0 20 20" enable-background="new 0 0 20 20" xml:space="preserve">
+ <path d="M1,10a9,9 0 1,0 18,0 h-0.9 a8.1,8.1 0 1,1 -16.2,0 h-0.9" fill="#3daee9" fill-rule="evenodd"/>
+ <path d="M1,10a9,9 0 1,1 18,0 h-0.9 a8.1,8.1 0 1,0 -16.2,0 h-0.9" fill="#3daee9" fill-rule="evenodd"/>
+ <path d="M4,10a6,6 0 1,0 12,0a6,6 0 1,0 -12,0" fill="#3daee9" fill-rule="evenodd"/>
+</svg>
diff --git a/runtime/light/radio_checked_disabled.svg b/runtime/light/radio_checked_disabled.svg
new file mode 100644
index 000000000..269ae12dc
--- /dev/null
+++ b/runtime/light/radio_checked_disabled.svg
@@ -0,0 +1,5 @@
+<svg x="0px" y="0px" width="20px" height="20px" viewBox="0 0 20 20" enable-background="new 0 0 20 20" xml:space="preserve">
+ <path d="M1,10a9,9 0 1,0 18,0 h-0.9 a8.1,8.1 0 1,1 -16.2,0 h-0.9" fill="#31363B" fill-rule="evenodd"/>
+ <path d="M1,10a9,9 0 1,1 18,0 h-0.9 a8.1,8.1 0 1,0 -16.2,0 h-0.9" fill="#31363B" fill-rule="evenodd"/>
+ <path d="M4,10a6,6 0 1,0 12,0a6,6 0 1,0 -12,0" fill="#31363B" fill-rule="evenodd"/>
+</svg>
diff --git a/runtime/light/radio_unchecked-hover.svg b/runtime/light/radio_unchecked-hover.svg
new file mode 100644
index 000000000..f5fc94389
--- /dev/null
+++ b/runtime/light/radio_unchecked-hover.svg
@@ -0,0 +1,4 @@
+<svg x="0px" y="0px" width="20px" height="20px" viewBox="0 0 20 20" enable-background="new 0 0 20 20" xml:space="preserve">
+ <path d="M1,10a9,9 0 1,0 18,0 h-0.9 a8.1,8.1 0 1,1 -16.2,0 h-0.9" fill="#51c2fc" fill-rule="evenodd"/>
+ <path d="M1,10a9,9 0 1,1 18,0 h-0.9 a8.1,8.1 0 1,0 -16.2,0 h-0.9" fill="#51c2fc" fill-rule="evenodd"/>
+</svg>
diff --git a/runtime/light/radio_unchecked_disabled.svg b/runtime/light/radio_unchecked_disabled.svg
new file mode 100644
index 000000000..41f503d75
--- /dev/null
+++ b/runtime/light/radio_unchecked_disabled.svg
@@ -0,0 +1,4 @@
+<svg x="0px" y="0px" width="20px" height="20px" viewBox="0 0 20 20" enable-background="new 0 0 20 20" xml:space="preserve">
+ <path d="M1,10a9,9 0 1,0 18,0 h-0.9 a8.1,8.1 0 1,1 -16.2,0 h-0.9" fill="#31363B" fill-rule="evenodd"/>
+ <path d="M1,10a9,9 0 1,1 18,0 h-0.9 a8.1,8.1 0 1,0 -16.2,0 h-0.9" fill="#31363B" fill-rule="evenodd"/>
+</svg>
diff --git a/runtime/light/right_arrow.svg b/runtime/light/right_arrow.svg
new file mode 100644
index 000000000..a43ea2b62
--- /dev/null
+++ b/runtime/light/right_arrow.svg
@@ -0,0 +1,3 @@
+<svg x="0px" y="0px" width="6px" height="9px" viewBox="0 0 6 9" enable-background="new 0 0 6 9" xml:space="preserve">
+ <path d="m 0.9166972,1.1894593 3.310321,3.3105408 -3.3117417,3.3105408 c -0.157702,0.1577125 -0.157702,0.4134624 0,0.5711749 0.157702,0.1577123 0.4134349,0.1577123 0.5711369,0 l 3.5973102,-3.5961283 0,0 0,0 c 0.1577019,-0.1577124 0.1577019,-0.4134624 0,-0.5711748 L 1.4864134,0.61828437 c -0.157702,-0.1577124 -0.4134349,-0.1577124 -0.5711369,0 -0.1562813,0.1577125 -0.1562813,0.41346243 0.00142,0.57117493 z" fill="#31363B"/>
+</svg>
diff --git a/runtime/light/right_arrow_disabled.svg b/runtime/light/right_arrow_disabled.svg
new file mode 100644
index 000000000..4940025ef
--- /dev/null
+++ b/runtime/light/right_arrow_disabled.svg
@@ -0,0 +1,3 @@
+<svg width="6" height="9">
+ <path d="m 0.9166972,1.1894593 3.310321,3.3105408 -3.3117417,3.3105408 c -0.157702,0.1577125 -0.157702,0.4134624 0,0.5711749 0.157702,0.1577123 0.4134349,0.1577123 0.5711369,0 l 3.5973102,-3.5961283 0,0 0,0 c 0.1577019,-0.1577124 0.1577019,-0.4134624 0,-0.5711748 L 1.4864134,0.61828437 c -0.157702,-0.1577124 -0.4134349,-0.1577124 -0.5711369,0 -0.1562813,0.1577125 -0.1562813,0.41346243 0.00142,0.57117493 z" fill="#b0b0b0"/>
+</svg>
diff --git a/runtime/light/sizegrip.svg b/runtime/light/sizegrip.svg
new file mode 100644
index 000000000..3388f07dc
--- /dev/null
+++ b/runtime/light/sizegrip.svg
@@ -0,0 +1,3 @@
+<svg width="1000" height="1000">
+ <path fill="#b0b0b0" d="M22.1,1022.1L-22.1,977.9l1000-1000L1022.1,22.1Zm220,30L197.9,1007.9l1000-1000L1242.1,52.1Zm250,0L447.9,1007.9l1000-1000L1492.1,52.1Zm250,0L697.9,1007.9l1030-1030L1772.1,22.1Z"/>
+</svg>
diff --git a/runtime/light/spinup_disabled.svg b/runtime/light/spinup_disabled.svg
new file mode 100644
index 000000000..838436d0a
--- /dev/null
+++ b/runtime/light/spinup_disabled.svg
@@ -0,0 +1,3 @@
+<svg width="9" height="6">
+ <path d="M 1.1894592,5.0833028 4.5,1.7729818 7.8105408,5.0847235 c 0.1577125,0.157702 0.4134624,0.157702 0.5711749,0 0.1577124,-0.157702 0.1577124,-0.4134349 0,-0.5711369 l -3.5961283,-3.59731019 0,0 0,0 c -0.1577124,-0.1577019 -0.4134624,-0.1577019 -0.5711748,0 L 0.6182843,4.5135866 c -0.1577124,0.157702 -0.1577124,0.4134349 0,0.5711369 0.1577125,0.1562813 0.4134624,0.1562813 0.5711749,-0.00142 z" fill="#b0b0b0"/>
+</svg>
diff --git a/runtime/light/stylesheet-branch-end-closed.svg b/runtime/light/stylesheet-branch-end-closed.svg
new file mode 100644
index 000000000..a31f5c0c1
--- /dev/null
+++ b/runtime/light/stylesheet-branch-end-closed.svg
@@ -0,0 +1,4 @@
+<svg width="81" height="58">
+ <rect id="VLine" fill="#bcbfc2" x="36" width="2" height="14"/>
+ <rect id="HLine" fill="#bcbfc2" x="65" y="28" height="1" width="28"/>
+</svg>
diff --git a/runtime/light/stylesheet-branch-end-open.svg b/runtime/light/stylesheet-branch-end-open.svg
new file mode 100644
index 000000000..a31f5c0c1
--- /dev/null
+++ b/runtime/light/stylesheet-branch-end-open.svg
@@ -0,0 +1,4 @@
+<svg width="81" height="58">
+ <rect id="VLine" fill="#bcbfc2" x="36" width="2" height="14"/>
+ <rect id="HLine" fill="#bcbfc2" x="65" y="28" height="1" width="28"/>
+</svg>
diff --git a/runtime/light/stylesheet-branch-end.svg b/runtime/light/stylesheet-branch-end.svg
new file mode 100644
index 000000000..a1c0a4281
--- /dev/null
+++ b/runtime/light/stylesheet-branch-end.svg
@@ -0,0 +1,4 @@
+<svg width="81" height="58">
+ <rect id="VLine" fill="#bcbfc2" x="36" width="2" height="28"/>
+ <rect id="HLine" fill="#bcbfc2" x="36" y="28" height="1" width="57"/>
+</svg>
diff --git a/runtime/light/stylesheet-branch-more.svg b/runtime/light/stylesheet-branch-more.svg
new file mode 100644
index 000000000..ebef8398a
--- /dev/null
+++ b/runtime/light/stylesheet-branch-more.svg
@@ -0,0 +1,4 @@
+<svg width="81" height="58">
+ <rect id="VLine" fill="#bcbfc2" x="36" width="2" height="58"/>
+ <rect id="HLine" fill="#bcbfc2" x="36" y="30" height="1" width="44"/>
+</svg>
diff --git a/runtime/light/stylesheet-vline.svg b/runtime/light/stylesheet-vline.svg
new file mode 100644
index 000000000..688177ea7
--- /dev/null
+++ b/runtime/light/stylesheet-vline.svg
@@ -0,0 +1,3 @@
+<svg width="81" height="58">
+ <rect fill="#bcbfc2" x="36" width="2" height="58"/>
+</svg>
diff --git a/runtime/light/transparent.svg b/runtime/light/transparent.svg
new file mode 100644
index 000000000..3a8ca5cf6
--- /dev/null
+++ b/runtime/light/transparent.svg
@@ -0,0 +1 @@
+<svg width="64" height="64"/>
diff --git a/runtime/light/undock-hover.svg b/runtime/light/undock-hover.svg
new file mode 100644
index 000000000..6bddbd721
--- /dev/null
+++ b/runtime/light/undock-hover.svg
@@ -0,0 +1,5 @@
+<svg width="1000" height="1000" >
+ <path id="BottomCircle" d="M100,500 a250,250, 0, 1,0, 800,0 M775,500 L500,775 L225,500 z" fill="#a2a2a2" />
+ <path id="TopCircle" d="M900,500 a250,250, 0, 1,0, -800,0 M225,500 L500,225 L775,500 z" fill="#a2a2a2" />
+ <path id="Inside" d="M275,500 L 500,725 L 725,500 L 500,275 z" fill="#a2a2a2" />
+</svg>
diff --git a/runtime/light/undock.svg b/runtime/light/undock.svg
new file mode 100644
index 000000000..9ab21971c
--- /dev/null
+++ b/runtime/light/undock.svg
@@ -0,0 +1,3 @@
+<svg width="1000" height="1000" >
+ <path d="M250,500 L 500,750 L 750,500 L 500,250 z" fill="none" stroke="#a2a2a2" stroke-width="50" />
+</svg>
diff --git a/runtime/light/up_arrow-hover.svg b/runtime/light/up_arrow-hover.svg
new file mode 100644
index 000000000..dd1271a5b
--- /dev/null
+++ b/runtime/light/up_arrow-hover.svg
@@ -0,0 +1,3 @@
+<svg x="0px" y="0px" width="9px" height="6px" viewBox="0 0 9 6" enable-background="new 0 0 9 6" xml:space="preserve">
+ <path d="M 1.1894592,5.0833028 4.5,1.7729818 7.8105408,5.0847235 c 0.1577125,0.157702 0.4134624,0.157702 0.5711749,0 0.1577124,-0.157702 0.1577124,-0.4134349 0,-0.5711369 l -3.5961283,-3.59731019 0,0 0,0 c -0.1577124,-0.1577019 -0.4134624,-0.1577019 -0.5711748,0 L 0.6182843,4.5135866 c -0.1577124,0.157702 -0.1577124,0.4134349 0,0.5711369 0.1577125,0.1562813 0.4134624,0.1562813 0.5711749,-0.00142 z" fill="#3daee9"/>
+</svg>
diff --git a/runtime/light/up_arrow.svg b/runtime/light/up_arrow.svg
new file mode 100644
index 000000000..b02bb266b
--- /dev/null
+++ b/runtime/light/up_arrow.svg
@@ -0,0 +1,3 @@
+<svg x="0px" y="0px" width="9px" height="6px" viewBox="0 0 9 6" enable-background="new 0 0 9 6" xml:space="preserve">
+ <path d="M 1.1894592,5.0833028 4.5,1.7729818 7.8105408,5.0847235 c 0.1577125,0.157702 0.4134624,0.157702 0.5711749,0 0.1577124,-0.157702 0.1577124,-0.4134349 0,-0.5711369 l -3.5961283,-3.59731019 0,0 0,0 c -0.1577124,-0.1577019 -0.4134624,-0.1577019 -0.5711748,0 L 0.6182843,4.5135866 c -0.1577124,0.157702 -0.1577124,0.4134349 0,0.5711369 0.1577125,0.1562813 0.4134624,0.1562813 0.5711749,-0.00142 z" fill="#31363B"/>
+</svg>
diff --git a/runtime/light/up_arrow_disabled.svg b/runtime/light/up_arrow_disabled.svg
new file mode 100644
index 000000000..742e1c549
--- /dev/null
+++ b/runtime/light/up_arrow_disabled.svg
@@ -0,0 +1,3 @@
+<svg x="0px" y="0px" width="9px" height="6px" viewBox="0 0 9 6" enable-background="new 0 0 9 6" xml:space="preserve">
+ <path d="M 1.1894592,5.0833028 4.5,1.7729818 7.8105408,5.0847235 c 0.1577125,0.157702 0.4134624,0.157702 0.5711749,0 0.1577124,-0.157702 0.1577124,-0.4134349 0,-0.5711369 l -3.5961283,-3.59731019 0,0 0,0 c -0.1577124,-0.1577019 -0.4134624,-0.1577019 -0.5711748,0 L 0.6182843,4.5135866 c -0.1577124,0.157702 -0.1577124,0.4134349 0,0.5711369 0.1577125,0.1562813 0.4134624,0.1562813 0.5711749,-0.00142 z" fill="#b0b0b0"/>
+</svg>
diff --git a/runtime/light/vmovetoolbar.svg b/runtime/light/vmovetoolbar.svg
new file mode 100644
index 000000000..0a30d45ef
--- /dev/null
+++ b/runtime/light/vmovetoolbar.svg
@@ -0,0 +1,8 @@
+<svg x="0px" y="0px" width="54px" height="10px" viewBox="0 0 54 10" enable-background="new 0 0 54 10" xml:space="preserve">
+ <rect id="Dark1" data-name="Dark1" fill="#292c31" x="16" y="1" width="4" height="8"/>
+ <rect id="Light1" data-name="Light1" fill="#7f8795" x="16" y="1" width="3" height="7"/>
+ <rect id="Dark2" data-name="Dark2" fill="#292c31" x="25" y="1" width="4" height="8"/>
+ <rect id="Light2" data-name="Light2" fill="#7f8795" x="25" y="1" width="3" height="7"/>
+ <rect id="Dark3" data-name="Dark3" fill="#292c31" x="34" y="1" width="4" height="8"/>
+ <rect id="Light3" data-name="Light3" fill="#7f8795" x="34" y="1" width="3" height="7"/>
+</svg>
diff --git a/runtime/light/vsepartoolbars.svg b/runtime/light/vsepartoolbars.svg
new file mode 100644
index 000000000..00e91ab8d
--- /dev/null
+++ b/runtime/light/vsepartoolbars.svg
@@ -0,0 +1,7 @@
+<svg x="0px" y="0px" width="63px" height="7px" viewBox="0 0 63 7" enable-background="new 0 0 63 7" xml:space="preserve">
+ <rect id="Dark1" data-name="Dark1" fill="#292c31" x="25" y="1" width="1" height="5"/>
+ <rect id="Dark2" data-name="Dark2" fill="#292c31" x="38" y="1" width="1" height="5"/>
+ <rect id="Light1" data-name="Light1" fill="#7f8795" x="23" y="1" width="2" height="5"/>
+ <rect id="Light2" data-name="Light2" fill="#7f8795" x="30" y="1" width="2" height="5"/>
+ <rect id="Light3" data-name="Light3" fill="#7f8795" x="36" y="1" width="2" height="5"/>
+</svg>
diff --git a/runtime/macos.h b/runtime/macos.h
new file mode 100644
index 000000000..437265670
--- /dev/null
+++ b/runtime/macos.h
@@ -0,0 +1,17 @@
+//////////////////////////////////////////////////////////////////////////
+//
+// pgAdmin 4 - PostgreSQL Tools
+//
+// Copyright (C) 2013 - 2020, The pgAdmin Development Team
+// This software is released under the PostgreSQL Licence
+//
+// macos.h - macOS-specific Objective-C/C++ functions
+//
+//////////////////////////////////////////////////////////////////////////
+
+#ifndef MACOS_H
+#define MACOS_H
+
+bool IsDarkMode();
+
+#endif // MACOS_H
diff --git a/runtime/macos.mm b/runtime/macos.mm
new file mode 100644
index 000000000..2067776c8
--- /dev/null
+++ b/runtime/macos.mm
@@ -0,0 +1,22 @@
+//////////////////////////////////////////////////////////////////////////
+//
+// pgAdmin 4 - PostgreSQL Tools
+//
+// Copyright (C) 2013 - 2020, The pgAdmin Development Team
+// This software is released under the PostgreSQL Licence
+//
+// macos.mm - macOS-specific Objective-C/C++ functions
+//
+//////////////////////////////////////////////////////////////////////////
+
+#import <Cocoa/Cocoa.h>
+
+// Detect if we're running in Dark mode
+bool IsDarkMode() {
+ if (@available(macOS 10.14, *)) {
+ NSString *interfaceStyle = [NSUserDefaults.standardUserDefaults valueForKey:@"AppleInterfaceStyle"];
+ return [interfaceStyle isEqualToString:@"Dark"];
+ } else {
+ return NO;
+ }
+}
diff --git a/runtime/pgAdmin4.cpp b/runtime/pgAdmin4.cpp
index 7a1b79801..c2b67c9ae 100644
--- a/runtime/pgAdmin4.cpp
+++ b/runtime/pgAdmin4.cpp
@@ -38,6 +38,10 @@
#include "FloatingWindow.h"
#include "Logger.h"
+#ifdef Q_OS_MAC
+#include "macos.h"
+#endif
+
#include <QTime>
QString logFileName;
@@ -58,6 +62,42 @@ int main(int argc, char * argv[])
QApplication app(argc, argv);
app.setQuitOnLastWindowClosed(false);
+ // Setup the styling
+#ifndef Q_OS_LINUX
+ QFile stylesheet;
+
+#ifdef Q_OS_WIN32
+ QSettings registry("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize", QSettings::Registry64Format);
+ if (registry.value("AppsUseLightTheme", true).toBool())
+ {
+ qDebug( "Windows Light Mode...");
+ stylesheet.setFileName(":/light.qss");
+ }
+ else
+ {
+ qDebug( "Windows Dark Mode..." );
+ stylesheet.setFileName(":/dark.qss");
+ }
+#endif
+
+#ifdef Q_OS_MAC
+ if (IsDarkMode())
+ {
+ qDebug( "macOS Dark Mode...");
+ stylesheet.setFileName(":/dark.qss");
+ }
+ else
+ {
+ qDebug( "macOS Light Mode..." );
+ stylesheet.setFileName(":/light.qss");
+ }
+#endif
+
+ stylesheet.open(QFile::ReadOnly | QFile::Text);
+ QTextStream stream(&stylesheet);
+ app.setStyleSheet(stream.readAll());
+#endif
+
// Setup the settings management
QCoreApplication::setOrganizationName("pgadmin");
QCoreApplication::setOrganizationDomain("pgadmin.org");
diff --git a/runtime/pgAdmin4.pro b/runtime/pgAdmin4.pro
index a752cb9a7..47b679b62 100644
--- a/runtime/pgAdmin4.pro
+++ b/runtime/pgAdmin4.pro
@@ -102,11 +102,18 @@ SOURCES = pgAdmin4.cpp \
MenuActions.cpp \
FloatingWindow.cpp \
Logger.cpp
+
FORMS = ConfigWindow.ui \
LogWindow.ui \
FloatingWindow.ui
ICON = pgAdmin4.icns
QMAKE_INFO_PLIST = Info.plist
-RESOURCES += pgadmin4.qrc
+RESOURCES += pgadmin4.qrc \
+ breeze.qrc
+
+macx {
+ HEADERS += macos.h
+ OBJECTIVE_SOURCES = macos.mm
+}
view thread (26+ messages) latest in thread
reply
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: [email protected]
Cc: [email protected], [email protected], [email protected], [email protected]
Subject: Re: RM4292 - Dark mode support for Windows/macOS
In-Reply-To: <CACCA4P2z6SSa_yCq_omQswoxJ4YVtZXjZxQs+dw9Jdo61dLnfQ@mail.gmail.com>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox