public inbox for [email protected]  
help / color / mirror / Atom feed
RM4292 - Dark mode support for Windows/macOS
26+ messages / 3 participants
[nested] [flat]

* RM4292 - Dark mode support for Windows/macOS
@ 2020-04-08 15:38 Dave Page <[email protected]>
  2020-04-09 05:42 ` Re: RM4292 - Dark mode support for Windows/macOS Akshay Joshi <[email protected]>
  0 siblings, 1 reply; 26+ messages in thread

From: Dave Page @ 2020-04-08 15:38 UTC (permalink / raw)
  To: pgadmin-hackers <[email protected]>; +Cc: Akshay Joshi <[email protected]>

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


Attachments:

  [application/octet-stream] Runtime_dark_mode_for_Windows_Mac.patch (132.0K, 3-Runtime_dark_mode_for_Windows_Mac.patch)
  download | inline diff:
Index: runtime/dark/stylesheet-branch-more.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/dark/stylesheet-branch-more.svg	(date 1545934386000)
+++ runtime/dark/stylesheet-branch-more.svg	(date 1545934386000)
@@ -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>
Index: runtime/dark/checkbox_unchecked_disabled.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/dark/checkbox_unchecked_disabled.svg	(date 1545934386000)
+++ runtime/dark/checkbox_unchecked_disabled.svg	(date 1545934386000)
@@ -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>
Index: runtime/dark/right_arrow.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/dark/right_arrow.svg	(date 1545934386000)
+++ runtime/dark/right_arrow.svg	(date 1545934386000)
@@ -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>
Index: runtime/dark/radio_unchecked.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/dark/radio_unchecked.svg	(date 1545934386000)
+++ runtime/dark/radio_unchecked.svg	(date 1545934386000)
@@ -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>
Index: runtime/dark/hsepartoolbar.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/dark/hsepartoolbar.svg	(date 1545934386000)
+++ runtime/dark/hsepartoolbar.svg	(date 1545934386000)
@@ -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>
Index: runtime/dark/hmovetoolbar.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/dark/hmovetoolbar.svg	(date 1545934386000)
+++ runtime/dark/hmovetoolbar.svg	(date 1545934386000)
@@ -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>
Index: runtime/dark/undock.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/dark/undock.svg	(date 1545934386000)
+++ runtime/dark/undock.svg	(date 1545934386000)
@@ -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>
Index: runtime/dark/up_arrow-hover.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/dark/up_arrow-hover.svg	(date 1545934386000)
+++ runtime/dark/up_arrow-hover.svg	(date 1545934386000)
@@ -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>
Index: runtime/dark/close-hover.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/dark/close-hover.svg	(date 1545934386000)
+++ runtime/dark/close-hover.svg	(date 1545934386000)
@@ -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>
Index: runtime/dark/checkbox_indeterminate.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/dark/checkbox_indeterminate.svg	(date 1545934386000)
+++ runtime/dark/checkbox_indeterminate.svg	(date 1545934386000)
@@ -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>
Index: runtime/dark/checkbox_checked.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/dark/checkbox_checked.svg	(date 1545934386000)
+++ runtime/dark/checkbox_checked.svg	(date 1545934386000)
@@ -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>
Index: runtime/dark/undock-hover.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/dark/undock-hover.svg	(date 1545934386000)
+++ runtime/dark/undock-hover.svg	(date 1545934386000)
@@ -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>
Index: runtime/dark/stylesheet-branch-end-open.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/dark/stylesheet-branch-end-open.svg	(date 1545934386000)
+++ runtime/dark/stylesheet-branch-end-open.svg	(date 1545934386000)
@@ -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>
Index: runtime/dark/sizegrip.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/dark/sizegrip.svg	(date 1545934386000)
+++ runtime/dark/sizegrip.svg	(date 1545934386000)
@@ -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>
Index: runtime/dark/close-pressed.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/dark/close-pressed.svg	(date 1545934386000)
+++ runtime/dark/close-pressed.svg	(date 1545934386000)
@@ -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>
Index: runtime/dark/left_arrow_disabled.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/dark/left_arrow_disabled.svg	(date 1545934386000)
+++ runtime/dark/left_arrow_disabled.svg	(date 1545934386000)
@@ -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>
Index: runtime/dark/checkbox_indeterminate_disabled.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/dark/checkbox_indeterminate_disabled.svg	(date 1545934386000)
+++ runtime/dark/checkbox_indeterminate_disabled.svg	(date 1545934386000)
@@ -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>
Index: runtime/dark/vmovetoolbar.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/dark/vmovetoolbar.svg	(date 1545934386000)
+++ runtime/dark/vmovetoolbar.svg	(date 1545934386000)
@@ -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>
Index: runtime/dark/down_arrow.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/dark/down_arrow.svg	(date 1545934386000)
+++ runtime/dark/down_arrow.svg	(date 1545934386000)
@@ -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>
Index: runtime/dark/left_arrow.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/dark/left_arrow.svg	(date 1545934386000)
+++ runtime/dark/left_arrow.svg	(date 1545934386000)
@@ -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>
Index: runtime/dark/stylesheet-branch-end-closed.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/dark/stylesheet-branch-end-closed.svg	(date 1545934386000)
+++ runtime/dark/stylesheet-branch-end-closed.svg	(date 1545934386000)
@@ -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>
Index: runtime/dark/branch_closed.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/dark/branch_closed.svg	(date 1545934386000)
+++ runtime/dark/branch_closed.svg	(date 1545934386000)
@@ -0,0 +1,3 @@
+<svg width="12" height="18">
+  <path fill="#afafaf" d="M5,12V6L9,9Z"/>
+</svg>
Index: runtime/dark/branch_open.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/dark/branch_open.svg	(date 1545934386000)
+++ runtime/dark/branch_open.svg	(date 1545934386000)
@@ -0,0 +1,3 @@
+<svg width="18" height="12">
+  <path fill="#afafaf" d="M5.5,3H12.5L9,9Z"/>
+</svg>
Index: runtime/dark/down_arrow_disabled.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/dark/down_arrow_disabled.svg	(date 1545934386000)
+++ runtime/dark/down_arrow_disabled.svg	(date 1545934386000)
@@ -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>
Index: runtime/light/close.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/light/close.svg	(date 1545934386000)
+++ runtime/light/close.svg	(date 1545934386000)
@@ -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>
Index: runtime/light/stylesheet-vline.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/light/stylesheet-vline.svg	(date 1545934386000)
+++ runtime/light/stylesheet-vline.svg	(date 1545934386000)
@@ -0,0 +1,3 @@
+<svg width="81" height="58">
+  <rect fill="#bcbfc2" x="36" width="2" height="58"/>
+</svg>
Index: runtime/light/up_arrow_disabled.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/light/up_arrow_disabled.svg	(date 1545934386000)
+++ runtime/light/up_arrow_disabled.svg	(date 1545934386000)
@@ -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>
Index: runtime/light/right_arrow_disabled.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/light/right_arrow_disabled.svg	(date 1545934386000)
+++ runtime/light/right_arrow_disabled.svg	(date 1545934386000)
@@ -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>
Index: runtime/light/radio_checked-hover.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/light/radio_checked-hover.svg	(date 1545934386000)
+++ runtime/light/radio_checked-hover.svg	(date 1545934386000)
@@ -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>
Index: runtime/light/radio_checked.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/light/radio_checked.svg	(date 1545934386000)
+++ runtime/light/radio_checked.svg	(date 1545934386000)
@@ -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>
Index: runtime/light/transparent.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/light/transparent.svg	(date 1545934386000)
+++ runtime/light/transparent.svg	(date 1545934386000)
@@ -0,0 +1,1 @@
+<svg width="64" height="64"/>
Index: runtime/light/stylesheet-branch-end.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/light/stylesheet-branch-end.svg	(date 1545934386000)
+++ runtime/light/stylesheet-branch-end.svg	(date 1545934386000)
@@ -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>
Index: runtime/light/branch_closed-on.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/light/branch_closed-on.svg	(date 1545934386000)
+++ runtime/light/branch_closed-on.svg	(date 1545934386000)
@@ -0,0 +1,3 @@
+<svg width="6" height="9">
+  <path fill="#000" fill-rule="evenodd" d="M1,8V1L5,4.5Z"/>
+</svg>
Index: runtime/light/checkbox_checked_disabled.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/light/checkbox_checked_disabled.svg	(date 1545934386000)
+++ runtime/light/checkbox_checked_disabled.svg	(date 1545934386000)
@@ -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>
Index: runtime/light/radio_unchecked_disabled.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/light/radio_unchecked_disabled.svg	(date 1545934386000)
+++ runtime/light/radio_unchecked_disabled.svg	(date 1545934386000)
@@ -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>
Index: runtime/light/radio_checked_disabled.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/light/radio_checked_disabled.svg	(date 1545934386000)
+++ runtime/light/radio_checked_disabled.svg	(date 1545934386000)
@@ -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>
Index: runtime/light/branch_open-on.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/light/branch_open-on.svg	(date 1545934386000)
+++ runtime/light/branch_open-on.svg	(date 1545934386000)
@@ -0,0 +1,3 @@
+<svg width="9" height="6">
+  <path fill="#000" d="M1,1H8L4.5,5Z"/>
+</svg>
Index: runtime/light/checkbox_unchecked-hover.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/light/checkbox_unchecked-hover.svg	(date 1545934386000)
+++ runtime/light/checkbox_unchecked-hover.svg	(date 1545934386000)
@@ -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>
Index: runtime/light/vsepartoolbars.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/light/vsepartoolbars.svg	(date 1545934386000)
+++ runtime/light/vsepartoolbars.svg	(date 1545934386000)
@@ -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>
Index: runtime/light/down_arrow-hover.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/light/down_arrow-hover.svg	(date 1545934386000)
+++ runtime/light/down_arrow-hover.svg	(date 1545934386000)
@@ -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>
Index: runtime/light/spinup_disabled.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/light/spinup_disabled.svg	(date 1545934386000)
+++ runtime/light/spinup_disabled.svg	(date 1545934386000)
@@ -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>
Index: runtime/light/up_arrow.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/light/up_arrow.svg	(date 1545934386000)
+++ runtime/light/up_arrow.svg	(date 1545934386000)
@@ -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>
Index: runtime/light/stylesheet-branch-more.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/light/stylesheet-branch-more.svg	(date 1545934386000)
+++ runtime/light/stylesheet-branch-more.svg	(date 1545934386000)
@@ -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>
Index: runtime/light/checkbox_unchecked_disabled.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/light/checkbox_unchecked_disabled.svg	(date 1545934386000)
+++ runtime/light/checkbox_unchecked_disabled.svg	(date 1545934386000)
@@ -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>
Index: runtime/light/hmovetoolbar.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/light/hmovetoolbar.svg	(date 1545934386000)
+++ runtime/light/hmovetoolbar.svg	(date 1545934386000)
@@ -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>
+
Index: runtime/light/right_arrow.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/light/right_arrow.svg	(date 1545934386000)
+++ runtime/light/right_arrow.svg	(date 1545934386000)
@@ -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>
Index: runtime/light/hsepartoolbar.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/light/hsepartoolbar.svg	(date 1545934386000)
+++ runtime/light/hsepartoolbar.svg	(date 1545934386000)
@@ -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>
Index: runtime/light/radio_unchecked-hover.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/light/radio_unchecked-hover.svg	(date 1545934386000)
+++ runtime/light/radio_unchecked-hover.svg	(date 1545934386000)
@@ -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>
Index: runtime/light/undock.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/light/undock.svg	(date 1545934386000)
+++ runtime/light/undock.svg	(date 1545934386000)
@@ -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>
Index: runtime/light/up_arrow-hover.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/light/up_arrow-hover.svg	(date 1545934386000)
+++ runtime/light/up_arrow-hover.svg	(date 1545934386000)
@@ -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>
Index: runtime/light/close-hover.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/light/close-hover.svg	(date 1545934386000)
+++ runtime/light/close-hover.svg	(date 1545934386000)
@@ -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>
Index: runtime/light/checkbox_indeterminate.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/light/checkbox_indeterminate.svg	(date 1545934386000)
+++ runtime/light/checkbox_indeterminate.svg	(date 1545934386000)
@@ -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>
Index: runtime/light/undock-hover.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/light/undock-hover.svg	(date 1545934386000)
+++ runtime/light/undock-hover.svg	(date 1545934386000)
@@ -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>
Index: runtime/light/checkbox_checked-hover.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/light/checkbox_checked-hover.svg	(date 1545934386000)
+++ runtime/light/checkbox_checked-hover.svg	(date 1545934386000)
@@ -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>
Index: runtime/light/sizegrip.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/light/sizegrip.svg	(date 1545934386000)
+++ runtime/light/sizegrip.svg	(date 1545934386000)
@@ -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>
Index: runtime/light/checkbox_checked.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/light/checkbox_checked.svg	(date 1545934386000)
+++ runtime/light/checkbox_checked.svg	(date 1545934386000)
@@ -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>
Index: runtime/light/left_arrow_disabled.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/light/left_arrow_disabled.svg	(date 1545934386000)
+++ runtime/light/left_arrow_disabled.svg	(date 1545934386000)
@@ -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>
Index: runtime/light/stylesheet-branch-end-open.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/light/stylesheet-branch-end-open.svg	(date 1545934386000)
+++ runtime/light/stylesheet-branch-end-open.svg	(date 1545934386000)
@@ -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>
Index: runtime/light/vmovetoolbar.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/light/vmovetoolbar.svg	(date 1545934386000)
+++ runtime/light/vmovetoolbar.svg	(date 1545934386000)
@@ -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>
Index: runtime/pgAdmin4.cpp
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/pgAdmin4.cpp	(revision 8a550b569ff5aadb8c2d99cbef4a4233ab00e413)
+++ runtime/pgAdmin4.cpp	(date 1586354709816)
@@ -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 @@
     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).toBoolean())
+    {
+        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");
Index: runtime/light/close-pressed.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/light/close-pressed.svg	(date 1545934386000)
+++ runtime/light/close-pressed.svg	(date 1545934386000)
@@ -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>
Index: runtime/light/left_arrow.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/light/left_arrow.svg	(date 1545934386000)
+++ runtime/light/left_arrow.svg	(date 1545934386000)
@@ -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>
Index: runtime/light/checkbox_indeterminate_disabled.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/light/checkbox_indeterminate_disabled.svg	(date 1545934386000)
+++ runtime/light/checkbox_indeterminate_disabled.svg	(date 1545934386000)
@@ -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>
Index: runtime/light/branch_closed.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/light/branch_closed.svg	(date 1545934386000)
+++ runtime/light/branch_closed.svg	(date 1545934386000)
@@ -0,0 +1,3 @@
+<svg width="12" height="18">
+  <path fill="#4b4b4b" d="M5,12V6L9,9Z"/>
+</svg>
Index: runtime/light/down_arrow.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/light/down_arrow.svg	(date 1545934386000)
+++ runtime/light/down_arrow.svg	(date 1545934386000)
@@ -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>
Index: runtime/light/down_arrow_disabled.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/light/down_arrow_disabled.svg	(date 1545934386000)
+++ runtime/light/down_arrow_disabled.svg	(date 1545934386000)
@@ -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>
Index: runtime/breeze.qrc
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/breeze.qrc	(date 1545934386000)
+++ runtime/breeze.qrc	(date 1545934386000)
@@ -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>
Index: runtime/light/stylesheet-branch-end-closed.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/light/stylesheet-branch-end-closed.svg	(date 1545934386000)
+++ runtime/light/stylesheet-branch-end-closed.svg	(date 1545934386000)
@@ -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>
Index: runtime/light/checkbox_indeterminate-hover.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/light/checkbox_indeterminate-hover.svg	(date 1545934386000)
+++ runtime/light/checkbox_indeterminate-hover.svg	(date 1545934386000)
@@ -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>
Index: runtime/light/branch_open.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/light/branch_open.svg	(date 1545934386000)
+++ runtime/light/branch_open.svg	(date 1545934386000)
@@ -0,0 +1,3 @@
+<svg width="18" height="12">
+  <path fill="#4b4b4b" d="M5.5,3H12.5L9,9Z"/>
+</svg>
Index: runtime/macos.h
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/macos.h	(date 1586251619969)
+++ runtime/macos.h	(date 1586251619969)
@@ -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
Index: runtime/dark.qss
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/dark.qss	(date 1545934386000)
+++ runtime/dark.qss	(date 1545934386000)
@@ -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);
+}
Index: runtime/macos.mm
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/macos.mm	(date 1586251619964)
+++ runtime/macos.mm	(date 1586251619964)
@@ -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;
+    }
+}
Index: runtime/light.qss
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/light.qss	(date 1545934386000)
+++ runtime/light.qss	(date 1545934386000)
@@ -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;
+}
+
Index: runtime/pgAdmin4.pro
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/pgAdmin4.pro	(revision 8a550b569ff5aadb8c2d99cbef4a4233ab00e413)
+++ runtime/pgAdmin4.pro	(date 1586359674695)
@@ -102,11 +102,18 @@
                 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
+}
 
Index: runtime/dark/stylesheet-vline.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/dark/stylesheet-vline.svg	(date 1545934386000)
+++ runtime/dark/stylesheet-vline.svg	(date 1545934386000)
@@ -0,0 +1,3 @@
+<svg width="81" height="58">
+  <rect fill="#626568" x="36" width="2" height="58"/>
+</svg>
Index: runtime/dark/right_arrow_disabled.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/dark/right_arrow_disabled.svg	(date 1545934386000)
+++ runtime/dark/right_arrow_disabled.svg	(date 1545934386000)
@@ -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>
Index: runtime/dark/close.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/dark/close.svg	(date 1545934386000)
+++ runtime/dark/close.svg	(date 1545934386000)
@@ -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>
Index: runtime/dark/radio_checked.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/dark/radio_checked.svg	(date 1545934386000)
+++ runtime/dark/radio_checked.svg	(date 1545934386000)
@@ -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>
Index: runtime/dark/up_arrow_disabled.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/dark/up_arrow_disabled.svg	(date 1545934386000)
+++ runtime/dark/up_arrow_disabled.svg	(date 1545934386000)
@@ -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>
Index: runtime/dark/transparent.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/dark/transparent.svg	(date 1545934386000)
+++ runtime/dark/transparent.svg	(date 1545934386000)
@@ -0,0 +1,1 @@
+<svg width="64" height="64"/>
Index: runtime/dark/stylesheet-branch-end.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/dark/stylesheet-branch-end.svg	(date 1545934386000)
+++ runtime/dark/stylesheet-branch-end.svg	(date 1545934386000)
@@ -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>
Index: runtime/dark/branch_closed-on.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/dark/branch_closed-on.svg	(date 1545934386000)
+++ runtime/dark/branch_closed-on.svg	(date 1545934386000)
@@ -0,0 +1,3 @@
+<svg width="6" height="9">
+  <path fill="#fff" fill-rule="evenodd" d="M1,8V1L5,4.5Z"/>
+</svg>
Index: runtime/dark/checkbox_checked_disabled.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/dark/checkbox_checked_disabled.svg	(date 1545934386000)
+++ runtime/dark/checkbox_checked_disabled.svg	(date 1545934386000)
@@ -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>
Index: runtime/dark/radio_unchecked_disabled.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/dark/radio_unchecked_disabled.svg	(date 1545934386000)
+++ runtime/dark/radio_unchecked_disabled.svg	(date 1545934386000)
@@ -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>
Index: runtime/dark/radio_checked_disabled.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/dark/radio_checked_disabled.svg	(date 1545934386000)
+++ runtime/dark/radio_checked_disabled.svg	(date 1545934386000)
@@ -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>
Index: runtime/dark/checkbox_unchecked.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/dark/checkbox_unchecked.svg	(date 1545934386000)
+++ runtime/dark/checkbox_unchecked.svg	(date 1545934386000)
@@ -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>
Index: runtime/dark/branch_open-on.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/dark/branch_open-on.svg	(date 1545934386000)
+++ runtime/dark/branch_open-on.svg	(date 1545934386000)
@@ -0,0 +1,3 @@
+<svg width="9" height="6">
+  <path fill="#fff" d="M1,1H8L4.5,5Z"/>
+</svg>
Index: runtime/dark/vsepartoolbars.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/dark/vsepartoolbars.svg	(date 1545934386000)
+++ runtime/dark/vsepartoolbars.svg	(date 1545934386000)
@@ -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>
Index: runtime/dark/down_arrow-hover.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/dark/down_arrow-hover.svg	(date 1545934386000)
+++ runtime/dark/down_arrow-hover.svg	(date 1545934386000)
@@ -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>
Index: runtime/dark/spinup_disabled.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/dark/spinup_disabled.svg	(date 1545934386000)
+++ runtime/dark/spinup_disabled.svg	(date 1545934386000)
@@ -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>
Index: runtime/dark/up_arrow.svg
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- runtime/dark/up_arrow.svg	(date 1545934386000)
+++ runtime/dark/up_arrow.svg	(date 1545934386000)
@@ -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>


^ permalink  raw  reply  [nested|flat] 26+ messages in thread

* Re: RM4292 - Dark mode support for Windows/macOS
  2020-04-08 15:38 RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
@ 2020-04-09 05:42 ` Akshay Joshi <[email protected]>
  2020-04-09 13:28   ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  0 siblings, 1 reply; 26+ messages in thread

From: Akshay Joshi @ 2020-04-09 05:42 UTC (permalink / raw)
  To: Neel Patel <[email protected]>; +Cc: pgadmin-hackers <[email protected]>; Dave Page <[email protected]>

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*


^ permalink  raw  reply  [nested|flat] 26+ messages in thread

* Re: RM4292 - Dark mode support for Windows/macOS
  2020-04-08 15:38 RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-09 05:42 ` Re: RM4292 - Dark mode support for Windows/macOS Akshay Joshi <[email protected]>
@ 2020-04-09 13:28   ` Neel Patel <[email protected]>
  2020-04-09 16:49     ` Re: RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  0 siblings, 1 reply; 26+ messages in thread

From: Neel Patel @ 2020-04-09 13:28 UTC (permalink / raw)
  To: Dave Page <[email protected]>; +Cc: pgadmin-hackers <[email protected]>; Akshay Joshi <[email protected]>

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
   - 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.

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 ?
   - 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 ?
   - 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]

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*
>


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

  [application/x-patch] Runtime_dark_mode_for_Windows_Mac_v2.patch (122.0K, 4-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
+}
 


^ permalink  raw  reply  [nested|flat] 26+ messages in thread

* Re: RM4292 - Dark mode support for Windows/macOS
  2020-04-08 15:38 RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-09 05:42 ` Re: RM4292 - Dark mode support for Windows/macOS Akshay Joshi <[email protected]>
  2020-04-09 13:28   ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
@ 2020-04-09 16:49     ` Dave Page <[email protected]>
  2020-04-09 16:56       ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  0 siblings, 1 reply; 26+ messages in thread

From: Dave Page @ 2020-04-09 16:49 UTC (permalink / raw)
  To: Neel Patel <[email protected]>; +Cc: pgadmin-hackers <[email protected]>; Akshay Joshi <[email protected]>

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:

[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?):

[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

^ permalink  raw  reply  [nested|flat] 26+ messages in thread

* Re: RM4292 - Dark mode support for Windows/macOS
  2020-04-08 15:38 RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-09 05:42 ` Re: RM4292 - Dark mode support for Windows/macOS Akshay Joshi <[email protected]>
  2020-04-09 13:28   ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  2020-04-09 16:49     ` Re: RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
@ 2020-04-09 16:56       ` Neel Patel <[email protected]>
  2020-04-10 12:10         ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  2020-04-15 11:34         ` Re: RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  0 siblings, 2 replies; 26+ messages in thread

From: Neel Patel @ 2020-04-09 16:56 UTC (permalink / raw)
  To: Dave Page <[email protected]>; +Cc: pgadmin-hackers <[email protected]>; Akshay Joshi <[email protected]>

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

^ permalink  raw  reply  [nested|flat] 26+ messages in thread

* Re: RM4292 - Dark mode support for Windows/macOS
  2020-04-08 15:38 RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-09 05:42 ` Re: RM4292 - Dark mode support for Windows/macOS Akshay Joshi <[email protected]>
  2020-04-09 13:28   ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  2020-04-09 16:49     ` Re: RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-09 16:56       ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
@ 2020-04-10 12:10         ` Neel Patel <[email protected]>
  2020-04-13 08:35           ` Re: RM4292 - Dark mode support for Windows/macOS Akshay Joshi <[email protected]>
  1 sibling, 1 reply; 26+ messages in thread

From: Neel Patel @ 2020-04-10 12:10 UTC (permalink / raw)
  To: Dave Page <[email protected]>; Akshay Joshi <[email protected]>; +Cc: pgadmin-hackers <[email protected]>

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
+}
 


^ permalink  raw  reply  [nested|flat] 26+ messages in thread

* Re: RM4292 - Dark mode support for Windows/macOS
  2020-04-08 15:38 RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-09 05:42 ` Re: RM4292 - Dark mode support for Windows/macOS Akshay Joshi <[email protected]>
  2020-04-09 13:28   ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  2020-04-09 16:49     ` Re: RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-09 16:56       ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  2020-04-10 12:10         ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
@ 2020-04-13 08:35           ` Akshay Joshi <[email protected]>
  2020-04-13 11:27             ` Re: RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  0 siblings, 1 reply; 26+ messages in thread

From: Akshay Joshi @ 2020-04-13 08:35 UTC (permalink / raw)
  To: Neel Patel <[email protected]>; +Cc: Dave Page <[email protected]>; pgadmin-hackers <[email protected]>

Thanks, patch applied.

On Fri, Apr 10, 2020 at 5:41 PM Neel Patel <[email protected]>
wrote:

> 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
>>>
>>

-- 
*Thanks & Regards*
*Akshay Joshi*

*Sr. Software Architect*
*EnterpriseDB Software India Private Limited*
*Mobile: +91 976-788-8246*


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

^ permalink  raw  reply  [nested|flat] 26+ messages in thread

* Re: RM4292 - Dark mode support for Windows/macOS
  2020-04-08 15:38 RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-09 05:42 ` Re: RM4292 - Dark mode support for Windows/macOS Akshay Joshi <[email protected]>
  2020-04-09 13:28   ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  2020-04-09 16:49     ` Re: RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-09 16:56       ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  2020-04-10 12:10         ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  2020-04-13 08:35           ` Re: RM4292 - Dark mode support for Windows/macOS Akshay Joshi <[email protected]>
@ 2020-04-13 11:27             ` Dave Page <[email protected]>
  2020-04-13 11:30               ` Re: RM4292 - Dark mode support for Windows/macOS Akshay Joshi <[email protected]>
  0 siblings, 1 reply; 26+ messages in thread

From: Dave Page @ 2020-04-13 11:27 UTC (permalink / raw)
  To: Akshay Joshi <[email protected]>; +Cc: Neel Patel <[email protected]>; pgadmin-hackers <[email protected]>

Did you fix the Windows installer and macOS appbundle to ship the
additional required files?

On Mon, Apr 13, 2020 at 9:36 AM Akshay Joshi <[email protected]>
wrote:

> Thanks, patch applied.
>
> On Fri, Apr 10, 2020 at 5:41 PM Neel Patel <[email protected]>
> wrote:
>
>> 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
>>>>
>>>
>
> --
> *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

^ permalink  raw  reply  [nested|flat] 26+ messages in thread

* Re: RM4292 - Dark mode support for Windows/macOS
  2020-04-08 15:38 RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-09 05:42 ` Re: RM4292 - Dark mode support for Windows/macOS Akshay Joshi <[email protected]>
  2020-04-09 13:28   ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  2020-04-09 16:49     ` Re: RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-09 16:56       ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  2020-04-10 12:10         ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  2020-04-13 08:35           ` Re: RM4292 - Dark mode support for Windows/macOS Akshay Joshi <[email protected]>
  2020-04-13 11:27             ` Re: RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
@ 2020-04-13 11:30               ` Akshay Joshi <[email protected]>
  2020-04-13 11:35                 ` Re: RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  0 siblings, 1 reply; 26+ messages in thread

From: Akshay Joshi @ 2020-04-13 11:30 UTC (permalink / raw)
  To: Dave Page <[email protected]>; +Cc: Neel Patel <[email protected]>; pgadmin-hackers <[email protected]>

No, I think I missed that.

On Mon, Apr 13, 2020 at 4:57 PM Dave Page <[email protected]> wrote:

> Did you fix the Windows installer and macOS appbundle to ship the
> additional required files?
>
> On Mon, Apr 13, 2020 at 9:36 AM Akshay Joshi <
> [email protected]> wrote:
>
>> Thanks, patch applied.
>>
>> On Fri, Apr 10, 2020 at 5:41 PM Neel Patel <[email protected]>
>> wrote:
>>
>>> 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
>>>>>
>>>>
>>
>> --
>> *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
>


-- 
*Thanks & Regards*
*Akshay Joshi*

*Sr. Software Architect*
*EnterpriseDB Software India Private Limited*
*Mobile: +91 976-788-8246*


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

^ permalink  raw  reply  [nested|flat] 26+ messages in thread

* Re: RM4292 - Dark mode support for Windows/macOS
  2020-04-08 15:38 RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-09 05:42 ` Re: RM4292 - Dark mode support for Windows/macOS Akshay Joshi <[email protected]>
  2020-04-09 13:28   ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  2020-04-09 16:49     ` Re: RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-09 16:56       ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  2020-04-10 12:10         ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  2020-04-13 08:35           ` Re: RM4292 - Dark mode support for Windows/macOS Akshay Joshi <[email protected]>
  2020-04-13 11:27             ` Re: RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-13 11:30               ` Re: RM4292 - Dark mode support for Windows/macOS Akshay Joshi <[email protected]>
@ 2020-04-13 11:35                 ` Dave Page <[email protected]>
  2020-04-13 11:37                   ` Re: RM4292 - Dark mode support for Windows/macOS Akshay Joshi <[email protected]>
  0 siblings, 1 reply; 26+ messages in thread

From: Dave Page @ 2020-04-13 11:35 UTC (permalink / raw)
  To: Akshay Joshi <[email protected]>; +Cc: Neel Patel <[email protected]>; pgadmin-hackers <[email protected]>

That's why it's still on my todo, but feel free to fix it if you like :-p

On Mon, Apr 13, 2020 at 12:30 PM Akshay Joshi <[email protected]>
wrote:

> No, I think I missed that.
>
> On Mon, Apr 13, 2020 at 4:57 PM Dave Page <[email protected]> wrote:
>
>> Did you fix the Windows installer and macOS appbundle to ship the
>> additional required files?
>>
>> On Mon, Apr 13, 2020 at 9:36 AM Akshay Joshi <
>> [email protected]> wrote:
>>
>>> Thanks, patch applied.
>>>
>>> On Fri, Apr 10, 2020 at 5:41 PM Neel Patel <[email protected]>
>>> wrote:
>>>
>>>> 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
>>>>>>
>>>>>
>>>
>>> --
>>> *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
>>
>
>
> --
> *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

^ permalink  raw  reply  [nested|flat] 26+ messages in thread

* Re: RM4292 - Dark mode support for Windows/macOS
  2020-04-08 15:38 RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-09 05:42 ` Re: RM4292 - Dark mode support for Windows/macOS Akshay Joshi <[email protected]>
  2020-04-09 13:28   ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  2020-04-09 16:49     ` Re: RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-09 16:56       ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  2020-04-10 12:10         ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  2020-04-13 08:35           ` Re: RM4292 - Dark mode support for Windows/macOS Akshay Joshi <[email protected]>
  2020-04-13 11:27             ` Re: RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-13 11:30               ` Re: RM4292 - Dark mode support for Windows/macOS Akshay Joshi <[email protected]>
  2020-04-13 11:35                 ` Re: RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
@ 2020-04-13 11:37                   ` Akshay Joshi <[email protected]>
  2020-04-13 13:07                     ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  0 siblings, 1 reply; 26+ messages in thread

From: Akshay Joshi @ 2020-04-13 11:37 UTC (permalink / raw)
  To: Dave Page <[email protected]>; +Cc: Neel Patel <[email protected]>; pgadmin-hackers <[email protected]>

On Mon, Apr 13, 2020 at 5:05 PM Dave Page <[email protected]> wrote:

> That's why it's still on my todo, but feel free to fix it if you like :-p
>

   Currently having too much of review task, once done will fix that.

>
> On Mon, Apr 13, 2020 at 12:30 PM Akshay Joshi <
> [email protected]> wrote:
>
>> No, I think I missed that.
>>
>> On Mon, Apr 13, 2020 at 4:57 PM Dave Page <[email protected]> wrote:
>>
>>> Did you fix the Windows installer and macOS appbundle to ship the
>>> additional required files?
>>>
>>> On Mon, Apr 13, 2020 at 9:36 AM Akshay Joshi <
>>> [email protected]> wrote:
>>>
>>>> Thanks, patch applied.
>>>>
>>>> On Fri, Apr 10, 2020 at 5:41 PM Neel Patel <[email protected]>
>>>> wrote:
>>>>
>>>>> 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
>>>>>>>
>>>>>>
>>>>
>>>> --
>>>> *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
>>>
>>
>>
>> --
>> *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
>


-- 
*Thanks & Regards*
*Akshay Joshi*

*Sr. Software Architect*
*EnterpriseDB Software India Private Limited*
*Mobile: +91 976-788-8246*


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

^ permalink  raw  reply  [nested|flat] 26+ messages in thread

* Re: RM4292 - Dark mode support for Windows/macOS
  2020-04-08 15:38 RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-09 05:42 ` Re: RM4292 - Dark mode support for Windows/macOS Akshay Joshi <[email protected]>
  2020-04-09 13:28   ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  2020-04-09 16:49     ` Re: RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-09 16:56       ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  2020-04-10 12:10         ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  2020-04-13 08:35           ` Re: RM4292 - Dark mode support for Windows/macOS Akshay Joshi <[email protected]>
  2020-04-13 11:27             ` Re: RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-13 11:30               ` Re: RM4292 - Dark mode support for Windows/macOS Akshay Joshi <[email protected]>
  2020-04-13 11:35                 ` Re: RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-13 11:37                   ` Re: RM4292 - Dark mode support for Windows/macOS Akshay Joshi <[email protected]>
@ 2020-04-13 13:07                     ` Neel Patel <[email protected]>
  2020-04-14 08:18                       ` Re: RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-14 10:19                       ` Re: RM4292 - Dark mode support for Windows/macOS Akshay Joshi <[email protected]>
  0 siblings, 2 replies; 26+ messages in thread

From: Neel Patel @ 2020-04-13 13:07 UTC (permalink / raw)
  To: Akshay Joshi <[email protected]>; Dave Page <[email protected]>; +Cc: pgadmin-hackers <[email protected]>

Hi,

I have tried to fix the bundling issue for Windows and Mac. Attached is the
initial patch. Do review it and let me know if I missed anything.

Thanks,
Neel Patel

On Mon, Apr 13, 2020 at 5:08 PM Akshay Joshi <[email protected]>
wrote:

>
>
> On Mon, Apr 13, 2020 at 5:05 PM Dave Page <[email protected]> wrote:
>
>> That's why it's still on my todo, but feel free to fix it if you like :-p
>>
>
>    Currently having too much of review task, once done will fix that.
>
>>
>> On Mon, Apr 13, 2020 at 12:30 PM Akshay Joshi <
>> [email protected]> wrote:
>>
>>> No, I think I missed that.
>>>
>>> On Mon, Apr 13, 2020 at 4:57 PM Dave Page <[email protected]> wrote:
>>>
>>>> Did you fix the Windows installer and macOS appbundle to ship the
>>>> additional required files?
>>>>
>>>> On Mon, Apr 13, 2020 at 9:36 AM Akshay Joshi <
>>>> [email protected]> wrote:
>>>>
>>>>> Thanks, patch applied.
>>>>>
>>>>> On Fri, Apr 10, 2020 at 5:41 PM Neel Patel <
>>>>> [email protected]> wrote:
>>>>>
>>>>>> 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
>>>>>>>>
>>>>>>>
>>>>>
>>>>> --
>>>>> *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
>>>>
>>>
>>>
>>> --
>>> *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
>>
>
>
> --
> *Thanks & Regards*
> *Akshay Joshi*
>
> *Sr. Software Architect*
> *EnterpriseDB Software India Private Limited*
> *Mobile: +91 976-788-8246*
>


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_light_packaging.patch (2.0K, 6-runtime_dark_light_packaging.patch)
  download | inline diff:
diff --git a/Make.bat b/Make.bat
index 11b6f6d82..884778981 100644
--- a/Make.bat
+++ b/Make.bat
@@ -265,6 +265,12 @@ REM Main build sequence Ends
     ECHO Staging pgAdmin4.exe...
     COPY "%WD%\runtime\release\pgAdmin4.exe" "%PGBUILDPATH%\runtime" > nul || EXIT /B 1
 
+    ECHO Staging dark and light theme components...
+    COPY "%WD%\runtime\dark.qss" "%PGBUILDPATH%\runtime" > nul || EXIT /B 1
+    COPY "%WD%\runtime\light.qss" "%PGBUILDPATH%\runtime" > nul || EXIT /B 1
+    XCOPY /S /I /E /H /Y "%WD%\runtime\dark" "%PGBUILDPATH%\runtime\dark" > nul || EXIT /B 1
+    XCOPY /S /I /E /H /Y "%WD%\runtime\light" "%PGBUILDPATH%\runtime\light" > nul || EXIT /B 1
+
     ECHO Staging Qt components...
     COPY "%QTDIR%\bin\Qt5Core.dll"   "%PGBUILDPATH%\runtime" > nul || EXIT /B 1
     COPY "%QTDIR%\bin\Qt5Gui.dll"    "%PGBUILDPATH%\runtime" > nul || EXIT /B 1
diff --git a/pkg/mac/build.sh b/pkg/mac/build.sh
index c8b443b70..0f40c255a 100755
--- a/pkg/mac/build.sh
+++ b/pkg/mac/build.sh
@@ -78,6 +78,7 @@ _get_version() {
 _cleanup() {
     echo "Cleaning up the old environment and app bundle"
     rm -rf ${SOURCEDIR}/runtime/pgAdmin4.app
+    rm -rf ${SOURCEDIR}/runtime/dark ${SOURCEDIR}/runtime/light ${SOURCEDIR}/runtime/light.qss ${SOURCEDIR}/runtime/dark.qss
     rm -rf ${BUILDROOT}
     rm -f ${DISTROOT}/pgadmin4*.dmg
 }
@@ -153,6 +154,7 @@ _build_runtime() {
     ${QMAKE} || { echo qmake failed; exit 1; }
     make || { echo make failed; exit 1; }
     cp -r pgAdmin4.app "${BUILDROOT}/${APP_BUNDLE_NAME}"
+    cp -r dark light dark.qss light.qss "${BUILDROOT}/"
 }
 
 _build_doc() {
diff --git a/pkg/win32/installer.iss.in b/pkg/win32/installer.iss.in
index 7deb925f3..560f00601 100644
--- a/pkg/win32/installer.iss.in
+++ b/pkg/win32/installer.iss.in
@@ -294,6 +294,8 @@ begin
       begin
         DelWebfolder(ExpandConstant('{app}\web'));
         DelFolder(ExpandConstant('{app}\venv'));
+        DelFolder(ExpandConstant('{app}\runtime\dark'));
+        DelFolder(ExpandConstant('{app}\runtime\light'));
       end;
 	end;
   end;


^ permalink  raw  reply  [nested|flat] 26+ messages in thread

* Re: RM4292 - Dark mode support for Windows/macOS
  2020-04-08 15:38 RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-09 05:42 ` Re: RM4292 - Dark mode support for Windows/macOS Akshay Joshi <[email protected]>
  2020-04-09 13:28   ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  2020-04-09 16:49     ` Re: RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-09 16:56       ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  2020-04-10 12:10         ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  2020-04-13 08:35           ` Re: RM4292 - Dark mode support for Windows/macOS Akshay Joshi <[email protected]>
  2020-04-13 11:27             ` Re: RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-13 11:30               ` Re: RM4292 - Dark mode support for Windows/macOS Akshay Joshi <[email protected]>
  2020-04-13 11:35                 ` Re: RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-13 11:37                   ` Re: RM4292 - Dark mode support for Windows/macOS Akshay Joshi <[email protected]>
  2020-04-13 13:07                     ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
@ 2020-04-14 08:18                       ` Dave Page <[email protected]>
  1 sibling, 0 replies; 26+ messages in thread

From: Dave Page @ 2020-04-14 08:18 UTC (permalink / raw)
  To: Neel Patel <[email protected]>; +Cc: Akshay Joshi <[email protected]>; pgadmin-hackers <[email protected]>

Looks reasonable to an eyeball review. Thanks!

On Mon, Apr 13, 2020 at 2:08 PM Neel Patel <[email protected]>
wrote:

> Hi,
>
> I have tried to fix the bundling issue for Windows and Mac. Attached is
> the initial patch. Do review it and let me know if I missed anything.
>
> Thanks,
> Neel Patel
>
> On Mon, Apr 13, 2020 at 5:08 PM Akshay Joshi <
> [email protected]> wrote:
>
>>
>>
>> On Mon, Apr 13, 2020 at 5:05 PM Dave Page <[email protected]> wrote:
>>
>>> That's why it's still on my todo, but feel free to fix it if you like :-p
>>>
>>
>>    Currently having too much of review task, once done will fix that.
>>
>>>
>>> On Mon, Apr 13, 2020 at 12:30 PM Akshay Joshi <
>>> [email protected]> wrote:
>>>
>>>> No, I think I missed that.
>>>>
>>>> On Mon, Apr 13, 2020 at 4:57 PM Dave Page <[email protected]> wrote:
>>>>
>>>>> Did you fix the Windows installer and macOS appbundle to ship the
>>>>> additional required files?
>>>>>
>>>>> On Mon, Apr 13, 2020 at 9:36 AM Akshay Joshi <
>>>>> [email protected]> wrote:
>>>>>
>>>>>> Thanks, patch applied.
>>>>>>
>>>>>> On Fri, Apr 10, 2020 at 5:41 PM Neel Patel <
>>>>>> [email protected]> wrote:
>>>>>>
>>>>>>> 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
>>>>>>>>>
>>>>>>>>
>>>>>>
>>>>>> --
>>>>>> *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
>>>>>
>>>>
>>>>
>>>> --
>>>> *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
>>>
>>
>>
>> --
>> *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

^ permalink  raw  reply  [nested|flat] 26+ messages in thread

* Re: RM4292 - Dark mode support for Windows/macOS
  2020-04-08 15:38 RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-09 05:42 ` Re: RM4292 - Dark mode support for Windows/macOS Akshay Joshi <[email protected]>
  2020-04-09 13:28   ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  2020-04-09 16:49     ` Re: RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-09 16:56       ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  2020-04-10 12:10         ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  2020-04-13 08:35           ` Re: RM4292 - Dark mode support for Windows/macOS Akshay Joshi <[email protected]>
  2020-04-13 11:27             ` Re: RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-13 11:30               ` Re: RM4292 - Dark mode support for Windows/macOS Akshay Joshi <[email protected]>
  2020-04-13 11:35                 ` Re: RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-13 11:37                   ` Re: RM4292 - Dark mode support for Windows/macOS Akshay Joshi <[email protected]>
  2020-04-13 13:07                     ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
@ 2020-04-14 10:19                       ` Akshay Joshi <[email protected]>
  2020-04-14 11:34                         ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  1 sibling, 1 reply; 26+ messages in thread

From: Akshay Joshi @ 2020-04-14 10:19 UTC (permalink / raw)
  To: Neel Patel <[email protected]>; +Cc: Dave Page <[email protected]>; pgadmin-hackers <[email protected]>

Thanks, patch applied

On Mon, Apr 13, 2020 at 6:38 PM Neel Patel <[email protected]>
wrote:

> Hi,
>
> I have tried to fix the bundling issue for Windows and Mac. Attached is
> the initial patch. Do review it and let me know if I missed anything.
>
> Thanks,
> Neel Patel
>
> On Mon, Apr 13, 2020 at 5:08 PM Akshay Joshi <
> [email protected]> wrote:
>
>>
>>
>> On Mon, Apr 13, 2020 at 5:05 PM Dave Page <[email protected]> wrote:
>>
>>> That's why it's still on my todo, but feel free to fix it if you like :-p
>>>
>>
>>    Currently having too much of review task, once done will fix that.
>>
>>>
>>> On Mon, Apr 13, 2020 at 12:30 PM Akshay Joshi <
>>> [email protected]> wrote:
>>>
>>>> No, I think I missed that.
>>>>
>>>> On Mon, Apr 13, 2020 at 4:57 PM Dave Page <[email protected]> wrote:
>>>>
>>>>> Did you fix the Windows installer and macOS appbundle to ship the
>>>>> additional required files?
>>>>>
>>>>> On Mon, Apr 13, 2020 at 9:36 AM Akshay Joshi <
>>>>> [email protected]> wrote:
>>>>>
>>>>>> Thanks, patch applied.
>>>>>>
>>>>>> On Fri, Apr 10, 2020 at 5:41 PM Neel Patel <
>>>>>> [email protected]> wrote:
>>>>>>
>>>>>>> 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
>>>>>>>>>
>>>>>>>>
>>>>>>
>>>>>> --
>>>>>> *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
>>>>>
>>>>
>>>>
>>>> --
>>>> *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
>>>
>>
>>
>> --
>> *Thanks & Regards*
>> *Akshay Joshi*
>>
>> *Sr. Software Architect*
>> *EnterpriseDB Software India Private Limited*
>> *Mobile: +91 976-788-8246*
>>
>

-- 
*Thanks & Regards*
*Akshay Joshi*

*Sr. Software Architect*
*EnterpriseDB Software India Private Limited*
*Mobile: +91 976-788-8246*


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

^ permalink  raw  reply  [nested|flat] 26+ messages in thread

* Re: RM4292 - Dark mode support for Windows/macOS
  2020-04-08 15:38 RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-09 05:42 ` Re: RM4292 - Dark mode support for Windows/macOS Akshay Joshi <[email protected]>
  2020-04-09 13:28   ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  2020-04-09 16:49     ` Re: RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-09 16:56       ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  2020-04-10 12:10         ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  2020-04-13 08:35           ` Re: RM4292 - Dark mode support for Windows/macOS Akshay Joshi <[email protected]>
  2020-04-13 11:27             ` Re: RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-13 11:30               ` Re: RM4292 - Dark mode support for Windows/macOS Akshay Joshi <[email protected]>
  2020-04-13 11:35                 ` Re: RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-13 11:37                   ` Re: RM4292 - Dark mode support for Windows/macOS Akshay Joshi <[email protected]>
  2020-04-13 13:07                     ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  2020-04-14 10:19                       ` Re: RM4292 - Dark mode support for Windows/macOS Akshay Joshi <[email protected]>
@ 2020-04-14 11:34                         ` Neel Patel <[email protected]>
  2020-04-14 15:48                           ` Re: RM4292 - Dark mode support for Windows/macOS Akshay Joshi <[email protected]>
  0 siblings, 1 reply; 26+ messages in thread

From: Neel Patel @ 2020-04-14 11:34 UTC (permalink / raw)
  To: Akshay Joshi <[email protected]>; +Cc: Dave Page <[email protected]>; pgadmin-hackers <[email protected]>

Hi Akshay,

On Mac only, build gets failed and it gives below error. Currently I am
doing the setup in my new Mac with Qt so meanwhile can you please apply the
attached patch with prefix in the qrc file which may fix the issue ?

RCC: Error in 'breeze.qrc': Cannot find file 'light/hmovetoolbar.svg'
RCC: Error in 'breeze.qrc': Cannot find file 'light/vmovetoolbar.svg'
RCC: Error in 'breeze.qrc': Cannot find file 'light/hsepartoolbar.svg'


Thanks,

Neel Patel


On Tue, Apr 14, 2020 at 3:49 PM Akshay Joshi <[email protected]>
wrote:

> Thanks, patch applied
>
> On Mon, Apr 13, 2020 at 6:38 PM Neel Patel <[email protected]>
> wrote:
>
>> Hi,
>>
>> I have tried to fix the bundling issue for Windows and Mac. Attached is
>> the initial patch. Do review it and let me know if I missed anything.
>>
>> Thanks,
>> Neel Patel
>>
>> On Mon, Apr 13, 2020 at 5:08 PM Akshay Joshi <
>> [email protected]> wrote:
>>
>>>
>>>
>>> On Mon, Apr 13, 2020 at 5:05 PM Dave Page <[email protected]> wrote:
>>>
>>>> That's why it's still on my todo, but feel free to fix it if you like
>>>> :-p
>>>>
>>>
>>>    Currently having too much of review task, once done will fix that.
>>>
>>>>
>>>> On Mon, Apr 13, 2020 at 12:30 PM Akshay Joshi <
>>>> [email protected]> wrote:
>>>>
>>>>> No, I think I missed that.
>>>>>
>>>>> On Mon, Apr 13, 2020 at 4:57 PM Dave Page <[email protected]> wrote:
>>>>>
>>>>>> Did you fix the Windows installer and macOS appbundle to ship the
>>>>>> additional required files?
>>>>>>
>>>>>> On Mon, Apr 13, 2020 at 9:36 AM Akshay Joshi <
>>>>>> [email protected]> wrote:
>>>>>>
>>>>>>> Thanks, patch applied.
>>>>>>>
>>>>>>> On Fri, Apr 10, 2020 at 5:41 PM Neel Patel <
>>>>>>> [email protected]> wrote:
>>>>>>>
>>>>>>>> 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
>>>>>>>>>>
>>>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> *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
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> *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
>>>>
>>>
>>>
>>> --
>>> *Thanks & Regards*
>>> *Akshay Joshi*
>>>
>>> *Sr. Software Architect*
>>> *EnterpriseDB Software India Private Limited*
>>> *Mobile: +91 976-788-8246*
>>>
>>
>
> --
> *Thanks & Regards*
> *Akshay Joshi*
>
> *Sr. Software Architect*
> *EnterpriseDB Software India Private Limited*
> *Mobile: +91 976-788-8246*
>


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] jenkins_failed_qrc.patch (325B, 6-jenkins_failed_qrc.patch)
  download | inline diff:
diff --git a/runtime/breeze.qrc b/runtime/breeze.qrc
index 88fb18574..7cfa6231e 100644
--- a/runtime/breeze.qrc
+++ b/runtime/breeze.qrc
@@ -1,5 +1,5 @@
 <RCC>
-  <qresource>
+  <qresource prefix="/">
     <file>light/hmovetoolbar.svg</file>
     <file>light/vmovetoolbar.svg</file>
     <file>light/hsepartoolbar.svg</file>


^ permalink  raw  reply  [nested|flat] 26+ messages in thread

* Re: RM4292 - Dark mode support for Windows/macOS
  2020-04-08 15:38 RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-09 05:42 ` Re: RM4292 - Dark mode support for Windows/macOS Akshay Joshi <[email protected]>
  2020-04-09 13:28   ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  2020-04-09 16:49     ` Re: RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-09 16:56       ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  2020-04-10 12:10         ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  2020-04-13 08:35           ` Re: RM4292 - Dark mode support for Windows/macOS Akshay Joshi <[email protected]>
  2020-04-13 11:27             ` Re: RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-13 11:30               ` Re: RM4292 - Dark mode support for Windows/macOS Akshay Joshi <[email protected]>
  2020-04-13 11:35                 ` Re: RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-13 11:37                   ` Re: RM4292 - Dark mode support for Windows/macOS Akshay Joshi <[email protected]>
  2020-04-13 13:07                     ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  2020-04-14 10:19                       ` Re: RM4292 - Dark mode support for Windows/macOS Akshay Joshi <[email protected]>
  2020-04-14 11:34                         ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
@ 2020-04-14 15:48                           ` Akshay Joshi <[email protected]>
  0 siblings, 0 replies; 26+ messages in thread

From: Akshay Joshi @ 2020-04-14 15:48 UTC (permalink / raw)
  To: Neel Patel <[email protected]>; +Cc: Dave Page <[email protected]>; pgadmin-hackers <[email protected]>

Thanks, patch applied.

On Tue, Apr 14, 2020 at 5:04 PM Neel Patel <[email protected]>
wrote:

> Hi Akshay,
>
> On Mac only, build gets failed and it gives below error. Currently I am
> doing the setup in my new Mac with Qt so meanwhile can you please apply the
> attached patch with prefix in the qrc file which may fix the issue ?
>
> RCC: Error in 'breeze.qrc': Cannot find file 'light/hmovetoolbar.svg'
> RCC: Error in 'breeze.qrc': Cannot find file 'light/vmovetoolbar.svg'
> RCC: Error in 'breeze.qrc': Cannot find file 'light/hsepartoolbar.svg'
>
>
> Thanks,
>
> Neel Patel
>
>
> On Tue, Apr 14, 2020 at 3:49 PM Akshay Joshi <
> [email protected]> wrote:
>
>> Thanks, patch applied
>>
>> On Mon, Apr 13, 2020 at 6:38 PM Neel Patel <[email protected]>
>> wrote:
>>
>>> Hi,
>>>
>>> I have tried to fix the bundling issue for Windows and Mac. Attached is
>>> the initial patch. Do review it and let me know if I missed anything.
>>>
>>> Thanks,
>>> Neel Patel
>>>
>>> On Mon, Apr 13, 2020 at 5:08 PM Akshay Joshi <
>>> [email protected]> wrote:
>>>
>>>>
>>>>
>>>> On Mon, Apr 13, 2020 at 5:05 PM Dave Page <[email protected]> wrote:
>>>>
>>>>> That's why it's still on my todo, but feel free to fix it if you like
>>>>> :-p
>>>>>
>>>>
>>>>    Currently having too much of review task, once done will fix that.
>>>>
>>>>>
>>>>> On Mon, Apr 13, 2020 at 12:30 PM Akshay Joshi <
>>>>> [email protected]> wrote:
>>>>>
>>>>>> No, I think I missed that.
>>>>>>
>>>>>> On Mon, Apr 13, 2020 at 4:57 PM Dave Page <[email protected]> wrote:
>>>>>>
>>>>>>> Did you fix the Windows installer and macOS appbundle to ship the
>>>>>>> additional required files?
>>>>>>>
>>>>>>> On Mon, Apr 13, 2020 at 9:36 AM Akshay Joshi <
>>>>>>> [email protected]> wrote:
>>>>>>>
>>>>>>>> Thanks, patch applied.
>>>>>>>>
>>>>>>>> On Fri, Apr 10, 2020 at 5:41 PM Neel Patel <
>>>>>>>> [email protected]> wrote:
>>>>>>>>
>>>>>>>>> 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
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> *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
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> *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
>>>>>
>>>>
>>>>
>>>> --
>>>> *Thanks & Regards*
>>>> *Akshay Joshi*
>>>>
>>>> *Sr. Software Architect*
>>>> *EnterpriseDB Software India Private Limited*
>>>> *Mobile: +91 976-788-8246*
>>>>
>>>
>>
>> --
>> *Thanks & Regards*
>> *Akshay Joshi*
>>
>> *Sr. Software Architect*
>> *EnterpriseDB Software India Private Limited*
>> *Mobile: +91 976-788-8246*
>>
>

-- 
*Thanks & Regards*
*Akshay Joshi*

*Sr. Software Architect*
*EnterpriseDB Software India Private Limited*
*Mobile: +91 976-788-8246*


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

^ permalink  raw  reply  [nested|flat] 26+ messages in thread

* Re: RM4292 - Dark mode support for Windows/macOS
  2020-04-08 15:38 RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-09 05:42 ` Re: RM4292 - Dark mode support for Windows/macOS Akshay Joshi <[email protected]>
  2020-04-09 13:28   ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  2020-04-09 16:49     ` Re: RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-09 16:56       ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
@ 2020-04-15 11:34         ` Dave Page <[email protected]>
  2020-04-15 13:11           ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  1 sibling, 1 reply; 26+ messages in thread

From: Dave Page @ 2020-04-15 11:34 UTC (permalink / raw)
  To: Neel Patel <[email protected]>; +Cc: pgadmin-hackers <[email protected]>; Akshay Joshi <[email protected]>

Hi

On Thu, Apr 9, 2020 at 5:56 PM Neel Patel <[email protected]>
wrote:

>
>
>>>    - 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]
>>
>
So interestingly, with the snapshot build I now see this:

[image: Screenshot 2020-04-15 at 12.34.02.png]

Any idea what's going on?

-- 
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.47.39.png (398.3K, 4-Screenshot%202020-04-09%20at%2017.47.39.png)
  download | view image

  [image/png] Screenshot 2020-04-15 at 12.34.02.png (455.0K, 5-Screenshot%202020-04-15%20at%2012.34.02.png)
  download | view image

^ permalink  raw  reply  [nested|flat] 26+ messages in thread

* Re: RM4292 - Dark mode support for Windows/macOS
  2020-04-08 15:38 RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-09 05:42 ` Re: RM4292 - Dark mode support for Windows/macOS Akshay Joshi <[email protected]>
  2020-04-09 13:28   ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  2020-04-09 16:49     ` Re: RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-09 16:56       ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  2020-04-15 11:34         ` Re: RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
@ 2020-04-15 13:11           ` Neel Patel <[email protected]>
  2020-04-15 13:42             ` Re: RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  0 siblings, 1 reply; 26+ messages in thread

From: Neel Patel @ 2020-04-15 13:11 UTC (permalink / raw)
  To: Dave Page <[email protected]>; +Cc: pgadmin-hackers <[email protected]>; Akshay Joshi <[email protected]>

Hi Dave,

On Wed, Apr 15, 2020 at 5:04 PM Dave Page <[email protected]> wrote:

> Hi
>
> On Thu, Apr 9, 2020 at 5:56 PM Neel Patel <[email protected]>
> wrote:
>
>>
>>
>>>>    - 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]
>>>
>>
> So interestingly, with the snapshot build I now see this:
>
> [image: Screenshot 2020-04-15 at 12.34.02.png]
>
> Any idea what's going on?
>

All svg files and qss reside along with the application ?
Initially I got this issue and when I copied the qss and svg files along
with the application, it resolved the issue but again I will double-check
and update on this.


>
> --
> 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.47.39.png (398.3K, 4-Screenshot%202020-04-09%20at%2017.47.39.png)
  download | view image

  [image/png] Screenshot 2020-04-15 at 12.34.02.png (455.0K, 5-Screenshot%202020-04-15%20at%2012.34.02.png)
  download | view image

^ permalink  raw  reply  [nested|flat] 26+ messages in thread

* Re: RM4292 - Dark mode support for Windows/macOS
  2020-04-08 15:38 RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-09 05:42 ` Re: RM4292 - Dark mode support for Windows/macOS Akshay Joshi <[email protected]>
  2020-04-09 13:28   ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  2020-04-09 16:49     ` Re: RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-09 16:56       ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  2020-04-15 11:34         ` Re: RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-15 13:11           ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
@ 2020-04-15 13:42             ` Dave Page <[email protected]>
  2020-04-20 13:28               ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  0 siblings, 1 reply; 26+ messages in thread

From: Dave Page @ 2020-04-15 13:42 UTC (permalink / raw)
  To: Neel Patel <[email protected]>; +Cc: pgadmin-hackers <[email protected]>; Akshay Joshi <[email protected]>

On Wed, Apr 15, 2020 at 2:11 PM Neel Patel <[email protected]>
wrote:

> Hi Dave,
>
> On Wed, Apr 15, 2020 at 5:04 PM Dave Page <[email protected]> wrote:
>
>> Hi
>>
>> On Thu, Apr 9, 2020 at 5:56 PM Neel Patel <[email protected]>
>> wrote:
>>
>>>
>>>
>>>>>    - 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]
>>>>
>>>
>> So interestingly, with the snapshot build I now see this:
>>
>> [image: Screenshot 2020-04-15 at 12.34.02.png]
>>
>> Any idea what's going on?
>>
>
> All svg files and qss reside along with the application ?
> Initially I got this issue and when I copied the qss and svg files along
> with the application, it resolved the issue but again I will double-check
> and update on this.
>

Actually, no - I don't see them in the appbundle.

-- 
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.47.39.png (398.3K, 4-Screenshot%202020-04-09%20at%2017.47.39.png)
  download | view image

  [image/png] Screenshot 2020-04-15 at 12.34.02.png (455.0K, 5-Screenshot%202020-04-15%20at%2012.34.02.png)
  download | view image

^ permalink  raw  reply  [nested|flat] 26+ messages in thread

* Re: RM4292 - Dark mode support for Windows/macOS
  2020-04-08 15:38 RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-09 05:42 ` Re: RM4292 - Dark mode support for Windows/macOS Akshay Joshi <[email protected]>
  2020-04-09 13:28   ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  2020-04-09 16:49     ` Re: RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-09 16:56       ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  2020-04-15 11:34         ` Re: RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-15 13:11           ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  2020-04-15 13:42             ` Re: RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
@ 2020-04-20 13:28               ` Neel Patel <[email protected]>
  2020-04-20 13:49                 ` Re: RM4292 - Dark mode support for Windows/macOS Akshay Joshi <[email protected]>
  0 siblings, 1 reply; 26+ messages in thread

From: Neel Patel @ 2020-04-20 13:28 UTC (permalink / raw)
  To: Dave Page <[email protected]>; Akshay Joshi <[email protected]>; +Cc: pgadmin-hackers <[email protected]>

Hi,

In windows, I am able to reproduce it with my dev environment and after
copying "Qt5Svg.dll", it renders the checkbox and for Mac build, we should
copy theme components in "Resources" folder which might solve the problem
and update the patch accordingly.
Once snapshot build is ready, I will verify with the same. Do review it.

Thanks,
Neel Patel

On Wed, Apr 15, 2020 at 7:12 PM Dave Page <[email protected]> wrote:

>
>
> On Wed, Apr 15, 2020 at 2:11 PM Neel Patel <[email protected]>
> wrote:
>
>> Hi Dave,
>>
>> On Wed, Apr 15, 2020 at 5:04 PM Dave Page <[email protected]> wrote:
>>
>>> Hi
>>>
>>> On Thu, Apr 9, 2020 at 5:56 PM Neel Patel <[email protected]>
>>> wrote:
>>>
>>>>
>>>>
>>>>>>    - 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]
>>>>>
>>>>
>>> So interestingly, with the snapshot build I now see this:
>>>
>>> [image: Screenshot 2020-04-15 at 12.34.02.png]
>>>
>>> Any idea what's going on?
>>>
>>
>> All svg files and qss reside along with the application ?
>> Initially I got this issue and when I copied the qss and svg files along
>> with the application, it resolved the issue but again I will double-check
>> and update on this.
>>
>
> Actually, no - I don't see them in the appbundle.
>
> --
> 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.47.39.png (398.3K, 4-Screenshot%202020-04-09%20at%2017.47.39.png)
  download | view image

  [image/png] Screenshot 2020-04-15 at 12.34.02.png (455.0K, 5-Screenshot%202020-04-15%20at%2012.34.02.png)
  download | view image

  [application/octet-stream] RM_5402.patch (1.3K, 6-RM_5402.patch)
  download | inline diff:
diff --git a/Make.bat b/Make.bat
index 884778981..b42238a36 100644
--- a/Make.bat
+++ b/Make.bat
@@ -276,6 +276,7 @@ REM Main build sequence Ends
     COPY "%QTDIR%\bin\Qt5Gui.dll"    "%PGBUILDPATH%\runtime" > nul || EXIT /B 1
     COPY "%QTDIR%\bin\Qt5Widgets.dll" "%PGBUILDPATH%\runtime" > nul  || EXIT /B 1
     COPY "%QTDIR%\bin\Qt5Network.dll" "%PGBUILDPATH%\runtime" > nul || EXIT /B 1
+    COPY "%QTDIR%\bin\Qt5Svg.dll" "%PGBUILDPATH%\runtime" > nul || EXIT /B 1
     IF EXIST "%QTDIR%\bin\libgcc_s_dw2-1.dll" COPY "%QTDIR%\bin\libgcc_s_dw2-1.dll" "%PGBUILDPATH%\runtime" > nul || EXIT /B 1
     IF EXIST "%QTDIR%\bin\libstdc++-6.dll" COPY "%QTDIR%\bin\libstdc++-6.dll" "%PGBUILDPATH%\runtime" > nul || EXIT /B 1
     IF EXIST "%QTDIR%\bin\libwinpthread-1.dll" COPY "%QTDIR%\bin\libwinpthread-1.dll" "%PGBUILDPATH%\runtime" > nul || EXIT /B 1
diff --git a/pkg/mac/build.sh b/pkg/mac/build.sh
index 7feb29431..8308a82d1 100755
--- a/pkg/mac/build.sh
+++ b/pkg/mac/build.sh
@@ -153,7 +153,7 @@ _build_runtime() {
     ${QMAKE} || { echo qmake failed; exit 1; }
     make || { echo make failed; exit 1; }
     cp -r pgAdmin4.app "${BUILDROOT}/${APP_BUNDLE_NAME}"
-    cp -r dark light dark.qss light.qss "${BUILDROOT}/"
+    cp -r dark light dark.qss light.qss "${BUILDROOT}/${APP_BUNDLE_NAME}/Contents/Resources/"
 }
 
 _build_doc() {


^ permalink  raw  reply  [nested|flat] 26+ messages in thread

* Re: RM4292 - Dark mode support for Windows/macOS
  2020-04-08 15:38 RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-09 05:42 ` Re: RM4292 - Dark mode support for Windows/macOS Akshay Joshi <[email protected]>
  2020-04-09 13:28   ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  2020-04-09 16:49     ` Re: RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-09 16:56       ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  2020-04-15 11:34         ` Re: RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-15 13:11           ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  2020-04-15 13:42             ` Re: RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-20 13:28               ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
@ 2020-04-20 13:49                 ` Akshay Joshi <[email protected]>
  2020-04-22 11:39                   ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  0 siblings, 1 reply; 26+ messages in thread

From: Akshay Joshi @ 2020-04-20 13:49 UTC (permalink / raw)
  To: Neel Patel <[email protected]>; +Cc: Dave Page <[email protected]>; pgadmin-hackers <[email protected]>

Thanks, patch applied without testing it.

On Mon, Apr 20, 2020 at 6:59 PM Neel Patel <[email protected]>
wrote:

> Hi,
>
> In windows, I am able to reproduce it with my dev environment and after
> copying "Qt5Svg.dll", it renders the checkbox and for Mac build, we should
> copy theme components in "Resources" folder which might solve the problem
> and update the patch accordingly.
> Once snapshot build is ready, I will verify with the same. Do review it.
>
> Thanks,
> Neel Patel
>
> On Wed, Apr 15, 2020 at 7:12 PM Dave Page <[email protected]> wrote:
>
>>
>>
>> On Wed, Apr 15, 2020 at 2:11 PM Neel Patel <[email protected]>
>> wrote:
>>
>>> Hi Dave,
>>>
>>> On Wed, Apr 15, 2020 at 5:04 PM Dave Page <[email protected]> wrote:
>>>
>>>> Hi
>>>>
>>>> On Thu, Apr 9, 2020 at 5:56 PM Neel Patel <[email protected]>
>>>> wrote:
>>>>
>>>>>
>>>>>
>>>>>>>    - 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]
>>>>>>
>>>>>
>>>> So interestingly, with the snapshot build I now see this:
>>>>
>>>> [image: Screenshot 2020-04-15 at 12.34.02.png]
>>>>
>>>> Any idea what's going on?
>>>>
>>>
>>> All svg files and qss reside along with the application ?
>>> Initially I got this issue and when I copied the qss and svg files along
>>> with the application, it resolved the issue but again I will double-check
>>> and update on this.
>>>
>>
>> Actually, no - I don't see them in the appbundle.
>>
>> --
>> 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*


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.47.39.png (398.3K, 4-Screenshot%202020-04-09%20at%2017.47.39.png)
  download | view image

  [image/png] Screenshot 2020-04-15 at 12.34.02.png (455.0K, 5-Screenshot%202020-04-15%20at%2012.34.02.png)
  download | view image

^ permalink  raw  reply  [nested|flat] 26+ messages in thread

* Re: RM4292 - Dark mode support for Windows/macOS
  2020-04-08 15:38 RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-09 05:42 ` Re: RM4292 - Dark mode support for Windows/macOS Akshay Joshi <[email protected]>
  2020-04-09 13:28   ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  2020-04-09 16:49     ` Re: RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-09 16:56       ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  2020-04-15 11:34         ` Re: RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-15 13:11           ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  2020-04-15 13:42             ` Re: RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-20 13:28               ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  2020-04-20 13:49                 ` Re: RM4292 - Dark mode support for Windows/macOS Akshay Joshi <[email protected]>
@ 2020-04-22 11:39                   ` Neel Patel <[email protected]>
  2020-04-22 11:42                     ` Re: RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  0 siblings, 1 reply; 26+ messages in thread

From: Neel Patel @ 2020-04-22 11:39 UTC (permalink / raw)
  To: Akshay Joshi <[email protected]>; +Cc: Dave Page <[email protected]>; pgadmin-hackers <[email protected]>

Hi,

After debugging, I found that the required image formats Qt plugin was
missing in bundling and due to that "checkbox" images or all images were
not rendered from qss files. It was working fine in my local development
environment because all required plugins to load the images are present. I
have attached the patch for windows and Mac. Can you please review ? I will
verify once snapshot build is available.

Thanks,
Neel Patel

On Mon, Apr 20, 2020 at 7:19 PM Akshay Joshi <[email protected]>
wrote:

> Thanks, patch applied without testing it.
>
> On Mon, Apr 20, 2020 at 6:59 PM Neel Patel <[email protected]>
> wrote:
>
>> Hi,
>>
>> In windows, I am able to reproduce it with my dev environment and after
>> copying "Qt5Svg.dll", it renders the checkbox and for Mac build, we should
>> copy theme components in "Resources" folder which might solve the problem
>> and update the patch accordingly.
>> Once snapshot build is ready, I will verify with the same. Do review it.
>>
>> Thanks,
>> Neel Patel
>>
>> On Wed, Apr 15, 2020 at 7:12 PM Dave Page <[email protected]> wrote:
>>
>>>
>>>
>>> On Wed, Apr 15, 2020 at 2:11 PM Neel Patel <[email protected]>
>>> wrote:
>>>
>>>> Hi Dave,
>>>>
>>>> On Wed, Apr 15, 2020 at 5:04 PM Dave Page <[email protected]> wrote:
>>>>
>>>>> Hi
>>>>>
>>>>> On Thu, Apr 9, 2020 at 5:56 PM Neel Patel <[email protected]>
>>>>> wrote:
>>>>>
>>>>>>
>>>>>>
>>>>>>>>    - 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]
>>>>>>>
>>>>>>
>>>>> So interestingly, with the snapshot build I now see this:
>>>>>
>>>>> [image: Screenshot 2020-04-15 at 12.34.02.png]
>>>>>
>>>>> Any idea what's going on?
>>>>>
>>>>
>>>> All svg files and qss reside along with the application ?
>>>> Initially I got this issue and when I copied the qss and svg files
>>>> along with the application, it resolved the issue but again I will
>>>> double-check and update on this.
>>>>
>>>
>>> Actually, no - I don't see them in the appbundle.
>>>
>>> --
>>> 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*
>


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.47.39.png (398.3K, 4-Screenshot%202020-04-09%20at%2017.47.39.png)
  download | view image

  [image/png] Screenshot 2020-04-15 at 12.34.02.png (455.0K, 5-Screenshot%202020-04-15%20at%2012.34.02.png)
  download | view image

  [application/octet-stream] RM_5402_V2.patch (3.8K, 6-RM_5402_V2.patch)
  download | inline diff:
diff --git a/Make.bat b/Make.bat
index b42238a36..e95d4434b 100644
--- a/Make.bat
+++ b/Make.bat
@@ -265,12 +265,6 @@ REM Main build sequence Ends
     ECHO Staging pgAdmin4.exe...
     COPY "%WD%\runtime\release\pgAdmin4.exe" "%PGBUILDPATH%\runtime" > nul || EXIT /B 1
 
-    ECHO Staging dark and light theme components...
-    COPY "%WD%\runtime\dark.qss" "%PGBUILDPATH%\runtime" > nul || EXIT /B 1
-    COPY "%WD%\runtime\light.qss" "%PGBUILDPATH%\runtime" > nul || EXIT /B 1
-    XCOPY /S /I /E /H /Y "%WD%\runtime\dark" "%PGBUILDPATH%\runtime\dark" > nul || EXIT /B 1
-    XCOPY /S /I /E /H /Y "%WD%\runtime\light" "%PGBUILDPATH%\runtime\light" > nul || EXIT /B 1
-
     ECHO Staging Qt components...
     COPY "%QTDIR%\bin\Qt5Core.dll"   "%PGBUILDPATH%\runtime" > nul || EXIT /B 1
     COPY "%QTDIR%\bin\Qt5Gui.dll"    "%PGBUILDPATH%\runtime" > nul || EXIT /B 1
@@ -282,6 +276,8 @@ REM Main build sequence Ends
     IF EXIST "%QTDIR%\bin\libwinpthread-1.dll" COPY "%QTDIR%\bin\libwinpthread-1.dll" "%PGBUILDPATH%\runtime" > nul || EXIT /B 1
     MKDIR "%PGBUILDPATH%\runtime\platforms" > nul || EXIT /B 1
     COPY "%QTDIR%\plugins\platforms\qwindows.dll" "%PGBUILDPATH%\runtime\platforms" > nul || EXIT /B 1
+    MKDIR "%PGBUILDPATH%\runtime\imageformats" > nul || EXIT /B 1
+    COPY "%QTDIR%\plugins\imageformats\qsvg.dll" "%PGBUILDPATH%\runtime\imageformats" > nul || EXIT /B 1
     ECHO [Paths] > "%PGBUILDPATH%\runtime\qt.conf"
     ECHO Plugins=plugins >> "%PGBUILDPATH%\runtime\qt.conf"
 
diff --git a/pkg/mac/build.sh b/pkg/mac/build.sh
index 8308a82d1..c8b443b70 100755
--- a/pkg/mac/build.sh
+++ b/pkg/mac/build.sh
@@ -153,7 +153,6 @@ _build_runtime() {
     ${QMAKE} || { echo qmake failed; exit 1; }
     make || { echo make failed; exit 1; }
     cp -r pgAdmin4.app "${BUILDROOT}/${APP_BUNDLE_NAME}"
-    cp -r dark light dark.qss light.qss "${BUILDROOT}/${APP_BUNDLE_NAME}/Contents/Resources/"
 }
 
 _build_doc() {
diff --git a/pkg/mac/complete-bundle.sh b/pkg/mac/complete-bundle.sh
index 985bbc802..1cc6b8e31 100755
--- a/pkg/mac/complete-bundle.sh
+++ b/pkg/mac/complete-bundle.sh
@@ -23,7 +23,9 @@ EOF
 
 test -d "${bundle}/Contents/Frameworks" || mkdir -p "${bundle}/Contents/Frameworks" || exit 1
 test -d "${bundle}/Contents/PlugIns/platforms" || mkdir -p "${bundle}/Contents/PlugIns/platforms" || exit 1
+test -d "${bundle}/Contents/PlugIns/imageformats" || mkdir -p "${bundle}/Contents/PlugIns/imageformats" || exit 1
 cp -f ${QTDIR}/plugins/platforms/libqcocoa.dylib "${bundle}/Contents/PlugIns/platforms" || { echo libqcocoa.dylib not found in ${QTDIR}/plugins/platforms; exit 1; }
+cp -f ${QTDIR}/plugins/imageformats/libqsvg.dylib "${bundle}/Contents/PlugIns/imageformats" || { echo libqsvg.dylib not found in ${QTDIR}/plugins/imageformats; exit 1; }
 cp -f ${PGDIR}/lib/libpq.5.dylib "${bundle}/Contents/Frameworks" || { echo libpq.5.dylib not found in ${PGDIR}; exit 1; }
 
 function CompleteSingleApp() {
@@ -59,6 +61,8 @@ function CompleteSingleApp() {
 			); do
 				if echo ${lib} | grep "PlugIns\|libqcocoa"  > /dev/null; then
 					lib_loc="Contents/PlugIns/platforms"
+				elif echo ${lib} | grep "PlugIns\|libqsvg"  > /dev/null; then
+					lib_loc="Contents/PlugIns/imageformats"
 				elif echo ${lib} | grep "Qt" > /dev/null; then
 					qtfw_path="$(dirname ${lib} | sed 's|.*\(Qt.*framework\)|\1|')"
 					lib_loc="Contents/Frameworks/${qtfw_path}"
diff --git a/pkg/win32/installer.iss.in b/pkg/win32/installer.iss.in
index 560f00601..7deb925f3 100644
--- a/pkg/win32/installer.iss.in
+++ b/pkg/win32/installer.iss.in
@@ -294,8 +294,6 @@ begin
       begin
         DelWebfolder(ExpandConstant('{app}\web'));
         DelFolder(ExpandConstant('{app}\venv'));
-        DelFolder(ExpandConstant('{app}\runtime\dark'));
-        DelFolder(ExpandConstant('{app}\runtime\light'));
       end;
 	end;
   end;


^ permalink  raw  reply  [nested|flat] 26+ messages in thread

* Re: RM4292 - Dark mode support for Windows/macOS
  2020-04-08 15:38 RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-09 05:42 ` Re: RM4292 - Dark mode support for Windows/macOS Akshay Joshi <[email protected]>
  2020-04-09 13:28   ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  2020-04-09 16:49     ` Re: RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-09 16:56       ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  2020-04-15 11:34         ` Re: RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-15 13:11           ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  2020-04-15 13:42             ` Re: RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-20 13:28               ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  2020-04-20 13:49                 ` Re: RM4292 - Dark mode support for Windows/macOS Akshay Joshi <[email protected]>
  2020-04-22 11:39                   ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
@ 2020-04-22 11:42                     ` Dave Page <[email protected]>
  2020-04-22 11:55                       ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  0 siblings, 1 reply; 26+ messages in thread

From: Dave Page @ 2020-04-22 11:42 UTC (permalink / raw)
  To: Neel Patel <[email protected]>; +Cc: Akshay Joshi <[email protected]>; pgadmin-hackers <[email protected]>

Doesn't that revert the previous patch that copied all the required files
into the staging directory?

On Wed, Apr 22, 2020 at 12:40 PM Neel Patel <[email protected]>
wrote:

> Hi,
>
> After debugging, I found that the required image formats Qt plugin was
> missing in bundling and due to that "checkbox" images or all images were
> not rendered from qss files. It was working fine in my local development
> environment because all required plugins to load the images are present. I
> have attached the patch for windows and Mac. Can you please review ? I will
> verify once snapshot build is available.
>
> Thanks,
> Neel Patel
>
> On Mon, Apr 20, 2020 at 7:19 PM Akshay Joshi <
> [email protected]> wrote:
>
>> Thanks, patch applied without testing it.
>>
>> On Mon, Apr 20, 2020 at 6:59 PM Neel Patel <[email protected]>
>> wrote:
>>
>>> Hi,
>>>
>>> In windows, I am able to reproduce it with my dev environment and after
>>> copying "Qt5Svg.dll", it renders the checkbox and for Mac build, we should
>>> copy theme components in "Resources" folder which might solve the problem
>>> and update the patch accordingly.
>>> Once snapshot build is ready, I will verify with the same. Do review it.
>>>
>>> Thanks,
>>> Neel Patel
>>>
>>> On Wed, Apr 15, 2020 at 7:12 PM Dave Page <[email protected]> wrote:
>>>
>>>>
>>>>
>>>> On Wed, Apr 15, 2020 at 2:11 PM Neel Patel <[email protected]>
>>>> wrote:
>>>>
>>>>> Hi Dave,
>>>>>
>>>>> On Wed, Apr 15, 2020 at 5:04 PM Dave Page <[email protected]> wrote:
>>>>>
>>>>>> Hi
>>>>>>
>>>>>> On Thu, Apr 9, 2020 at 5:56 PM Neel Patel <
>>>>>> [email protected]> wrote:
>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>>>    - 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]
>>>>>>>>
>>>>>>>
>>>>>> So interestingly, with the snapshot build I now see this:
>>>>>>
>>>>>> [image: Screenshot 2020-04-15 at 12.34.02.png]
>>>>>>
>>>>>> Any idea what's going on?
>>>>>>
>>>>>
>>>>> All svg files and qss reside along with the application ?
>>>>> Initially I got this issue and when I copied the qss and svg files
>>>>> along with the application, it resolved the issue but again I will
>>>>> double-check and update on this.
>>>>>
>>>>
>>>> Actually, no - I don't see them in the appbundle.
>>>>
>>>> --
>>>> 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.47.39.png (398.3K, 4-Screenshot%202020-04-09%20at%2017.47.39.png)
  download | view image

  [image/png] Screenshot 2020-04-15 at 12.34.02.png (455.0K, 5-Screenshot%202020-04-15%20at%2012.34.02.png)
  download | view image

^ permalink  raw  reply  [nested|flat] 26+ messages in thread

* Re: RM4292 - Dark mode support for Windows/macOS
  2020-04-08 15:38 RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-09 05:42 ` Re: RM4292 - Dark mode support for Windows/macOS Akshay Joshi <[email protected]>
  2020-04-09 13:28   ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  2020-04-09 16:49     ` Re: RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-09 16:56       ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  2020-04-15 11:34         ` Re: RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-15 13:11           ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  2020-04-15 13:42             ` Re: RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-20 13:28               ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  2020-04-20 13:49                 ` Re: RM4292 - Dark mode support for Windows/macOS Akshay Joshi <[email protected]>
  2020-04-22 11:39                   ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  2020-04-22 11:42                     ` Re: RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
@ 2020-04-22 11:55                       ` Neel Patel <[email protected]>
  2020-04-22 12:04                         ` Re: RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-22 13:18                         ` Re: RM4292 - Dark mode support for Windows/macOS Akshay Joshi <[email protected]>
  0 siblings, 2 replies; 26+ messages in thread

From: Neel Patel @ 2020-04-22 11:55 UTC (permalink / raw)
  To: Dave Page <[email protected]>; +Cc: Akshay Joshi <[email protected]>; pgadmin-hackers <[email protected]>

yes, as i have tested on my local env without those files and it worked. So
now those staging files for dark themes are not required ( *.qss,
dark/*.svg, light/*.svg etc )  as qss are bundled within the application
itself. If we copy those files along with the application and change the
QSS, it is not affecting any Qt controls. At compile time, whatever the qss
embedded to application, that will be applied.

Thanks,
Neel Patel

On Wed, Apr 22, 2020 at 5:12 PM Dave Page <[email protected]> wrote:

> Doesn't that revert the previous patch that copied all the required files
> into the staging directory?
>
> On Wed, Apr 22, 2020 at 12:40 PM Neel Patel <[email protected]>
> wrote:
>
>> Hi,
>>
>> After debugging, I found that the required image formats Qt plugin was
>> missing in bundling and due to that "checkbox" images or all images were
>> not rendered from qss files. It was working fine in my local development
>> environment because all required plugins to load the images are present. I
>> have attached the patch for windows and Mac. Can you please review ? I will
>> verify once snapshot build is available.
>>
>> Thanks,
>> Neel Patel
>>
>> On Mon, Apr 20, 2020 at 7:19 PM Akshay Joshi <
>> [email protected]> wrote:
>>
>>> Thanks, patch applied without testing it.
>>>
>>> On Mon, Apr 20, 2020 at 6:59 PM Neel Patel <[email protected]>
>>> wrote:
>>>
>>>> Hi,
>>>>
>>>> In windows, I am able to reproduce it with my dev environment and after
>>>> copying "Qt5Svg.dll", it renders the checkbox and for Mac build, we should
>>>> copy theme components in "Resources" folder which might solve the problem
>>>> and update the patch accordingly.
>>>> Once snapshot build is ready, I will verify with the same. Do review it.
>>>>
>>>> Thanks,
>>>> Neel Patel
>>>>
>>>> On Wed, Apr 15, 2020 at 7:12 PM Dave Page <[email protected]> wrote:
>>>>
>>>>>
>>>>>
>>>>> On Wed, Apr 15, 2020 at 2:11 PM Neel Patel <
>>>>> [email protected]> wrote:
>>>>>
>>>>>> Hi Dave,
>>>>>>
>>>>>> On Wed, Apr 15, 2020 at 5:04 PM Dave Page <[email protected]> wrote:
>>>>>>
>>>>>>> Hi
>>>>>>>
>>>>>>> On Thu, Apr 9, 2020 at 5:56 PM Neel Patel <
>>>>>>> [email protected]> wrote:
>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>>>    - 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]
>>>>>>>>>
>>>>>>>>
>>>>>>> So interestingly, with the snapshot build I now see this:
>>>>>>>
>>>>>>> [image: Screenshot 2020-04-15 at 12.34.02.png]
>>>>>>>
>>>>>>> Any idea what's going on?
>>>>>>>
>>>>>>
>>>>>> All svg files and qss reside along with the application ?
>>>>>> Initially I got this issue and when I copied the qss and svg files
>>>>>> along with the application, it resolved the issue but again I will
>>>>>> double-check and update on this.
>>>>>>
>>>>>
>>>>> Actually, no - I don't see them in the appbundle.
>>>>>
>>>>> --
>>>>> 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.47.39.png (398.3K, 4-Screenshot%202020-04-09%20at%2017.47.39.png)
  download | view image

  [image/png] Screenshot 2020-04-15 at 12.34.02.png (455.0K, 5-Screenshot%202020-04-15%20at%2012.34.02.png)
  download | view image

^ permalink  raw  reply  [nested|flat] 26+ messages in thread

* Re: RM4292 - Dark mode support for Windows/macOS
  2020-04-08 15:38 RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-09 05:42 ` Re: RM4292 - Dark mode support for Windows/macOS Akshay Joshi <[email protected]>
  2020-04-09 13:28   ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  2020-04-09 16:49     ` Re: RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-09 16:56       ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  2020-04-15 11:34         ` Re: RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-15 13:11           ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  2020-04-15 13:42             ` Re: RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-20 13:28               ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  2020-04-20 13:49                 ` Re: RM4292 - Dark mode support for Windows/macOS Akshay Joshi <[email protected]>
  2020-04-22 11:39                   ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  2020-04-22 11:42                     ` Re: RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-22 11:55                       ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
@ 2020-04-22 12:04                         ` Dave Page <[email protected]>
  1 sibling, 0 replies; 26+ messages in thread

From: Dave Page @ 2020-04-22 12:04 UTC (permalink / raw)
  To: Neel Patel <[email protected]>; +Cc: Akshay Joshi <[email protected]>; pgadmin-hackers <[email protected]>

Ah, OK. Cool :-)

On Wed, Apr 22, 2020 at 12:55 PM Neel Patel <[email protected]>
wrote:

> yes, as i have tested on my local env without those files and it worked.
> So now those staging files for dark themes are not required ( *.qss,
> dark/*.svg, light/*.svg etc )  as qss are bundled within the application
> itself. If we copy those files along with the application and change the
> QSS, it is not affecting any Qt controls. At compile time, whatever the qss
> embedded to application, that will be applied.
>
> Thanks,
> Neel Patel
>
> On Wed, Apr 22, 2020 at 5:12 PM Dave Page <[email protected]> wrote:
>
>> Doesn't that revert the previous patch that copied all the required files
>> into the staging directory?
>>
>> On Wed, Apr 22, 2020 at 12:40 PM Neel Patel <[email protected]>
>> wrote:
>>
>>> Hi,
>>>
>>> After debugging, I found that the required image formats Qt plugin was
>>> missing in bundling and due to that "checkbox" images or all images were
>>> not rendered from qss files. It was working fine in my local development
>>> environment because all required plugins to load the images are present. I
>>> have attached the patch for windows and Mac. Can you please review ? I will
>>> verify once snapshot build is available.
>>>
>>> Thanks,
>>> Neel Patel
>>>
>>> On Mon, Apr 20, 2020 at 7:19 PM Akshay Joshi <
>>> [email protected]> wrote:
>>>
>>>> Thanks, patch applied without testing it.
>>>>
>>>> On Mon, Apr 20, 2020 at 6:59 PM Neel Patel <[email protected]>
>>>> wrote:
>>>>
>>>>> Hi,
>>>>>
>>>>> In windows, I am able to reproduce it with my dev environment and
>>>>> after copying "Qt5Svg.dll", it renders the checkbox and for Mac build, we
>>>>> should copy theme components in "Resources" folder which might solve the
>>>>> problem and update the patch accordingly.
>>>>> Once snapshot build is ready, I will verify with the same. Do review
>>>>> it.
>>>>>
>>>>> Thanks,
>>>>> Neel Patel
>>>>>
>>>>> On Wed, Apr 15, 2020 at 7:12 PM Dave Page <[email protected]> wrote:
>>>>>
>>>>>>
>>>>>>
>>>>>> On Wed, Apr 15, 2020 at 2:11 PM Neel Patel <
>>>>>> [email protected]> wrote:
>>>>>>
>>>>>>> Hi Dave,
>>>>>>>
>>>>>>> On Wed, Apr 15, 2020 at 5:04 PM Dave Page <[email protected]> wrote:
>>>>>>>
>>>>>>>> Hi
>>>>>>>>
>>>>>>>> On Thu, Apr 9, 2020 at 5:56 PM Neel Patel <
>>>>>>>> [email protected]> wrote:
>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>>>    - 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]
>>>>>>>>>>
>>>>>>>>>
>>>>>>>> So interestingly, with the snapshot build I now see this:
>>>>>>>>
>>>>>>>> [image: Screenshot 2020-04-15 at 12.34.02.png]
>>>>>>>>
>>>>>>>> Any idea what's going on?
>>>>>>>>
>>>>>>>
>>>>>>> All svg files and qss reside along with the application ?
>>>>>>> Initially I got this issue and when I copied the qss and svg files
>>>>>>> along with the application, it resolved the issue but again I will
>>>>>>> double-check and update on this.
>>>>>>>
>>>>>>
>>>>>> Actually, no - I don't see them in the appbundle.
>>>>>>
>>>>>> --
>>>>>> 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
>>
>

-- 
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.47.39.png (398.3K, 4-Screenshot%202020-04-09%20at%2017.47.39.png)
  download | view image

  [image/png] Screenshot 2020-04-15 at 12.34.02.png (455.0K, 5-Screenshot%202020-04-15%20at%2012.34.02.png)
  download | view image

^ permalink  raw  reply  [nested|flat] 26+ messages in thread

* Re: RM4292 - Dark mode support for Windows/macOS
  2020-04-08 15:38 RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-09 05:42 ` Re: RM4292 - Dark mode support for Windows/macOS Akshay Joshi <[email protected]>
  2020-04-09 13:28   ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  2020-04-09 16:49     ` Re: RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-09 16:56       ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  2020-04-15 11:34         ` Re: RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-15 13:11           ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  2020-04-15 13:42             ` Re: RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-20 13:28               ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  2020-04-20 13:49                 ` Re: RM4292 - Dark mode support for Windows/macOS Akshay Joshi <[email protected]>
  2020-04-22 11:39                   ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
  2020-04-22 11:42                     ` Re: RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
  2020-04-22 11:55                       ` Re: RM4292 - Dark mode support for Windows/macOS Neel Patel <[email protected]>
@ 2020-04-22 13:18                         ` Akshay Joshi <[email protected]>
  1 sibling, 0 replies; 26+ messages in thread

From: Akshay Joshi @ 2020-04-22 13:18 UTC (permalink / raw)
  To: Neel Patel <[email protected]>; +Cc: Dave Page <[email protected]>; pgadmin-hackers <[email protected]>

Thanks, patch applied.

On Wed, Apr 22, 2020 at 5:25 PM Neel Patel <[email protected]>
wrote:

> yes, as i have tested on my local env without those files and it worked.
> So now those staging files for dark themes are not required ( *.qss,
> dark/*.svg, light/*.svg etc )  as qss are bundled within the application
> itself. If we copy those files along with the application and change the
> QSS, it is not affecting any Qt controls. At compile time, whatever the qss
> embedded to application, that will be applied.
>
> Thanks,
> Neel Patel
>
> On Wed, Apr 22, 2020 at 5:12 PM Dave Page <[email protected]> wrote:
>
>> Doesn't that revert the previous patch that copied all the required files
>> into the staging directory?
>>
>> On Wed, Apr 22, 2020 at 12:40 PM Neel Patel <[email protected]>
>> wrote:
>>
>>> Hi,
>>>
>>> After debugging, I found that the required image formats Qt plugin was
>>> missing in bundling and due to that "checkbox" images or all images were
>>> not rendered from qss files. It was working fine in my local development
>>> environment because all required plugins to load the images are present. I
>>> have attached the patch for windows and Mac. Can you please review ? I will
>>> verify once snapshot build is available.
>>>
>>> Thanks,
>>> Neel Patel
>>>
>>> On Mon, Apr 20, 2020 at 7:19 PM Akshay Joshi <
>>> [email protected]> wrote:
>>>
>>>> Thanks, patch applied without testing it.
>>>>
>>>> On Mon, Apr 20, 2020 at 6:59 PM Neel Patel <[email protected]>
>>>> wrote:
>>>>
>>>>> Hi,
>>>>>
>>>>> In windows, I am able to reproduce it with my dev environment and
>>>>> after copying "Qt5Svg.dll", it renders the checkbox and for Mac build, we
>>>>> should copy theme components in "Resources" folder which might solve the
>>>>> problem and update the patch accordingly.
>>>>> Once snapshot build is ready, I will verify with the same. Do review
>>>>> it.
>>>>>
>>>>> Thanks,
>>>>> Neel Patel
>>>>>
>>>>> On Wed, Apr 15, 2020 at 7:12 PM Dave Page <[email protected]> wrote:
>>>>>
>>>>>>
>>>>>>
>>>>>> On Wed, Apr 15, 2020 at 2:11 PM Neel Patel <
>>>>>> [email protected]> wrote:
>>>>>>
>>>>>>> Hi Dave,
>>>>>>>
>>>>>>> On Wed, Apr 15, 2020 at 5:04 PM Dave Page <[email protected]> wrote:
>>>>>>>
>>>>>>>> Hi
>>>>>>>>
>>>>>>>> On Thu, Apr 9, 2020 at 5:56 PM Neel Patel <
>>>>>>>> [email protected]> wrote:
>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>>>    - 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]
>>>>>>>>>>
>>>>>>>>>
>>>>>>>> So interestingly, with the snapshot build I now see this:
>>>>>>>>
>>>>>>>> [image: Screenshot 2020-04-15 at 12.34.02.png]
>>>>>>>>
>>>>>>>> Any idea what's going on?
>>>>>>>>
>>>>>>>
>>>>>>> All svg files and qss reside along with the application ?
>>>>>>> Initially I got this issue and when I copied the qss and svg files
>>>>>>> along with the application, it resolved the issue but again I will
>>>>>>> double-check and update on this.
>>>>>>>
>>>>>>
>>>>>> Actually, no - I don't see them in the appbundle.
>>>>>>
>>>>>> --
>>>>>> 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
>>
>

-- 
*Thanks & Regards*
*Akshay Joshi*

*Sr. Software Architect*
*EnterpriseDB Software India Private Limited*
*Mobile: +91 976-788-8246*


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.47.39.png (398.3K, 4-Screenshot%202020-04-09%20at%2017.47.39.png)
  download | view image

  [image/png] Screenshot 2020-04-15 at 12.34.02.png (455.0K, 5-Screenshot%202020-04-15%20at%2012.34.02.png)
  download | view image

^ permalink  raw  reply  [nested|flat] 26+ messages in thread


end of thread, other threads:[~2020-04-22 13:18 UTC | newest]

Thread overview: 26+ messages (download: mbox mbox.gz follow: Atom feed)
-- links below jump to the message on this page --
2020-04-08 15:38 RM4292 - Dark mode support for Windows/macOS Dave Page <[email protected]>
2020-04-09 05:42 ` Akshay Joshi <[email protected]>
2020-04-09 13:28   ` Neel Patel <[email protected]>
2020-04-09 16:49     ` Dave Page <[email protected]>
2020-04-09 16:56       ` Neel Patel <[email protected]>
2020-04-10 12:10         ` Neel Patel <[email protected]>
2020-04-13 08:35           ` Akshay Joshi <[email protected]>
2020-04-13 11:27             ` Dave Page <[email protected]>
2020-04-13 11:30               ` Akshay Joshi <[email protected]>
2020-04-13 11:35                 ` Dave Page <[email protected]>
2020-04-13 11:37                   ` Akshay Joshi <[email protected]>
2020-04-13 13:07                     ` Neel Patel <[email protected]>
2020-04-14 08:18                       ` Dave Page <[email protected]>
2020-04-14 10:19                       ` Akshay Joshi <[email protected]>
2020-04-14 11:34                         ` Neel Patel <[email protected]>
2020-04-14 15:48                           ` Akshay Joshi <[email protected]>
2020-04-15 11:34         ` Dave Page <[email protected]>
2020-04-15 13:11           ` Neel Patel <[email protected]>
2020-04-15 13:42             ` Dave Page <[email protected]>
2020-04-20 13:28               ` Neel Patel <[email protected]>
2020-04-20 13:49                 ` Akshay Joshi <[email protected]>
2020-04-22 11:39                   ` Neel Patel <[email protected]>
2020-04-22 11:42                     ` Dave Page <[email protected]>
2020-04-22 11:55                       ` Neel Patel <[email protected]>
2020-04-22 12:04                         ` Dave Page <[email protected]>
2020-04-22 13:18                         ` Akshay Joshi <[email protected]>

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox