From 98ef80be4e1d15396cffe4016a6f2483da9ab6eb Mon Sep 17 00:00:00 2001 From: Pablo Gil Date: Thu, 3 Mar 2016 13:05:05 +0100 Subject: [PATCH] version 2.0 + totally redone from scratch + code simplified + code ordered by element + almost everything commented + improved the overall look of the GUI in order to match any OS + tweaked colors for a better experience + solved lots of bugs and minor issues --- README.md | 39 +- dark-blue.qss | 3789 ++++++++++++++++---------------- dark-green.qss | 3789 ++++++++++++++++---------------- dark-orange.qss | 3789 ++++++++++++++++---------------- images/background_freecad.png | Bin 10833 -> 8356 bytes images/down_arrow_dark.png | Bin 176 -> 3427 bytes images/down_arrow_darker.png | Bin 0 -> 3427 bytes images/down_arrow_light.png | Bin 169 -> 5449 bytes images/down_arrow_lighter.png | Bin 171 -> 5450 bytes images/left_arrow_dark.png | Bin 177 -> 3432 bytes images/left_arrow_darker.png | Bin 0 -> 3430 bytes images/left_arrow_light.png | Bin 172 -> 5484 bytes images/left_arrow_lighter.png | Bin 176 -> 5484 bytes images/right_arrow_dark.png | Bin 170 -> 3430 bytes images/right_arrow_darker.png | Bin 0 -> 3428 bytes images/right_arrow_light.png | Bin 173 -> 5454 bytes images/right_arrow_lighter.png | Bin 171 -> 5456 bytes images/up_arrow_dark.png | Bin 166 -> 3427 bytes images/up_arrow_darker.png | Bin 0 -> 3426 bytes images/up_arrow_light.png | Bin 167 -> 5454 bytes images/up_arrow_lighter.png | Bin 167 -> 5454 bytes light-blue.qss | 3782 ++++++++++++++++--------------- light-green.qss | 3782 ++++++++++++++++--------------- light-orange.qss | 3782 ++++++++++++++++--------------- 24 files changed, 11285 insertions(+), 11467 deletions(-) create mode 100644 images/down_arrow_darker.png create mode 100644 images/left_arrow_darker.png create mode 100644 images/right_arrow_darker.png create mode 100644 images/up_arrow_darker.png diff --git a/README.md b/README.md index dc1537f..a60792f 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,15 @@ About ------- -version 1.8a +version 2.0 QT themes (stylesheet) specially developed for **FreeCAD** (http://www.freecadweb.org/). -It might work with other software that uses QT styling. +They might work with other software that uses QT styling. Dark style example: -![Dark-Green stylesheet](/../multimedia/img/stylesheet_dark.png?raw=true "Dark-Green stylesheet") +![Dark-Blue stylesheet](/../multimedia/img/stylesheet_dark-blue.png?raw=true "Dark-Blue stylesheet") Light style example: -![Dark-Green stylesheet](/../multimedia/img/stylesheet_light.png?raw=true "Dark-Green stylesheet") +![Dark-Blue stylesheet](/../multimedia/img/stylesheet_light-blue.png?raw=true "Dark-Blue stylesheet") Installation ------ @@ -18,47 +18,24 @@ Installation - **WINDOWS** = C:/[INSTALLATION_PATH]/FreeCAD/data/Gui/Stylesheets/ - **LINUX** = /home/[YOUR_USER_NAME]/.FreeCAD/Gui/Stylesheets/ 2. In order to display correctly images that are used inside the stylesheet: - 1. If you use **FreeCAD 0.16** (development builds newer than commit 5b3d50a): that's it, you are done! - 2. If you use **FreeCAD 0.15**: Images used in the theme need full paths to be found by FreeCAD, so you should search the string **qss:images** and replace with the real path of your computer. It should be done with all the .qss files you want to install-use + 1. **FreeCAD 0.16** (development builds newer than commit 5b3d50a): that's it, you are done! + 2. **FreeCAD 0.15**: Images used in the theme need full paths to be found by FreeCAD, so you should search the string **qss:images** and replace with the real path of your computer. It should be done with all the .qss files you want to install-use - **find** = qss:images - **replace** = /Users/myName/Library/Preferences/FreeCAD/Gui/Stylesheets/images -Customization ------- -If you would like to change the overall look/style of the theme, just find and replace the "palette colors" listed at the start of the file you want to edit: -- background darker -- background dark and slighly darker -- background dark -- background normal and slighly darker -- background normal -- background light -- background ligher -- lists background -- lists background (alternate) -- lists background selection -- foreground -- selection darker -- selection dark -- selection normal -- selection inbetween normal and light -- selection light -- selection lighter - Caveats ------ - **FreeCAD 0.15** * full paths to images are needed, that means all these .qss files should be edited per user * the "Task panel" is not stylable -- in app icons-buttons are designed in svg but are not stylable, that is, it's not possible to change them... I hope it also changes in the near future -Known bugs and To do +Known bugs and TO DOs ------ Please, follow the [link to get updated information](http://forum.freecadweb.org/viewtopic.php?f=10&t=12417&p=99676) License ------ -Copyright (c) 2015 Pablo Gil Fernández. -The stylesheet uses some code from Colin Duquesnoy generic QT stylesheet +Copyright (c) 2016 Pablo Gil Fernández. ![Attribution-ShareAlike 4.0 International](http://i.creativecommons.org/l/by-sa/3.0/88x31.png) This work is licensed under a [Creative Commons Attribution-ShareAlike 4.0 International License](http://creativecommons.org/licenses/by-sa/4.0/). diff --git a/dark-blue.qss b/dark-blue.qss index 2a08f0d..d029309 100644 --- a/dark-blue.qss +++ b/dark-blue.qss @@ -1,1906 +1,1883 @@ -/* -ABOUT -=========================================================== -version 1.8 -QT theme (stylesheet) specially developed for FreeCAD (http://www.freecadweb.org/). -It might work with other software that uses QT styling. - - -LICENSE -=========================================================== -Copyright (c) 2015 Pablo Gil Fernández -The stylesheet barely uses code from Colin Duquesnoy "generic QT stylesheet" - -This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. -To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/. - - -INSTALLATION -=========================================================== -1) Place the .qss files and /images/ folder in the path that fits your OS: - OSX = /Users/[YOUR_USER_NAME]/Library/Preferences/FreeCAD/Gui/Stylesheets/ - WINDOWS = C:/[INSTALLATION_PATH]/FreeCAD/data/Gui/Stylesheets/ - LINUX = /home/[YOUR_USER_NAME]/.FreeCAD/Gui/Stylesheets/ - -2) In order to display correctly images that are used inside the stylesheet: - 2.1) If you use FreeCAD 0.16 (development builds newer than commit 5b3d50a): that's it, you are done! - - 2.2) If you use FreeCAD 0.15: Images used in the theme need full paths to be found by FreeCAD, so you should search the string "qss:images" (without "") and replace with the real path of your computer. It should be done with all the .qss files you want to install-use - find = qss:images - replace = /Users/myName/Library/Preferences/FreeCAD/Gui/Stylesheets/images - - -CUSTOMIZATION -=========================================================== -If you would like to change the overall look/style of the theme, just find and replace following colors in the whole file: - background darker = #4d4e51 - background dark and slightly darker = #5d5e61 - background dark = #6d6e71 - background normal and slightly darker = #797b7f - background normal = #85878a - background light = #9a9b9e - background lighter = #c7c7c9 - - lists background = #bdc1c9 - lists background (alternate) = #b3b8bf - lists backgrounds selection = #abb0b7 - - foreground = white - - selection darker = #1b3774 - selection dark = #3874f2 - selection normal = #5e90fa - selection inbetween normal and light = #6f9efa (used to build SpinBoxes) - selection light = #7cabf9 - selection lighter = #adc5ed - - -CAVEATS -=========================================================== - - FreeCAD 0.15 - - full paths to images are needed, that means all these .qss files should be edited per user - - the "Task panel" is not stylable - - in app icons-buttons are designed in svg but are not stylable, that is, it's not possible to change them... I hope it also changes in the near future - - -KNOWN BUGS and TO DO -=========================================================== - - please, follow the link to get updated information: http://forum.freecadweb.org/viewtopic.php?f=10&t=12417 -*/ - -/* RESET EVERYTHING */ -QAbstractScrollArea,QCheckBox,QColumnView,QComboBox,QDateEdit,QDateTimeEdit,QDialog,QDialogButtonBox,QDockWidget,QDoubleSpinBox,QFrame,QGroupBox,QHeaderView,QLabel,QLineEdit,QListView,QListWidget,QMainWindow,QMenu,QMenuBar,QMessageBox,QProgressBar,QPushButton,QRadioButton,QScrollBar,QSizeGrip,QSlider,QSpinBox,QSplitter,QStatusBar,QTabBar,QTabWidget,QTableView,QTableWidget,QTextEdit,QTimeEdit,QToolBar,QToolButton,QToolBox,QToolTip,QTreeView,QTreeWidget,QWidget { - padding: 0px; - margin: 0px; - border: 0px; - border-style: none; - background-color: #85878a; /* set with default background color */ -} - -QMdiArea[showImage="true"] { - background-image: url(qss:images/background_freecad.png); - background-position: center; - background-repeat: no-repeat; -} - -QProgressBar, -QProgressBar:horizontal { - background: #bdc1c9; - border: 1px solid #6d6e71; - text-align: center; - padding: 1px; - border-radius: 4px; -} -QProgressBar::chunk, -QProgressBar::chunk:horizontal { - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #3874f2, stop:1 #5e90fa); - border-radius: 3px; -} - -QToolTip { - background-color: #4d4e51; - color: white; - padding: 4px; - border-radius: 4px; - /*opacity: 200;*/ -} - -QWidget { - color: #4d4e51; - background-color: #85878a; - background-clip: border; - border-image: none; - outline: 0; -} - -QWidget:focus { - border: 1px solid #4d4e51; -} - -QWidget:disabled { - color: #9a9b9e; - background-color: #4d4e51; /* same as QMenu background-color */ -} - -QMenuBar { - color: #c7c7c9; - background-color: #797b7f; -} - -QMenuBar::item { - background-color: #797b7f; -} - -QMenuBar::item:selected { - color: #1b3774; - border: 1px solid #5e90fa; - background-color: #5e90fa; -} - -QMenuBar::item:pressed { - color: #1b3774; - border: 1px solid #7cabf9; - background-color: #7cabf9; - margin-bottom:-1px; - padding-bottom:1px; -} - -QMenu { - color: #c7c7c9; - background-color: #4d4e51; - margin: 2px; - border: 1px solid transparent; -} - -QMenu::icon { - margin: 5px; - border-style: none; -} - -QMenu::right-arrow { - image:url(qss:images/right_arrow_light.png); -} - -QMenu::item { - color: #c7c7c9; - background-color: #4d4e51; - padding: 2px 30px 2px 30px; - border: 1px solid #4d4e51; /* reserve space for selection border */ -} - -QMenu::item:selected { - color: #1b3774; - background-color: #7cabf9; -} - -QMenu::separator { - height: 1px; - background-color: #6d6e71; - margin-top: 2px; - margin-bottom: 2px; - margin-left: 6px; - margin-right: 6px; -} - -QMenu::indicator:non-exclusive { - color: #c7c7c9; - background-color: #9a9b9e; - border: 1px solid #4d4e51; - width: 11px; - height: 11px; - border-radius:2px; -} - -QMenu::indicator:non-exclusive:checked { - background-color: #3874f2; - border: 1px solid #1b3774; - image:url(qss:images/checkbox_light.png); -} - -QGroupBox { - color: #4d4e51; - font-weight: bold; - border:1px solid blue; - border-radius: 4px; - margin-top: 20px; - border-color: rgba(0, 0, 0, 20); /* lighter than "QGroupBox" border-color */ - background-color: rgba(255, 255, 255, 15); -} - - - -QGroupBox::title { - subcontrol-origin: margin; - subcontrol-position: top left; - padding-left: 10px; - padding-right: 10px; - padding-top: 10px; - background-color: transparent; -} - -QAbstractScrollArea { - border-radius: 2px; - border: 1px solid #3A3939; - background-color: transparent; -} - -QAbstractScrollArea::corner { - border: none; - background-color: #85878a; -} - -QScrollBar:horizontal { - height: 15px; - margin: 3px 15px 3px 15px; - border: 1px transparent #4d4e51; - border-radius: 4px; - background-color: #4d4e51; -} - -QScrollBar::handle:horizontal { - background-color: #6d6e71; - min-width: 5px; - border-radius: 4px; -} - -QScrollBar::add-line:horizontal { - margin: 1px 3px 0px 3px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images/right_arrow_light.png); - width: 6px; - height: 10px; - subcontrol-position: right; - subcontrol-origin: margin; -} - -QScrollBar::sub-line:horizontal { - margin: 1px 3px 0px 3px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images/left_arrow_light.png); - height: 10px; - width: 6px; - subcontrol-position: left; - subcontrol-origin: margin; -} - -QScrollBar::add-line:horizontal:hover, -QScrollBar::add-line:horizontal:on { - border-image: url(qss:images/right_arrow_lighter.png); -} - - -QScrollBar::sub-line:horizontal:hover, -QScrollBar::sub-line:horizontal:on { - border-image: url(qss:images/left_arrow_lighter.png); -} - -QScrollBar::up-arrow:horizontal, -QScrollBar::down-arrow:horizontal { - background: none; -} - - -QScrollBar::add-page:horizontal, -QScrollBar::sub-page:horizontal { - background: none; -} - -QScrollBar:vertical { - background-color: #4d4e51; - width: 15px; - margin: 15px 3px 15px 3px; - border: 1px transparent #4d4e51; - border-radius: 4px; -} - -QScrollBar::handle:vertical { - background-color: #6d6e71; - min-height: 5px; - border-radius: 4px; -} - -QScrollBar::sub-line:vertical { - margin: 3px 0px 3px 1px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images/up_arrow_light.png); - height: 6px; - width: 10px; - subcontrol-position: top; - subcontrol-origin: margin; -} - -QScrollBar::add-line:vertical { - margin: 3px 0px 3px 1px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images/down_arrow_light.png); - height: 6px; - width: 10px; - subcontrol-position: bottom; - subcontrol-origin: margin; -} - -QScrollBar::sub-line:vertical:hover, -QScrollBar::sub-line:vertical:on { - border-image: url(qss:images/up_arrow_lighter.png); -} - -QScrollBar::add-line:vertical:hover, -QScrollBar::add-line:vertical:on { - border-image: url(qss:images/down_arrow_lighter.png); -} - -QScrollBar::up-arrow:vertical, -QScrollBar::down-arrow:vertical { - background: none; -} - - -QScrollBar::add-page:vertical, -QScrollBar::sub-page:vertical { - background: none; -} - -QTextEdit { - color: #4d4e51; - background-color: #bdc1c9; - border: 1px solid #6d6e71; - padding: 0px; - margin: 0px; -} - -QPlainTextEdit { - color: #4d4e51; - background-color: #bdc1c9; - border-radius: 2px; - border: 1px solid #6d6e71; - padding: 0px; - margin: 0px; -} - -QSizeGrip { - image: url(qss:images/sizegrip_light.png); - width: 16px; - height: 16px; - background-color: transparent; -} - -QRadioButton::indicator:unchecked{ - color: #4d4e51; - background-color: #9a9b9e; - border: 1px solid #4d4e51; -} - -QRadioButton::indicator:checked { - background-color: #3874f2; - border: 1px solid #1b3774; - image:url(qss:images/radiobutton_light.png); -} - -QCheckBox, -QRadioButton, -QCheckBox:disabled, -QRadioButton:disabled { - color: #4d4e51; - padding: 3px; - outline: none; - background-color: transparent; -} - -QCheckBox::indicator, -QGroupBox::indicator { - color: #c7c7c9; - background-color: #9a9b9e; - border: 1px solid #4d4e51; -} - -QCheckBox::indicator { - width: 11px; - height: 11px; - border-radius:2px; -} - -QRadioButton::indicator { - width: 11px; - height: 11px; - border-radius: 6px; -} - -QRadioButton::indicator:pressed, -QCheckBox::indicator:pressed, -QCheckBox::indicator:non-exclusive:checked:pressed, -QCheckBox::indicator:indeterminate:pressed, -QCheckBox::indicator:checked:pressed { - border-color: #adc5ed; -} - -QCheckBox::indicator:checked, -QGroupBox::indicator:checked { - background-color: #3874f2; - border: 1px solid #1b3774; - image:url(qss:images/checkbox_light.png); -} - -QCheckBox::indicator:disabled, -QRadioButton::indicator:disabled { - border: 1px solid #6d6e71; -} - -QCheckBox:disabled, -QRadioButton::indicator:disabled { - color: #6d6e71; - background-color: transparent; -} - -QCheckBox::indicator:disabled, -QGroupBox::indicator:disabled, -QMenu::indicator:non-exclusive:disabled { - background-color: #85878a; -} - -QCheckBox::indicator:indeterminate { - background-color: #3874f2; - border: 1px solid #1b3774; - image: url(qss:images/checkbox_indeterminate_light.png); -} - -QCheckBox:focus, -QRadioButton:focus { - border: none; -} - -QFrame, -QFrame:pressed, -QFrame:focus, -QFrame:on { - border: 1px solid #85878a; - border-radius: 3px; - padding: 0px; - /* background-color: transparent; temporal */ -} - -/* border and background of QComboBox drop-down */ -QComboBox QFrame, -QComboBox QFrame:pressed, -QComboBox QFrame:focus, -QComboBox QFrame:on { - border: 1px solid #4d4e51; - background-color: #4d4e51; - padding: 0px; - margin: 0px; -} - -QFrame[frameShape="0"] { - border-radius: 3px; -} - -/* Separator line */ -QFrame[height="1"], -QFrame[height="2"], -QFrame[height="3"], -QFrame[width="1"], -QFrame[width="2"], -QFrame[width="3"] { - border-width: 1px 0px 0px 0px; - border-style: solid; - border-color: #797b7f; - background-color: transparent; -} - -QPushButton { - color: #c7c7c9; - text-align: center; - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #6d6e71, stop:1 #85878a); - border: 1px solid #4d4e51; - padding: 5px 12px 5px 12px; - margin: 4px 8px 4px 8px; - border-radius: 3px; - min-width: 14px; - min-height: 14px; -} - -QPushButton:hover, -QPushButton:focus { - color: white; - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #3874f2, stop:1 #5e90fa); - border-color: #3874f2; -} - -QPushButton:disabled, -QPushButton:disabled:checked { - color: #6d6e71; - background-color: #85878a; - border-color: #6d6e71; -} - -QPushButton:pressed { - background-color: #3874f2; -} - -QPushButton:checked { - background-color: #5e90fa; - border-color: #3874f2; -} - -/* Color Buttons */ -Gui--ColorButton, -Gui--ColorButton:disabled { - border-color: transparent; - background-color: transparent; - /*width: 60px;*/ - height: 24px; - padding: 0px; - margin: 0px; -} - -Gui--ColorButton:hover { - border-color: #797b7f; - background-color: #797b7f; -} - -/* Buttons inside the toolbar */ -QToolBar QPushButton { - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #797b7f, stop:1 #85878a); - border: 1px solid #6d6e71; - min-width: 22px; - min-height: 22px; - margin-left: 2px; - margin-right: 2px; - margin-bottom: 3px; /*bigger margin to correctly separate buttons inside a vertical toolbar */ - margin-top: 1px; - padding: 1px; -} - -QToolBar QPushButton:hover, -QToolBar QPushButton:focus { - color: #c7c7c9; - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #797b7f, stop:1 #85878a); - border: 1px solid #4d4e51; -} - -QToolBar QPushButton:disabled, -QToolBar QPushButton:disabled:checked { - background-color: #85878a; - border-color: #797b7f; -} - -QToolBar QPushButton:pressed { - background-color: #6d6e71; - border-color: #6d6e71; -} - -QToolBar QPushButton:checked { - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #5e90fa, stop:1 #7cabf9); - border-color: #5e90fa; -} - -QToolBar QPushButton:checked:hover, -QToolBar QPushButton:checked:focus { - color: #c7c7c9; - border: 1px solid #3874f2; -} - -QToolBar { - border: 1px transparent #393838; - background-color: #85878a; - font-weight: bold; - margin: 0px; - padding: 0px; -} - -QToolBar::handle:horizontal { - background-image: url(qss:images/Hmovetoolbar_dark.png); - width: 10px; - margin: 6px 2px 6px 2px; - background-position: top right; - background-repeat: repeat-y; -} - -QToolBar::handle:vertical { - background-image: url(qss:images/Vmovetoolbar_dark.png); - height: 10px; - margin: 2px 6px 2px 6px; - background-position: left bottom; - background-repeat: repeat-x; -} - -QToolBar::separator:horizontal { - background-image: url(qss:images/separtoolbar_dark.png); - width: 10px; - margin: 6px 2px 6px 2px; - background-position: center center; - background-repeat: repeat-y; -} - -QToolBar::separator:vertical { - background-image: url(qss:images/separtoolbar_dark.png); - height: 10px; - margin: 2px 6px 2px 6px; - background-position: center center; - background-repeat: repeat-x; -} - -QStackedWidget { - background-color: #85878a; - border: 1px transparent #85878a; -} - -QAbstractSpinBox { - color: #c7c7c9; - border: 1px solid #6d6e71; /* border top color defined after QAbstractSpinBox, QLineEdit and QComboBox */ - background-color: #6d6e71; - selection-color: white; - selection-background-color: #5e90fa; -} - -QAbstractSpinBox:disabled { - color: #9a9b9e; - background-color: #797b7f; - border-color: #797b7f; -} - -QAbstractSpinBox:up-button { - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #6f9efa, stop:1 #7cabf9); - subcontrol-origin: border; - subcontrol-position: top right; - border-top-right-radius: 3px; - width: 20px; -} - -QAbstractSpinBox:down-button { - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #5e90fa, stop:1 #6f9efa); - subcontrol-origin: border; - subcontrol-position: bottom right; - border-bottom-right-radius: 3px; - width: 20px; -} - -QAbstractSpinBox:up-button:disabled, -QAbstractSpinBox:down-button:disabled { - background-color: transparent; -} - -QAbstractSpinBox::up-arrow { - image: url(qss:images/up_arrow_light.png); - top: 1px; /* fix simetry between up and down images */ -} - -QAbstractSpinBox::up-arrow:hover { - image: url(qss:images/up_arrow_lighter.png); -} - -QAbstractSpinBox::up-arrow:off { - image: url(qss:images/up_arrow_disabled_dark.png); -} - -QAbstractSpinBox::up-arrow:disabled { - image: none; -} - -QAbstractSpinBox::down-arrow { - image: url(qss:images/down_arrow_light.png); - bottom: -1px; /* fix simetry between up and down images */ -} -QAbstractSpinBox::down-arrow:hover { - image: url(qss:images/down_arrow_lighter.png); -} - -QAbstractSpinBox::down-arrow:off { - image: url(qss:images/down_arrow_disabled_dark.png); -} - -QAbstractSpinBox::down-arrow:disabled { - image: none; -} - -QToolBar QAbstractSpinBox { - margin-top: 4px; - margin-bottom: 4px; -} - -QLineEdit { - color: #c7c7c9; - background-color: #6d6e71; - selection-color: white; - selection-background-color: #5e90fa; - /* Padding and margin defined */ - border-style: solid; - border: 1px solid #6d6e71; /* border top color defined after QAbstractSpinBox, QLineEdit and QComboBox */ - border-radius: 3px; -} - -QAbstractSpinBox:focus, -QLineEdit:focus, -QComboBox:focus { - border-color: #7cabf9; -} - -QComboBox { - color: #c7c7c9; - background-color: #6d6e71; - selection-color: white; - selection-background-color: #5e90fa; - border: 1px solid #6d6e71; /* border top color defined after QAbstractSpinBox, QLineEdit and QComboBox */ - border-radius: 3px; -} - -QComboBox:on { - color: white; - background-color: #6d6e71; - border-color: #7cabf9; -} - -QComboBox::drop-down { - subcontrol-origin: margin; - subcontrol-position: top right; - width: 20px; - border-left-width: 1px; - border-left-color: transparent; - border-left-style: solid; - border-top-right-radius: 3px; - border-bottom-right-radius: 3px; - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #5e90fa, stop:1 #7cabf9); -} - -QComboBox::down-arrow { - image: url(qss:images/down_arrow_light.png); -} - -QComboBox::down-arrow:on, -QComboBox::down-arrow:hover, -QComboBox::down-arrow:focus { - image: url(qss:images/down_arrow_lighter.png); -} - -QComboBox QAbstractItemView { - color: #c7c7c9; - background-color: #4d4e51; - border-radius: 3px; - margin: 0px; - padding: 0px; - border: none; -} - -/* Common parameters for QAbstractSpinBox, QLineEdit and QComboBox */ -QSpinBox, -QDoubleSpinBox, -QAbstractSpinBox, -QLineEdit, -QComboBox { - border-top-color: #5d5e61; /* Creates an inset effect inside the elements */ - padding: 2px 6px 2px 6px; /* This makes text colour work on QComboBox */ - margin: 0px 2px 0px 2px; - min-width: 70px; /* it was 120 because of QCombobox... */ - border-radius: 3px; -} -/* end Common parameters */ - -QAbstractItemView { - color: #4d4e51; - alternate-background-color: #b3b8bf; /* related with QListView background */ - border: 1px solid #4d4e51; - border-radius: 3px; - padding: 0px; -} - -/* hack to deactivate changing background color when focus (due to QFrame generic transparent color) */ -QAbstractItemView:selected, -QAbstractItemView:on, -QAbstractItemView:focus { - background-color: #bdc1c9; /* same as QTable background color */ -} - -/* hack to hide weird redundant information inside the value of a Placement cell */ -QTreeView QLabel, -QTreeView QLabel:disabled { - color: transparent; - background-color: transparent; - border: none; - border-radius: 0px; - margin: 0px; - padding: 0px; -} - -QTreeView QLineEdit { - color: #c7c7c9; - border-color: #6d6e71; - background-color: #6d6e71; - selection-color: white; - selection-background-color: #5e90fa; -} - -/* hack to hide non editable cells inside Property values */ -QTreeView QLineEdit:read-only, -QTreeView QLineEdit:disabled, -QTreeView QAbstractSpinBox:read-only, -QTreeView QAbstractSpinBox:disabled { - color: transparent; - border-color: transparent; - background-color: transparent; - selection-color: transparent; - selection-background-color: transparent; -} - -/* hack to disable margin inside Property values to following elements */ -QTreeView QSpinBox, -QTreeView QDoubleSpinBox, -QTreeView QAbstractSpinBox, -QTreeView QLineEdit, -QTreeView QComboBox { - margin-left: 0px; - margin-right: 0px; - padding-top: 0px; - padding-bottom: 0px; -} - -/* Pushbutton style for "..." inside Placement cell which launches Placement tool */ -QTreeView QPushButton { - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #6d6e71, stop:1 #85878a); - border-top: none; - border-bottom: none; - border-right: none; - border-left: 1px solid #6d6e71; - border-radius: 0px; - margin: 0px; - padding: 0px; - height: 24px; -} - -/* Color Buttons inside the "Properties window" */ -QAbstractItemView Gui--ColorButton { - padding: 0px; - margin: 0px; - height: 10px; -} - -QAbstractItemView QPushButton:hover { - color: white; - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #3874f2, stop:1 #5e90fa); - border-color: #3874f2; -} - -QAbstractItemView QPushButton:disabled { - color: transparent; - background-color: transparent; - border-color: transparent; -} - -QLabel { - border: 0px solid #4d4e51; -} - -QTabWidget{ - border: none; -} - -QTabWidget:focus { - border: none; -} - -QTabWidget::pane { - border: none; - padding: 0px; - background-color: #85878a; - position: absolute; - top: -15px; - padding-top: 15px; -} - -QTabWidget::tab-bar { - alignment: center; -} - -QTabBar { - qproperty-drawBase: 0; - left: 5px; - background-color: transparent; -} - -QTabBar:focus { - border: 0px transparent black; -} - -QTabBar::close-button { - padding: 0px; - margin: 0px; - border-radius: 2px; - background-image: url(qss:images/close_dark.png); - background-position: center center; - background-repeat: none; -} - -QTabBar::close-button:hover { - background-color: #7cabf9; -} - -QTabBar::close-button:pressed { - background-color: #adc5ed; -} - -QTabBar::scroller { /* the width of the scroll buttons */ - width: 20px; -} - -/* the scroll buttons are tool buttons */ -QTabBar QToolButton, -QTabBar QToolButton:hover { - margin-top: 4px; - margin-bottom: 4px; - margin-left: 0px; - margin-right: 0px; - padding: 0px; - border: none; - background-color: #85878a; - border-radius: 0px; -} - -QTabBar QToolButton::right-arrow:enabled { - image: url(qss:images/right_arrow_light.png); -} - -QTabBar QToolButton::right-arrow:disabled, -QTabBar QToolButton::right-arrow:off { - image: url(qss:images/right_arrow_disabled_dark.png); -} - -QTabBar QToolButton::right-arrow:hover { - image: url(qss:images/right_arrow_lighter.png); -} - - QTabBar QToolButton::left-arrow:enabled { - image: url(qss:images/left_arrow_light.png); -} - - QTabBar QToolButton::left-arrow:disabled, - QTabBar QToolButton::left-arrow:off { - image: url(qss:images/left_arrow_disabled_dark.png); -} - - QTabBar QToolButton::left-arrow:hover { - image: url(qss:images/left_arrow_lighter.png); -} - - QTabBar QToolButton::up-arrow:enabled { - image: url(qss:images/up_arrow_light.png); -} - - QTabBar QToolButton::up-arrow:disabled, - QTabBar QToolButton::up-arrow:off { - image: url(qss:images/up_arrow_disabled_dark.png); -} - - QTabBar QToolButton::up-arrow:hover { - image: url(qss:images/up_arrow_lighter.png); -} - - QTabBar QToolButton::down-arrow:enabled { - image: url(qss:images/down_arrow_light.png); -} - - QTabBar QToolButton::down-arrow:disabled, - QTabBar QToolButton::down-arrow:off { - image: url(qss:images/down_arrow_disabled_dark.png); -} - - QTabBar QToolButton::down-arrow:hover { - image: url(qss:images/down_arrow_lighter.png); -} - -/* HORIZONTAL TABS */ -QTabBar::tab:top, -QTabBar::tab:bottom { - color: #c7c7c9; - border: 1px solid #6d6e71; - border-left-color: #85878a; - border-right-width: 0px; - border-bottom: 1px solid #5d5e61; /* shadown effect */ - background-color: #6d6e71; - padding:5px 15px; - margin-top: 4px; - margin-bottom: 4px; - position: center; -} - -QTabBar::tab:top:first, -QTabBar::tab:bottom:first { - border-top-left-radius: 6px; - border-bottom-left-radius: 6px; -} - -QTabBar::tab:top:last, -QTabBar::tab:bottom:last { - border-top-right-radius: 6px; - border-bottom-right-radius: 6px; - border-right-width: 1px; -} - -QTabBar::tab:top:selected, -QTabBar::tab:bottom:selected { - color: white; - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #3874f2, stop:1 #5e90fa); - border-color: #3874f2; - border-bottom: 1px solid #5d5e61; /* shadown effect */ -} - -QTabBar::tab:top:!selected:hover, -QTabBar::tab:bottom:!selected:hover { - color: white; -} - -QTabBar::tab:top:only-one , -QTabBar::tab:bottom:only-one { - border: 1px solid #1b3774; - border-radius: 6px; -} - -/* VERTICAL TABS */ -QTabBar::tab:left, -QTabBar::tab:right { - color: #c7c7c9; - border: 1px solid #6d6e71; - border-top-color: #85878a; - border-bottom-width: 0px; - border-right: 1px solid #5d5e61; /* shadown effect */ - background-color: #6d6e71; - padding: 15px 5px; - margin-left: 4px; - margin-right: 4px; - position: center; -} - -QTabBar::tab:left:first, -QTabBar::tab:right:first { - border-top-left-radius: 6px; - border-top-right-radius: 6px; -} - -QTabBar::tab:left:last, -QTabBar::tab:right:last { - border-bottom-left-radius: 6px; - border-bottom-right-radius: 6px; - border-bottom-width: 1px; -} - -QTabBar::tab:left:selected, -QTabBar::tab:right:selected { - color: white; - background-color: qlineargradient(spread:pad, x1:0.545, y1:1, x2:0, y2:1, stop:0 #3874f2, stop:1 #5e90fa); - border-color: #3874f2; - border-right: 1px solid #5d5e61; /* shadown effect */ -} - -QTabBar::tab:left:!selected:hover, -QTabBar::tab:right:!selected:hover { - color: white; -} - -QTabBar::tab:left:only-one , -QTabBar::tab:right:only-one { - border: 1px solid #1b3774; - border-radius: 6px; -} - -QDockWidget { - color: #4d4e51; - border: 1px solid #85878a; - titlebar-close-icon: url(qss:images/close_dark.png); - titlebar-normal-icon: url(qss:images/undock_dark.png); -} - -QDockWidget::title { - text-align: center; - background-color: #797b7f; - padding: 4px; - border-radius: 4px; -} - -QDockWidget::close-button, -QDockWidget::float-button { - border: 1px transparent #85878a; - border-radius: 2px; - background: transparent; - subcontrol-origin: padding; - subcontrol-position: right center; -} - -QDockWidget::close-button { - right: 4px; -} - -QDockWidget::float-button { - right: 22px; -} - -QDockWidget::close-button:hover, -QDockWidget::float-button:hover { - background: #9a9b9e; -} - -QDockWidget::close-button:pressed, -QDockWidget::float-button:pressed { - /*padding: 1px -1px -1px 1px;*/ - background-color: #797b7f; -} - -QTreeView, -QListView { - color: #4d4e51; - border: 1px solid #85878a; - border-radius: 4px; - background-color: #bdc1c9; /* related with alternate-background-color*/ - selection-color: white; - selection-background-color: #5e90fa; /* should be similar to QListView::item selected background-color */ - show-decoration-selected: 1; /* make the selection span the entire width of the view */ - padding: 0px; - margin: 0px 4px 0px 4px; - min-width: 130px; /* hack to correctly align Preferences icon list */ -} - -QListView, -QListView::item, -QListView QAbstractItemView { - margin: 0px; - icon-size: 20px; /* temporal */ - paint-alternating-row-colors-for-empty-area: 1; - position: absolute; - subcontrol-origin: margin; - subcontrol-position: left top; -} - -/* Control dropdown list margins of QComboBox */ -QComboBox QTreeView, -QComboBox QListView { - margin: 0px; - padding: 0px; -} - -QListView::item { - border: 0px transparent #85878a; - border-radius: 4px; - background-color: transparent; - padding: 0px; - margin: 0px; - display: inline-block; - position: relative; -} - -QListView::item:selected, -QTreeView::item:selected { - color: white; - background-color: #5e90fa; /* should be similar to QListView selection-background-color */ -} - -/* Branch system */ -QTreeView::branch { - background: transparent; -} - -QTreeView::branch:has-siblings:!adjoins-item { - border-image: url(qss:images/branch_vline.png) 0; -} - -QTreeView::branch:has-siblings:adjoins-item { - border-image: url(qss:images/branch_more.png) 0; -} - -QTreeView::branch:!has-children:!has-siblings:adjoins-item { - border-image: url(qss:images/branch_end.png) 0; -} - -QTreeView::branch:closed:has-children:has-siblings { - image: url(qss:images/branch_closed_dark.png); -} - -QTreeView::branch:has-children:!has-siblings:closed { - image: url(qss:images/branch_closed_dark.png); - border-image: url(qss:images/branch_end.png) 0; -} - -QTreeView::branch:open:has-children:has-siblings { - image: url(qss:images/branch_open_dark.png); - border-image: url(qss:images/branch_more.png) 0; -} - -QTreeView::branch:open:has-children:!has-siblings { - image: url(qss:images/branch_open_dark.png); - border-image: url(qss:images/branch_end.png) 0; -} - -QSlider, -QSlider:active, -QSlider:!active { - border: none; - background-color: transparent; -} - -QSlider:horizontal { - padding: 0px 10px; -} - -QSlider:vertical { - padding: 10px 0px; -} - -QSlider::groove:horizontal { - border: 1px solid #6d6e71; - background-color: #6d6e71; - height: 8px; - border-radius: 5px; - margin: 4px 0; -} - -QSlider::groove:vertical { - border: 1px solid #6d6e71; - background-color: #6d6e71; - width: 8px; - border-radius: 5px; - margin: 4px 0; -} - -QSlider::groove:horizontal:disabled, -QSlider::groove:vertical:disabled { - border-color: #797b7f; - background-color: #797b7f; -} - -QSlider::handle:horizontal, -QSlider::handle:vertical { - background-color: #4d4e51; - border: 1px solid #4d4e51; - width: 14px; - height: 14px; - border-radius: 8px; -} - -QSlider::handle:horizontal { - margin: -4px 0; -} - -QSlider::handle:vertical { - margin: 0 -4px; -} - -QSlider::handle:horizontal:hover, -QSlider::handle:vertical:hover { - border-color: #3874f2; - background-color: #3874f2; -} - -QSlider::handle:horizontal:pressed, -QSlider::handle:vertical:pressed { - border-color: #1b3774; - background-color: #1b3774; -} - -QSlider::handle:horizontal:disabled, -QSlider::handle:vertical:disabled { - border-color: #6d6e71; - background-color: #85878a; -} - -QToolButton { - color: #c7c7c9; - text-align: center; - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #6d6e71, stop:1 #85878a); - border: 1px solid #4d4e51; - padding-top: 5px; - padding-bottom: 5px; - padding-left: 15px; - padding-right: 15px; - margin-top: 5px; - margin-bottom: 5px; - margin-left: 10px; - margin-right: 10px; - border-radius: 3px; - outline: none; - /*min-width: 36px;*/ -} - -QToolButton:hover, -QToolButton:focus { - color: white; - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #3874f2, stop:1 #5e90fa); - border-color: #3874f2; -} - -QToolButton:disabled, -QToolButton:disabled:checked { - color: #6d6e71; - background-color: #85878a; - border-color: #6d6e71; -} - -QToolButton:pressed { - border-color: #7cabf9; -} - -QToolButton:checked { - background-color: #5e90fa; - border-color: #3874f2; -} - -QToolButton::menu-indicator { - subcontrol-origin: padding; - subcontrol-position: center right; - right: 4px; -} - -/*The "show more" button (it can also be stylable with "QToolBarExtension" */ -QToolButton#qt_toolbar_ext_button { - border-radius: 0px; - margin: 0px; - padding: 0px; - /*background-image: url(qss:images/more_dark.png);*/ - image: transparent; - background-repeat: none; - background-position: center left; -} - -QToolButton#qt_toolbar_ext_button:hover { - /*background-image: url(qss:images/more_light.png);*/ - border-color: #797b7f; - background-color: #797b7f; -} - -QToolButton#qt_toolbar_ext_button:on { - /*background-image: url(qss:images/more_light.png);*/ - border-color: #797b7f; - background-color: #797b7f; -} - -/*Buttons inside the Toolbar*/ -QToolBar QToolButton { - color: #4d4e51; - background-color: #85878a; - border: 1px transparent #85878a; - border-radius: 3px; - margin: 0px; - padding: 2px; -} - -QToolBar QToolButton:disabled { - background-color: #85878a; -} - -QToolBar QToolButton:checked { - color: #1b3774; - background-color: #5e90fa; - border: 1px solid #5e90fa; -} - -QToolBar QToolButton:hover { - background-color: #85878a; -} - -QToolBar QToolButton:pressed, -QToolBar QToolButton::menu-button:pressed { - background-color: #797b7f; - border: 1px solid #797b7f; -} - - -QToolBar QToolButton::menu-indicator:hover, -QToolBar QToolButton::menu-indicator:pressed { - background-color: transparent; -} - -/* the subcontrols below are used only in the MenuButtonPopup mode */ -QToolBar QToolButton::menu-button { - border: none; - border-top-right-radius: 3px; - border-bottom-right-radius: 3px; - width: 16px; /* 16px width + 4px for border = 20px allocated above */ - outline: none; - background-color: transparent; -} - -QToolBar QToolButton::menu-button:hover, -QToolBar QToolButton::menu-button:active, -QToolBar QToolButton::menu-button:disabled { - border-color: transparent; - background-color: transparent; -} - -QToolBar QToolButton::menu-arrow { - background-image: url(qss:images/down_arrow_light.png); - background-position: center center; - background-repeat: none; - subcontrol-origin: padding; - subcontrol-position: bottom right; - height: 10px; /* same as arrow image */ -} - -QToolBar QToolButton::menu-arrow:open { - background-image: url(qss:images/down_arrow_lighter.png); -} - -/* If the QToolButton is also a menu: */ -QToolBar QToolButton#qt_toolbutton_menubutton { - padding-right: 20px; - border: 1px solid transparent; -} - -QToolBar QToolButton#qt_toolbutton_menubutton:hover, -QToolBar QToolButton#qt_toolbutton_menubutton:pressed, -QToolBar QToolButton#qt_toolbutton_menubutton:open { - border: 1px solid #7cabf9; -} - -QToolBar QToolButton#qt_toolbutton_menubutton::menu-button { - border: none; /* necessary because it inherits the border from QToolButton#qt_toolbutton_menubutton */ -} - -QToolBar QToolButton#qt_toolbutton_menubutton::menu-button:hover, -QToolBar QToolButton#qt_toolbutton_menubutton::menu-button:pressed, -QToolBar QToolButton#qt_toolbutton_menubutton::menu-button:open { - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #5e90fa, stop:1 #7cabf9); -} - -QToolBar:tear { - color: blue; - background-color: red; -} - -QTableView { - color: #4d4e51; - border: 1px solid #6d6e71; - gridline-color: #9a9b9e; - background-color: #bdc1c9; - selection-color: #4d4e51; - selection-background-color: #adc5ed; - border-radius: 3px; - padding: 0px; - margin: 0px; -} - -QTableView::item:hover { - background: #abb0b7; -} - -QTableView::item:disabled { - color: #85878a; -} - -QTableView::item:selected { - color: #1b3774; - background-color: #7cabf9; -} - -/* when editing a cell: */ -QTableView QLineEdit { - color: #4d4e51; - background-color: #b3b8bf; - border-radius: 0px; - margin: 0px; - padding: 0px; -} - -QHeaderView { - border: none; - background-color: #4d4e51; - border-top-left-radius: 3px; - border-top-right-radius: 3px; - border-bottom-left-radius: 0px; - border-bottom-right-radius: 0px; - margin: 0px; - padding: 0px; -} - -QHeaderView::section { - background-color: transparent; - color: #c7c7c9; - border: 1px solid transparent; - border-radius: 0px; - text-align: center; -} - -QHeaderView::section::vertical { - padding: 0px 6px 0px 6px; - border-bottom: 1px solid #6d6e71; -} - -QHeaderView::section::vertical:first { - border-top: 1px solid #6d6e71; -} - -QHeaderView::section::vertical:last { - border-bottom: none; -} - -QHeaderView::section::vertical:only-one { - border: none; -} - -QHeaderView::section::horizontal { - padding: 0px 0px 0px 6px; - border-right: 1px solid #6d6e71; -} - -QHeaderView::section::horizontal:first { - border-left: 1px solid #6d6e71; -} - -QHeaderView::section::horizontal:last { - border-left: none; -} - -QHeaderView::section::horizontal:only-one { - border: none; -} - -QDockWidget QHeaderView::section { - border-width: 6px 1px 6px 1px; /* hack to bigger margin for Model Panel table headers */ -} - -QHeaderView::section:checked { - color: #1b3774; - background-color: #7cabf9; -} - - /* style the sort indicator */ -QHeaderView::down-arrow { - image: url(qss:images/down_arrow_light.png); -} - -QHeaderView::up-arrow { - image: url(qss:images/up_arrow_light.png); -} - -QTableCornerButton::section { - background-color: #4d4e51; - border: 1px solid #4d4e51; - border-radius: 0px; -} - -QToolBox { - padding: 3px; - color: #1b3774; - border: none; -} - -QToolBox::tab { /* TODO */ - color: #c7c7c9; - background-color: #6d6e71; - border: 1px transparent #4d4e51; - border-bottom: 1px transparent #6d6e71; - border-top-left-radius: 5px; - border-top-right-radius: 5px; - padding: 5px; -} - -QToolBox::tab:selected { /* italicize selected tabs */ - color: #1b3774; - font: italic; - background-color: #5e90fa; - border-color: #5e90fa; - } - -QStatusBar::item { - color: #c7c7c9; - background-color: #85878a; - border: 1px solid #85878a; - border-radius: 2px; -} - - -QSplitter::handle { - background-color: #85878a; - margin: 0px 11px; - padding: 0px; - border-radius: 3px; -} - -QSplitter::handle:vertical { - background-image: url(qss:images/splitter_horizontal_dark.png); - background-position: center center; - background-repeat: none; - margin: 2px 10px 2px 10px; - height: 2px; -} - -QSplitter::handle:horizontal { - background-image: url(qss:images/splitter_horizontal_dark.png); - background-position: center center; - background-repeat: none; - margin: 10px 2px 10px 2px; - width: 2px; -} - -QSplitter::handle:horizontal:hover, -QSplitter::handle:vertical:hover { - background-color: #85878a; -} - -/* Similar to the splitter is the following window separator: */ -QMainWindow::separator { - border: 1px solid #85878a; - background-color: #85878a; - background-position: center center; - background-repeat: none; -} - -QMainWindow::separator:hover { - background-color: #85878a; -} - -QMainWindow::separator:horizontal { - height: 4px; - background-image: url(qss:images/splitter_horizontal_dark.png); -} - -QMainWindow::separator:vertical { - width: 4px; - background-image: url(qss:images/splitter_vertical_dark.png); -} - -QLabel { - padding-top: 3px; - padding-bottom: 3px; - background-color: transparent; -} - -QLabel:disabled { - color: #6d6e71; - background-color: transparent; -} - -/* Action group */ -QFrame[class="panel"] { - border: none; - background-color: #85878a; -} - -/* Separator line */ -QSint--ActionGroup QFrame[height="1"], -QSint--ActionGroup QFrame[height="2"], -QSint--ActionGroup QFrame[height="3"], -QSint--ActionGroup QFrame[width="1"], -QSint--ActionGroup QFrame[width="2"], -QSint--ActionGroup QFrame[width="3"] { - border-color: #9a9b9e; -} - -QSint--ActionGroup QFrame[class="header"] { - border: none; - background-color: #4d4e51; - border-top-left-radius: 3px; - border-top-right-radius: 3px; - border-bottom-left-radius: 0px; - border-bottom-right-radius: 0px; - margin: 0px; - padding: 0px; -} - -QSint--ActionGroup QFrame[class="header"]:hover { - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #3874f2, stop:1 #5e90fa); -} - -QSint--ActionGroup QToolButton[class="header"] { - text-align: left; - font-weight: bold; - color: #c7c7c9; - background-color: transparent; - border: none; - margin: 0px; - padding: 0px; -} - -QSint--ActionGroup QToolButton[class="header"]:hover { - color: white; -} - -QSint--ActionGroup QFrame[class="header"] QLabel { - background-color: transparent; - background-image: url(qss:images/down_arrow_light.png); - background-repeat: none; - background-position: center center; - padding: 0px; - margin: 0px; -} - -QSint--ActionGroup QFrame[class="header"] QLabel:hover { - background-color: transparent; - background-image: url(qss:images/down_arrow_lighter.png); -} - -QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"] { - background-color: transparent; - background-image: url(qss:images/up_arrow_light.png); - background-repeat: none; - background-position: center center; - padding: 0px; - margin: 0px; -} - -QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"]:hover { - background-color: transparent; - background-image: url(qss:images/up_arrow_lighter.png); -} - -QSint--ActionGroup QFrame[class="content"] { - background-color: #bdc1c9; - margin: 0px; - padding: 0px; - border: none; - border-top-left-radius: 0px; - border-top-right-radius: 0px; - border-bottom-left-radius: 3px; - border-bottom-right-radius: 3px; -} - -/* HACK -This might not be the best way to reset the background color: */ -QSint--ActionGroup QFrame[class="content"] QWidget { - background-color: #bdc1c9; -} - -QSint--ActionGroup QFrame[class="content"] QPushButton { - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #6d6e71, stop:1 #85878a); -} - -QSint--ActionGroup QFrame[class="content"] QPushButton:hover, -QSint--ActionGroup QFrame[class="content"] QPushButton:focus { - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #3874f2, stop:1 #5e90fa); -} - -QSint--ActionGroup QFrame[class="content"] QPushButton:disabled, -QSint--ActionGroup QFrame[class="content"] QPushButton:disabled:checked { - color: #bdc1c9; - border-color: #9a9b9e; - background-color: #9a9b9e; -} -QSint--ActionGroup QFrame[class="content"] QPushButton:checked { - background-color: #5e90fa; -} - -QSint--ActionGroup QFrame[class="content"] QComboBox { - background-color: #6d6e71; -} - -QSint--ActionGroup QFrame[class="content"] QComboBox:on { - background-color: #6d6e71; -} - -QSint--ActionGroup QFrame[class="content"] QComboBox QAbstractItemView { - border-color: #4d4e51; - background-color: #4d4e51; -} - -QSint--ActionGroup QFrame[class="content"] QListView { - border-color: #abb0b7; - background-color: #abb0b7; -} - -QSint--ActionGroup QFrame[class="content"] QAbstractSpinBox { - background-color: #6d6e71; -} - -QSint--ActionGroup QFrame[class="content"] QLineEdit { - background-color: #6d6e71; -} - -QSint--ActionGroup QFrame[class="content"] QComboBox:disabled, -QSint--ActionGroup QFrame[class="content"] QAbstractSpinBox:disabled, -QSint--ActionGroup QFrame[class="content"] QLineEdit:disabled { - color: #bdc1c9; - border-color: #9a9b9e; - background-color: #9a9b9e; -} - -QSint--ActionGroup QFrame[class="content"] QCheckBox:disabled, -QSint--ActionGroup QFrame[class="content"] QRadioButton:disabled { - color: #9a9b9e; - border-color: #9a9b9e; -} - -QSint--ActionGroup QFrame[class="content"] QCheckBox::indicator:disabled, -QSint--ActionGroup QFrame[class="content"] QRadioButton::indicator:disabled { - border-color: #9a9b9e; - background-color: transparent; -} - -QSint--ActionGroup QFrame[class="content"] QHeaderView { - border: none; - background-color: #4d4e51; - border-radius: 0px; - margin: 0px; - padding: 0px; -} - -QSint--ActionGroup QFrame[class="content"] QHeaderView::section { - background-color: transparent; - color: #c7c7c9; - border: 1px solid transparent; - border-radius: 0px; - text-align: center; -} - -QSint--ActionGroup QFrame[class="content"] QHeaderView::section::horizontal { - padding: 6px 0px 6px 6px; - border-right: 1px solid #6d6e71; -} - -QSint--ActionGroup QFrame[class="content"] QHeaderView::section::horizontal:first { - border-left: 1px solid #85878a; -} - -QSint--ActionGroup QFrame[class="content"] QHeaderView::section::horizontal:last { - border-left: none; -} - -QSint--ActionGroup QFrame[class="content"] QHeaderView::section::horizontal:only-one { - border: none; -} -/* enf of HACK */ - - -QSint--ActionGroup QToolButton[class="action"], -QSint--ActionGroup QToolButton[class="action"]:enabled { - font-weight: bold; - color: #6d6e71; -} - -QSint--ActionGroup QToolButton[class="action"]:hover, -QSint--ActionGroup QToolButton[class="action"]:enabled:hover { - text-decoration: none; - color: #4d4e51; - background-color: #abb0b7; - border-color: #abb0b7; -} - -QSint--ActionGroup QToolButton[class="action"]:disabled { - color: #85878a; - background-color: #abb0b7; - border-color: #abb0b7; -} - -QSint--ActionGroup QToolButton[class="action"]:focus, -QSint--ActionGroup QToolButton[class="action"]:pressed -QSint--ActionGroup QToolButton[class="action"]:enabled:focus, -QSint--ActionGroup QToolButton[class="action"]:enabled:pressed { - color: white; - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #3874f2, stop:1 #5e90fa); - border-color: #3874f2; -} - -QSint--ActionGroup QToolButton[class="action"]:on { - background-color: red; - color: red; -} - - -/* EXPERIMENTAL -================================================= */ -QDial { - background-color: #85878a; -} - -QLCDNumber { - background-color: #85878a; -} - -QCalendarWidget { - background-color: green; -} - -/* Expressions popup dialog fixes to embed elements */ -QAbstractSpinBox QPushButton { - padding: 0px 15px 0px 15px; - margin: 2px 10px 2px 10px; - border: 1px solid #4d4e51; - border-radius: 3px; -} -QAbstractSpinBox QPushButton:disabled { - color: #9a9b9e; - background-color: #85878a; - border-color: #85878a; -} - -QAbstractSpinBox QFrame, -QSint--ActionGroup QFrame[class="content"] QAbstractSpinBox QFrame { - color: #adc5ed; - background-color: #6d6e71; - border-color: #6d6e71; - border-radius: 0px; - margin: 0px; - padding: 0px; -} - -QSint--ActionGroup QFrame[class="content"] QAbstractSpinBox QPushButton { - padding: 6px 15px 6px 15px; -} \ No newline at end of file +/* +ABOUT +============================================================================================================ +version 2.0 +QT theme (stylesheet) specially developed for FreeCAD (http://www.freecadweb.org/). +It might work with other software that uses QT styling. + + +LICENSE +============================================================================================================ +Copyright (c) 2016 Pablo Gil Fernández + +This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. +To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/. + + +INSTALLATION +============================================================================================================ +1) Place the .qss files and /images/ folder in the path that fits your OS: + OSX = /Users/[YOUR_USER_NAME]/Library/Preferences/FreeCAD/Gui/Stylesheets/ + WINDOWS = C:/[INSTALLATION_PATH]/FreeCAD/data/Gui/fStylesheets/ + LINUX = /home/[YOUR_USER_NAME]/.FreeCAD/Gui/Stylesheets/ + +2) In order to display correctly images: + 2.1) FreeCAD 0.16 (development builds newer than commit 5b3d50a): that's it, you are done! + + 2.2) FreeCAD 0.15: Images used in the theme need ABSOLUTE paths to be found by FreeCAD, so you should search the string "qss:images" (without "") and replace with the real path of your computer. It should be done with all the .qss files you want to install-use + find = qss:images + replace = /Users/myName/Library/Preferences/FreeCAD/Gui/Stylesheets/images + + +CUSTOMIZATION +============================================================================================================ +If you would like to change the overall look/style of the theme, just find and replace following colors in the whole file: + BACKGROUND (darker to ligher) + black + #1e1e1e + #3c3c3c + #505050 + #5a5a5a + #646464 + #6e6e6e = main background color + #787878 + #8c8c8c + #a0a0a0 + #b4b4b4 + #bebebe + #c8c8c8 + #d2d2d2 + #e0e0e0 + #f5f5f5 + white + + SELECTION (darker to lighter) + #1b3774 + #2053c0 + #3874f2 + #5e90fa = main selection color + #6f9efa = used to build QSpinBox up and down buttons, it's used as color in the middle + #7cabf9 + #adc5ed + #cbd8e6 + + +KNOWN BUGS and TO DO +============================================================================================================ + - please, follow the link to get updated information: http://forum.freecadweb.org/viewtopic.php?f=10&t=12417 +*/ + + +/*================================================================================================== +Reset elements +==================================================================================================*/ +/* Reseting everything helps to unify styles across different operating systems */ +* { + padding: 0px; + margin: 0px; + border: 0px; + border-style: none; +} + +/* specific reset for elements inside QToolBar */ +QToolBar * { + margin: 0px; + padding: 0px; +} + + +/*================================================================================================== +Main window +==================================================================================================*/ +QMainWindow, +QDialog, +QToolBar { + background-color: #6e6e6e; /* main background color */ +} + +QMdiArea[showImage="true"] { + background-image: url(qss:images/background_freecad.png); + background-position: center; + background-repeat: no-repeat; +} + + +/*================================================================================================== +MENUS +==================================================================================================*/ +QMenuBar, +QMenuBar::item { + color: #e0e0e0; + background-color: #6e6e6e; /* main background color */ +} + +QMenu, +QMenu::item { + color: #e0e0e0; + background-color: #5a5a5a; +} + +QMenuBar::item:selected, +QMenuBar::item:pressed, +QMenu::item:selected, +QMenu::item:pressed { + color: white; + background-color: #5e90fa; +} + +QMenu::right-arrow { + width: 10px; + height: 10px; + image:url(qss:images/right_arrow_dark.png); + margin-right: 2px; +} + +QMenu::right-arrow:selected { + image:url(qss:images/right_arrow_lighter.png); +} + +QMenu::item { + padding: 2px 16px 2px 26px; /* make room for icon at left */ + border: 1px solid transparent; /* reserve space for selection border */ +} + +QMenu::icon { + margin-left: 2px; +} + +QMenu::separator { + height: 1px; + background-color: rgba(255,255,255,30); + margin: 6px 4px; +} + +QMenu::indicator:non-exclusive:checked { + color: white; +} + + +/*================================================================================================== +Tool bar +==================================================================================================*/ +QToolBar { + border: none; + min-width: 32px; /* allows a minimum of space between QToolBar colums */ + min-height: 32px; /* allows a minimum of space between QToolBar rows */ +} + +QToolBar::handle:horizontal { + background-image: url(qss:images/Hmovetoolbar_dark.png); + width: 10px; + margin: 6px 2px 6px 2px; + background-position: top right; + background-repeat: repeat-y; +} + +QToolBar::handle:vertical { + background-image: url(qss:images/Vmovetoolbar_dark.png); + height: 10px; + margin: 2px 6px 2px 6px; + background-position: left bottom; + background-repeat: repeat-x; +} + +QToolBar::separator:horizontal { + background-image: url(qss:images/separtoolbar_dark.png); + width: 10px; + margin: 6px 2px 6px 2px; + background-position: center center; + background-repeat: repeat-y; +} + +QToolBar::separator:vertical { + background-image: url(qss:images/separtoolbar_dark.png); + height: 10px; + margin: 2px 6px 2px 6px; + background-position: center center; + background-repeat: repeat-x; +} + + +/*================================================================================================== +Group box +==================================================================================================*/ +QGroupBox { + color: rgba(0,0,0,120); + border:1px solid rgba(0, 0, 0, 20); /* lighter than its own border-color */; + border-radius: 3px; + margin-top: 10px; + padding: 6px; + background-color: rgba(255, 255, 255, 15); +} + +QGroupBox:title { + top: -8px; + left: 12px; +} + + +/*================================================================================================== +Tooltip +==================================================================================================*/ +QToolTip { + color: #1e1e1e; + background-color: #b4b4b4; + /*opacity: 90%; doesn't correctly work */ + padding: 4px; + border-radius: 3px; /* has no effect */ +} + + +/*================================================================================================== +Dock widget +==================================================================================================*/ +QDockWidget { + color: rgba(0,0,0,120); + titlebar-close-icon: url(qss:images/close_dark.png); + titlebar-normal-icon: url(qss:images/undock_dark.png); +} + +QDockWidget::title { + text-align: center; + background-color: rgba(0,0,0,20); + border: 4px solid #6e6e6e; /* fix to simulate margin between this :title and tabs */ /* same as main background color */ + border-radius: 6px; /* bigger than normal due to previous border fix */ + padding: 4px 0px; /* also needed because of previous border fix */ +} + +QDockWidget::close-button, +QDockWidget::float-button { + border: none; + background: transparent; + border-radius: 3px; + subcontrol-origin: padding; + subcontrol-position: right center; +} + +QDockWidget::close-button { + right: 4px; +} + +QDockWidget::float-button { + right: 22px; +} + +QDockWidget::close-button:hover, +QDockWidget::float-button:hover { + background-color: rgba(255,255,255,15); +} + +QDockWidget::close-button:pressed, +QDockWidget::float-button:pressed { + background-color: rgba(255,255,255,30); +} + +/* fix for Python Console (probably there is a smarter way to arrive to it) */ +QDockWidget > QFrame { + background-color: #c8c8c8; + border: 1px solid #505050; +} + + +/*================================================================================================== +Progress bar +==================================================================================================*/ +QProgressBar, +QProgressBar:horizontal { + color: white; + background-color: rgba(0,0,0,10); + text-align: center; + border: 1px solid rgba(0,0,0,80); + padding: 1px; + border-radius: 3px; +} +QProgressBar::chunk, +QProgressBar::chunk:horizontal { + background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #5e90fa, stop:1 #3874f2); + border-radius: 3px; +} + + +/*================================================================================================== +Scroll +==================================================================================================*/ +QAbstractScrollArea { + border-radius: 2px; + background-color: transparent; +} + +QAbstractScrollArea::corner { + border: none; + background-color: transparent; +} + +QScrollBar:horizontal { + background-color: transparent; + height: 15px; + margin: 0px; +} + +QScrollBar::handle:vertical, +QScrollBar::handle:horizontal { + background-color: rgba(0,0,0,100); +} + +QScrollBar::handle:vertical:hover, +QScrollBar::handle:horizontal:hover { + background-color: #1e1e1e; +} + +QScrollBar::handle:horizontal { + min-width: 5px; + border-radius: 3px; + margin: 4px 15px; +} + +QScrollBar::sub-line:horizontal { + margin: 1px 3px 0px 3px; /* 1px to correctly fit the 10px width image */ + border-image: url(qss:images/left_arrow_light.png); + width: 6px; + height: 10px; + subcontrol-position: left; + subcontrol-origin: margin; +} + +QScrollBar::add-line:horizontal { + margin: 1px 3px 0px 3px; /* 1px to correctly fit the 10px width image */ + border-image: url(qss:images/right_arrow_light.png); + width: 6px; + height: 10px; + subcontrol-position: right; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:horizontal:hover, +QScrollBar::sub-line:horizontal:on { + border-image: url(qss:images/left_arrow_lighter.png); +} + +QScrollBar::add-line:horizontal:hover, +QScrollBar::add-line:horizontal:on { + border-image: url(qss:images/right_arrow_lighter.png); +} + +QScrollBar::up-arrow:horizontal, +QScrollBar::down-arrow:horizontal { + background-color: none; +} + +QScrollBar::add-page:horizontal, +QScrollBar::sub-page:horizontal { + background-color: transparent; +} + +QScrollBar:vertical { + background-color: transparent; + width: 15px; + margin: 0px; +} + +QScrollBar::handle:vertical { + min-height: 5px; + border-radius: 3px; + margin: 15px 4px; +} + +QScrollBar::sub-line:vertical { + margin: 3px 0px 3px 1px; /* 1px to correctly fit the 10px width image */ + border-image: url(qss:images/up_arrow_light.png); + height: 6px; + width: 10px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::add-line:vertical { + margin: 3px 0px 3px 1px; /* 1px to correctly fit the 10px width image */ + border-image: url(qss:images/down_arrow_light.png); + height: 6px; + width: 10px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:vertical:hover, +QScrollBar::sub-line:vertical:on { + border-image: url(qss:images/up_arrow_lighter.png); +} + +QScrollBar::add-line:vertical:hover, +QScrollBar::add-line:vertical:on { + border-image: url(qss:images/down_arrow_lighter.png); +} + +QScrollBar::up-arrow:vertical, +QScrollBar::down-arrow:vertical { + background-color: none; +} + +QScrollBar::add-page:vertical, +QScrollBar::sub-page:vertical { + background-color: transparent; +} + + +/*================================================================================================== +Tab bar +==================================================================================================*/ +QTabWidget::pane { + background-color: transparent; /* temporal (transparent background) */ /* tab content background color */ + position: absolute; +} + +QTabWidget::pane:top { + top: -1px; + border-top: 1px solid #5a5a5a; +} + +QTabWidget::pane:bottom { + bottom: -1px; + border-bottom: 1px solid #5a5a5a; +} + +QTabWidget::pane:left { + right: -1px; + border-right: 1px solid #5a5a5a; +} + +QTabWidget::pane:right { + left: -1px; + border-left: 1px solid #5a5a5a; +} + +QTabWidget::tab-bar:top, +QTabWidget::tab-bar:bottom { + left: 10px; +} + +QTabWidget::tab-bar:left, +QTabWidget::tab-bar:right { + top: 10px; +} + +QTabBar { + qproperty-drawBase: 0; /* important */ + background-color: transparent; +} + +/* Workaround for QTabBars created from docked QDockWidgets which don't draw the border if not set and reseted as follows: */ +QTabBar { + border-top: 1px solid #5a5a5a; /* set color for all QTabBars */ +} +QDockWidget QTabBar { + border-color: transparent; /* set color for all QTabBars but ones created from QDockWidget */ +} +QDialog QTabBar { + border-color: transparent; /* set color for QTabBars inside Preferences dialog */ +} +/* end fix */ + +QTabBar::tab { + background-color: transparent; + border: 1px solid transparent; + padding: 3px; +} + +QTabBar::tab:top, +QTabBar::tab:bottom { + border-top-width: 4px; /* same as selected tab colored border in order to center close-button */ + border-bottom-width: 4px; /* same as selected tab colored border in order to center close-button */ + min-width: 11ex; + margin-left: 2px; + margin-right: 2px; +} + +QTabBar::tab:left, +QTabBar::tab:right { + border-left-width: 4px; /* same as selected tab colored border in order to center close-button */ + border-right-width: 4px; /* same as selected tab colored border in order to center close-button */ + min-height: 14ex; + margin-top: 2px; + margin-bottom: 2px; +} + +QTabBar::tab:selected { + color: #d2d2d2; + background-color: transparent; /* temporal (transparent background) */ + border-color: #5a5a5a; +} + +QTabBar::tab:top:selected { + border-top: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #5e90fa, stop:1 #3874f2); /* selection color */ + border-bottom-color: #6e6e6e; /* same as tab content background color */ +} + +QTabBar::tab:bottom:selected { + border-bottom: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #5e90fa, stop:1 #3874f2); /* selection color */ + border-top-color: #6e6e6e; /* same as tab content background color */ +} + +QTabBar::tab:right:selected { + border-left: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 #5e90fa, stop:1 #3874f2); /* selection color */ + border-right-color: #6e6e6e; /* same as tab content background color */ +} + +QTabBar::tab:left:selected { + border-right: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 #5e90fa, stop:1 #3874f2); /* selection color */ + border-left-color: #6e6e6e; /* same as tab content background color */ +} + +QTabBar::tab:!selected { + color: rgba(0,0,0,120); +} + +QTabBar::tab:!selected:hover { + color: rgba(0,0,0,180); + background-color: rgba(0,0,0,20); +} + +QTabBar::tab:first:selected { + margin-left: 0; /* the first selected tab has nothing to overlap with on the left */ +} + +QTabBar::tab:last:selected { + margin-right: 0; /* the last selected tab has nothing to overlap with on the right */ +} + +QTabBar::tab:only-one { + margin: 0; /* if there is only one tab, we don't want overlapping margins */ +} + +/* hack to access Preference TabBar background */ +QDialog#Gui__Dialog__DlgPreferences > QFrame QFrame { + background-color: transparent; /* main background color (in Windows is #6e6e6e) */ +} + +/* fix for previous hack that broke QTabWidget background on Windows */ +QDialog#Gui__Dialog__DlgPreferences QTabWidget::pane { + background-color: transparent; /* temporal (transparent background) */ +} + +/* hack to correctly align Preferences icon list on OSX */ +QDialog#Gui__Dialog__DlgPreferences > QListView { + min-width: 130px; +} + +/* unique styles for sections inside Preferences */ +QDialog#Gui__Dialog__DlgPreferences > QListView::item { + border-radius: 4px; +} + +QDialog#Gui__Dialog__DlgPreferences > QListView::item:hover { + background-color: #b4b4b4; +} + +QDialog#Gui__Dialog__DlgPreferences > QListView::item:selected { + color: white; + background-color: #5e90fa; + border: 1px solid #3874f2; +} + + +/*================================================================================================== +Tab bar buttons +==================================================================================================*/ +/* Close button */ +QTabBar::close-button { + subcontrol-origin: margin; + subcontrol-position: center right; /* only works for QT 4.6 and newer */; + border-radius: 2px; + background-image: url(qss:images/close_dark.png); + background-position: center center; + background-repeat: none; +} + +QTabBar::close-button:hover { + background-color: rgba(255,255,255,20); +} + +QTabBar::close-button:pressed { + background-color: rgba(255,255,255,30); +} + +/* Fix for lists inside Model tab */ +QDockWidget QTreeView, +QDockWidget QListView, +QDockWidget QTableView { + margin: 6px; + border: 1px solid #505050; /* same as regular QTreeView, QListView and QTableView */ + min-height: 40px; /* neccesary in some areas of FreeCAD */ +} + +/* Buttons to scroll tabs if there is not space to show all of them: */ +QTabBar::scroller { + width: 20px; /* the width of the scroll buttons */ +} + +QTabBar QToolButton, +QTabBar QToolButton:hover { + background-color: #6e6e6e; /* same as main background color */ +} + +QTabBar QToolButton::right-arrow:enabled { + image: url(qss:images/right_arrow_dark.png); +} + +QTabBar QToolButton::right-arrow:disabled, +QTabBar QToolButton::right-arrow:off { + image: url(qss:images/right_arrow_disabled_dark.png); +} + +QTabBar QToolButton::right-arrow:hover { + image: url(qss:images/right_arrow_darker.png); +} + + QTabBar QToolButton::left-arrow:enabled { + image: url(qss:images/left_arrow_dark.png); +} + + QTabBar QToolButton::left-arrow:disabled, + QTabBar QToolButton::left-arrow:off { + image: url(qss:images/left_arrow_disabled_dark.png); +} + + QTabBar QToolButton::left-arrow:hover { + image: url(qss:images/left_arrow_darker.png); +} + + QTabBar QToolButton::up-arrow:enabled { + image: url(qss:images/up_arrow_dark.png); +} + + QTabBar QToolButton::up-arrow:disabled, + QTabBar QToolButton::up-arrow:off { + image: url(qss:images/up_arrow_disabled_dark.png); +} + + QTabBar QToolButton::up-arrow:hover { + image: url(qss:images/up_arrow_darker.png); +} + + QTabBar QToolButton::down-arrow:enabled { + image: url(qss:images/down_arrow_dark.png); +} + + QTabBar QToolButton::down-arrow:disabled, + QTabBar QToolButton::down-arrow:off { + image: url(qss:images/down_arrow_disabled_dark.png); +} + + QTabBar QToolButton::down-arrow:hover { + image: url(qss:images/down_arrow_darker.png); +} + +QTabBar::tear { + /* default OS tear better */ +} + + +/*================================================================================================== +Tree and list views +==================================================================================================*/ +QTreeView, +QListView, +QTableView { + background-color: #c8c8c8; + alternate-background-color: #bebebe; /* related with QListView background */ + border: 1px solid #505050; + selection-color: white; + selection-background-color: #5e90fa; /* should be similar to QListView::item selected background-color */ + show-decoration-selected: 1; /* make the selection span the entire width of the view */ + border-radius: 3px; +} + +QListView::item:selected, +QTreeView::item:selected { + color: white; /* should be similar to QListView selection-color */ + background-color: #5e90fa; /* should be similar to QListView selection-background-color */ + show-decoration-selected: 1; /* make the selection span the entire width of the view */ +} + +/* Property Editor QTreeView (FreeCAD custom widget) */ +Gui--PropertyEditor--PropertyEditor { + gridline-color: #a0a0a0; /* same as Group header background */ +} + +/* fix for column items background when a link is present */ +Gui--PropertyEditor--PropertyEditor > QWidget > QFrame:focus { + background-color: #cbd8e6; /* same as focused background color */ +} + +/* hack to hide weird redundant information inside the value of a Placement cell */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel, +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel:disabled { + color: transparent; + background-color: transparent; + border: none; + border-radius: 0px; + margin: 0px; + padding: 0px; +} + +/* hack to hide non editable cells inside Property values */ +Gui--PropertyEditor--PropertyEditor QLineEdit:read-only, +Gui--PropertyEditor--PropertyEditor QLineEdit:disabled, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:read-only, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:disabled { + color: transparent; + border-color: transparent; + background-color: transparent; + selection-color: transparent; + selection-background-color: transparent; +} + +/* hack to disable margin inside Property values to following elements */ +Gui--PropertyEditor--PropertyEditor QSpinBox, +Gui--PropertyEditor--PropertyEditor QDoubleSpinBox, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox, +Gui--PropertyEditor--PropertyEditor QLineEdit, +Gui--PropertyEditor--PropertyEditor QComboBox { + margin-left: 0px; + margin-right: 0px; + padding-top: 0px; + padding-bottom: 0px; +} + +/* set border-radius to 0px inside list views */ +QTreeView > QWidget > QComboBox, +QTreeView > QWidget > QAbstractSpinBox, +QTreeView > QWidget > QSpinBox, +QTreeView > QWidget > QDoubleSpinBox, +QTreeView > QWidget > QLineEdit, +QTreeView > QWidget > QTextEdit, +QTreeView > QWidget > QTimeEdit, +QTreeView > QWidget > QDateEdit, +QTreeView > QWidget > QDateTimeEdit, +QTreeView > QWidget > QComboBox:drop-down, +QTreeView > QWidget > QAbstractSpinBox:up-button, +QTreeView > QWidget > QSpinBox:up-button, +QTreeView > QWidget > QDoubleSpinBox:up-button, +QTreeView > QWidget > QTimeEdit:up-button, +QTreeView > QWidget > QDateEdit:up-button, +QTreeView > QWidget > QDateTimeEdit:up-button, +QTreeView > QWidget > QAbstractSpinBox:down-button, +QTreeView > QWidget > QSpinBox:down-button, +QTreeView > QWidget > QDoubleSpinBox:down-button, +QTreeView > QWidget > QTimeEdit:down-button, +QTreeView > QWidget > QDateEdit:down-button, +QTreeView > QWidget > QDateTimeEdit:down-button, +QTreeView > QWidget > Gui--ColorButton { + border-radius: 0px; +} + +/* set focus colors to best viewing the editable fields */ +QTreeView > QWidget > QComboBox:focus, +QTreeView > QWidget > QAbstractSpinBox:focus, +QTreeView > QWidget > QSpinBox:focus, +QTreeView > QWidget > QDoubleSpinBox:focus, +QTreeView > QWidget > QLineEdit:focus, +QTreeView > QWidget > QTextEdit:focus, +QTreeView > QWidget > QTimeEdit:focus, +QTreeView > QWidget > QDateEdit:focus, +QTreeView > QWidget > QDateTimeEdit:focus { + border-color: #cbd8e6; /* same as focused background color */ + border-bottom-color: #7cabf9; /* same as focused border color */ +} + +QTreeView > QWidget > QAbstractSpinBox:read-only, +QTreeView > QWidget > QSpinBox:read-only, +QTreeView > QWidget > QDoubleSpinBox:read-only, +QTreeView > QWidget > QLineEdit:read-only, +QTreeView > QWidget > QTextEdit:read-only, +QTreeView > QWidget > QTimeEdit:read-only, +QTreeView > QWidget > QDateEdit:read-only, +QTreeView > QWidget > QDateTimeEdit:read-only { + color: transparent; + background-color: transparent; + border-color: transparent; +} + +/* Fix to correctly (not totally) draw QTextEdit on OSX at Page properties: "Page result", "Template" and "Editable Texts" */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QWidget { + min-height: 14px; +} + + +/*================================================================================================== +Header of tree and list views +==================================================================================================*/ +QHeaderView { + color: #c8c8c8; + background-color: #505050; + border-top-left-radius: 2px; /* 1px less than its container */ + border-top-right-radius: 2px; /* 1px less than its container */ + border-bottom-left-radius: 0px; + border-bottom-right-radius: 0px; +} + +QHeaderView::section { + border:none; + padding: 4px 6px; + background-color: #505050; +} + +QHeaderView::section:horizontal { + padding: 4px 6px; /* left and right value similar to QHeaderView::section */ + border-right: 1px solid rgba(255,255,255,30); +} + +QHeaderView::section:vertical { + border-bottom: 1px solid rgba(255,255,255,30); +} + +QTableCornerButton::section { + background-color: #505050; + border-top: none; + border-left: none; + border-right: 1px solid rgba(255,255,255,30); + border-bottom: 1px solid rgba(255,255,255,30); +} + +QHeaderView::section:last { + border-right: none; +} + +QHeaderView::up-arrow { + image: url(qss:images/up_arrow_light.png); +} + +QHeaderView::up-arrow:hover { + image: url(qss:images/up_arrow_lighter.png); +} + +QHeaderView::down-arrow { + image: url(qss:images/down_arrow_light.png); +} + +QHeaderView::down-arrow:hover { + image: url(qss:images/down_arrow_lighter.png); +} + +/* Group header inside Property Editor (FreeCAD custom widget) */ +Gui--PropertyEditor--PropertyEditor { + qproperty-groupTextColor: #505050; + qproperty-groupBackground: #8c8c8c; +} + + +/*================================================================================================== +Branch system for QTreeViews +==================================================================================================*/ +QTreeView::branch { + background: transparent; +} + +QTreeView::branch:has-siblings:!adjoins-item { + border-image: url(qss:images/branch_vline.png) 0; +} + +QTreeView::branch:has-siblings:adjoins-item { + border-image: url(qss:images/branch_more.png) 0; +} + +QTreeView::branch:!has-children:!has-siblings:adjoins-item { + border-image: url(qss:images/branch_end.png) 0; +} + +QTreeView::branch:closed:has-children:has-siblings { + image: url(qss:images/branch_closed_dark.png); +} + +QTreeView::branch:has-children:!has-siblings:closed { + image: url(qss:images/branch_closed_dark.png); + border-image: url(qss:images/branch_end.png) 0; +} + +QTreeView::branch:open:has-children:has-siblings { + image: url(qss:images/branch_open_dark.png); + border-image: url(qss:images/branch_more.png) 0; +} + +QTreeView::branch:open:has-children:!has-siblings { + image: url(qss:images/branch_open_dark.png); + border-image: url(qss:images/branch_end.png) 0; +} + + +/*================================================================================================== +Splitter and windows separator +==================================================================================================*/ +QSplitter::handle { + margin: 0px 11px; + padding: 0px; +} + +QSplitter::handle:vertical { + background-image: url(qss:images/splitter_horizontal_dark.png); + background-position: center center; + background-repeat: none; + margin: 2px 4px 2px 4px; + height: 2px; +} + +QSplitter::handle:horizontal { + background-image: url(qss:images/splitter_vertical_dark.png); + background-position: center center; + background-repeat: none; + margin: 4px 2px 4px 2px; + width: 2px; +} + +/* Similar to the splitter is the following window separator: */ +QMainWindow::separator { + background-position: center center; + background-repeat: none; +} + +QMainWindow::separator:horizontal { + height: 2px; + background-image: url(qss:images/splitter_horizontal_dark.png); + margin: 4px 2px 4px 2px; +} + +QMainWindow::separator:vertical { + width: 2px; + background-image: url(qss:images/splitter_vertical_dark.png); + margin: 2px 4px 2px 4px; +} + + +/*================================================================================================== +Tasks panel (custom FreeCAD class) +==================================================================================================*/ +/* Action group */ +QFrame[class="panel"] { + background-color: transparent; /* temporal (transparent background) */ +} + +/* Separator line */ +QSint--ActionGroup QFrame[height="1"], +QSint--ActionGroup QFrame[height="2"], +QSint--ActionGroup QFrame[height="3"], +QSint--ActionGroup QFrame[width="1"], +QSint--ActionGroup QFrame[width="2"], +QSint--ActionGroup QFrame[width="3"] { + border-color: rgba(0,0,0,60); +} + +/* Panel header */ +QSint--ActionGroup QFrame[class="header"] { + border: none; + background-color: #505050; /* Task Panel Header background color */ + border-top-left-radius: 3px; + border-top-right-radius: 3px; + border-bottom-left-radius: 0px; + border-bottom-right-radius: 0px; + margin: 0px; + padding: 0px; +} + +QSint--ActionGroup QFrame[class="header"]:hover { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #5e90fa, stop:1 #3874f2); +} + +QSint--ActionGroup QToolButton[class="header"] { + color: #e0e0e0; /* Task Panel Header text color */ + text-align: left; + font-weight: bold; + border: none; + margin: 0px; + padding: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel { + background-color: transparent; + background-image: url(qss:images/down_arrow_light.png); + background-repeat: none; + background-position: center center; + padding: 0px; + margin: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel:hover { + background-color: transparent; + background-image: url(qss:images/down_arrow_lighter.png); +} + +QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"] { + background-color: transparent; + background-image: url(qss:images/up_arrow_light.png); + background-repeat: none; + background-position: center center; + padding: 0px; + margin: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"]:hover { + background-color: transparent; + background-image: url(qss:images/up_arrow_lighter.png); +} + +QSint--ActionGroup QFrame[class="content"] { + background-color: #8c8c8c; /* Task Panel background color */ + margin: 0px; + padding: 0px; + border: none; + border-top-left-radius: 0px; + border-top-right-radius: 0px; + border-bottom-left-radius: 3px; + border-bottom-right-radius: 3px; +} + +QSint--ActionGroup QFrame[class="content"] > QWidget { + background-color: #8c8c8c; /* Task Panel background color */ +} + +/* Fixs for tabs inside Task Panel */ +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:top:selected { + border-bottom-color: #8c8c8c; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:bottom:selected { + border-top-color: #8c8c8c; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:right:selected { + border-right-color: #8c8c8c; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:left:selected { + border-left-color: #8c8c8c; /* same as Task Panel background color */ +} + + +/*================================================================================================== +Buttons +==================================================================================================*/ +/* Common */ +QComboBox, +QAbstractSpinBox, +QSpinBox, +QDoubleSpinBox, +QLineEdit, +QTextEdit, +QTimeEdit, +QDateEdit, +QDateTimeEdit { + color: #bebebe; + background-color: #5a5a5a; + selection-color: white; + selection-background-color: #3874f2; + border: 1px solid #5a5a5a; + border-radius: 3px; + min-width: 50px; /* it ensures the default value is correctly displayed */ + padding: 1px 2px; /* temporal: could don't be compatible with elements inside Tree/List view */ +} + +/* shifts text/number editable field to the left to make space for the up/down or drop-down buttons */ +QComboBox, +QAbstractSpinBox, +QSpinBox, +QDoubleSpinBox, +QTimeEdit, +QDateEdit, +QDateTimeEdit { + padding-right: 20px; +} + +/* when QTextEdit are no editable */ +QTextEdit:!editable { + background-color: #c8c8c8; + border: 1px solid #505050; +} + +QComboBox:focus, +QAbstractSpinBox:focus, +QSpinBox:focus, +QDoubleSpinBox:focus, +QLineEdit:focus, +QTextEdit:focus, +QTimeEdit:focus, +QDateEdit:focus, +QDateTimeEdit:focus { + color: black; + border-color: #7cabf9; + border-right-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #5e90fa, stop:1 #7cabf9); /* same as up/down or drop-down button color */ + background-color: #cbd8e6; +} + +QComboBox:disabled, +QAbstractSpinBox:disabled, +QSpinBox:disabled, +QDoubleSpinBox:disabled, +QLineEdit:disabled, +QTextEdit:disabled, +QTimeEdit:disabled, +QDateEdit:disabled, +QDateTimeEdit:disabled { + color: #787878; + background-color: #5a5a5a; /* same as enabled color */ + border-color: #5a5a5a; /* same as enabled color */ +} + +QAbstractSpinBox:up-button, +QSpinBox:up-button, +QDoubleSpinBox:up-button, +QTimeEdit:up-button, +QDateEdit:up-button, +QDateTimeEdit:up-button, +QAbstractSpinBox:down-button, +QSpinBox:down-button, +QDoubleSpinBox:down-button, +QTimeEdit:down-button, +QDateEdit:down-button, +QDateTimeEdit:down-button { + background-color: #505050; /* same color for QComboBox background-color */ + subcontrol-origin: border; /* important */ + width: 20px; /* same as QComboBox ... QDateTimeEdit padding-right */ +} + +QAbstractSpinBox:up-button, +QSpinBox:up-button, +QDoubleSpinBox:up-button, +QTimeEdit:up-button, +QDateEdit:up-button, +QDateTimeEdit:up-button { + subcontrol-position: top right; + border-top-right-radius: 3px; + height: 12px; /* fix for Ubuntu that doesn't divide the up/down button into the exact middle */ +} + +QAbstractSpinBox:down-button, +QSpinBox:down-button, +QDoubleSpinBox:down-button, +QTimeEdit:down-button, +QDateEdit:down-button, +QDateTimeEdit:down-button { + subcontrol-position: bottom right; + border-bottom-right-radius: 3px; +} + +QAbstractSpinBox:up-button:focus, +QSpinBox:up-button:focus, +QDoubleSpinBox:up-button:focus, +QTimeEdit:up-button:focus, +QDateEdit:up-button:focus, +QDateTimeEdit:up-button:focus { + background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #6f9efa, stop:1 #7cabf9); +} + +QAbstractSpinBox:down-button:focus, +QSpinBox:down-button:focus, +QDoubleSpinBox:down-button:focus, +QTimeEdit:down-button:focus, +QDateEdit:down-button:focus, +QDateTimeEdit:down-button:focus { + background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #5e90fa, stop:1 #6f9efa); +} + +QAbstractSpinBox:up-button:disabled, +QSpinBox:up-button:disabled, +QDoubleSpinBox:up-button:disabled, +QTimeEdit:up-button:disabled, +QDateEdit:up-button:disabled, +QDateTimeEdit:up-button:disabled, +QAbstractSpinBox:down-button:disabled, +QSpinBox:down-button:disabled, +QDoubleSpinBox:down-button:disabled, +QTimeEdit:down-button:disabled, +QDateEdit:down-button:disabled, +QDateTimeEdit:down-button:disabled { + background-color: transparent; +} + +QAbstractSpinBox::up-arrow, +QSpinBox::up-arrow, +QDoubleSpinBox::up-arrow, +QTimeEdit::up-arrow, +QDateEdit::up-arrow, +QDateTimeEdit::up-arrow { + image: url(qss:images/up_arrow_light.png); + top: 0px; /* fix simetry between up and down images */ +} + +QAbstractSpinBox::up-arrow:focus, +QSpinBox::up-arrow:focus, +QDoubleSpinBox::up-arrow:focus, +QTimeEdit::up-arrow:focus, +QDateEdit::up-arrow:focus, +QDateTimeEdit::up-arrow:focus { + image: url(qss:images/up_arrow_lighter.png); +} + +QAbstractSpinBox::up-arrow:off, +QSpinBox::up-arrow:off, +QDoubleSpinBox::up-arrow:off, +QTimeEdit::up-arrow:off, +QDateEdit::up-arrow:off, +QDateTimeEdit::up-arrow:off { + image: url(qss:images/up_arrow_disabled_dark.png); +} + +QAbstractSpinBox::up-arrow:disabled, +QSpinBox::up-arrow:disabled, +QDoubleSpinBox::up-arrow:disabled, +QTimeEdit::up-arrow:disabled, +QDateEdit::up-arrow:disabled, +QDateTimeEdit::up-arrow:disabled { + image: url(qss:images/up_arrow_disabled_dark.png); +} + +QAbstractSpinBox::down-arrow, +QSpinBox::down-arrow, +QDoubleSpinBox::down-arrow, +QTimeEdit::down-arrow, +QDateEdit::down-arrow, +QDateTimeEdit::down-arrow { + image: url(qss:images/down_arrow_light.png); + bottom: 0px; /* fix simetry between up and down images */ +} + +QAbstractSpinBox::down-arrow:focus, +QSpinBox::down-arrow:focus, +QDoubleSpinBox::down-arrow:focus, +QTimeEdit::down-arrow:focus, +QDateEdit::down-arrow:focus, +QDateTimeEdit::down-arrow:focus { + image: url(qss:images/down_arrow_lighter.png); +} + +QAbstractSpinBox::down-arrow:off, +QSpinBox::down-arrow:off, +QDoubleSpinBox::down-arrow:off, +QTimeEdit::down-arrow:off, +QDateEdit::down-arrow:off, +QDateTimeEdit::down-arrow:off { + image: url(qss:images/down_arrow_disabled_dark.png); +} + +QAbstractSpinBox::down-arrow:disabled, +QSpinBox::down-arrow:disabled, +QDoubleSpinBox::down-arrow:disabled, +QTimeEdit::down-arrow:disabled, +QDateEdit::down-arrow:disabled, +QDateTimeEdit::down-arrow:disabled { + image: url(qss:images/down_arrow_disabled_dark.png); +} + +/* ComboBox */ +QComboBox::drop-down { + background-color: #505050; /* same color as up/down QSpinBox ... QDateTimeView background-color */ + subcontrol-origin: border; /* important */ + subcontrol-position: top right; + width: 20px; + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; +} + +QComboBox::drop-down:on, +QComboBox::drop-down:focus { + background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #5e90fa, stop:1 #7cabf9); +} + +QComboBox::down-arrow { + image: url(qss:images/down_arrow_light.png); +} + +QComboBox::down-arrow:on, +QComboBox::down-arrow:focus { + image: url(qss:images/down_arrow_lighter.png); +} + +QComboBox::down-arrow:off, +QComboBox::down-arrow:disabled { + image: url(qss:images/down_arrow_disabled_dark.png); +} + +/* ComboBox menu */ +QComboBox { + selection-color: white; + selection-background-color: #5e90fa; +} + +QComboBox QAbstractItemView { + color: #bebebe; /* same as regular QComboBox color */ + background-color: transparent; + selection-color: white; + selection-background-color: #5e90fa; + border-width: 5px 0px 5px 0px; + border-style: solid; + border-color: transparent; + margin: 0px -1px 0px 0px; /* hack for Mac... try it on Windows and Linux */ +} + + +/*================================================================================================== +Push button +==================================================================================================*/ +QPushButton { + color: #e0e0e0; + text-align: center; + background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #6e6e6e, stop:1 #646464); + border: 1px solid #5a5a5a; + border-bottom-color: #505050; /* simulates shadow under the button */ + padding: 4px 22px; + margin: 4px 4px; + min-height: 16px; /* same as QTabBar QPushButton min-width */ + border-radius: 4px; +} + +QPushButton:hover, +QPushButton:focus { + color: white; + border-color: #3874f2; + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #5e90fa, stop:1 #3874f2); +} + +QPushButton:disabled, +QPushButton:disabled:checked { + color: #787878; + background-color: #5a5a5a; /* same as enabled color */ + border-color: #5a5a5a; /* same as enabled color */ +} + +QPushButton:pressed { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #3874f2, stop:1 #5e90fa); +} + +QPushButton:checked { + background-color: #5e90fa; + border-color: #3874f2; +} + +/* Color Buttons */ +Gui--ColorButton, +Gui--ColorButton:disabled { + padding: 0px; /* reset */ + margin: 0px; /* reset */ +} + +Gui--ColorButton { + background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #6e6e6e, stop:1 #646464); + border: 1px solid #5a5a5a; + border-bottom-color: #505050; /* simulates shadow under the button */ +} + +Gui--ColorButton:disabled { + border-color: transparent; + background-color: rgba(0,0,0,10); +} + +Gui--ColorButton:hover, +Gui--ColorButton:focus { + border-color: #3874f2; + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #5e90fa, stop:1 #3874f2); +} + +Gui--ColorButton:pressed { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #3874f2, stop:1 #5e90fa); +} + +/* Pushbutton style for "..." inside Placement cell which launches Placement tool */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QPushButton { + background-color: #6e6e6e; + border: 1px solid #5a5a5a; + min-width: 16px; /* reset it due to larger value on regular QPushButton, same or bigger value as regular QPushButton min-height */ + border-radius: 0px; + margin: 0px; /* reset */ + padding: 0px; /* reset */ +} + +/* Fix for Expressions description QFrame that is "broken" with initial reset */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QWidget > QWidget > QFrame { + background-color: #6e6e6e; /* main background color */ + border: 1px solid #5a5a5a; + border-radius: 2px; + padding: 2px 6px; +} + + +/*================================================================================================== +Tool button inside QDialogs that works as QPushButtons +==================================================================================================*/ +/* found under Tools -> Customize -> Macros -> Pixmap "..." button */ +QDialog QToolButton { + color: #e0e0e0; + text-align: center; + background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #6e6e6e, stop:1 #646464); + border: 1px solid #5a5a5a; + border-bottom-color: #505050; /* simulates shadow under the button */ + padding: 0px; /* different than regular QPushButton */ + margin: 2px; /* different than regular QPushButton */ + min-height: 16px; /* same as QTabBar QPushButton min-width */ + border-radius: 4px; +} + +QDialog QToolButton:hover, +QDialog QToolButton:focus { + color: white; + border-color: #3874f2; + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #5e90fa, stop:1 #3874f2); +} + +QDialog QToolButton:disabled, +QDialog QToolButton:disabled:checked { + color: #6e6e6e; + border-color: #5a5a5a; + background-color: #5a5a5a; +} + +QDialog QToolButton:pressed { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #3874f2, stop:1 #5e90fa); +} + +QPushButton:checked { + background-color: #5e90fa; + border-color: #3874f2; +} + + +/*================================================================================================== +Radio button +==================================================================================================*/ +QRadioButton::indicator:unchecked{ + color: black; + background-color: rgba(255,255,255,20); + border: 1px solid #5a5a5a; +} + +QRadioButton::indicator:checked { + background-color: #5e90fa; /* QCheckBox has the same color */ + border: 1px solid #3874f2; /* QCheckBox has the same color */ + image:url(qss:images/radiobutton_light.png); +} + +QRadioButton, +QRadioButton:disabled { + color: black; + padding: 3px; + outline: none; + background-color: transparent; +} + +QRadioButton::indicator { + width: 11px; + height: 11px; + border-radius: 6px; +} + +QRadioButton::indicator:pressed { + border-color: #adc5ed; +} + +QRadioButton::indicator:disabled { + border: 1px solid #f5f5f5; +} + +QRadioButton::indicator:disabled { + color: #f5f5f5; + background-color: transparent; +} + +QRadioButton:focus { + border: none; +} + + +/*================================================================================================== +Checkbox +==================================================================================================*/ +QCheckBox, +QCheckBox:disabled { + color: black; + padding: 3px; + outline: none; + background-color: transparent; +} + +QCheckBox::indicator { + color: black; + background-color: rgba(255,255,255,20); + border: 1px solid #5a5a5a; +} + +QCheckBox::indicator { + width: 11px; + height: 11px; + border-radius:2px; +} + +QCheckBox::indicator:pressed, +QCheckBox::indicator:non-exclusive:checked:pressed, +QCheckBox::indicator:indeterminate:pressed, +QCheckBox::indicator:checked:pressed { + border-color: #adc5ed; +} + +QCheckBox::indicator:checked { + background-color: #5e90fa; /* QRadioButton has the same color */ + border: 1px solid #3874f2; /* QRadioButton has the same color */ + image:url(qss:images/checkbox_light.png); +} + +QCheckBox:disabled { + color: rgba(255,255,255,40); + background-color: transparent; +} + +QCheckBox::indicator:disabled { + background-color: rgba(255,255,255,20); + border: 1px solid rgba(255,255,255,20); +} + +QCheckBox::indicator:indeterminate { + background-color: #5e90fa; + border: 1px solid #3874f2; + image: url(qss:images/checkbox_indeterminate_light.png); +} + +QCheckBox:focus { + border: none; +} + + +/*================================================================================================== +Slider +==================================================================================================*/ +QSlider, +QSlider:active, +QSlider:!active { + border: none; + background-color: transparent; +} + +QSlider:horizontal { + padding: 0px 10px; +} + +QSlider:vertical { + padding: 10px 0px; +} + +QSlider::groove { + background-color: rgba(0,0,0,30); + border: 1px solid rgba(0,0,0,40); + border-radius: 5px; + margin: 4px 0px; +} + +QSlider::groove:horizontal { + height: 8px; +} + +QSlider::groove:vertical { + width: 8px; +} + +QSlider::groove:horizontal:disabled, +QSlider::groove:vertical:disabled { + border-color: #5a5a5a; + background-color: #5a5a5a; +} + +QSlider::handle:horizontal, +QSlider::handle:vertical { + background-color: #505050; + border: 1px solid #505050; + width: 14px; + height: 14px; + border-radius: 8px; +} + +QSlider::handle:horizontal { + margin: -4px 0; +} + +QSlider::handle:vertical { + margin: 0 -4px; +} + +QSlider::handle:horizontal:hover, +QSlider::handle:vertical:hover, +QSlider::handle:horizontal:pressed, +QSlider::handle:vertical:pressed { + border-color: #5e90fa; + background-color: #5e90fa; +} + +QSlider::handle:horizontal:disabled, +QSlider::handle:vertical:disabled { + border-color: #5a5a5a; + background-color: #5a5a5a; +} + + +/*================================================================================================== +Toolbar buttons +==================================================================================================*/ +QToolBar > QToolButton { + margin: 2px; + padding: 2px; +} + +QToolBar > QPushButton, +/*QToolBar > QComboBox, disabled because creates different margins for body and drop-down button */ +QToolBar > QAbstractSpinBox, +QToolBar > QSpinBox, +QToolBar > QDoubleSpinBox, +QToolBar > QLineEdit, +QToolBar > QTextEdit, +QToolBar > QTimeEdit, +QToolBar > QDateEdit, +QToolBar > QDateTimeEdit { + margin: 2px; + padding: 2px; +} + +QToolBar > QPushButton { + border-radius: 4px; /* same as regular QPushButton */ + min-width: 20px; /* reset it due to larger value on regular QPushButton, same or bigger value as regular QPushButton min-height */ +} + +QToolBar > QPushButton:checked { + border: 1px solid #3874f2; + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #5e90fa, stop:1 #3874f2); +} + +QToolBar > QPushButton:!checked { + background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #6e6e6e, stop:1 #646464); + border: 1px solid #5a5a5a; + border-bottom-color: #505050; /* simulates shadow under the button */ +} + +QToolBar > QPushButton:checked:hover { + border-color: #2053c0; +} + +QToolBar > QPushButton:!checked:hover { + color: #cbd8e6; + border-color: #505050; +} + +QToolBar > QPushButton:checked:pressed { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #3874f2, stop:1 #5e90fa); +} + +QToolBar > QPushButton:!checked:pressed { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #5a5a5a, stop:1 #6e6e6e); +} + +QToolBar > QPushButton:checked:disabled, +QToolBar > QPushButton:!checked:disabled { + border: none; + background-color: transparent; +} + +/* ToolBar menu buttons (buttons with drop-down menu) */ +QToolBar > QToolButton#qt_toolbutton_menubutton { + padding-right: 20px; /* Hack to add more width to buttons with menu */ + border: 1px solid transparent; + border-radius: 3px; +} + +QToolBar > QToolButton#qt_toolbutton_menubutton:hover, +QToolBar > QToolButton#qt_toolbutton_menubutton:pressed, +QToolBar > QToolButton#qt_toolbutton_menubutton:open { + border: 1px solid #7cabf9; +} + +QToolBar QToolButton::menu-button, +QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button { + border: none; + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; + width: 16px; /* 16px width + 4px for border = 20px allocated above */ + outline: none; + background-color: transparent; +} + +QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:hover, +QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:pressed, +QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:open { + background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #5e90fa, stop:1 #7cabf9); +} + +QToolBar > QToolButton::menu-arrow { + background-image: url(qss:images/down_arrow_dark.png); + background-position: center center; + background-repeat: none; + subcontrol-origin: padding; + subcontrol-position: bottom right; + height: 10px; /* same as arrow image */ +} + +QToolBar > QToolButton::menu-arrow:hover { + background-image: url(qss:images/down_arrow_lighter.png); +} + +QToolBar > QToolButton::menu-arrow:open { + background-image: url(qss:images/down_arrow_lighter.png); +} + +/*The "show more" button (it can also be stylable with "QToolBarExtension" */ +QToolBar QToolButton#qt_toolbar_ext_button { + margin: 0px; + padding: 0px; + /*background-image: url(qss:images/more_dark.png);*/ + image: transparent; + background-repeat: none; + background-position: center left; +} + +QToolBar QToolButton#qt_toolbar_ext_button:hover { + /*background-image: url(qss:images/more_light.png);*/ + border-color: #5a5a5a; + background-color: #5a5a5a; +} + +QToolBar QToolButton#qt_toolbar_ext_button:on { + /*background-image: url(qss:images/more_light.png);*/ + border-color: #5a5a5a; + background-color: #5a5a5a; +} + + +/*================================================================================================== +Tables (spreadsheets) +==================================================================================================*/ +QTableView { + gridline-color: #a0a0a0; + selection-color: #1b3774; + selection-background-color: #cbd8e6; +} + +QTableView::item:hover { + background-color: rgba(0,0,0,10); /* temporal: is it displayed in Linux or Windows? on OSX it isn't */ +} + +QTableView::item:disabled { + color: #8c8c8c; +} + +QTableView::item:selected { + color: #1b3774; + border-color: #cbd8e6; /* same as focused background color */ + border-bottom-color: #7cabf9; /* same as focused border color */ +} + +/* fix for elements inside the cells */ +QTableView QComboBox, +QTableView QAbstractSpinBox, +QTableView QSpinBox, +QTableView QDoubleSpinBox, +QTableView QLineEdit, +QTableView QTextEdit, +QTableView QTimeEdit, +QTableView QDateEdit, +QTableView QDateTimeEdit, +QTableView QComboBox:drop-down, +QTableView QAbstractSpinBox:up-button, +QTableView QSpinBox:up-button, +QTableView QDoubleSpinBox:up-button, +QTableView QTimeEdit:up-button, +QTableView QDateEdit:up-button, +QTableView QDateTimeEdit:up-button, +QTableView QAbstractSpinBox:down-button, +QTableView QSpinBox:down-button, +QTableView QDoubleSpinBox:down-button, +QTableView QTimeEdit:down-button, +QTableView QDateEdit:down-button, +QTableView QDateTimeEdit:down-button, +QTableView Gui--ColorButton { + border-radius: 0px; +} + +QTableView QComboBox, +QTableView QAbstractSpinBox, +QTableView QSpinBox, +QTableView QDoubleSpinBox, +QTableView QLineEdit, +QTableView QTextEdit, +QTableView QTimeEdit, +QTableView QDateEdit, +QTableView QDateTimeEdit { + color: black; + background-color: transparent; + border-color: transparent; +} + +QTableView QComboBox:drop-down, +QTableView QAbstractSpinBox:up-button, +QTableView QSpinBox:up-button, +QTableView QDoubleSpinBox:up-button, +QTableView QTimeEdit:up-button, +QTableView QDateEdit:up-button, +QTableView QDateTimeEdit:up-button, +QTableView QAbstractSpinBox:down-button, +QTableView QSpinBox:down-button, +QTableView QDoubleSpinBox:down-button, +QTableView QTimeEdit:down-button, +QTableView QDateEdit:down-button, +QTableView QDateTimeEdit:down-button, +QTableView Gui--ColorButton { + background-color: rgba(0,0,0,30); +} + +QTableView QComboBox:focus, +QTableView QAbstractSpinBox:focus, +QTableView QSpinBox:focus, +QTableView QDoubleSpinBox:focus, +QTableView QLineEdit:focus, +QTableView QTextEdit:focus, +QTableView QTimeEdit:focus, +QTableView QDateEdit:focus, +QTableView QDateTimeEdit:focus { + color: #1b3774; + selection-color: white; + selection-background-color: #5e90fa; + border-color: #cbd8e6; + background-color: #cbd8e6; +} + +QTableView QComboBox:disabled, +QTableView QAbstractSpinBox:disabled, +QTableView QSpinBox:disabled, +QTableView QDoubleSpinBox:disabled, +QTableView QLineEdit:disabled, +QTableView QTextEdit:disabled, +QTableView QTimeEdit:disabled, +QTableView QDateEdit:disabled, +QTableView QDateTimeEdit:disabled { + color: rgba(0,0,0,120); + background-color: transparent; + border-color: transparent; +} + +QTableView QComboBox:read-only, +QTableView QAbstractSpinBox:read-only, +QTableView QSpinBox:read-only, +QTableView QDoubleSpinBox:read-only, +QTableView QLineEdit:read-only, +QTableView QTextEdit:read-only, +QTableView QTimeEdit:read-only, +QTableView QDateEdit:read-only, +QTableView QDateTimeEdit:read-only { + color: black; + background-color: transparent; + border-color: transparent; +} + + +/*================================================================================================== +EXPERIMENTAL +==================================================================================================*/ + +/* Fix for preventing elements in different rows to accidentaly overlap */ +QDialog QGroupBox QFrame { + margin: 2px 0px; +} + +*[mandatoryField="true"] { background-color: cyan } + + + diff --git a/dark-green.qss b/dark-green.qss index 1f1fe44..62b517c 100644 --- a/dark-green.qss +++ b/dark-green.qss @@ -1,1906 +1,1883 @@ -/* -ABOUT -=========================================================== -version 1.8 -QT theme (stylesheet) specially developed for FreeCAD (http://www.freecadweb.org/). -It might work with other software that uses QT styling. - - -LICENSE -=========================================================== -Copyright (c) 2015 Pablo Gil Fernández -The stylesheet barely uses code from Colin Duquesnoy "generic QT stylesheet" - -This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. -To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/. - - -INSTALLATION -=========================================================== -1) Place the .qss files and /images/ folder in the path that fits your OS: - OSX = /Users/[YOUR_USER_NAME]/Library/Preferences/FreeCAD/Gui/Stylesheets/ - WINDOWS = C:/[INSTALLATION_PATH]/FreeCAD/data/Gui/Stylesheets/ - LINUX = /home/[YOUR_USER_NAME]/.FreeCAD/Gui/Stylesheets/ - -2) In order to display correctly images that are used inside the stylesheet: - 2.1) If you use FreeCAD 0.16 (development builds newer than commit 5b3d50a): that's it, you are done! - - 2.2) If you use FreeCAD 0.15: Images used in the theme need full paths to be found by FreeCAD, so you should search the string "qss:images" (without "") and replace with the real path of your computer. It should be done with all the .qss files you want to install-use - find = qss:images - replace = /Users/myName/Library/Preferences/FreeCAD/Gui/Stylesheets/images - - -CUSTOMIZATION -=========================================================== -If you would like to change the overall look/style of the theme, just find and replace following colors in the whole file: - background darker = #4f514d - background dark and slightly darker = #5f615d - background dark = #6f716d - background normal and slightly darker = #7d7f79 - background normal = #888a85 - background light = #9c9e9a - background lighter = #c8c9c7 - - lists background = #d0d3cd - lists background (alternate) = #cccfc9 - lists backgrounds selection = #c8cbc4 - - foreground = white - - selection darker = #5d7619 - selection dark = #97c029 - selection normal = #b5d757 - selection inbetween normal and light = #c0dd70 (used to build SpinBoxes) - selection light = #cbe389 - selection lighter = #dfefb4 - - -CAVEATS -=========================================================== - - FreeCAD 0.15 - - full paths to images are needed, that means all these .qss files should be edited per user - - the "Task panel" is not stylable - - in app icons-buttons are designed in svg but are not stylable, that is, it's not possible to change them... I hope it also changes in the near future - - -KNOWN BUGS and TO DO -=========================================================== - - please, follow the link to get updated information: http://forum.freecadweb.org/viewtopic.php?f=10&t=12417 -*/ - -/* RESET EVERYTHING */ -QAbstractScrollArea,QCheckBox,QColumnView,QComboBox,QDateEdit,QDateTimeEdit,QDialog,QDialogButtonBox,QDockWidget,QDoubleSpinBox,QFrame,QGroupBox,QHeaderView,QLabel,QLineEdit,QListView,QListWidget,QMainWindow,QMenu,QMenuBar,QMessageBox,QProgressBar,QPushButton,QRadioButton,QScrollBar,QSizeGrip,QSlider,QSpinBox,QSplitter,QStatusBar,QTabBar,QTabWidget,QTableView,QTableWidget,QTextEdit,QTimeEdit,QToolBar,QToolButton,QToolBox,QToolTip,QTreeView,QTreeWidget,QWidget { - padding: 0px; - margin: 0px; - border: 0px; - border-style: none; - background-color: #888a85; /* set with default background color */ -} - -QMdiArea[showImage="true"] { - background-image: url(qss:images/background_freecad.png); - background-position: center; - background-repeat: no-repeat; -} - -QProgressBar, -QProgressBar:horizontal { - background: #d0d3cd; - border: 1px solid #6f716d; - text-align: center; - padding: 1px; - border-radius: 4px; -} -QProgressBar::chunk, -QProgressBar::chunk:horizontal { - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #97c029, stop:1 #b5d757); - border-radius: 3px; -} - -QToolTip { - background-color: #4f514d; - color: white; - padding: 4px; - border-radius: 4px; - /*opacity: 200;*/ -} - -QWidget { - color: #4f514d; - background-color: #888a85; - background-clip: border; - border-image: none; - outline: 0; -} - -QWidget:focus { - border: 1px solid #4f514d; -} - -QWidget:disabled { - color: #9c9e9a; - background-color: #4f514d; /* same as QMenu background-color */ -} - -QMenuBar { - color: #c8c9c7; - background-color: #7d7f79; -} - -QMenuBar::item { - background-color: #7d7f79; -} - -QMenuBar::item:selected { - color: #5d7619; - border: 1px solid #b5d757; - background-color: #b5d757; -} - -QMenuBar::item:pressed { - color: #5d7619; - border: 1px solid #cbe389; - background-color: #cbe389; - margin-bottom:-1px; - padding-bottom:1px; -} - -QMenu { - color: #c8c9c7; - background-color: #4f514d; - margin: 2px; - border: 1px solid transparent; -} - -QMenu::icon { - margin: 5px; - border-style: none; -} - -QMenu::right-arrow { - image:url(qss:images/right_arrow_light.png); -} - -QMenu::item { - color: #c8c9c7; - background-color: #4f514d; - padding: 2px 30px 2px 30px; - border: 1px solid #4f514d; /* reserve space for selection border */ -} - -QMenu::item:selected { - color: #5d7619; - background-color: #cbe389; -} - -QMenu::separator { - height: 1px; - background-color: #6f716d; - margin-top: 2px; - margin-bottom: 2px; - margin-left: 6px; - margin-right: 6px; -} - -QMenu::indicator:non-exclusive { - color: #c8c9c7; - background-color: #9c9e9a; - border: 1px solid #4f514d; - width: 11px; - height: 11px; - border-radius:2px; -} - -QMenu::indicator:non-exclusive:checked { - background-color: #97c029; - border: 1px solid #5d7619; - image:url(qss:images/checkbox_light.png); -} - -QGroupBox { - color: #4f514d; - font-weight: bold; - border:1px solid blue; - border-radius: 4px; - margin-top: 20px; - border-color: rgba(0, 0, 0, 20); /* lighter than "QGroupBox" border-color */ - background-color: rgba(255, 255, 255, 15); -} - - - -QGroupBox::title { - subcontrol-origin: margin; - subcontrol-position: top left; - padding-left: 10px; - padding-right: 10px; - padding-top: 10px; - background-color: transparent; -} - -QAbstractScrollArea { - border-radius: 2px; - border: 1px solid #3A3939; - background-color: transparent; -} - -QAbstractScrollArea::corner { - border: none; - background-color: #888a85; -} - -QScrollBar:horizontal { - height: 15px; - margin: 3px 15px 3px 15px; - border: 1px transparent #4f514d; - border-radius: 4px; - background-color: #4f514d; -} - -QScrollBar::handle:horizontal { - background-color: #6f716d; - min-width: 5px; - border-radius: 4px; -} - -QScrollBar::add-line:horizontal { - margin: 1px 3px 0px 3px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images/right_arrow_light.png); - width: 6px; - height: 10px; - subcontrol-position: right; - subcontrol-origin: margin; -} - -QScrollBar::sub-line:horizontal { - margin: 1px 3px 0px 3px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images/left_arrow_light.png); - height: 10px; - width: 6px; - subcontrol-position: left; - subcontrol-origin: margin; -} - -QScrollBar::add-line:horizontal:hover, -QScrollBar::add-line:horizontal:on { - border-image: url(qss:images/right_arrow_lighter.png); -} - - -QScrollBar::sub-line:horizontal:hover, -QScrollBar::sub-line:horizontal:on { - border-image: url(qss:images/left_arrow_lighter.png); -} - -QScrollBar::up-arrow:horizontal, -QScrollBar::down-arrow:horizontal { - background: none; -} - - -QScrollBar::add-page:horizontal, -QScrollBar::sub-page:horizontal { - background: none; -} - -QScrollBar:vertical { - background-color: #4f514d; - width: 15px; - margin: 15px 3px 15px 3px; - border: 1px transparent #4f514d; - border-radius: 4px; -} - -QScrollBar::handle:vertical { - background-color: #6f716d; - min-height: 5px; - border-radius: 4px; -} - -QScrollBar::sub-line:vertical { - margin: 3px 0px 3px 1px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images/up_arrow_light.png); - height: 6px; - width: 10px; - subcontrol-position: top; - subcontrol-origin: margin; -} - -QScrollBar::add-line:vertical { - margin: 3px 0px 3px 1px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images/down_arrow_light.png); - height: 6px; - width: 10px; - subcontrol-position: bottom; - subcontrol-origin: margin; -} - -QScrollBar::sub-line:vertical:hover, -QScrollBar::sub-line:vertical:on { - border-image: url(qss:images/up_arrow_lighter.png); -} - -QScrollBar::add-line:vertical:hover, -QScrollBar::add-line:vertical:on { - border-image: url(qss:images/down_arrow_lighter.png); -} - -QScrollBar::up-arrow:vertical, -QScrollBar::down-arrow:vertical { - background: none; -} - - -QScrollBar::add-page:vertical, -QScrollBar::sub-page:vertical { - background: none; -} - -QTextEdit { - color: #4f514d; - background-color: #d0d3cd; - border: 1px solid #6f716d; - padding: 0px; - margin: 0px; -} - -QPlainTextEdit { - color: #4f514d; - background-color: #d0d3cd; - border-radius: 2px; - border: 1px solid #6f716d; - padding: 0px; - margin: 0px; -} - -QSizeGrip { - image: url(qss:images/sizegrip_light.png); - width: 16px; - height: 16px; - background-color: transparent; -} - -QRadioButton::indicator:unchecked{ - color: #4f514d; - background-color: #9c9e9a; - border: 1px solid #4f514d; -} - -QRadioButton::indicator:checked { - background-color: #97c029; - border: 1px solid #5d7619; - image:url(qss:images/radiobutton_light.png); -} - -QCheckBox, -QRadioButton, -QCheckBox:disabled, -QRadioButton:disabled { - color: #4f514d; - padding: 3px; - outline: none; - background-color: transparent; -} - -QCheckBox::indicator, -QGroupBox::indicator { - color: #c8c9c7; - background-color: #9c9e9a; - border: 1px solid #4f514d; -} - -QCheckBox::indicator { - width: 11px; - height: 11px; - border-radius:2px; -} - -QRadioButton::indicator { - width: 11px; - height: 11px; - border-radius: 6px; -} - -QRadioButton::indicator:pressed, -QCheckBox::indicator:pressed, -QCheckBox::indicator:non-exclusive:checked:pressed, -QCheckBox::indicator:indeterminate:pressed, -QCheckBox::indicator:checked:pressed { - border-color: #dfefb4; -} - -QCheckBox::indicator:checked, -QGroupBox::indicator:checked { - background-color: #97c029; - border: 1px solid #5d7619; - image:url(qss:images/checkbox_light.png); -} - -QCheckBox::indicator:disabled, -QRadioButton::indicator:disabled { - border: 1px solid #6f716d; -} - -QCheckBox:disabled, -QRadioButton::indicator:disabled { - color: #6f716d; - background-color: transparent; -} - -QCheckBox::indicator:disabled, -QGroupBox::indicator:disabled, -QMenu::indicator:non-exclusive:disabled { - background-color: #888a85; -} - -QCheckBox::indicator:indeterminate { - background-color: #97c029; - border: 1px solid #5d7619; - image: url(qss:images/checkbox_indeterminate_light.png); -} - -QCheckBox:focus, -QRadioButton:focus { - border: none; -} - -QFrame, -QFrame:pressed, -QFrame:focus, -QFrame:on { - border: 1px solid #888a85; - border-radius: 3px; - padding: 0px; - /* background-color: transparent; temporal */ -} - -/* border and background of QComboBox drop-down */ -QComboBox QFrame, -QComboBox QFrame:pressed, -QComboBox QFrame:focus, -QComboBox QFrame:on { - border: 1px solid #4f514d; - background-color: #4f514d; - padding: 0px; - margin: 0px; -} - -QFrame[frameShape="0"] { - border-radius: 3px; -} - -/* Separator line */ -QFrame[height="1"], -QFrame[height="2"], -QFrame[height="3"], -QFrame[width="1"], -QFrame[width="2"], -QFrame[width="3"] { - border-width: 1px 0px 0px 0px; - border-style: solid; - border-color: #7d7f79; - background-color: transparent; -} - -QPushButton { - color: #c8c9c7; - text-align: center; - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #6f716d, stop:1 #888a85); - border: 1px solid #4f514d; - padding: 5px 12px 5px 12px; - margin: 4px 8px 4px 8px; - border-radius: 3px; - min-width: 14px; - min-height: 14px; -} - -QPushButton:hover, -QPushButton:focus { - color: white; - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #97c029, stop:1 #b5d757); - border-color: #97c029; -} - -QPushButton:disabled, -QPushButton:disabled:checked { - color: #6f716d; - background-color: #888a85; - border-color: #6f716d; -} - -QPushButton:pressed { - background-color: #97c029; -} - -QPushButton:checked { - background-color: #b5d757; - border-color: #97c029; -} - -/* Color Buttons */ -Gui--ColorButton, -Gui--ColorButton:disabled { - border-color: transparent; - background-color: transparent; - /*width: 60px;*/ - height: 24px; - padding: 0px; - margin: 0px; -} - -Gui--ColorButton:hover { - border-color: #7d7f79; - background-color: #7d7f79; -} - -/* Buttons inside the toolbar */ -QToolBar QPushButton { - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #7d7f79, stop:1 #888a85); - border: 1px solid #6f716d; - min-width: 22px; - min-height: 22px; - margin-left: 2px; - margin-right: 2px; - margin-bottom: 3px; /*bigger margin to correctly separate buttons inside a vertical toolbar */ - margin-top: 1px; - padding: 1px; -} - -QToolBar QPushButton:hover, -QToolBar QPushButton:focus { - color: #c8c9c7; - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #7d7f79, stop:1 #888a85); - border: 1px solid #4f514d; -} - -QToolBar QPushButton:disabled, -QToolBar QPushButton:disabled:checked { - background-color: #888a85; - border-color: #7d7f79; -} - -QToolBar QPushButton:pressed { - background-color: #6f716d; - border-color: #6f716d; -} - -QToolBar QPushButton:checked { - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #b5d757, stop:1 #cbe389); - border-color: #b5d757; -} - -QToolBar QPushButton:checked:hover, -QToolBar QPushButton:checked:focus { - color: #c8c9c7; - border: 1px solid #97c029; -} - -QToolBar { - border: 1px transparent #393838; - background-color: #888a85; - font-weight: bold; - margin: 0px; - padding: 0px; -} - -QToolBar::handle:horizontal { - background-image: url(qss:images/Hmovetoolbar_dark.png); - width: 10px; - margin: 6px 2px 6px 2px; - background-position: top right; - background-repeat: repeat-y; -} - -QToolBar::handle:vertical { - background-image: url(qss:images/Vmovetoolbar_dark.png); - height: 10px; - margin: 2px 6px 2px 6px; - background-position: left bottom; - background-repeat: repeat-x; -} - -QToolBar::separator:horizontal { - background-image: url(qss:images/separtoolbar_dark.png); - width: 10px; - margin: 6px 2px 6px 2px; - background-position: center center; - background-repeat: repeat-y; -} - -QToolBar::separator:vertical { - background-image: url(qss:images/separtoolbar_dark.png); - height: 10px; - margin: 2px 6px 2px 6px; - background-position: center center; - background-repeat: repeat-x; -} - -QStackedWidget { - background-color: #888a85; - border: 1px transparent #888a85; -} - -QAbstractSpinBox { - color: #c8c9c7; - border: 1px solid #6f716d; /* border top color defined after QAbstractSpinBox, QLineEdit and QComboBox */ - background-color: #6f716d; - selection-color: white; - selection-background-color: #b5d757; -} - -QAbstractSpinBox:disabled { - color: #9c9e9a; - background-color: #7d7f79; - border-color: #7d7f79; -} - -QAbstractSpinBox:up-button { - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #c0dd70, stop:1 #cbe389); - subcontrol-origin: border; - subcontrol-position: top right; - border-top-right-radius: 3px; - width: 20px; -} - -QAbstractSpinBox:down-button { - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #b5d757, stop:1 #c0dd70); - subcontrol-origin: border; - subcontrol-position: bottom right; - border-bottom-right-radius: 3px; - width: 20px; -} - -QAbstractSpinBox:up-button:disabled, -QAbstractSpinBox:down-button:disabled { - background-color: transparent; -} - -QAbstractSpinBox::up-arrow { - image: url(qss:images/up_arrow_light.png); - top: 1px; /* fix simetry between up and down images */ -} - -QAbstractSpinBox::up-arrow:hover { - image: url(qss:images/up_arrow_lighter.png); -} - -QAbstractSpinBox::up-arrow:off { - image: url(qss:images/up_arrow_disabled_dark.png); -} - -QAbstractSpinBox::up-arrow:disabled { - image: none; -} - -QAbstractSpinBox::down-arrow { - image: url(qss:images/down_arrow_light.png); - bottom: -1px; /* fix simetry between up and down images */ -} -QAbstractSpinBox::down-arrow:hover { - image: url(qss:images/down_arrow_lighter.png); -} - -QAbstractSpinBox::down-arrow:off { - image: url(qss:images/down_arrow_disabled_dark.png); -} - -QAbstractSpinBox::down-arrow:disabled { - image: none; -} - -QToolBar QAbstractSpinBox { - margin-top: 4px; - margin-bottom: 4px; -} - -QLineEdit { - color: #c8c9c7; - background-color: #6f716d; - selection-color: white; - selection-background-color: #b5d757; - /* Padding and margin defined */ - border-style: solid; - border: 1px solid #6f716d; /* border top color defined after QAbstractSpinBox, QLineEdit and QComboBox */ - border-radius: 3px; -} - -QAbstractSpinBox:focus, -QLineEdit:focus, -QComboBox:focus { - border-color: #cbe389; -} - -QComboBox { - color: #c8c9c7; - background-color: #6f716d; - selection-color: white; - selection-background-color: #b5d757; - border: 1px solid #6f716d; /* border top color defined after QAbstractSpinBox, QLineEdit and QComboBox */ - border-radius: 3px; -} - -QComboBox:on { - color: white; - background-color: #6f716d; - border-color: #cbe389; -} - -QComboBox::drop-down { - subcontrol-origin: margin; - subcontrol-position: top right; - width: 20px; - border-left-width: 1px; - border-left-color: transparent; - border-left-style: solid; - border-top-right-radius: 3px; - border-bottom-right-radius: 3px; - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #b5d757, stop:1 #cbe389); -} - -QComboBox::down-arrow { - image: url(qss:images/down_arrow_light.png); -} - -QComboBox::down-arrow:on, -QComboBox::down-arrow:hover, -QComboBox::down-arrow:focus { - image: url(qss:images/down_arrow_lighter.png); -} - -QComboBox QAbstractItemView { - color: #c8c9c7; - background-color: #4f514d; - border-radius: 3px; - margin: 0px; - padding: 0px; - border: none; -} - -/* Common parameters for QAbstractSpinBox, QLineEdit and QComboBox */ -QSpinBox, -QDoubleSpinBox, -QAbstractSpinBox, -QLineEdit, -QComboBox { - border-top-color: #5f615d; /* Creates an inset effect inside the elements */ - padding: 2px 6px 2px 6px; /* This makes text colour work on QComboBox */ - margin: 0px 2px 0px 2px; - min-width: 70px; /* it was 120 because of QCombobox... */ - border-radius: 3px; -} -/* end Common parameters */ - -QAbstractItemView { - color: #4f514d; - alternate-background-color: #cccfc9; /* related with QListView background */ - border: 1px solid #4f514d; - border-radius: 3px; - padding: 0px; -} - -/* hack to deactivate changing background color when focus (due to QFrame generic transparent color) */ -QAbstractItemView:selected, -QAbstractItemView:on, -QAbstractItemView:focus { - background-color: #d0d3cd; /* same as QTable background color */ -} - -/* hack to hide weird redundant information inside the value of a Placement cell */ -QTreeView QLabel, -QTreeView QLabel:disabled { - color: transparent; - background-color: transparent; - border: none; - border-radius: 0px; - margin: 0px; - padding: 0px; -} - -QTreeView QLineEdit { - color: #c8c9c7; - border-color: #6f716d; - background-color: #6f716d; - selection-color: white; - selection-background-color: #b5d757; -} - -/* hack to hide non editable cells inside Property values */ -QTreeView QLineEdit:read-only, -QTreeView QLineEdit:disabled, -QTreeView QAbstractSpinBox:read-only, -QTreeView QAbstractSpinBox:disabled { - color: transparent; - border-color: transparent; - background-color: transparent; - selection-color: transparent; - selection-background-color: transparent; -} - -/* hack to disable margin inside Property values to following elements */ -QTreeView QSpinBox, -QTreeView QDoubleSpinBox, -QTreeView QAbstractSpinBox, -QTreeView QLineEdit, -QTreeView QComboBox { - margin-left: 0px; - margin-right: 0px; - padding-top: 0px; - padding-bottom: 0px; -} - -/* Pushbutton style for "..." inside Placement cell which launches Placement tool */ -QTreeView QPushButton { - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #6f716d, stop:1 #888a85); - border-top: none; - border-bottom: none; - border-right: none; - border-left: 1px solid #6f716d; - border-radius: 0px; - margin: 0px; - padding: 0px; - height: 24px; -} - -/* Color Buttons inside the "Properties window" */ -QAbstractItemView Gui--ColorButton { - padding: 0px; - margin: 0px; - height: 10px; -} - -QAbstractItemView QPushButton:hover { - color: white; - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #97c029, stop:1 #b5d757); - border-color: #97c029; -} - -QAbstractItemView QPushButton:disabled { - color: transparent; - background-color: transparent; - border-color: transparent; -} - -QLabel { - border: 0px solid #4f514d; -} - -QTabWidget{ - border: none; -} - -QTabWidget:focus { - border: none; -} - -QTabWidget::pane { - border: none; - padding: 0px; - background-color: #888a85; - position: absolute; - top: -15px; - padding-top: 15px; -} - -QTabWidget::tab-bar { - alignment: center; -} - -QTabBar { - qproperty-drawBase: 0; - left: 5px; - background-color: transparent; -} - -QTabBar:focus { - border: 0px transparent black; -} - -QTabBar::close-button { - padding: 0px; - margin: 0px; - border-radius: 2px; - background-image: url(qss:images/close_dark.png); - background-position: center center; - background-repeat: none; -} - -QTabBar::close-button:hover { - background-color: #cbe389; -} - -QTabBar::close-button:pressed { - background-color: #dfefb4; -} - -QTabBar::scroller { /* the width of the scroll buttons */ - width: 20px; -} - -/* the scroll buttons are tool buttons */ -QTabBar QToolButton, -QTabBar QToolButton:hover { - margin-top: 4px; - margin-bottom: 4px; - margin-left: 0px; - margin-right: 0px; - padding: 0px; - border: none; - background-color: #888a85; - border-radius: 0px; -} - -QTabBar QToolButton::right-arrow:enabled { - image: url(qss:images/right_arrow_light.png); -} - -QTabBar QToolButton::right-arrow:disabled, -QTabBar QToolButton::right-arrow:off { - image: url(qss:images/right_arrow_disabled_dark.png); -} - -QTabBar QToolButton::right-arrow:hover { - image: url(qss:images/right_arrow_lighter.png); -} - - QTabBar QToolButton::left-arrow:enabled { - image: url(qss:images/left_arrow_light.png); -} - - QTabBar QToolButton::left-arrow:disabled, - QTabBar QToolButton::left-arrow:off { - image: url(qss:images/left_arrow_disabled_dark.png); -} - - QTabBar QToolButton::left-arrow:hover { - image: url(qss:images/left_arrow_lighter.png); -} - - QTabBar QToolButton::up-arrow:enabled { - image: url(qss:images/up_arrow_light.png); -} - - QTabBar QToolButton::up-arrow:disabled, - QTabBar QToolButton::up-arrow:off { - image: url(qss:images/up_arrow_disabled_dark.png); -} - - QTabBar QToolButton::up-arrow:hover { - image: url(qss:images/up_arrow_lighter.png); -} - - QTabBar QToolButton::down-arrow:enabled { - image: url(qss:images/down_arrow_light.png); -} - - QTabBar QToolButton::down-arrow:disabled, - QTabBar QToolButton::down-arrow:off { - image: url(qss:images/down_arrow_disabled_dark.png); -} - - QTabBar QToolButton::down-arrow:hover { - image: url(qss:images/down_arrow_lighter.png); -} - -/* HORIZONTAL TABS */ -QTabBar::tab:top, -QTabBar::tab:bottom { - color: #c8c9c7; - border: 1px solid #6f716d; - border-left-color: #888a85; - border-right-width: 0px; - border-bottom: 1px solid #5f615d; /* shadown effect */ - background-color: #6f716d; - padding:5px 15px; - margin-top: 4px; - margin-bottom: 4px; - position: center; -} - -QTabBar::tab:top:first, -QTabBar::tab:bottom:first { - border-top-left-radius: 6px; - border-bottom-left-radius: 6px; -} - -QTabBar::tab:top:last, -QTabBar::tab:bottom:last { - border-top-right-radius: 6px; - border-bottom-right-radius: 6px; - border-right-width: 1px; -} - -QTabBar::tab:top:selected, -QTabBar::tab:bottom:selected { - color: white; - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #97c029, stop:1 #b5d757); - border-color: #97c029; - border-bottom: 1px solid #5f615d; /* shadown effect */ -} - -QTabBar::tab:top:!selected:hover, -QTabBar::tab:bottom:!selected:hover { - color: white; -} - -QTabBar::tab:top:only-one , -QTabBar::tab:bottom:only-one { - border: 1px solid #5d7619; - border-radius: 6px; -} - -/* VERTICAL TABS */ -QTabBar::tab:left, -QTabBar::tab:right { - color: #c8c9c7; - border: 1px solid #6f716d; - border-top-color: #888a85; - border-bottom-width: 0px; - border-right: 1px solid #5f615d; /* shadown effect */ - background-color: #6f716d; - padding: 15px 5px; - margin-left: 4px; - margin-right: 4px; - position: center; -} - -QTabBar::tab:left:first, -QTabBar::tab:right:first { - border-top-left-radius: 6px; - border-top-right-radius: 6px; -} - -QTabBar::tab:left:last, -QTabBar::tab:right:last { - border-bottom-left-radius: 6px; - border-bottom-right-radius: 6px; - border-bottom-width: 1px; -} - -QTabBar::tab:left:selected, -QTabBar::tab:right:selected { - color: white; - background-color: qlineargradient(spread:pad, x1:0.545, y1:1, x2:0, y2:1, stop:0 #97c029, stop:1 #b5d757); - border-color: #97c029; - border-right: 1px solid #5f615d; /* shadown effect */ -} - -QTabBar::tab:left:!selected:hover, -QTabBar::tab:right:!selected:hover { - color: white; -} - -QTabBar::tab:left:only-one , -QTabBar::tab:right:only-one { - border: 1px solid #5d7619; - border-radius: 6px; -} - -QDockWidget { - color: #4f514d; - border: 1px solid #888a85; - titlebar-close-icon: url(qss:images/close_dark.png); - titlebar-normal-icon: url(qss:images/undock_dark.png); -} - -QDockWidget::title { - text-align: center; - background-color: #7d7f79; - padding: 4px; - border-radius: 4px; -} - -QDockWidget::close-button, -QDockWidget::float-button { - border: 1px transparent #888a85; - border-radius: 2px; - background: transparent; - subcontrol-origin: padding; - subcontrol-position: right center; -} - -QDockWidget::close-button { - right: 4px; -} - -QDockWidget::float-button { - right: 22px; -} - -QDockWidget::close-button:hover, -QDockWidget::float-button:hover { - background: #9c9e9a; -} - -QDockWidget::close-button:pressed, -QDockWidget::float-button:pressed { - /*padding: 1px -1px -1px 1px;*/ - background-color: #7d7f79; -} - -QTreeView, -QListView { - color: #4f514d; - border: 1px solid #888a85; - border-radius: 4px; - background-color: #d0d3cd; /* related with alternate-background-color*/ - selection-color: white; - selection-background-color: #b5d757; /* should be similar to QListView::item selected background-color */ - show-decoration-selected: 1; /* make the selection span the entire width of the view */ - padding: 0px; - margin: 0px 4px 0px 4px; - min-width: 130px; /* hack to correctly align Preferences icon list */ -} - -QListView, -QListView::item, -QListView QAbstractItemView { - margin: 0px; - icon-size: 20px; /* temporal */ - paint-alternating-row-colors-for-empty-area: 1; - position: absolute; - subcontrol-origin: margin; - subcontrol-position: left top; -} - -/* Control dropdown list margins of QComboBox */ -QComboBox QTreeView, -QComboBox QListView { - margin: 0px; - padding: 0px; -} - -QListView::item { - border: 0px transparent #888a85; - border-radius: 4px; - background-color: transparent; - padding: 0px; - margin: 0px; - display: inline-block; - position: relative; -} - -QListView::item:selected, -QTreeView::item:selected { - color: white; - background-color: #b5d757; /* should be similar to QListView selection-background-color */ -} - -/* Branch system */ -QTreeView::branch { - background: transparent; -} - -QTreeView::branch:has-siblings:!adjoins-item { - border-image: url(qss:images/branch_vline.png) 0; -} - -QTreeView::branch:has-siblings:adjoins-item { - border-image: url(qss:images/branch_more.png) 0; -} - -QTreeView::branch:!has-children:!has-siblings:adjoins-item { - border-image: url(qss:images/branch_end.png) 0; -} - -QTreeView::branch:closed:has-children:has-siblings { - image: url(qss:images/branch_closed_dark.png); -} - -QTreeView::branch:has-children:!has-siblings:closed { - image: url(qss:images/branch_closed_dark.png); - border-image: url(qss:images/branch_end.png) 0; -} - -QTreeView::branch:open:has-children:has-siblings { - image: url(qss:images/branch_open_dark.png); - border-image: url(qss:images/branch_more.png) 0; -} - -QTreeView::branch:open:has-children:!has-siblings { - image: url(qss:images/branch_open_dark.png); - border-image: url(qss:images/branch_end.png) 0; -} - -QSlider, -QSlider:active, -QSlider:!active { - border: none; - background-color: transparent; -} - -QSlider:horizontal { - padding: 0px 10px; -} - -QSlider:vertical { - padding: 10px 0px; -} - -QSlider::groove:horizontal { - border: 1px solid #6f716d; - background-color: #6f716d; - height: 8px; - border-radius: 5px; - margin: 4px 0; -} - -QSlider::groove:vertical { - border: 1px solid #6f716d; - background-color: #6f716d; - width: 8px; - border-radius: 5px; - margin: 4px 0; -} - -QSlider::groove:horizontal:disabled, -QSlider::groove:vertical:disabled { - border-color: #7d7f79; - background-color: #7d7f79; -} - -QSlider::handle:horizontal, -QSlider::handle:vertical { - background-color: #4f514d; - border: 1px solid #4f514d; - width: 14px; - height: 14px; - border-radius: 8px; -} - -QSlider::handle:horizontal { - margin: -4px 0; -} - -QSlider::handle:vertical { - margin: 0 -4px; -} - -QSlider::handle:horizontal:hover, -QSlider::handle:vertical:hover { - border-color: #97c029; - background-color: #97c029; -} - -QSlider::handle:horizontal:pressed, -QSlider::handle:vertical:pressed { - border-color: #5d7619; - background-color: #5d7619; -} - -QSlider::handle:horizontal:disabled, -QSlider::handle:vertical:disabled { - border-color: #6f716d; - background-color: #888a85; -} - -QToolButton { - color: #c8c9c7; - text-align: center; - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #6f716d, stop:1 #888a85); - border: 1px solid #4f514d; - padding-top: 5px; - padding-bottom: 5px; - padding-left: 15px; - padding-right: 15px; - margin-top: 5px; - margin-bottom: 5px; - margin-left: 10px; - margin-right: 10px; - border-radius: 3px; - outline: none; - /*min-width: 36px;*/ -} - -QToolButton:hover, -QToolButton:focus { - color: white; - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #97c029, stop:1 #b5d757); - border-color: #97c029; -} - -QToolButton:disabled, -QToolButton:disabled:checked { - color: #6f716d; - background-color: #888a85; - border-color: #6f716d; -} - -QToolButton:pressed { - border-color: #cbe389; -} - -QToolButton:checked { - background-color: #b5d757; - border-color: #97c029; -} - -QToolButton::menu-indicator { - subcontrol-origin: padding; - subcontrol-position: center right; - right: 4px; -} - -/*The "show more" button (it can also be stylable with "QToolBarExtension" */ -QToolButton#qt_toolbar_ext_button { - border-radius: 0px; - margin: 0px; - padding: 0px; - /*background-image: url(qss:images/more_dark.png);*/ - image: transparent; - background-repeat: none; - background-position: center left; -} - -QToolButton#qt_toolbar_ext_button:hover { - /*background-image: url(qss:images/more_light.png);*/ - border-color: #7d7f79; - background-color: #7d7f79; -} - -QToolButton#qt_toolbar_ext_button:on { - /*background-image: url(qss:images/more_light.png);*/ - border-color: #7d7f79; - background-color: #7d7f79; -} - -/*Buttons inside the Toolbar*/ -QToolBar QToolButton { - color: #4f514d; - background-color: #888a85; - border: 1px transparent #888a85; - border-radius: 3px; - margin: 0px; - padding: 2px; -} - -QToolBar QToolButton:disabled { - background-color: #888a85; -} - -QToolBar QToolButton:checked { - color: #5d7619; - background-color: #b5d757; - border: 1px solid #b5d757; -} - -QToolBar QToolButton:hover { - background-color: #888a85; -} - -QToolBar QToolButton:pressed, -QToolBar QToolButton::menu-button:pressed { - background-color: #7d7f79; - border: 1px solid #7d7f79; -} - - -QToolBar QToolButton::menu-indicator:hover, -QToolBar QToolButton::menu-indicator:pressed { - background-color: transparent; -} - -/* the subcontrols below are used only in the MenuButtonPopup mode */ -QToolBar QToolButton::menu-button { - border: none; - border-top-right-radius: 3px; - border-bottom-right-radius: 3px; - width: 16px; /* 16px width + 4px for border = 20px allocated above */ - outline: none; - background-color: transparent; -} - -QToolBar QToolButton::menu-button:hover, -QToolBar QToolButton::menu-button:active, -QToolBar QToolButton::menu-button:disabled { - border-color: transparent; - background-color: transparent; -} - -QToolBar QToolButton::menu-arrow { - background-image: url(qss:images/down_arrow_light.png); - background-position: center center; - background-repeat: none; - subcontrol-origin: padding; - subcontrol-position: bottom right; - height: 10px; /* same as arrow image */ -} - -QToolBar QToolButton::menu-arrow:open { - background-image: url(qss:images/down_arrow_lighter.png); -} - -/* If the QToolButton is also a menu: */ -QToolBar QToolButton#qt_toolbutton_menubutton { - padding-right: 20px; - border: 1px solid transparent; -} - -QToolBar QToolButton#qt_toolbutton_menubutton:hover, -QToolBar QToolButton#qt_toolbutton_menubutton:pressed, -QToolBar QToolButton#qt_toolbutton_menubutton:open { - border: 1px solid #cbe389; -} - -QToolBar QToolButton#qt_toolbutton_menubutton::menu-button { - border: none; /* necessary because it inherits the border from QToolButton#qt_toolbutton_menubutton */ -} - -QToolBar QToolButton#qt_toolbutton_menubutton::menu-button:hover, -QToolBar QToolButton#qt_toolbutton_menubutton::menu-button:pressed, -QToolBar QToolButton#qt_toolbutton_menubutton::menu-button:open { - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #b5d757, stop:1 #cbe389); -} - -QToolBar:tear { - color: blue; - background-color: red; -} - -QTableView { - color: #4f514d; - border: 1px solid #6f716d; - gridline-color: #9c9e9a; - background-color: #d0d3cd; - selection-color: #4f514d; - selection-background-color: #dfefb4; - border-radius: 3px; - padding: 0px; - margin: 0px; -} - -QTableView::item:hover { - background: #c8cbc4; -} - -QTableView::item:disabled { - color: #888a85; -} - -QTableView::item:selected { - color: #5d7619; - background-color: #cbe389; -} - -/* when editing a cell: */ -QTableView QLineEdit { - color: #4f514d; - background-color: #cccfc9; - border-radius: 0px; - margin: 0px; - padding: 0px; -} - -QHeaderView { - border: none; - background-color: #4f514d; - border-top-left-radius: 3px; - border-top-right-radius: 3px; - border-bottom-left-radius: 0px; - border-bottom-right-radius: 0px; - margin: 0px; - padding: 0px; -} - -QHeaderView::section { - background-color: transparent; - color: #c8c9c7; - border: 1px solid transparent; - border-radius: 0px; - text-align: center; -} - -QHeaderView::section::vertical { - padding: 0px 6px 0px 6px; - border-bottom: 1px solid #6f716d; -} - -QHeaderView::section::vertical:first { - border-top: 1px solid #6f716d; -} - -QHeaderView::section::vertical:last { - border-bottom: none; -} - -QHeaderView::section::vertical:only-one { - border: none; -} - -QHeaderView::section::horizontal { - padding: 0px 0px 0px 6px; - border-right: 1px solid #6f716d; -} - -QHeaderView::section::horizontal:first { - border-left: 1px solid #6f716d; -} - -QHeaderView::section::horizontal:last { - border-left: none; -} - -QHeaderView::section::horizontal:only-one { - border: none; -} - -QDockWidget QHeaderView::section { - border-width: 6px 1px 6px 1px; /* hack to bigger margin for Model Panel table headers */ -} - -QHeaderView::section:checked { - color: #5d7619; - background-color: #cbe389; -} - - /* style the sort indicator */ -QHeaderView::down-arrow { - image: url(qss:images/down_arrow_light.png); -} - -QHeaderView::up-arrow { - image: url(qss:images/up_arrow_light.png); -} - -QTableCornerButton::section { - background-color: #4f514d; - border: 1px solid #4f514d; - border-radius: 0px; -} - -QToolBox { - padding: 3px; - color: #5d7619; - border: none; -} - -QToolBox::tab { /* TODO */ - color: #c8c9c7; - background-color: #6f716d; - border: 1px transparent #4f514d; - border-bottom: 1px transparent #6f716d; - border-top-left-radius: 5px; - border-top-right-radius: 5px; - padding: 5px; -} - -QToolBox::tab:selected { /* italicize selected tabs */ - color: #5d7619; - font: italic; - background-color: #b5d757; - border-color: #b5d757; - } - -QStatusBar::item { - color: #c8c9c7; - background-color: #888a85; - border: 1px solid #888a85; - border-radius: 2px; -} - - -QSplitter::handle { - background-color: #888a85; - margin: 0px 11px; - padding: 0px; - border-radius: 3px; -} - -QSplitter::handle:vertical { - background-image: url(qss:images/splitter_horizontal_dark.png); - background-position: center center; - background-repeat: none; - margin: 2px 10px 2px 10px; - height: 2px; -} - -QSplitter::handle:horizontal { - background-image: url(qss:images/splitter_horizontal_dark.png); - background-position: center center; - background-repeat: none; - margin: 10px 2px 10px 2px; - width: 2px; -} - -QSplitter::handle:horizontal:hover, -QSplitter::handle:vertical:hover { - background-color: #888a85; -} - -/* Similar to the splitter is the following window separator: */ -QMainWindow::separator { - border: 1px solid #888a85; - background-color: #888a85; - background-position: center center; - background-repeat: none; -} - -QMainWindow::separator:hover { - background-color: #888a85; -} - -QMainWindow::separator:horizontal { - height: 4px; - background-image: url(qss:images/splitter_horizontal_dark.png); -} - -QMainWindow::separator:vertical { - width: 4px; - background-image: url(qss:images/splitter_vertical_dark.png); -} - -QLabel { - padding-top: 3px; - padding-bottom: 3px; - background-color: transparent; -} - -QLabel:disabled { - color: #6f716d; - background-color: transparent; -} - -/* Action group */ -QFrame[class="panel"] { - border: none; - background-color: #888a85; -} - -/* Separator line */ -QSint--ActionGroup QFrame[height="1"], -QSint--ActionGroup QFrame[height="2"], -QSint--ActionGroup QFrame[height="3"], -QSint--ActionGroup QFrame[width="1"], -QSint--ActionGroup QFrame[width="2"], -QSint--ActionGroup QFrame[width="3"] { - border-color: #9c9e9a; -} - -QSint--ActionGroup QFrame[class="header"] { - border: none; - background-color: #4f514d; - border-top-left-radius: 3px; - border-top-right-radius: 3px; - border-bottom-left-radius: 0px; - border-bottom-right-radius: 0px; - margin: 0px; - padding: 0px; -} - -QSint--ActionGroup QFrame[class="header"]:hover { - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #97c029, stop:1 #b5d757); -} - -QSint--ActionGroup QToolButton[class="header"] { - text-align: left; - font-weight: bold; - color: #c8c9c7; - background-color: transparent; - border: none; - margin: 0px; - padding: 0px; -} - -QSint--ActionGroup QToolButton[class="header"]:hover { - color: white; -} - -QSint--ActionGroup QFrame[class="header"] QLabel { - background-color: transparent; - background-image: url(qss:images/down_arrow_light.png); - background-repeat: none; - background-position: center center; - padding: 0px; - margin: 0px; -} - -QSint--ActionGroup QFrame[class="header"] QLabel:hover { - background-color: transparent; - background-image: url(qss:images/down_arrow_lighter.png); -} - -QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"] { - background-color: transparent; - background-image: url(qss:images/up_arrow_light.png); - background-repeat: none; - background-position: center center; - padding: 0px; - margin: 0px; -} - -QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"]:hover { - background-color: transparent; - background-image: url(qss:images/up_arrow_lighter.png); -} - -QSint--ActionGroup QFrame[class="content"] { - background-color: #d0d3cd; - margin: 0px; - padding: 0px; - border: none; - border-top-left-radius: 0px; - border-top-right-radius: 0px; - border-bottom-left-radius: 3px; - border-bottom-right-radius: 3px; -} - -/* HACK -This might not be the best way to reset the background color: */ -QSint--ActionGroup QFrame[class="content"] QWidget { - background-color: #d0d3cd; -} - -QSint--ActionGroup QFrame[class="content"] QPushButton { - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #6f716d, stop:1 #888a85); -} - -QSint--ActionGroup QFrame[class="content"] QPushButton:hover, -QSint--ActionGroup QFrame[class="content"] QPushButton:focus { - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #97c029, stop:1 #b5d757); -} - -QSint--ActionGroup QFrame[class="content"] QPushButton:disabled, -QSint--ActionGroup QFrame[class="content"] QPushButton:disabled:checked { - color: #d0d3cd; - border-color: #9c9e9a; - background-color: #9c9e9a; -} -QSint--ActionGroup QFrame[class="content"] QPushButton:checked { - background-color: #b5d757; -} - -QSint--ActionGroup QFrame[class="content"] QComboBox { - background-color: #6f716d; -} - -QSint--ActionGroup QFrame[class="content"] QComboBox:on { - background-color: #6f716d; -} - -QSint--ActionGroup QFrame[class="content"] QComboBox QAbstractItemView { - border-color: #4f514d; - background-color: #4f514d; -} - -QSint--ActionGroup QFrame[class="content"] QListView { - border-color: #c8cbc4; - background-color: #c8cbc4; -} - -QSint--ActionGroup QFrame[class="content"] QAbstractSpinBox { - background-color: #6f716d; -} - -QSint--ActionGroup QFrame[class="content"] QLineEdit { - background-color: #6f716d; -} - -QSint--ActionGroup QFrame[class="content"] QComboBox:disabled, -QSint--ActionGroup QFrame[class="content"] QAbstractSpinBox:disabled, -QSint--ActionGroup QFrame[class="content"] QLineEdit:disabled { - color: #d0d3cd; - border-color: #9c9e9a; - background-color: #9c9e9a; -} - -QSint--ActionGroup QFrame[class="content"] QCheckBox:disabled, -QSint--ActionGroup QFrame[class="content"] QRadioButton:disabled { - color: #9c9e9a; - border-color: #9c9e9a; -} - -QSint--ActionGroup QFrame[class="content"] QCheckBox::indicator:disabled, -QSint--ActionGroup QFrame[class="content"] QRadioButton::indicator:disabled { - border-color: #9c9e9a; - background-color: transparent; -} - -QSint--ActionGroup QFrame[class="content"] QHeaderView { - border: none; - background-color: #4f514d; - border-radius: 0px; - margin: 0px; - padding: 0px; -} - -QSint--ActionGroup QFrame[class="content"] QHeaderView::section { - background-color: transparent; - color: #c8c9c7; - border: 1px solid transparent; - border-radius: 0px; - text-align: center; -} - -QSint--ActionGroup QFrame[class="content"] QHeaderView::section::horizontal { - padding: 6px 0px 6px 6px; - border-right: 1px solid #6f716d; -} - -QSint--ActionGroup QFrame[class="content"] QHeaderView::section::horizontal:first { - border-left: 1px solid #888a85; -} - -QSint--ActionGroup QFrame[class="content"] QHeaderView::section::horizontal:last { - border-left: none; -} - -QSint--ActionGroup QFrame[class="content"] QHeaderView::section::horizontal:only-one { - border: none; -} -/* enf of HACK */ - - -QSint--ActionGroup QToolButton[class="action"], -QSint--ActionGroup QToolButton[class="action"]:enabled { - font-weight: bold; - color: #6f716d; -} - -QSint--ActionGroup QToolButton[class="action"]:hover, -QSint--ActionGroup QToolButton[class="action"]:enabled:hover { - text-decoration: none; - color: #4f514d; - background-color: #c8cbc4; - border-color: #c8cbc4; -} - -QSint--ActionGroup QToolButton[class="action"]:disabled { - color: #888a85; - background-color: #c8cbc4; - border-color: #c8cbc4; -} - -QSint--ActionGroup QToolButton[class="action"]:focus, -QSint--ActionGroup QToolButton[class="action"]:pressed -QSint--ActionGroup QToolButton[class="action"]:enabled:focus, -QSint--ActionGroup QToolButton[class="action"]:enabled:pressed { - color: white; - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #97c029, stop:1 #b5d757); - border-color: #97c029; -} - -QSint--ActionGroup QToolButton[class="action"]:on { - background-color: red; - color: red; -} - - -/* EXPERIMENTAL -================================================= */ -QDial { - background-color: #888a85; -} - -QLCDNumber { - background-color: #888a85; -} - -QCalendarWidget { - background-color: green; -} - -/* Expressions popup dialog fixes to embed elements */ -QAbstractSpinBox QPushButton { - padding: 0px 15px 0px 15px; - margin: 2px 10px 2px 10px; - border: 1px solid #4f514d; - border-radius: 3px; -} -QAbstractSpinBox QPushButton:disabled { - color: #9c9e9a; - background-color: #888a85; - border-color: #888a85; -} - -QAbstractSpinBox QFrame, -QSint--ActionGroup QFrame[class="content"] QAbstractSpinBox QFrame { - color: #dfefb4; - background-color: #6f716d; - border-color: #6f716d; - border-radius: 0px; - margin: 0px; - padding: 0px; -} - -QSint--ActionGroup QFrame[class="content"] QAbstractSpinBox QPushButton { - padding: 6px 15px 6px 15px; -} \ No newline at end of file +/* +ABOUT +============================================================================================================ +version 2.0 +QT theme (stylesheet) specially developed for FreeCAD (http://www.freecadweb.org/). +It might work with other software that uses QT styling. + + +LICENSE +============================================================================================================ +Copyright (c) 2016 Pablo Gil Fernández + +This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. +To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/. + + +INSTALLATION +============================================================================================================ +1) Place the .qss files and /images/ folder in the path that fits your OS: + OSX = /Users/[YOUR_USER_NAME]/Library/Preferences/FreeCAD/Gui/Stylesheets/ + WINDOWS = C:/[INSTALLATION_PATH]/FreeCAD/data/Gui/fStylesheets/ + LINUX = /home/[YOUR_USER_NAME]/.FreeCAD/Gui/Stylesheets/ + +2) In order to display correctly images: + 2.1) FreeCAD 0.16 (development builds newer than commit 5b3d50a): that's it, you are done! + + 2.2) FreeCAD 0.15: Images used in the theme need ABSOLUTE paths to be found by FreeCAD, so you should search the string "qss:images" (without "") and replace with the real path of your computer. It should be done with all the .qss files you want to install-use + find = qss:images + replace = /Users/myName/Library/Preferences/FreeCAD/Gui/Stylesheets/images + + +CUSTOMIZATION +============================================================================================================ +If you would like to change the overall look/style of the theme, just find and replace following colors in the whole file: + BACKGROUND (darker to ligher) + black + #1e1e1e + #3c3c3c + #505050 + #5a5a5a + #646464 + #6e6e6e = main background color + #787878 + #8c8c8c + #a0a0a0 + #b4b4b4 + #bebebe + #c8c8c8 + #d2d2d2 + #e0e0e0 + #f5f5f5 + white + + SELECTION (darker to lighter) + #566214 + #74831d + #819c0c + #94b30f = main selection color + #9bbc12 = used to build QSpinBox up and down buttons, it's used as color in the middle + #a5c61a + #c5d675 + #dadfc5 + + +KNOWN BUGS and TO DO +============================================================================================================ + - please, follow the link to get updated information: http://forum.freecadweb.org/viewtopic.php?f=10&t=12417 +*/ + + +/*================================================================================================== +Reset elements +==================================================================================================*/ +/* Reseting everything helps to unify styles across different operating systems */ +* { + padding: 0px; + margin: 0px; + border: 0px; + border-style: none; +} + +/* specific reset for elements inside QToolBar */ +QToolBar * { + margin: 0px; + padding: 0px; +} + + +/*================================================================================================== +Main window +==================================================================================================*/ +QMainWindow, +QDialog, +QToolBar { + background-color: #6e6e6e; /* main background color */ +} + +QMdiArea[showImage="true"] { + background-image: url(qss:images/background_freecad.png); + background-position: center; + background-repeat: no-repeat; +} + + +/*================================================================================================== +MENUS +==================================================================================================*/ +QMenuBar, +QMenuBar::item { + color: #e0e0e0; + background-color: #6e6e6e; /* main background color */ +} + +QMenu, +QMenu::item { + color: #e0e0e0; + background-color: #5a5a5a; +} + +QMenuBar::item:selected, +QMenuBar::item:pressed, +QMenu::item:selected, +QMenu::item:pressed { + color: white; + background-color: #94b30f; +} + +QMenu::right-arrow { + width: 10px; + height: 10px; + image:url(qss:images/right_arrow_dark.png); + margin-right: 2px; +} + +QMenu::right-arrow:selected { + image:url(qss:images/right_arrow_lighter.png); +} + +QMenu::item { + padding: 2px 16px 2px 26px; /* make room for icon at left */ + border: 1px solid transparent; /* reserve space for selection border */ +} + +QMenu::icon { + margin-left: 2px; +} + +QMenu::separator { + height: 1px; + background-color: rgba(255,255,255,30); + margin: 6px 4px; +} + +QMenu::indicator:non-exclusive:checked { + color: white; +} + + +/*================================================================================================== +Tool bar +==================================================================================================*/ +QToolBar { + border: none; + min-width: 32px; /* allows a minimum of space between QToolBar colums */ + min-height: 32px; /* allows a minimum of space between QToolBar rows */ +} + +QToolBar::handle:horizontal { + background-image: url(qss:images/Hmovetoolbar_dark.png); + width: 10px; + margin: 6px 2px 6px 2px; + background-position: top right; + background-repeat: repeat-y; +} + +QToolBar::handle:vertical { + background-image: url(qss:images/Vmovetoolbar_dark.png); + height: 10px; + margin: 2px 6px 2px 6px; + background-position: left bottom; + background-repeat: repeat-x; +} + +QToolBar::separator:horizontal { + background-image: url(qss:images/separtoolbar_dark.png); + width: 10px; + margin: 6px 2px 6px 2px; + background-position: center center; + background-repeat: repeat-y; +} + +QToolBar::separator:vertical { + background-image: url(qss:images/separtoolbar_dark.png); + height: 10px; + margin: 2px 6px 2px 6px; + background-position: center center; + background-repeat: repeat-x; +} + + +/*================================================================================================== +Group box +==================================================================================================*/ +QGroupBox { + color: rgba(0,0,0,120); + border:1px solid rgba(0, 0, 0, 20); /* lighter than its own border-color */; + border-radius: 3px; + margin-top: 10px; + padding: 6px; + background-color: rgba(255, 255, 255, 15); +} + +QGroupBox:title { + top: -8px; + left: 12px; +} + + +/*================================================================================================== +Tooltip +==================================================================================================*/ +QToolTip { + color: #1e1e1e; + background-color: #b4b4b4; + /*opacity: 90%; doesn't correctly work */ + padding: 4px; + border-radius: 3px; /* has no effect */ +} + + +/*================================================================================================== +Dock widget +==================================================================================================*/ +QDockWidget { + color: rgba(0,0,0,120); + titlebar-close-icon: url(qss:images/close_dark.png); + titlebar-normal-icon: url(qss:images/undock_dark.png); +} + +QDockWidget::title { + text-align: center; + background-color: rgba(0,0,0,20); + border: 4px solid #6e6e6e; /* fix to simulate margin between this :title and tabs */ /* same as main background color */ + border-radius: 6px; /* bigger than normal due to previous border fix */ + padding: 4px 0px; /* also needed because of previous border fix */ +} + +QDockWidget::close-button, +QDockWidget::float-button { + border: none; + background: transparent; + border-radius: 3px; + subcontrol-origin: padding; + subcontrol-position: right center; +} + +QDockWidget::close-button { + right: 4px; +} + +QDockWidget::float-button { + right: 22px; +} + +QDockWidget::close-button:hover, +QDockWidget::float-button:hover { + background-color: rgba(255,255,255,15); +} + +QDockWidget::close-button:pressed, +QDockWidget::float-button:pressed { + background-color: rgba(255,255,255,30); +} + +/* fix for Python Console (probably there is a smarter way to arrive to it) */ +QDockWidget > QFrame { + background-color: #c8c8c8; + border: 1px solid #505050; +} + + +/*================================================================================================== +Progress bar +==================================================================================================*/ +QProgressBar, +QProgressBar:horizontal { + color: white; + background-color: rgba(0,0,0,10); + text-align: center; + border: 1px solid rgba(0,0,0,80); + padding: 1px; + border-radius: 3px; +} +QProgressBar::chunk, +QProgressBar::chunk:horizontal { + background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #94b30f, stop:1 #819c0c); + border-radius: 3px; +} + + +/*================================================================================================== +Scroll +==================================================================================================*/ +QAbstractScrollArea { + border-radius: 2px; + background-color: transparent; +} + +QAbstractScrollArea::corner { + border: none; + background-color: transparent; +} + +QScrollBar:horizontal { + background-color: transparent; + height: 15px; + margin: 0px; +} + +QScrollBar::handle:vertical, +QScrollBar::handle:horizontal { + background-color: rgba(0,0,0,100); +} + +QScrollBar::handle:vertical:hover, +QScrollBar::handle:horizontal:hover { + background-color: #1e1e1e; +} + +QScrollBar::handle:horizontal { + min-width: 5px; + border-radius: 3px; + margin: 4px 15px; +} + +QScrollBar::sub-line:horizontal { + margin: 1px 3px 0px 3px; /* 1px to correctly fit the 10px width image */ + border-image: url(qss:images/left_arrow_light.png); + width: 6px; + height: 10px; + subcontrol-position: left; + subcontrol-origin: margin; +} + +QScrollBar::add-line:horizontal { + margin: 1px 3px 0px 3px; /* 1px to correctly fit the 10px width image */ + border-image: url(qss:images/right_arrow_light.png); + width: 6px; + height: 10px; + subcontrol-position: right; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:horizontal:hover, +QScrollBar::sub-line:horizontal:on { + border-image: url(qss:images/left_arrow_lighter.png); +} + +QScrollBar::add-line:horizontal:hover, +QScrollBar::add-line:horizontal:on { + border-image: url(qss:images/right_arrow_lighter.png); +} + +QScrollBar::up-arrow:horizontal, +QScrollBar::down-arrow:horizontal { + background-color: none; +} + +QScrollBar::add-page:horizontal, +QScrollBar::sub-page:horizontal { + background-color: transparent; +} + +QScrollBar:vertical { + background-color: transparent; + width: 15px; + margin: 0px; +} + +QScrollBar::handle:vertical { + min-height: 5px; + border-radius: 3px; + margin: 15px 4px; +} + +QScrollBar::sub-line:vertical { + margin: 3px 0px 3px 1px; /* 1px to correctly fit the 10px width image */ + border-image: url(qss:images/up_arrow_light.png); + height: 6px; + width: 10px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::add-line:vertical { + margin: 3px 0px 3px 1px; /* 1px to correctly fit the 10px width image */ + border-image: url(qss:images/down_arrow_light.png); + height: 6px; + width: 10px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:vertical:hover, +QScrollBar::sub-line:vertical:on { + border-image: url(qss:images/up_arrow_lighter.png); +} + +QScrollBar::add-line:vertical:hover, +QScrollBar::add-line:vertical:on { + border-image: url(qss:images/down_arrow_lighter.png); +} + +QScrollBar::up-arrow:vertical, +QScrollBar::down-arrow:vertical { + background-color: none; +} + +QScrollBar::add-page:vertical, +QScrollBar::sub-page:vertical { + background-color: transparent; +} + + +/*================================================================================================== +Tab bar +==================================================================================================*/ +QTabWidget::pane { + background-color: transparent; /* temporal (transparent background) */ /* tab content background color */ + position: absolute; +} + +QTabWidget::pane:top { + top: -1px; + border-top: 1px solid #5a5a5a; +} + +QTabWidget::pane:bottom { + bottom: -1px; + border-bottom: 1px solid #5a5a5a; +} + +QTabWidget::pane:left { + right: -1px; + border-right: 1px solid #5a5a5a; +} + +QTabWidget::pane:right { + left: -1px; + border-left: 1px solid #5a5a5a; +} + +QTabWidget::tab-bar:top, +QTabWidget::tab-bar:bottom { + left: 10px; +} + +QTabWidget::tab-bar:left, +QTabWidget::tab-bar:right { + top: 10px; +} + +QTabBar { + qproperty-drawBase: 0; /* important */ + background-color: transparent; +} + +/* Workaround for QTabBars created from docked QDockWidgets which don't draw the border if not set and reseted as follows: */ +QTabBar { + border-top: 1px solid #5a5a5a; /* set color for all QTabBars */ +} +QDockWidget QTabBar { + border-color: transparent; /* set color for all QTabBars but ones created from QDockWidget */ +} +QDialog QTabBar { + border-color: transparent; /* set color for QTabBars inside Preferences dialog */ +} +/* end fix */ + +QTabBar::tab { + background-color: transparent; + border: 1px solid transparent; + padding: 3px; +} + +QTabBar::tab:top, +QTabBar::tab:bottom { + border-top-width: 4px; /* same as selected tab colored border in order to center close-button */ + border-bottom-width: 4px; /* same as selected tab colored border in order to center close-button */ + min-width: 11ex; + margin-left: 2px; + margin-right: 2px; +} + +QTabBar::tab:left, +QTabBar::tab:right { + border-left-width: 4px; /* same as selected tab colored border in order to center close-button */ + border-right-width: 4px; /* same as selected tab colored border in order to center close-button */ + min-height: 14ex; + margin-top: 2px; + margin-bottom: 2px; +} + +QTabBar::tab:selected { + color: #d2d2d2; + background-color: transparent; /* temporal (transparent background) */ + border-color: #5a5a5a; +} + +QTabBar::tab:top:selected { + border-top: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #94b30f, stop:1 #819c0c); /* selection color */ + border-bottom-color: #6e6e6e; /* same as tab content background color */ +} + +QTabBar::tab:bottom:selected { + border-bottom: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #94b30f, stop:1 #819c0c); /* selection color */ + border-top-color: #6e6e6e; /* same as tab content background color */ +} + +QTabBar::tab:right:selected { + border-left: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 #94b30f, stop:1 #819c0c); /* selection color */ + border-right-color: #6e6e6e; /* same as tab content background color */ +} + +QTabBar::tab:left:selected { + border-right: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 #94b30f, stop:1 #819c0c); /* selection color */ + border-left-color: #6e6e6e; /* same as tab content background color */ +} + +QTabBar::tab:!selected { + color: rgba(0,0,0,120); +} + +QTabBar::tab:!selected:hover { + color: rgba(0,0,0,180); + background-color: rgba(0,0,0,20); +} + +QTabBar::tab:first:selected { + margin-left: 0; /* the first selected tab has nothing to overlap with on the left */ +} + +QTabBar::tab:last:selected { + margin-right: 0; /* the last selected tab has nothing to overlap with on the right */ +} + +QTabBar::tab:only-one { + margin: 0; /* if there is only one tab, we don't want overlapping margins */ +} + +/* hack to access Preference TabBar background */ +QDialog#Gui__Dialog__DlgPreferences > QFrame QFrame { + background-color: transparent; /* main background color (in Windows is #6e6e6e) */ +} + +/* fix for previous hack that broke QTabWidget background on Windows */ +QDialog#Gui__Dialog__DlgPreferences QTabWidget::pane { + background-color: transparent; /* temporal (transparent background) */ +} + +/* hack to correctly align Preferences icon list on OSX */ +QDialog#Gui__Dialog__DlgPreferences > QListView { + min-width: 130px; +} + +/* unique styles for sections inside Preferences */ +QDialog#Gui__Dialog__DlgPreferences > QListView::item { + border-radius: 4px; +} + +QDialog#Gui__Dialog__DlgPreferences > QListView::item:hover { + background-color: #b4b4b4; +} + +QDialog#Gui__Dialog__DlgPreferences > QListView::item:selected { + color: white; + background-color: #94b30f; + border: 1px solid #819c0c; +} + + +/*================================================================================================== +Tab bar buttons +==================================================================================================*/ +/* Close button */ +QTabBar::close-button { + subcontrol-origin: margin; + subcontrol-position: center right; /* only works for QT 4.6 and newer */; + border-radius: 2px; + background-image: url(qss:images/close_dark.png); + background-position: center center; + background-repeat: none; +} + +QTabBar::close-button:hover { + background-color: rgba(255,255,255,20); +} + +QTabBar::close-button:pressed { + background-color: rgba(255,255,255,30); +} + +/* Fix for lists inside Model tab */ +QDockWidget QTreeView, +QDockWidget QListView, +QDockWidget QTableView { + margin: 6px; + border: 1px solid #505050; /* same as regular QTreeView, QListView and QTableView */ + min-height: 40px; /* neccesary in some areas of FreeCAD */ +} + +/* Buttons to scroll tabs if there is not space to show all of them: */ +QTabBar::scroller { + width: 20px; /* the width of the scroll buttons */ +} + +QTabBar QToolButton, +QTabBar QToolButton:hover { + background-color: #6e6e6e; /* same as main background color */ +} + +QTabBar QToolButton::right-arrow:enabled { + image: url(qss:images/right_arrow_dark.png); +} + +QTabBar QToolButton::right-arrow:disabled, +QTabBar QToolButton::right-arrow:off { + image: url(qss:images/right_arrow_disabled_dark.png); +} + +QTabBar QToolButton::right-arrow:hover { + image: url(qss:images/right_arrow_darker.png); +} + + QTabBar QToolButton::left-arrow:enabled { + image: url(qss:images/left_arrow_dark.png); +} + + QTabBar QToolButton::left-arrow:disabled, + QTabBar QToolButton::left-arrow:off { + image: url(qss:images/left_arrow_disabled_dark.png); +} + + QTabBar QToolButton::left-arrow:hover { + image: url(qss:images/left_arrow_darker.png); +} + + QTabBar QToolButton::up-arrow:enabled { + image: url(qss:images/up_arrow_dark.png); +} + + QTabBar QToolButton::up-arrow:disabled, + QTabBar QToolButton::up-arrow:off { + image: url(qss:images/up_arrow_disabled_dark.png); +} + + QTabBar QToolButton::up-arrow:hover { + image: url(qss:images/up_arrow_darker.png); +} + + QTabBar QToolButton::down-arrow:enabled { + image: url(qss:images/down_arrow_dark.png); +} + + QTabBar QToolButton::down-arrow:disabled, + QTabBar QToolButton::down-arrow:off { + image: url(qss:images/down_arrow_disabled_dark.png); +} + + QTabBar QToolButton::down-arrow:hover { + image: url(qss:images/down_arrow_darker.png); +} + +QTabBar::tear { + /* default OS tear better */ +} + + +/*================================================================================================== +Tree and list views +==================================================================================================*/ +QTreeView, +QListView, +QTableView { + background-color: #c8c8c8; + alternate-background-color: #bebebe; /* related with QListView background */ + border: 1px solid #505050; + selection-color: white; + selection-background-color: #94b30f; /* should be similar to QListView::item selected background-color */ + show-decoration-selected: 1; /* make the selection span the entire width of the view */ + border-radius: 3px; +} + +QListView::item:selected, +QTreeView::item:selected { + color: white; /* should be similar to QListView selection-color */ + background-color: #94b30f; /* should be similar to QListView selection-background-color */ + show-decoration-selected: 1; /* make the selection span the entire width of the view */ +} + +/* Property Editor QTreeView (FreeCAD custom widget) */ +Gui--PropertyEditor--PropertyEditor { + gridline-color: #a0a0a0; /* same as Group header background */ +} + +/* fix for column items background when a link is present */ +Gui--PropertyEditor--PropertyEditor > QWidget > QFrame:focus { + background-color: #dadfc5; /* same as focused background color */ +} + +/* hack to hide weird redundant information inside the value of a Placement cell */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel, +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel:disabled { + color: transparent; + background-color: transparent; + border: none; + border-radius: 0px; + margin: 0px; + padding: 0px; +} + +/* hack to hide non editable cells inside Property values */ +Gui--PropertyEditor--PropertyEditor QLineEdit:read-only, +Gui--PropertyEditor--PropertyEditor QLineEdit:disabled, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:read-only, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:disabled { + color: transparent; + border-color: transparent; + background-color: transparent; + selection-color: transparent; + selection-background-color: transparent; +} + +/* hack to disable margin inside Property values to following elements */ +Gui--PropertyEditor--PropertyEditor QSpinBox, +Gui--PropertyEditor--PropertyEditor QDoubleSpinBox, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox, +Gui--PropertyEditor--PropertyEditor QLineEdit, +Gui--PropertyEditor--PropertyEditor QComboBox { + margin-left: 0px; + margin-right: 0px; + padding-top: 0px; + padding-bottom: 0px; +} + +/* set border-radius to 0px inside list views */ +QTreeView > QWidget > QComboBox, +QTreeView > QWidget > QAbstractSpinBox, +QTreeView > QWidget > QSpinBox, +QTreeView > QWidget > QDoubleSpinBox, +QTreeView > QWidget > QLineEdit, +QTreeView > QWidget > QTextEdit, +QTreeView > QWidget > QTimeEdit, +QTreeView > QWidget > QDateEdit, +QTreeView > QWidget > QDateTimeEdit, +QTreeView > QWidget > QComboBox:drop-down, +QTreeView > QWidget > QAbstractSpinBox:up-button, +QTreeView > QWidget > QSpinBox:up-button, +QTreeView > QWidget > QDoubleSpinBox:up-button, +QTreeView > QWidget > QTimeEdit:up-button, +QTreeView > QWidget > QDateEdit:up-button, +QTreeView > QWidget > QDateTimeEdit:up-button, +QTreeView > QWidget > QAbstractSpinBox:down-button, +QTreeView > QWidget > QSpinBox:down-button, +QTreeView > QWidget > QDoubleSpinBox:down-button, +QTreeView > QWidget > QTimeEdit:down-button, +QTreeView > QWidget > QDateEdit:down-button, +QTreeView > QWidget > QDateTimeEdit:down-button, +QTreeView > QWidget > Gui--ColorButton { + border-radius: 0px; +} + +/* set focus colors to best viewing the editable fields */ +QTreeView > QWidget > QComboBox:focus, +QTreeView > QWidget > QAbstractSpinBox:focus, +QTreeView > QWidget > QSpinBox:focus, +QTreeView > QWidget > QDoubleSpinBox:focus, +QTreeView > QWidget > QLineEdit:focus, +QTreeView > QWidget > QTextEdit:focus, +QTreeView > QWidget > QTimeEdit:focus, +QTreeView > QWidget > QDateEdit:focus, +QTreeView > QWidget > QDateTimeEdit:focus { + border-color: #dadfc5; /* same as focused background color */ + border-bottom-color: #a5c61a; /* same as focused border color */ +} + +QTreeView > QWidget > QAbstractSpinBox:read-only, +QTreeView > QWidget > QSpinBox:read-only, +QTreeView > QWidget > QDoubleSpinBox:read-only, +QTreeView > QWidget > QLineEdit:read-only, +QTreeView > QWidget > QTextEdit:read-only, +QTreeView > QWidget > QTimeEdit:read-only, +QTreeView > QWidget > QDateEdit:read-only, +QTreeView > QWidget > QDateTimeEdit:read-only { + color: transparent; + background-color: transparent; + border-color: transparent; +} + +/* Fix to correctly (not totally) draw QTextEdit on OSX at Page properties: "Page result", "Template" and "Editable Texts" */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QWidget { + min-height: 14px; +} + + +/*================================================================================================== +Header of tree and list views +==================================================================================================*/ +QHeaderView { + color: #c8c8c8; + background-color: #505050; + border-top-left-radius: 2px; /* 1px less than its container */ + border-top-right-radius: 2px; /* 1px less than its container */ + border-bottom-left-radius: 0px; + border-bottom-right-radius: 0px; +} + +QHeaderView::section { + border:none; + padding: 4px 6px; + background-color: #505050; +} + +QHeaderView::section:horizontal { + padding: 4px 6px; /* left and right value similar to QHeaderView::section */ + border-right: 1px solid rgba(255,255,255,30); +} + +QHeaderView::section:vertical { + border-bottom: 1px solid rgba(255,255,255,30); +} + +QTableCornerButton::section { + background-color: #505050; + border-top: none; + border-left: none; + border-right: 1px solid rgba(255,255,255,30); + border-bottom: 1px solid rgba(255,255,255,30); +} + +QHeaderView::section:last { + border-right: none; +} + +QHeaderView::up-arrow { + image: url(qss:images/up_arrow_light.png); +} + +QHeaderView::up-arrow:hover { + image: url(qss:images/up_arrow_lighter.png); +} + +QHeaderView::down-arrow { + image: url(qss:images/down_arrow_light.png); +} + +QHeaderView::down-arrow:hover { + image: url(qss:images/down_arrow_lighter.png); +} + +/* Group header inside Property Editor (FreeCAD custom widget) */ +Gui--PropertyEditor--PropertyEditor { + qproperty-groupTextColor: #505050; + qproperty-groupBackground: #8c8c8c; +} + + +/*================================================================================================== +Branch system for QTreeViews +==================================================================================================*/ +QTreeView::branch { + background: transparent; +} + +QTreeView::branch:has-siblings:!adjoins-item { + border-image: url(qss:images/branch_vline.png) 0; +} + +QTreeView::branch:has-siblings:adjoins-item { + border-image: url(qss:images/branch_more.png) 0; +} + +QTreeView::branch:!has-children:!has-siblings:adjoins-item { + border-image: url(qss:images/branch_end.png) 0; +} + +QTreeView::branch:closed:has-children:has-siblings { + image: url(qss:images/branch_closed_dark.png); +} + +QTreeView::branch:has-children:!has-siblings:closed { + image: url(qss:images/branch_closed_dark.png); + border-image: url(qss:images/branch_end.png) 0; +} + +QTreeView::branch:open:has-children:has-siblings { + image: url(qss:images/branch_open_dark.png); + border-image: url(qss:images/branch_more.png) 0; +} + +QTreeView::branch:open:has-children:!has-siblings { + image: url(qss:images/branch_open_dark.png); + border-image: url(qss:images/branch_end.png) 0; +} + + +/*================================================================================================== +Splitter and windows separator +==================================================================================================*/ +QSplitter::handle { + margin: 0px 11px; + padding: 0px; +} + +QSplitter::handle:vertical { + background-image: url(qss:images/splitter_horizontal_dark.png); + background-position: center center; + background-repeat: none; + margin: 2px 4px 2px 4px; + height: 2px; +} + +QSplitter::handle:horizontal { + background-image: url(qss:images/splitter_vertical_dark.png); + background-position: center center; + background-repeat: none; + margin: 4px 2px 4px 2px; + width: 2px; +} + +/* Similar to the splitter is the following window separator: */ +QMainWindow::separator { + background-position: center center; + background-repeat: none; +} + +QMainWindow::separator:horizontal { + height: 2px; + background-image: url(qss:images/splitter_horizontal_dark.png); + margin: 4px 2px 4px 2px; +} + +QMainWindow::separator:vertical { + width: 2px; + background-image: url(qss:images/splitter_vertical_dark.png); + margin: 2px 4px 2px 4px; +} + + +/*================================================================================================== +Tasks panel (custom FreeCAD class) +==================================================================================================*/ +/* Action group */ +QFrame[class="panel"] { + background-color: transparent; /* temporal (transparent background) */ +} + +/* Separator line */ +QSint--ActionGroup QFrame[height="1"], +QSint--ActionGroup QFrame[height="2"], +QSint--ActionGroup QFrame[height="3"], +QSint--ActionGroup QFrame[width="1"], +QSint--ActionGroup QFrame[width="2"], +QSint--ActionGroup QFrame[width="3"] { + border-color: rgba(0,0,0,60); +} + +/* Panel header */ +QSint--ActionGroup QFrame[class="header"] { + border: none; + background-color: #505050; /* Task Panel Header background color */ + border-top-left-radius: 3px; + border-top-right-radius: 3px; + border-bottom-left-radius: 0px; + border-bottom-right-radius: 0px; + margin: 0px; + padding: 0px; +} + +QSint--ActionGroup QFrame[class="header"]:hover { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #94b30f, stop:1 #819c0c); +} + +QSint--ActionGroup QToolButton[class="header"] { + color: #e0e0e0; /* Task Panel Header text color */ + text-align: left; + font-weight: bold; + border: none; + margin: 0px; + padding: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel { + background-color: transparent; + background-image: url(qss:images/down_arrow_light.png); + background-repeat: none; + background-position: center center; + padding: 0px; + margin: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel:hover { + background-color: transparent; + background-image: url(qss:images/down_arrow_lighter.png); +} + +QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"] { + background-color: transparent; + background-image: url(qss:images/up_arrow_light.png); + background-repeat: none; + background-position: center center; + padding: 0px; + margin: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"]:hover { + background-color: transparent; + background-image: url(qss:images/up_arrow_lighter.png); +} + +QSint--ActionGroup QFrame[class="content"] { + background-color: #8c8c8c; /* Task Panel background color */ + margin: 0px; + padding: 0px; + border: none; + border-top-left-radius: 0px; + border-top-right-radius: 0px; + border-bottom-left-radius: 3px; + border-bottom-right-radius: 3px; +} + +QSint--ActionGroup QFrame[class="content"] > QWidget { + background-color: #8c8c8c; /* Task Panel background color */ +} + +/* Fixs for tabs inside Task Panel */ +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:top:selected { + border-bottom-color: #8c8c8c; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:bottom:selected { + border-top-color: #8c8c8c; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:right:selected { + border-right-color: #8c8c8c; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:left:selected { + border-left-color: #8c8c8c; /* same as Task Panel background color */ +} + + +/*================================================================================================== +Buttons +==================================================================================================*/ +/* Common */ +QComboBox, +QAbstractSpinBox, +QSpinBox, +QDoubleSpinBox, +QLineEdit, +QTextEdit, +QTimeEdit, +QDateEdit, +QDateTimeEdit { + color: #bebebe; + background-color: #5a5a5a; + selection-color: white; + selection-background-color: #819c0c; + border: 1px solid #5a5a5a; + border-radius: 3px; + min-width: 50px; /* it ensures the default value is correctly displayed */ + padding: 1px 2px; /* temporal: could don't be compatible with elements inside Tree/List view */ +} + +/* shifts text/number editable field to the left to make space for the up/down or drop-down buttons */ +QComboBox, +QAbstractSpinBox, +QSpinBox, +QDoubleSpinBox, +QTimeEdit, +QDateEdit, +QDateTimeEdit { + padding-right: 20px; +} + +/* when QTextEdit are no editable */ +QTextEdit:!editable { + background-color: #c8c8c8; + border: 1px solid #505050; +} + +QComboBox:focus, +QAbstractSpinBox:focus, +QSpinBox:focus, +QDoubleSpinBox:focus, +QLineEdit:focus, +QTextEdit:focus, +QTimeEdit:focus, +QDateEdit:focus, +QDateTimeEdit:focus { + color: black; + border-color: #a5c61a; + border-right-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #94b30f, stop:1 #a5c61a); /* same as up/down or drop-down button color */ + background-color: #dadfc5; +} + +QComboBox:disabled, +QAbstractSpinBox:disabled, +QSpinBox:disabled, +QDoubleSpinBox:disabled, +QLineEdit:disabled, +QTextEdit:disabled, +QTimeEdit:disabled, +QDateEdit:disabled, +QDateTimeEdit:disabled { + color: #787878; + background-color: #5a5a5a; /* same as enabled color */ + border-color: #5a5a5a; /* same as enabled color */ +} + +QAbstractSpinBox:up-button, +QSpinBox:up-button, +QDoubleSpinBox:up-button, +QTimeEdit:up-button, +QDateEdit:up-button, +QDateTimeEdit:up-button, +QAbstractSpinBox:down-button, +QSpinBox:down-button, +QDoubleSpinBox:down-button, +QTimeEdit:down-button, +QDateEdit:down-button, +QDateTimeEdit:down-button { + background-color: #505050; /* same color for QComboBox background-color */ + subcontrol-origin: border; /* important */ + width: 20px; /* same as QComboBox ... QDateTimeEdit padding-right */ +} + +QAbstractSpinBox:up-button, +QSpinBox:up-button, +QDoubleSpinBox:up-button, +QTimeEdit:up-button, +QDateEdit:up-button, +QDateTimeEdit:up-button { + subcontrol-position: top right; + border-top-right-radius: 3px; + height: 12px; /* fix for Ubuntu that doesn't divide the up/down button into the exact middle */ +} + +QAbstractSpinBox:down-button, +QSpinBox:down-button, +QDoubleSpinBox:down-button, +QTimeEdit:down-button, +QDateEdit:down-button, +QDateTimeEdit:down-button { + subcontrol-position: bottom right; + border-bottom-right-radius: 3px; +} + +QAbstractSpinBox:up-button:focus, +QSpinBox:up-button:focus, +QDoubleSpinBox:up-button:focus, +QTimeEdit:up-button:focus, +QDateEdit:up-button:focus, +QDateTimeEdit:up-button:focus { + background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #9bbc12, stop:1 #a5c61a); +} + +QAbstractSpinBox:down-button:focus, +QSpinBox:down-button:focus, +QDoubleSpinBox:down-button:focus, +QTimeEdit:down-button:focus, +QDateEdit:down-button:focus, +QDateTimeEdit:down-button:focus { + background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #94b30f, stop:1 #9bbc12); +} + +QAbstractSpinBox:up-button:disabled, +QSpinBox:up-button:disabled, +QDoubleSpinBox:up-button:disabled, +QTimeEdit:up-button:disabled, +QDateEdit:up-button:disabled, +QDateTimeEdit:up-button:disabled, +QAbstractSpinBox:down-button:disabled, +QSpinBox:down-button:disabled, +QDoubleSpinBox:down-button:disabled, +QTimeEdit:down-button:disabled, +QDateEdit:down-button:disabled, +QDateTimeEdit:down-button:disabled { + background-color: transparent; +} + +QAbstractSpinBox::up-arrow, +QSpinBox::up-arrow, +QDoubleSpinBox::up-arrow, +QTimeEdit::up-arrow, +QDateEdit::up-arrow, +QDateTimeEdit::up-arrow { + image: url(qss:images/up_arrow_light.png); + top: 0px; /* fix simetry between up and down images */ +} + +QAbstractSpinBox::up-arrow:focus, +QSpinBox::up-arrow:focus, +QDoubleSpinBox::up-arrow:focus, +QTimeEdit::up-arrow:focus, +QDateEdit::up-arrow:focus, +QDateTimeEdit::up-arrow:focus { + image: url(qss:images/up_arrow_lighter.png); +} + +QAbstractSpinBox::up-arrow:off, +QSpinBox::up-arrow:off, +QDoubleSpinBox::up-arrow:off, +QTimeEdit::up-arrow:off, +QDateEdit::up-arrow:off, +QDateTimeEdit::up-arrow:off { + image: url(qss:images/up_arrow_disabled_dark.png); +} + +QAbstractSpinBox::up-arrow:disabled, +QSpinBox::up-arrow:disabled, +QDoubleSpinBox::up-arrow:disabled, +QTimeEdit::up-arrow:disabled, +QDateEdit::up-arrow:disabled, +QDateTimeEdit::up-arrow:disabled { + image: url(qss:images/up_arrow_disabled_dark.png); +} + +QAbstractSpinBox::down-arrow, +QSpinBox::down-arrow, +QDoubleSpinBox::down-arrow, +QTimeEdit::down-arrow, +QDateEdit::down-arrow, +QDateTimeEdit::down-arrow { + image: url(qss:images/down_arrow_light.png); + bottom: 0px; /* fix simetry between up and down images */ +} + +QAbstractSpinBox::down-arrow:focus, +QSpinBox::down-arrow:focus, +QDoubleSpinBox::down-arrow:focus, +QTimeEdit::down-arrow:focus, +QDateEdit::down-arrow:focus, +QDateTimeEdit::down-arrow:focus { + image: url(qss:images/down_arrow_lighter.png); +} + +QAbstractSpinBox::down-arrow:off, +QSpinBox::down-arrow:off, +QDoubleSpinBox::down-arrow:off, +QTimeEdit::down-arrow:off, +QDateEdit::down-arrow:off, +QDateTimeEdit::down-arrow:off { + image: url(qss:images/down_arrow_disabled_dark.png); +} + +QAbstractSpinBox::down-arrow:disabled, +QSpinBox::down-arrow:disabled, +QDoubleSpinBox::down-arrow:disabled, +QTimeEdit::down-arrow:disabled, +QDateEdit::down-arrow:disabled, +QDateTimeEdit::down-arrow:disabled { + image: url(qss:images/down_arrow_disabled_dark.png); +} + +/* ComboBox */ +QComboBox::drop-down { + background-color: #505050; /* same color as up/down QSpinBox ... QDateTimeView background-color */ + subcontrol-origin: border; /* important */ + subcontrol-position: top right; + width: 20px; + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; +} + +QComboBox::drop-down:on, +QComboBox::drop-down:focus { + background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #94b30f, stop:1 #a5c61a); +} + +QComboBox::down-arrow { + image: url(qss:images/down_arrow_light.png); +} + +QComboBox::down-arrow:on, +QComboBox::down-arrow:focus { + image: url(qss:images/down_arrow_lighter.png); +} + +QComboBox::down-arrow:off, +QComboBox::down-arrow:disabled { + image: url(qss:images/down_arrow_disabled_dark.png); +} + +/* ComboBox menu */ +QComboBox { + selection-color: white; + selection-background-color: #94b30f; +} + +QComboBox QAbstractItemView { + color: #bebebe; /* same as regular QComboBox color */ + background-color: transparent; + selection-color: white; + selection-background-color: #94b30f; + border-width: 5px 0px 5px 0px; + border-style: solid; + border-color: transparent; + margin: 0px -1px 0px 0px; /* hack for Mac... try it on Windows and Linux */ +} + + +/*================================================================================================== +Push button +==================================================================================================*/ +QPushButton { + color: #e0e0e0; + text-align: center; + background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #6e6e6e, stop:1 #646464); + border: 1px solid #5a5a5a; + border-bottom-color: #505050; /* simulates shadow under the button */ + padding: 4px 22px; + margin: 4px 4px; + min-height: 16px; /* same as QTabBar QPushButton min-width */ + border-radius: 4px; +} + +QPushButton:hover, +QPushButton:focus { + color: white; + border-color: #819c0c; + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #94b30f, stop:1 #819c0c); +} + +QPushButton:disabled, +QPushButton:disabled:checked { + color: #787878; + background-color: #5a5a5a; /* same as enabled color */ + border-color: #5a5a5a; /* same as enabled color */ +} + +QPushButton:pressed { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #819c0c, stop:1 #94b30f); +} + +QPushButton:checked { + background-color: #94b30f; + border-color: #819c0c; +} + +/* Color Buttons */ +Gui--ColorButton, +Gui--ColorButton:disabled { + padding: 0px; /* reset */ + margin: 0px; /* reset */ +} + +Gui--ColorButton { + background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #6e6e6e, stop:1 #646464); + border: 1px solid #5a5a5a; + border-bottom-color: #505050; /* simulates shadow under the button */ +} + +Gui--ColorButton:disabled { + border-color: transparent; + background-color: rgba(0,0,0,10); +} + +Gui--ColorButton:hover, +Gui--ColorButton:focus { + border-color: #819c0c; + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #94b30f, stop:1 #819c0c); +} + +Gui--ColorButton:pressed { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #819c0c, stop:1 #94b30f); +} + +/* Pushbutton style for "..." inside Placement cell which launches Placement tool */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QPushButton { + background-color: #6e6e6e; + border: 1px solid #5a5a5a; + min-width: 16px; /* reset it due to larger value on regular QPushButton, same or bigger value as regular QPushButton min-height */ + border-radius: 0px; + margin: 0px; /* reset */ + padding: 0px; /* reset */ +} + +/* Fix for Expressions description QFrame that is "broken" with initial reset */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QWidget > QWidget > QFrame { + background-color: #6e6e6e; /* main background color */ + border: 1px solid #5a5a5a; + border-radius: 2px; + padding: 2px 6px; +} + + +/*================================================================================================== +Tool button inside QDialogs that works as QPushButtons +==================================================================================================*/ +/* found under Tools -> Customize -> Macros -> Pixmap "..." button */ +QDialog QToolButton { + color: #e0e0e0; + text-align: center; + background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #6e6e6e, stop:1 #646464); + border: 1px solid #5a5a5a; + border-bottom-color: #505050; /* simulates shadow under the button */ + padding: 0px; /* different than regular QPushButton */ + margin: 2px; /* different than regular QPushButton */ + min-height: 16px; /* same as QTabBar QPushButton min-width */ + border-radius: 4px; +} + +QDialog QToolButton:hover, +QDialog QToolButton:focus { + color: white; + border-color: #819c0c; + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #94b30f, stop:1 #819c0c); +} + +QDialog QToolButton:disabled, +QDialog QToolButton:disabled:checked { + color: #6e6e6e; + border-color: #5a5a5a; + background-color: #5a5a5a; +} + +QDialog QToolButton:pressed { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #819c0c, stop:1 #94b30f); +} + +QPushButton:checked { + background-color: #94b30f; + border-color: #819c0c; +} + + +/*================================================================================================== +Radio button +==================================================================================================*/ +QRadioButton::indicator:unchecked{ + color: black; + background-color: rgba(255,255,255,20); + border: 1px solid #5a5a5a; +} + +QRadioButton::indicator:checked { + background-color: #94b30f; /* QCheckBox has the same color */ + border: 1px solid #819c0c; /* QCheckBox has the same color */ + image:url(qss:images/radiobutton_light.png); +} + +QRadioButton, +QRadioButton:disabled { + color: black; + padding: 3px; + outline: none; + background-color: transparent; +} + +QRadioButton::indicator { + width: 11px; + height: 11px; + border-radius: 6px; +} + +QRadioButton::indicator:pressed { + border-color: #c5d675; +} + +QRadioButton::indicator:disabled { + border: 1px solid #f5f5f5; +} + +QRadioButton::indicator:disabled { + color: #f5f5f5; + background-color: transparent; +} + +QRadioButton:focus { + border: none; +} + + +/*================================================================================================== +Checkbox +==================================================================================================*/ +QCheckBox, +QCheckBox:disabled { + color: black; + padding: 3px; + outline: none; + background-color: transparent; +} + +QCheckBox::indicator { + color: black; + background-color: rgba(255,255,255,20); + border: 1px solid #5a5a5a; +} + +QCheckBox::indicator { + width: 11px; + height: 11px; + border-radius:2px; +} + +QCheckBox::indicator:pressed, +QCheckBox::indicator:non-exclusive:checked:pressed, +QCheckBox::indicator:indeterminate:pressed, +QCheckBox::indicator:checked:pressed { + border-color: #c5d675; +} + +QCheckBox::indicator:checked { + background-color: #94b30f; /* QRadioButton has the same color */ + border: 1px solid #819c0c; /* QRadioButton has the same color */ + image:url(qss:images/checkbox_light.png); +} + +QCheckBox:disabled { + color: rgba(255,255,255,40); + background-color: transparent; +} + +QCheckBox::indicator:disabled { + background-color: rgba(255,255,255,20); + border: 1px solid rgba(255,255,255,20); +} + +QCheckBox::indicator:indeterminate { + background-color: #94b30f; + border: 1px solid #819c0c; + image: url(qss:images/checkbox_indeterminate_light.png); +} + +QCheckBox:focus { + border: none; +} + + +/*================================================================================================== +Slider +==================================================================================================*/ +QSlider, +QSlider:active, +QSlider:!active { + border: none; + background-color: transparent; +} + +QSlider:horizontal { + padding: 0px 10px; +} + +QSlider:vertical { + padding: 10px 0px; +} + +QSlider::groove { + background-color: rgba(0,0,0,30); + border: 1px solid rgba(0,0,0,40); + border-radius: 5px; + margin: 4px 0px; +} + +QSlider::groove:horizontal { + height: 8px; +} + +QSlider::groove:vertical { + width: 8px; +} + +QSlider::groove:horizontal:disabled, +QSlider::groove:vertical:disabled { + border-color: #5a5a5a; + background-color: #5a5a5a; +} + +QSlider::handle:horizontal, +QSlider::handle:vertical { + background-color: #505050; + border: 1px solid #505050; + width: 14px; + height: 14px; + border-radius: 8px; +} + +QSlider::handle:horizontal { + margin: -4px 0; +} + +QSlider::handle:vertical { + margin: 0 -4px; +} + +QSlider::handle:horizontal:hover, +QSlider::handle:vertical:hover, +QSlider::handle:horizontal:pressed, +QSlider::handle:vertical:pressed { + border-color: #94b30f; + background-color: #94b30f; +} + +QSlider::handle:horizontal:disabled, +QSlider::handle:vertical:disabled { + border-color: #5a5a5a; + background-color: #5a5a5a; +} + + +/*================================================================================================== +Toolbar buttons +==================================================================================================*/ +QToolBar > QToolButton { + margin: 2px; + padding: 2px; +} + +QToolBar > QPushButton, +/*QToolBar > QComboBox, disabled because creates different margins for body and drop-down button */ +QToolBar > QAbstractSpinBox, +QToolBar > QSpinBox, +QToolBar > QDoubleSpinBox, +QToolBar > QLineEdit, +QToolBar > QTextEdit, +QToolBar > QTimeEdit, +QToolBar > QDateEdit, +QToolBar > QDateTimeEdit { + margin: 2px; + padding: 2px; +} + +QToolBar > QPushButton { + border-radius: 4px; /* same as regular QPushButton */ + min-width: 20px; /* reset it due to larger value on regular QPushButton, same or bigger value as regular QPushButton min-height */ +} + +QToolBar > QPushButton:checked { + border: 1px solid #819c0c; + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #94b30f, stop:1 #819c0c); +} + +QToolBar > QPushButton:!checked { + background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #6e6e6e, stop:1 #646464); + border: 1px solid #5a5a5a; + border-bottom-color: #505050; /* simulates shadow under the button */ +} + +QToolBar > QPushButton:checked:hover { + border-color: #74831d; +} + +QToolBar > QPushButton:!checked:hover { + color: #dadfc5; + border-color: #505050; +} + +QToolBar > QPushButton:checked:pressed { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #819c0c, stop:1 #94b30f); +} + +QToolBar > QPushButton:!checked:pressed { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #5a5a5a, stop:1 #6e6e6e); +} + +QToolBar > QPushButton:checked:disabled, +QToolBar > QPushButton:!checked:disabled { + border: none; + background-color: transparent; +} + +/* ToolBar menu buttons (buttons with drop-down menu) */ +QToolBar > QToolButton#qt_toolbutton_menubutton { + padding-right: 20px; /* Hack to add more width to buttons with menu */ + border: 1px solid transparent; + border-radius: 3px; +} + +QToolBar > QToolButton#qt_toolbutton_menubutton:hover, +QToolBar > QToolButton#qt_toolbutton_menubutton:pressed, +QToolBar > QToolButton#qt_toolbutton_menubutton:open { + border: 1px solid #a5c61a; +} + +QToolBar QToolButton::menu-button, +QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button { + border: none; + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; + width: 16px; /* 16px width + 4px for border = 20px allocated above */ + outline: none; + background-color: transparent; +} + +QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:hover, +QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:pressed, +QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:open { + background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #94b30f, stop:1 #a5c61a); +} + +QToolBar > QToolButton::menu-arrow { + background-image: url(qss:images/down_arrow_dark.png); + background-position: center center; + background-repeat: none; + subcontrol-origin: padding; + subcontrol-position: bottom right; + height: 10px; /* same as arrow image */ +} + +QToolBar > QToolButton::menu-arrow:hover { + background-image: url(qss:images/down_arrow_lighter.png); +} + +QToolBar > QToolButton::menu-arrow:open { + background-image: url(qss:images/down_arrow_lighter.png); +} + +/*The "show more" button (it can also be stylable with "QToolBarExtension" */ +QToolBar QToolButton#qt_toolbar_ext_button { + margin: 0px; + padding: 0px; + /*background-image: url(qss:images/more_dark.png);*/ + image: transparent; + background-repeat: none; + background-position: center left; +} + +QToolBar QToolButton#qt_toolbar_ext_button:hover { + /*background-image: url(qss:images/more_light.png);*/ + border-color: #5a5a5a; + background-color: #5a5a5a; +} + +QToolBar QToolButton#qt_toolbar_ext_button:on { + /*background-image: url(qss:images/more_light.png);*/ + border-color: #5a5a5a; + background-color: #5a5a5a; +} + + +/*================================================================================================== +Tables (spreadsheets) +==================================================================================================*/ +QTableView { + gridline-color: #a0a0a0; + selection-color: #566214; + selection-background-color: #dadfc5; +} + +QTableView::item:hover { + background-color: rgba(0,0,0,10); /* temporal: is it displayed in Linux or Windows? on OSX it isn't */ +} + +QTableView::item:disabled { + color: #8c8c8c; +} + +QTableView::item:selected { + color: #566214; + border-color: #dadfc5; /* same as focused background color */ + border-bottom-color: #a5c61a; /* same as focused border color */ +} + +/* fix for elements inside the cells */ +QTableView QComboBox, +QTableView QAbstractSpinBox, +QTableView QSpinBox, +QTableView QDoubleSpinBox, +QTableView QLineEdit, +QTableView QTextEdit, +QTableView QTimeEdit, +QTableView QDateEdit, +QTableView QDateTimeEdit, +QTableView QComboBox:drop-down, +QTableView QAbstractSpinBox:up-button, +QTableView QSpinBox:up-button, +QTableView QDoubleSpinBox:up-button, +QTableView QTimeEdit:up-button, +QTableView QDateEdit:up-button, +QTableView QDateTimeEdit:up-button, +QTableView QAbstractSpinBox:down-button, +QTableView QSpinBox:down-button, +QTableView QDoubleSpinBox:down-button, +QTableView QTimeEdit:down-button, +QTableView QDateEdit:down-button, +QTableView QDateTimeEdit:down-button, +QTableView Gui--ColorButton { + border-radius: 0px; +} + +QTableView QComboBox, +QTableView QAbstractSpinBox, +QTableView QSpinBox, +QTableView QDoubleSpinBox, +QTableView QLineEdit, +QTableView QTextEdit, +QTableView QTimeEdit, +QTableView QDateEdit, +QTableView QDateTimeEdit { + color: black; + background-color: transparent; + border-color: transparent; +} + +QTableView QComboBox:drop-down, +QTableView QAbstractSpinBox:up-button, +QTableView QSpinBox:up-button, +QTableView QDoubleSpinBox:up-button, +QTableView QTimeEdit:up-button, +QTableView QDateEdit:up-button, +QTableView QDateTimeEdit:up-button, +QTableView QAbstractSpinBox:down-button, +QTableView QSpinBox:down-button, +QTableView QDoubleSpinBox:down-button, +QTableView QTimeEdit:down-button, +QTableView QDateEdit:down-button, +QTableView QDateTimeEdit:down-button, +QTableView Gui--ColorButton { + background-color: rgba(0,0,0,30); +} + +QTableView QComboBox:focus, +QTableView QAbstractSpinBox:focus, +QTableView QSpinBox:focus, +QTableView QDoubleSpinBox:focus, +QTableView QLineEdit:focus, +QTableView QTextEdit:focus, +QTableView QTimeEdit:focus, +QTableView QDateEdit:focus, +QTableView QDateTimeEdit:focus { + color: #566214; + selection-color: white; + selection-background-color: #94b30f; + border-color: #dadfc5; + background-color: #dadfc5; +} + +QTableView QComboBox:disabled, +QTableView QAbstractSpinBox:disabled, +QTableView QSpinBox:disabled, +QTableView QDoubleSpinBox:disabled, +QTableView QLineEdit:disabled, +QTableView QTextEdit:disabled, +QTableView QTimeEdit:disabled, +QTableView QDateEdit:disabled, +QTableView QDateTimeEdit:disabled { + color: rgba(0,0,0,120); + background-color: transparent; + border-color: transparent; +} + +QTableView QComboBox:read-only, +QTableView QAbstractSpinBox:read-only, +QTableView QSpinBox:read-only, +QTableView QDoubleSpinBox:read-only, +QTableView QLineEdit:read-only, +QTableView QTextEdit:read-only, +QTableView QTimeEdit:read-only, +QTableView QDateEdit:read-only, +QTableView QDateTimeEdit:read-only { + color: black; + background-color: transparent; + border-color: transparent; +} + + +/*================================================================================================== +EXPERIMENTAL +==================================================================================================*/ + +/* Fix for preventing elements in different rows to accidentaly overlap */ +QDialog QGroupBox QFrame { + margin: 2px 0px; +} + +*[mandatoryField="true"] { background-color: cyan } + + + diff --git a/dark-orange.qss b/dark-orange.qss index fbfb6e9..5c699e0 100644 --- a/dark-orange.qss +++ b/dark-orange.qss @@ -1,1906 +1,1883 @@ -/* -ABOUT -=========================================================== -version 1.8 -QT theme (stylesheet) specially developed for FreeCAD (http://www.freecadweb.org/). -It might work with other software that uses QT styling. - - -LICENSE -=========================================================== -Copyright (c) 2015 Pablo Gil Fernández -The stylesheet barely uses code from Colin Duquesnoy "generic QT stylesheet" - -This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. -To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/. - - -INSTALLATION -=========================================================== -1) Place the .qss files and /images/ folder in the path that fits your OS: - OSX = /Users/[YOUR_USER_NAME]/Library/Preferences/FreeCAD/Gui/Stylesheets/ - WINDOWS = C:/[INSTALLATION_PATH]/FreeCAD/data/Gui/Stylesheets/ - LINUX = /home/[YOUR_USER_NAME]/.FreeCAD/Gui/Stylesheets/ - -2) In order to display correctly images that are used inside the stylesheet: - 2.1) If you use FreeCAD 0.16 (development builds newer than commit 5b3d50a): that's it, you are done! - - 2.2) If you use FreeCAD 0.15: Images used in the theme need full paths to be found by FreeCAD, so you should search the string "qss:images" (without "") and replace with the real path of your computer. It should be done with all the .qss files you want to install-use - find = qss:images - replace = /Users/myName/Library/Preferences/FreeCAD/Gui/Stylesheets/images - - -CUSTOMIZATION -=========================================================== -If you would like to change the overall look/style of the theme, just find and replace following colors in the whole file: - background darker = #51504d - background dark and slightly darker = #61605d - background dark = #71706d - background normal and slightly darker = #7f7d79 - background normal = #8a8985 - background light = #9e9d9a - background lighter = #c9c8c7 - - lists background = #d3d1cd - lists background (alternate) = #cfcdc9 - lists backgrounds selection = #cbc9c4 - - foreground = white - - selection darker = #9d7106 - selection dark = #e0a108 - selection normal = #f8bf36 - selection inbetween normal and light = #f9ca58 (used to build SpinBoxes) - selection light = #fad57a - selection lighter = #fce6b1 - - -CAVEATS -=========================================================== - - FreeCAD 0.15 - - full paths to images are needed, that means all these .qss files should be edited per user - - the "Task panel" is not stylable - - in app icons-buttons are designed in svg but are not stylable, that is, it's not possible to change them... I hope it also changes in the near future - - -KNOWN BUGS and TO DO -=========================================================== - - please, follow the link to get updated information: http://forum.freecadweb.org/viewtopic.php?f=10&t=12417 -*/ - -/* RESET EVERYTHING */ -QAbstractScrollArea,QCheckBox,QColumnView,QComboBox,QDateEdit,QDateTimeEdit,QDialog,QDialogButtonBox,QDockWidget,QDoubleSpinBox,QFrame,QGroupBox,QHeaderView,QLabel,QLineEdit,QListView,QListWidget,QMainWindow,QMenu,QMenuBar,QMessageBox,QProgressBar,QPushButton,QRadioButton,QScrollBar,QSizeGrip,QSlider,QSpinBox,QSplitter,QStatusBar,QTabBar,QTabWidget,QTableView,QTableWidget,QTextEdit,QTimeEdit,QToolBar,QToolButton,QToolBox,QToolTip,QTreeView,QTreeWidget,QWidget { - padding: 0px; - margin: 0px; - border: 0px; - border-style: none; - background-color: #8a8985; /* set with default background color */ -} - -QMdiArea[showImage="true"] { - background-image: url(qss:images/background_freecad.png); - background-position: center; - background-repeat: no-repeat; -} - -QProgressBar, -QProgressBar:horizontal { - background: #d3d1cd; - border: 1px solid #71706d; - text-align: center; - padding: 1px; - border-radius: 4px; -} -QProgressBar::chunk, -QProgressBar::chunk:horizontal { - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #e0a108, stop:1 #f8bf36); - border-radius: 3px; -} - -QToolTip { - background-color: #51504d; - color: white; - padding: 4px; - border-radius: 4px; - /*opacity: 200;*/ -} - -QWidget { - color: #51504d; - background-color: #8a8985; - background-clip: border; - border-image: none; - outline: 0; -} - -QWidget:focus { - border: 1px solid #51504d; -} - -QWidget:disabled { - color: #9e9d9a; - background-color: #51504d; /* same as QMenu background-color */ -} - -QMenuBar { - color: #c9c8c7; - background-color: #7f7d79; -} - -QMenuBar::item { - background-color: #7f7d79; -} - -QMenuBar::item:selected { - color: #9d7106; - border: 1px solid #f8bf36; - background-color: #f8bf36; -} - -QMenuBar::item:pressed { - color: #9d7106; - border: 1px solid #fad57a; - background-color: #fad57a; - margin-bottom:-1px; - padding-bottom:1px; -} - -QMenu { - color: #c9c8c7; - background-color: #51504d; - margin: 2px; - border: 1px solid transparent; -} - -QMenu::icon { - margin: 5px; - border-style: none; -} - -QMenu::right-arrow { - image:url(qss:images/right_arrow_light.png); -} - -QMenu::item { - color: #c9c8c7; - background-color: #51504d; - padding: 2px 30px 2px 30px; - border: 1px solid #51504d; /* reserve space for selection border */ -} - -QMenu::item:selected { - color: #9d7106; - background-color: #fad57a; -} - -QMenu::separator { - height: 1px; - background-color: #71706d; - margin-top: 2px; - margin-bottom: 2px; - margin-left: 6px; - margin-right: 6px; -} - -QMenu::indicator:non-exclusive { - color: #c9c8c7; - background-color: #9e9d9a; - border: 1px solid #51504d; - width: 11px; - height: 11px; - border-radius:2px; -} - -QMenu::indicator:non-exclusive:checked { - background-color: #e0a108; - border: 1px solid #9d7106; - image:url(qss:images/checkbox_light.png); -} - -QGroupBox { - color: #51504d; - font-weight: bold; - border:1px solid blue; - border-radius: 4px; - margin-top: 20px; - border-color: rgba(0, 0, 0, 20); /* lighter than "QGroupBox" border-color */ - background-color: rgba(255, 255, 255, 15); -} - - - -QGroupBox::title { - subcontrol-origin: margin; - subcontrol-position: top left; - padding-left: 10px; - padding-right: 10px; - padding-top: 10px; - background-color: transparent; -} - -QAbstractScrollArea { - border-radius: 2px; - border: 1px solid #3A3939; - background-color: transparent; -} - -QAbstractScrollArea::corner { - border: none; - background-color: #8a8985; -} - -QScrollBar:horizontal { - height: 15px; - margin: 3px 15px 3px 15px; - border: 1px transparent #51504d; - border-radius: 4px; - background-color: #51504d; -} - -QScrollBar::handle:horizontal { - background-color: #71706d; - min-width: 5px; - border-radius: 4px; -} - -QScrollBar::add-line:horizontal { - margin: 1px 3px 0px 3px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images/right_arrow_light.png); - width: 6px; - height: 10px; - subcontrol-position: right; - subcontrol-origin: margin; -} - -QScrollBar::sub-line:horizontal { - margin: 1px 3px 0px 3px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images/left_arrow_light.png); - height: 10px; - width: 6px; - subcontrol-position: left; - subcontrol-origin: margin; -} - -QScrollBar::add-line:horizontal:hover, -QScrollBar::add-line:horizontal:on { - border-image: url(qss:images/right_arrow_lighter.png); -} - - -QScrollBar::sub-line:horizontal:hover, -QScrollBar::sub-line:horizontal:on { - border-image: url(qss:images/left_arrow_lighter.png); -} - -QScrollBar::up-arrow:horizontal, -QScrollBar::down-arrow:horizontal { - background: none; -} - - -QScrollBar::add-page:horizontal, -QScrollBar::sub-page:horizontal { - background: none; -} - -QScrollBar:vertical { - background-color: #51504d; - width: 15px; - margin: 15px 3px 15px 3px; - border: 1px transparent #51504d; - border-radius: 4px; -} - -QScrollBar::handle:vertical { - background-color: #71706d; - min-height: 5px; - border-radius: 4px; -} - -QScrollBar::sub-line:vertical { - margin: 3px 0px 3px 1px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images/up_arrow_light.png); - height: 6px; - width: 10px; - subcontrol-position: top; - subcontrol-origin: margin; -} - -QScrollBar::add-line:vertical { - margin: 3px 0px 3px 1px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images/down_arrow_light.png); - height: 6px; - width: 10px; - subcontrol-position: bottom; - subcontrol-origin: margin; -} - -QScrollBar::sub-line:vertical:hover, -QScrollBar::sub-line:vertical:on { - border-image: url(qss:images/up_arrow_lighter.png); -} - -QScrollBar::add-line:vertical:hover, -QScrollBar::add-line:vertical:on { - border-image: url(qss:images/down_arrow_lighter.png); -} - -QScrollBar::up-arrow:vertical, -QScrollBar::down-arrow:vertical { - background: none; -} - - -QScrollBar::add-page:vertical, -QScrollBar::sub-page:vertical { - background: none; -} - -QTextEdit { - color: #51504d; - background-color: #d3d1cd; - border: 1px solid #71706d; - padding: 0px; - margin: 0px; -} - -QPlainTextEdit { - color: #51504d; - background-color: #d3d1cd; - border-radius: 2px; - border: 1px solid #71706d; - padding: 0px; - margin: 0px; -} - -QSizeGrip { - image: url(qss:images/sizegrip_light.png); - width: 16px; - height: 16px; - background-color: transparent; -} - -QRadioButton::indicator:unchecked{ - color: #51504d; - background-color: #9e9d9a; - border: 1px solid #51504d; -} - -QRadioButton::indicator:checked { - background-color: #e0a108; - border: 1px solid #9d7106; - image:url(qss:images/radiobutton_light.png); -} - -QCheckBox, -QRadioButton, -QCheckBox:disabled, -QRadioButton:disabled { - color: #51504d; - padding: 3px; - outline: none; - background-color: transparent; -} - -QCheckBox::indicator, -QGroupBox::indicator { - color: #c9c8c7; - background-color: #9e9d9a; - border: 1px solid #51504d; -} - -QCheckBox::indicator { - width: 11px; - height: 11px; - border-radius:2px; -} - -QRadioButton::indicator { - width: 11px; - height: 11px; - border-radius: 6px; -} - -QRadioButton::indicator:pressed, -QCheckBox::indicator:pressed, -QCheckBox::indicator:non-exclusive:checked:pressed, -QCheckBox::indicator:indeterminate:pressed, -QCheckBox::indicator:checked:pressed { - border-color: #fce6b1; -} - -QCheckBox::indicator:checked, -QGroupBox::indicator:checked { - background-color: #e0a108; - border: 1px solid #9d7106; - image:url(qss:images/checkbox_light.png); -} - -QCheckBox::indicator:disabled, -QRadioButton::indicator:disabled { - border: 1px solid #71706d; -} - -QCheckBox:disabled, -QRadioButton::indicator:disabled { - color: #71706d; - background-color: transparent; -} - -QCheckBox::indicator:disabled, -QGroupBox::indicator:disabled, -QMenu::indicator:non-exclusive:disabled { - background-color: #8a8985; -} - -QCheckBox::indicator:indeterminate { - background-color: #e0a108; - border: 1px solid #9d7106; - image: url(qss:images/checkbox_indeterminate_light.png); -} - -QCheckBox:focus, -QRadioButton:focus { - border: none; -} - -QFrame, -QFrame:pressed, -QFrame:focus, -QFrame:on { - border: 1px solid #8a8985; - border-radius: 3px; - padding: 0px; - /* background-color: transparent; temporal */ -} - -/* border and background of QComboBox drop-down */ -QComboBox QFrame, -QComboBox QFrame:pressed, -QComboBox QFrame:focus, -QComboBox QFrame:on { - border: 1px solid #51504d; - background-color: #51504d; - padding: 0px; - margin: 0px; -} - -QFrame[frameShape="0"] { - border-radius: 3px; -} - -/* Separator line */ -QFrame[height="1"], -QFrame[height="2"], -QFrame[height="3"], -QFrame[width="1"], -QFrame[width="2"], -QFrame[width="3"] { - border-width: 1px 0px 0px 0px; - border-style: solid; - border-color: #7f7d79; - background-color: transparent; -} - -QPushButton { - color: #c9c8c7; - text-align: center; - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #71706d, stop:1 #8a8985); - border: 1px solid #51504d; - padding: 5px 12px 5px 12px; - margin: 4px 8px 4px 8px; - border-radius: 3px; - min-width: 14px; - min-height: 14px; -} - -QPushButton:hover, -QPushButton:focus { - color: white; - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #e0a108, stop:1 #f8bf36); - border-color: #e0a108; -} - -QPushButton:disabled, -QPushButton:disabled:checked { - color: #71706d; - background-color: #8a8985; - border-color: #71706d; -} - -QPushButton:pressed { - background-color: #e0a108; -} - -QPushButton:checked { - background-color: #f8bf36; - border-color: #e0a108; -} - -/* Color Buttons */ -Gui--ColorButton, -Gui--ColorButton:disabled { - border-color: transparent; - background-color: transparent; - /*width: 60px;*/ - height: 24px; - padding: 0px; - margin: 0px; -} - -Gui--ColorButton:hover { - border-color: #7f7d79; - background-color: #7f7d79; -} - -/* Buttons inside the toolbar */ -QToolBar QPushButton { - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #7f7d79, stop:1 #8a8985); - border: 1px solid #71706d; - min-width: 22px; - min-height: 22px; - margin-left: 2px; - margin-right: 2px; - margin-bottom: 3px; /*bigger margin to correctly separate buttons inside a vertical toolbar */ - margin-top: 1px; - padding: 1px; -} - -QToolBar QPushButton:hover, -QToolBar QPushButton:focus { - color: #c9c8c7; - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #7f7d79, stop:1 #8a8985); - border: 1px solid #51504d; -} - -QToolBar QPushButton:disabled, -QToolBar QPushButton:disabled:checked { - background-color: #8a8985; - border-color: #7f7d79; -} - -QToolBar QPushButton:pressed { - background-color: #71706d; - border-color: #71706d; -} - -QToolBar QPushButton:checked { - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #f8bf36, stop:1 #fad57a); - border-color: #f8bf36; -} - -QToolBar QPushButton:checked:hover, -QToolBar QPushButton:checked:focus { - color: #c9c8c7; - border: 1px solid #e0a108; -} - -QToolBar { - border: 1px transparent #393838; - background-color: #8a8985; - font-weight: bold; - margin: 0px; - padding: 0px; -} - -QToolBar::handle:horizontal { - background-image: url(qss:images/Hmovetoolbar_dark.png); - width: 10px; - margin: 6px 2px 6px 2px; - background-position: top right; - background-repeat: repeat-y; -} - -QToolBar::handle:vertical { - background-image: url(qss:images/Vmovetoolbar_dark.png); - height: 10px; - margin: 2px 6px 2px 6px; - background-position: left bottom; - background-repeat: repeat-x; -} - -QToolBar::separator:horizontal { - background-image: url(qss:images/separtoolbar_dark.png); - width: 10px; - margin: 6px 2px 6px 2px; - background-position: center center; - background-repeat: repeat-y; -} - -QToolBar::separator:vertical { - background-image: url(qss:images/separtoolbar_dark.png); - height: 10px; - margin: 2px 6px 2px 6px; - background-position: center center; - background-repeat: repeat-x; -} - -QStackedWidget { - background-color: #8a8985; - border: 1px transparent #8a8985; -} - -QAbstractSpinBox { - color: #c9c8c7; - border: 1px solid #71706d; /* border top color defined after QAbstractSpinBox, QLineEdit and QComboBox */ - background-color: #71706d; - selection-color: white; - selection-background-color: #f8bf36; -} - -QAbstractSpinBox:disabled { - color: #9e9d9a; - background-color: #7f7d79; - border-color: #7f7d79; -} - -QAbstractSpinBox:up-button { - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #f9ca58, stop:1 #fad57a); - subcontrol-origin: border; - subcontrol-position: top right; - border-top-right-radius: 3px; - width: 20px; -} - -QAbstractSpinBox:down-button { - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #f8bf36, stop:1 #f9ca58); - subcontrol-origin: border; - subcontrol-position: bottom right; - border-bottom-right-radius: 3px; - width: 20px; -} - -QAbstractSpinBox:up-button:disabled, -QAbstractSpinBox:down-button:disabled { - background-color: transparent; -} - -QAbstractSpinBox::up-arrow { - image: url(qss:images/up_arrow_light.png); - top: 1px; /* fix simetry between up and down images */ -} - -QAbstractSpinBox::up-arrow:hover { - image: url(qss:images/up_arrow_lighter.png); -} - -QAbstractSpinBox::up-arrow:off { - image: url(qss:images/up_arrow_disabled_dark.png); -} - -QAbstractSpinBox::up-arrow:disabled { - image: none; -} - -QAbstractSpinBox::down-arrow { - image: url(qss:images/down_arrow_light.png); - bottom: -1px; /* fix simetry between up and down images */ -} -QAbstractSpinBox::down-arrow:hover { - image: url(qss:images/down_arrow_lighter.png); -} - -QAbstractSpinBox::down-arrow:off { - image: url(qss:images/down_arrow_disabled_dark.png); -} - -QAbstractSpinBox::down-arrow:disabled { - image: none; -} - -QToolBar QAbstractSpinBox { - margin-top: 4px; - margin-bottom: 4px; -} - -QLineEdit { - color: #c9c8c7; - background-color: #71706d; - selection-color: white; - selection-background-color: #f8bf36; - /* Padding and margin defined */ - border-style: solid; - border: 1px solid #71706d; /* border top color defined after QAbstractSpinBox, QLineEdit and QComboBox */ - border-radius: 3px; -} - -QAbstractSpinBox:focus, -QLineEdit:focus, -QComboBox:focus { - border-color: #fad57a; -} - -QComboBox { - color: #c9c8c7; - background-color: #71706d; - selection-color: white; - selection-background-color: #f8bf36; - border: 1px solid #71706d; /* border top color defined after QAbstractSpinBox, QLineEdit and QComboBox */ - border-radius: 3px; -} - -QComboBox:on { - color: white; - background-color: #71706d; - border-color: #fad57a; -} - -QComboBox::drop-down { - subcontrol-origin: margin; - subcontrol-position: top right; - width: 20px; - border-left-width: 1px; - border-left-color: transparent; - border-left-style: solid; - border-top-right-radius: 3px; - border-bottom-right-radius: 3px; - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #f8bf36, stop:1 #fad57a); -} - -QComboBox::down-arrow { - image: url(qss:images/down_arrow_light.png); -} - -QComboBox::down-arrow:on, -QComboBox::down-arrow:hover, -QComboBox::down-arrow:focus { - image: url(qss:images/down_arrow_lighter.png); -} - -QComboBox QAbstractItemView { - color: #c9c8c7; - background-color: #51504d; - border-radius: 3px; - margin: 0px; - padding: 0px; - border: none; -} - -/* Common parameters for QAbstractSpinBox, QLineEdit and QComboBox */ -QSpinBox, -QDoubleSpinBox, -QAbstractSpinBox, -QLineEdit, -QComboBox { - border-top-color: #61605d; /* Creates an inset effect inside the elements */ - padding: 2px 6px 2px 6px; /* This makes text colour work on QComboBox */ - margin: 0px 2px 0px 2px; - min-width: 70px; /* it was 120 because of QCombobox... */ - border-radius: 3px; -} -/* end Common parameters */ - -QAbstractItemView { - color: #51504d; - alternate-background-color: #cfcdc9; /* related with QListView background */ - border: 1px solid #51504d; - border-radius: 3px; - padding: 0px; -} - -/* hack to deactivate changing background color when focus (due to QFrame generic transparent color) */ -QAbstractItemView:selected, -QAbstractItemView:on, -QAbstractItemView:focus { - background-color: #d3d1cd; /* same as QTable background color */ -} - -/* hack to hide weird redundant information inside the value of a Placement cell */ -QTreeView QLabel, -QTreeView QLabel:disabled { - color: transparent; - background-color: transparent; - border: none; - border-radius: 0px; - margin: 0px; - padding: 0px; -} - -QTreeView QLineEdit { - color: #c9c8c7; - border-color: #71706d; - background-color: #71706d; - selection-color: white; - selection-background-color: #f8bf36; -} - -/* hack to hide non editable cells inside Property values */ -QTreeView QLineEdit:read-only, -QTreeView QLineEdit:disabled, -QTreeView QAbstractSpinBox:read-only, -QTreeView QAbstractSpinBox:disabled { - color: transparent; - border-color: transparent; - background-color: transparent; - selection-color: transparent; - selection-background-color: transparent; -} - -/* hack to disable margin inside Property values to following elements */ -QTreeView QSpinBox, -QTreeView QDoubleSpinBox, -QTreeView QAbstractSpinBox, -QTreeView QLineEdit, -QTreeView QComboBox { - margin-left: 0px; - margin-right: 0px; - padding-top: 0px; - padding-bottom: 0px; -} - -/* Pushbutton style for "..." inside Placement cell which launches Placement tool */ -QTreeView QPushButton { - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #71706d, stop:1 #8a8985); - border-top: none; - border-bottom: none; - border-right: none; - border-left: 1px solid #71706d; - border-radius: 0px; - margin: 0px; - padding: 0px; - height: 24px; -} - -/* Color Buttons inside the "Properties window" */ -QAbstractItemView Gui--ColorButton { - padding: 0px; - margin: 0px; - height: 10px; -} - -QAbstractItemView QPushButton:hover { - color: white; - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #e0a108, stop:1 #f8bf36); - border-color: #e0a108; -} - -QAbstractItemView QPushButton:disabled { - color: transparent; - background-color: transparent; - border-color: transparent; -} - -QLabel { - border: 0px solid #51504d; -} - -QTabWidget{ - border: none; -} - -QTabWidget:focus { - border: none; -} - -QTabWidget::pane { - border: none; - padding: 0px; - background-color: #8a8985; - position: absolute; - top: -15px; - padding-top: 15px; -} - -QTabWidget::tab-bar { - alignment: center; -} - -QTabBar { - qproperty-drawBase: 0; - left: 5px; - background-color: transparent; -} - -QTabBar:focus { - border: 0px transparent black; -} - -QTabBar::close-button { - padding: 0px; - margin: 0px; - border-radius: 2px; - background-image: url(qss:images/close_dark.png); - background-position: center center; - background-repeat: none; -} - -QTabBar::close-button:hover { - background-color: #fad57a; -} - -QTabBar::close-button:pressed { - background-color: #fce6b1; -} - -QTabBar::scroller { /* the width of the scroll buttons */ - width: 20px; -} - -/* the scroll buttons are tool buttons */ -QTabBar QToolButton, -QTabBar QToolButton:hover { - margin-top: 4px; - margin-bottom: 4px; - margin-left: 0px; - margin-right: 0px; - padding: 0px; - border: none; - background-color: #8a8985; - border-radius: 0px; -} - -QTabBar QToolButton::right-arrow:enabled { - image: url(qss:images/right_arrow_light.png); -} - -QTabBar QToolButton::right-arrow:disabled, -QTabBar QToolButton::right-arrow:off { - image: url(qss:images/right_arrow_disabled_dark.png); -} - -QTabBar QToolButton::right-arrow:hover { - image: url(qss:images/right_arrow_lighter.png); -} - - QTabBar QToolButton::left-arrow:enabled { - image: url(qss:images/left_arrow_light.png); -} - - QTabBar QToolButton::left-arrow:disabled, - QTabBar QToolButton::left-arrow:off { - image: url(qss:images/left_arrow_disabled_dark.png); -} - - QTabBar QToolButton::left-arrow:hover { - image: url(qss:images/left_arrow_lighter.png); -} - - QTabBar QToolButton::up-arrow:enabled { - image: url(qss:images/up_arrow_light.png); -} - - QTabBar QToolButton::up-arrow:disabled, - QTabBar QToolButton::up-arrow:off { - image: url(qss:images/up_arrow_disabled_dark.png); -} - - QTabBar QToolButton::up-arrow:hover { - image: url(qss:images/up_arrow_lighter.png); -} - - QTabBar QToolButton::down-arrow:enabled { - image: url(qss:images/down_arrow_light.png); -} - - QTabBar QToolButton::down-arrow:disabled, - QTabBar QToolButton::down-arrow:off { - image: url(qss:images/down_arrow_disabled_dark.png); -} - - QTabBar QToolButton::down-arrow:hover { - image: url(qss:images/down_arrow_lighter.png); -} - -/* HORIZONTAL TABS */ -QTabBar::tab:top, -QTabBar::tab:bottom { - color: #c9c8c7; - border: 1px solid #71706d; - border-left-color: #8a8985; - border-right-width: 0px; - border-bottom: 1px solid #61605d; /* shadown effect */ - background-color: #71706d; - padding:5px 15px; - margin-top: 4px; - margin-bottom: 4px; - position: center; -} - -QTabBar::tab:top:first, -QTabBar::tab:bottom:first { - border-top-left-radius: 6px; - border-bottom-left-radius: 6px; -} - -QTabBar::tab:top:last, -QTabBar::tab:bottom:last { - border-top-right-radius: 6px; - border-bottom-right-radius: 6px; - border-right-width: 1px; -} - -QTabBar::tab:top:selected, -QTabBar::tab:bottom:selected { - color: white; - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #e0a108, stop:1 #f8bf36); - border-color: #e0a108; - border-bottom: 1px solid #61605d; /* shadown effect */ -} - -QTabBar::tab:top:!selected:hover, -QTabBar::tab:bottom:!selected:hover { - color: white; -} - -QTabBar::tab:top:only-one , -QTabBar::tab:bottom:only-one { - border: 1px solid #9d7106; - border-radius: 6px; -} - -/* VERTICAL TABS */ -QTabBar::tab:left, -QTabBar::tab:right { - color: #c9c8c7; - border: 1px solid #71706d; - border-top-color: #8a8985; - border-bottom-width: 0px; - border-right: 1px solid #61605d; /* shadown effect */ - background-color: #71706d; - padding: 15px 5px; - margin-left: 4px; - margin-right: 4px; - position: center; -} - -QTabBar::tab:left:first, -QTabBar::tab:right:first { - border-top-left-radius: 6px; - border-top-right-radius: 6px; -} - -QTabBar::tab:left:last, -QTabBar::tab:right:last { - border-bottom-left-radius: 6px; - border-bottom-right-radius: 6px; - border-bottom-width: 1px; -} - -QTabBar::tab:left:selected, -QTabBar::tab:right:selected { - color: white; - background-color: qlineargradient(spread:pad, x1:0.545, y1:1, x2:0, y2:1, stop:0 #e0a108, stop:1 #f8bf36); - border-color: #e0a108; - border-right: 1px solid #61605d; /* shadown effect */ -} - -QTabBar::tab:left:!selected:hover, -QTabBar::tab:right:!selected:hover { - color: white; -} - -QTabBar::tab:left:only-one , -QTabBar::tab:right:only-one { - border: 1px solid #9d7106; - border-radius: 6px; -} - -QDockWidget { - color: #51504d; - border: 1px solid #8a8985; - titlebar-close-icon: url(qss:images/close_dark.png); - titlebar-normal-icon: url(qss:images/undock_dark.png); -} - -QDockWidget::title { - text-align: center; - background-color: #7f7d79; - padding: 4px; - border-radius: 4px; -} - -QDockWidget::close-button, -QDockWidget::float-button { - border: 1px transparent #8a8985; - border-radius: 2px; - background: transparent; - subcontrol-origin: padding; - subcontrol-position: right center; -} - -QDockWidget::close-button { - right: 4px; -} - -QDockWidget::float-button { - right: 22px; -} - -QDockWidget::close-button:hover, -QDockWidget::float-button:hover { - background: #9e9d9a; -} - -QDockWidget::close-button:pressed, -QDockWidget::float-button:pressed { - /*padding: 1px -1px -1px 1px;*/ - background-color: #7f7d79; -} - -QTreeView, -QListView { - color: #51504d; - border: 1px solid #8a8985; - border-radius: 4px; - background-color: #d3d1cd; /* related with alternate-background-color*/ - selection-color: white; - selection-background-color: #f8bf36; /* should be similar to QListView::item selected background-color */ - show-decoration-selected: 1; /* make the selection span the entire width of the view */ - padding: 0px; - margin: 0px 4px 0px 4px; - min-width: 130px; /* hack to correctly align Preferences icon list */ -} - -QListView, -QListView::item, -QListView QAbstractItemView { - margin: 0px; - icon-size: 20px; /* temporal */ - paint-alternating-row-colors-for-empty-area: 1; - position: absolute; - subcontrol-origin: margin; - subcontrol-position: left top; -} - -/* Control dropdown list margins of QComboBox */ -QComboBox QTreeView, -QComboBox QListView { - margin: 0px; - padding: 0px; -} - -QListView::item { - border: 0px transparent #8a8985; - border-radius: 4px; - background-color: transparent; - padding: 0px; - margin: 0px; - display: inline-block; - position: relative; -} - -QListView::item:selected, -QTreeView::item:selected { - color: white; - background-color: #f8bf36; /* should be similar to QListView selection-background-color */ -} - -/* Branch system */ -QTreeView::branch { - background: transparent; -} - -QTreeView::branch:has-siblings:!adjoins-item { - border-image: url(qss:images/branch_vline.png) 0; -} - -QTreeView::branch:has-siblings:adjoins-item { - border-image: url(qss:images/branch_more.png) 0; -} - -QTreeView::branch:!has-children:!has-siblings:adjoins-item { - border-image: url(qss:images/branch_end.png) 0; -} - -QTreeView::branch:closed:has-children:has-siblings { - image: url(qss:images/branch_closed_dark.png); -} - -QTreeView::branch:has-children:!has-siblings:closed { - image: url(qss:images/branch_closed_dark.png); - border-image: url(qss:images/branch_end.png) 0; -} - -QTreeView::branch:open:has-children:has-siblings { - image: url(qss:images/branch_open_dark.png); - border-image: url(qss:images/branch_more.png) 0; -} - -QTreeView::branch:open:has-children:!has-siblings { - image: url(qss:images/branch_open_dark.png); - border-image: url(qss:images/branch_end.png) 0; -} - -QSlider, -QSlider:active, -QSlider:!active { - border: none; - background-color: transparent; -} - -QSlider:horizontal { - padding: 0px 10px; -} - -QSlider:vertical { - padding: 10px 0px; -} - -QSlider::groove:horizontal { - border: 1px solid #71706d; - background-color: #71706d; - height: 8px; - border-radius: 5px; - margin: 4px 0; -} - -QSlider::groove:vertical { - border: 1px solid #71706d; - background-color: #71706d; - width: 8px; - border-radius: 5px; - margin: 4px 0; -} - -QSlider::groove:horizontal:disabled, -QSlider::groove:vertical:disabled { - border-color: #7f7d79; - background-color: #7f7d79; -} - -QSlider::handle:horizontal, -QSlider::handle:vertical { - background-color: #51504d; - border: 1px solid #51504d; - width: 14px; - height: 14px; - border-radius: 8px; -} - -QSlider::handle:horizontal { - margin: -4px 0; -} - -QSlider::handle:vertical { - margin: 0 -4px; -} - -QSlider::handle:horizontal:hover, -QSlider::handle:vertical:hover { - border-color: #e0a108; - background-color: #e0a108; -} - -QSlider::handle:horizontal:pressed, -QSlider::handle:vertical:pressed { - border-color: #9d7106; - background-color: #9d7106; -} - -QSlider::handle:horizontal:disabled, -QSlider::handle:vertical:disabled { - border-color: #71706d; - background-color: #8a8985; -} - -QToolButton { - color: #c9c8c7; - text-align: center; - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #71706d, stop:1 #8a8985); - border: 1px solid #51504d; - padding-top: 5px; - padding-bottom: 5px; - padding-left: 15px; - padding-right: 15px; - margin-top: 5px; - margin-bottom: 5px; - margin-left: 10px; - margin-right: 10px; - border-radius: 3px; - outline: none; - /*min-width: 36px;*/ -} - -QToolButton:hover, -QToolButton:focus { - color: white; - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #e0a108, stop:1 #f8bf36); - border-color: #e0a108; -} - -QToolButton:disabled, -QToolButton:disabled:checked { - color: #71706d; - background-color: #8a8985; - border-color: #71706d; -} - -QToolButton:pressed { - border-color: #fad57a; -} - -QToolButton:checked { - background-color: #f8bf36; - border-color: #e0a108; -} - -QToolButton::menu-indicator { - subcontrol-origin: padding; - subcontrol-position: center right; - right: 4px; -} - -/*The "show more" button (it can also be stylable with "QToolBarExtension" */ -QToolButton#qt_toolbar_ext_button { - border-radius: 0px; - margin: 0px; - padding: 0px; - /*background-image: url(qss:images/more_dark.png);*/ - image: transparent; - background-repeat: none; - background-position: center left; -} - -QToolButton#qt_toolbar_ext_button:hover { - /*background-image: url(qss:images/more_light.png);*/ - border-color: #7f7d79; - background-color: #7f7d79; -} - -QToolButton#qt_toolbar_ext_button:on { - /*background-image: url(qss:images/more_light.png);*/ - border-color: #7f7d79; - background-color: #7f7d79; -} - -/*Buttons inside the Toolbar*/ -QToolBar QToolButton { - color: #51504d; - background-color: #8a8985; - border: 1px transparent #8a8985; - border-radius: 3px; - margin: 0px; - padding: 2px; -} - -QToolBar QToolButton:disabled { - background-color: #8a8985; -} - -QToolBar QToolButton:checked { - color: #9d7106; - background-color: #f8bf36; - border: 1px solid #f8bf36; -} - -QToolBar QToolButton:hover { - background-color: #8a8985; -} - -QToolBar QToolButton:pressed, -QToolBar QToolButton::menu-button:pressed { - background-color: #7f7d79; - border: 1px solid #7f7d79; -} - - -QToolBar QToolButton::menu-indicator:hover, -QToolBar QToolButton::menu-indicator:pressed { - background-color: transparent; -} - -/* the subcontrols below are used only in the MenuButtonPopup mode */ -QToolBar QToolButton::menu-button { - border: none; - border-top-right-radius: 3px; - border-bottom-right-radius: 3px; - width: 16px; /* 16px width + 4px for border = 20px allocated above */ - outline: none; - background-color: transparent; -} - -QToolBar QToolButton::menu-button:hover, -QToolBar QToolButton::menu-button:active, -QToolBar QToolButton::menu-button:disabled { - border-color: transparent; - background-color: transparent; -} - -QToolBar QToolButton::menu-arrow { - background-image: url(qss:images/down_arrow_light.png); - background-position: center center; - background-repeat: none; - subcontrol-origin: padding; - subcontrol-position: bottom right; - height: 10px; /* same as arrow image */ -} - -QToolBar QToolButton::menu-arrow:open { - background-image: url(qss:images/down_arrow_lighter.png); -} - -/* If the QToolButton is also a menu: */ -QToolBar QToolButton#qt_toolbutton_menubutton { - padding-right: 20px; - border: 1px solid transparent; -} - -QToolBar QToolButton#qt_toolbutton_menubutton:hover, -QToolBar QToolButton#qt_toolbutton_menubutton:pressed, -QToolBar QToolButton#qt_toolbutton_menubutton:open { - border: 1px solid #fad57a; -} - -QToolBar QToolButton#qt_toolbutton_menubutton::menu-button { - border: none; /* necessary because it inherits the border from QToolButton#qt_toolbutton_menubutton */ -} - -QToolBar QToolButton#qt_toolbutton_menubutton::menu-button:hover, -QToolBar QToolButton#qt_toolbutton_menubutton::menu-button:pressed, -QToolBar QToolButton#qt_toolbutton_menubutton::menu-button:open { - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #f8bf36, stop:1 #fad57a); -} - -QToolBar:tear { - color: blue; - background-color: red; -} - -QTableView { - color: #51504d; - border: 1px solid #71706d; - gridline-color: #9e9d9a; - background-color: #d3d1cd; - selection-color: #51504d; - selection-background-color: #fce6b1; - border-radius: 3px; - padding: 0px; - margin: 0px; -} - -QTableView::item:hover { - background: #cbc9c4; -} - -QTableView::item:disabled { - color: #8a8985; -} - -QTableView::item:selected { - color: #9d7106; - background-color: #fad57a; -} - -/* when editing a cell: */ -QTableView QLineEdit { - color: #51504d; - background-color: #cfcdc9; - border-radius: 0px; - margin: 0px; - padding: 0px; -} - -QHeaderView { - border: none; - background-color: #51504d; - border-top-left-radius: 3px; - border-top-right-radius: 3px; - border-bottom-left-radius: 0px; - border-bottom-right-radius: 0px; - margin: 0px; - padding: 0px; -} - -QHeaderView::section { - background-color: transparent; - color: #c9c8c7; - border: 1px solid transparent; - border-radius: 0px; - text-align: center; -} - -QHeaderView::section::vertical { - padding: 0px 6px 0px 6px; - border-bottom: 1px solid #71706d; -} - -QHeaderView::section::vertical:first { - border-top: 1px solid #71706d; -} - -QHeaderView::section::vertical:last { - border-bottom: none; -} - -QHeaderView::section::vertical:only-one { - border: none; -} - -QHeaderView::section::horizontal { - padding: 0px 0px 0px 6px; - border-right: 1px solid #71706d; -} - -QHeaderView::section::horizontal:first { - border-left: 1px solid #71706d; -} - -QHeaderView::section::horizontal:last { - border-left: none; -} - -QHeaderView::section::horizontal:only-one { - border: none; -} - -QDockWidget QHeaderView::section { - border-width: 6px 1px 6px 1px; /* hack to bigger margin for Model Panel table headers */ -} - -QHeaderView::section:checked { - color: #9d7106; - background-color: #fad57a; -} - - /* style the sort indicator */ -QHeaderView::down-arrow { - image: url(qss:images/down_arrow_light.png); -} - -QHeaderView::up-arrow { - image: url(qss:images/up_arrow_light.png); -} - -QTableCornerButton::section { - background-color: #51504d; - border: 1px solid #51504d; - border-radius: 0px; -} - -QToolBox { - padding: 3px; - color: #9d7106; - border: none; -} - -QToolBox::tab { /* TODO */ - color: #c9c8c7; - background-color: #71706d; - border: 1px transparent #51504d; - border-bottom: 1px transparent #71706d; - border-top-left-radius: 5px; - border-top-right-radius: 5px; - padding: 5px; -} - -QToolBox::tab:selected { /* italicize selected tabs */ - color: #9d7106; - font: italic; - background-color: #f8bf36; - border-color: #f8bf36; - } - -QStatusBar::item { - color: #c9c8c7; - background-color: #8a8985; - border: 1px solid #8a8985; - border-radius: 2px; -} - - -QSplitter::handle { - background-color: #8a8985; - margin: 0px 11px; - padding: 0px; - border-radius: 3px; -} - -QSplitter::handle:vertical { - background-image: url(qss:images/splitter_horizontal_dark.png); - background-position: center center; - background-repeat: none; - margin: 2px 10px 2px 10px; - height: 2px; -} - -QSplitter::handle:horizontal { - background-image: url(qss:images/splitter_horizontal_dark.png); - background-position: center center; - background-repeat: none; - margin: 10px 2px 10px 2px; - width: 2px; -} - -QSplitter::handle:horizontal:hover, -QSplitter::handle:vertical:hover { - background-color: #8a8985; -} - -/* Similar to the splitter is the following window separator: */ -QMainWindow::separator { - border: 1px solid #8a8985; - background-color: #8a8985; - background-position: center center; - background-repeat: none; -} - -QMainWindow::separator:hover { - background-color: #8a8985; -} - -QMainWindow::separator:horizontal { - height: 4px; - background-image: url(qss:images/splitter_horizontal_dark.png); -} - -QMainWindow::separator:vertical { - width: 4px; - background-image: url(qss:images/splitter_vertical_dark.png); -} - -QLabel { - padding-top: 3px; - padding-bottom: 3px; - background-color: transparent; -} - -QLabel:disabled { - color: #71706d; - background-color: transparent; -} - -/* Action group */ -QFrame[class="panel"] { - border: none; - background-color: #8a8985; -} - -/* Separator line */ -QSint--ActionGroup QFrame[height="1"], -QSint--ActionGroup QFrame[height="2"], -QSint--ActionGroup QFrame[height="3"], -QSint--ActionGroup QFrame[width="1"], -QSint--ActionGroup QFrame[width="2"], -QSint--ActionGroup QFrame[width="3"] { - border-color: #9e9d9a; -} - -QSint--ActionGroup QFrame[class="header"] { - border: none; - background-color: #51504d; - border-top-left-radius: 3px; - border-top-right-radius: 3px; - border-bottom-left-radius: 0px; - border-bottom-right-radius: 0px; - margin: 0px; - padding: 0px; -} - -QSint--ActionGroup QFrame[class="header"]:hover { - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #e0a108, stop:1 #f8bf36); -} - -QSint--ActionGroup QToolButton[class="header"] { - text-align: left; - font-weight: bold; - color: #c9c8c7; - background-color: transparent; - border: none; - margin: 0px; - padding: 0px; -} - -QSint--ActionGroup QToolButton[class="header"]:hover { - color: white; -} - -QSint--ActionGroup QFrame[class="header"] QLabel { - background-color: transparent; - background-image: url(qss:images/down_arrow_light.png); - background-repeat: none; - background-position: center center; - padding: 0px; - margin: 0px; -} - -QSint--ActionGroup QFrame[class="header"] QLabel:hover { - background-color: transparent; - background-image: url(qss:images/down_arrow_lighter.png); -} - -QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"] { - background-color: transparent; - background-image: url(qss:images/up_arrow_light.png); - background-repeat: none; - background-position: center center; - padding: 0px; - margin: 0px; -} - -QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"]:hover { - background-color: transparent; - background-image: url(qss:images/up_arrow_lighter.png); -} - -QSint--ActionGroup QFrame[class="content"] { - background-color: #d3d1cd; - margin: 0px; - padding: 0px; - border: none; - border-top-left-radius: 0px; - border-top-right-radius: 0px; - border-bottom-left-radius: 3px; - border-bottom-right-radius: 3px; -} - -/* HACK -This might not be the best way to reset the background color: */ -QSint--ActionGroup QFrame[class="content"] QWidget { - background-color: #d3d1cd; -} - -QSint--ActionGroup QFrame[class="content"] QPushButton { - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #71706d, stop:1 #8a8985); -} - -QSint--ActionGroup QFrame[class="content"] QPushButton:hover, -QSint--ActionGroup QFrame[class="content"] QPushButton:focus { - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #e0a108, stop:1 #f8bf36); -} - -QSint--ActionGroup QFrame[class="content"] QPushButton:disabled, -QSint--ActionGroup QFrame[class="content"] QPushButton:disabled:checked { - color: #d3d1cd; - border-color: #9e9d9a; - background-color: #9e9d9a; -} -QSint--ActionGroup QFrame[class="content"] QPushButton:checked { - background-color: #f8bf36; -} - -QSint--ActionGroup QFrame[class="content"] QComboBox { - background-color: #71706d; -} - -QSint--ActionGroup QFrame[class="content"] QComboBox:on { - background-color: #71706d; -} - -QSint--ActionGroup QFrame[class="content"] QComboBox QAbstractItemView { - border-color: #51504d; - background-color: #51504d; -} - -QSint--ActionGroup QFrame[class="content"] QListView { - border-color: #cbc9c4; - background-color: #cbc9c4; -} - -QSint--ActionGroup QFrame[class="content"] QAbstractSpinBox { - background-color: #71706d; -} - -QSint--ActionGroup QFrame[class="content"] QLineEdit { - background-color: #71706d; -} - -QSint--ActionGroup QFrame[class="content"] QComboBox:disabled, -QSint--ActionGroup QFrame[class="content"] QAbstractSpinBox:disabled, -QSint--ActionGroup QFrame[class="content"] QLineEdit:disabled { - color: #d3d1cd; - border-color: #9e9d9a; - background-color: #9e9d9a; -} - -QSint--ActionGroup QFrame[class="content"] QCheckBox:disabled, -QSint--ActionGroup QFrame[class="content"] QRadioButton:disabled { - color: #9e9d9a; - border-color: #9e9d9a; -} - -QSint--ActionGroup QFrame[class="content"] QCheckBox::indicator:disabled, -QSint--ActionGroup QFrame[class="content"] QRadioButton::indicator:disabled { - border-color: #9e9d9a; - background-color: transparent; -} - -QSint--ActionGroup QFrame[class="content"] QHeaderView { - border: none; - background-color: #51504d; - border-radius: 0px; - margin: 0px; - padding: 0px; -} - -QSint--ActionGroup QFrame[class="content"] QHeaderView::section { - background-color: transparent; - color: #c9c8c7; - border: 1px solid transparent; - border-radius: 0px; - text-align: center; -} - -QSint--ActionGroup QFrame[class="content"] QHeaderView::section::horizontal { - padding: 6px 0px 6px 6px; - border-right: 1px solid #71706d; -} - -QSint--ActionGroup QFrame[class="content"] QHeaderView::section::horizontal:first { - border-left: 1px solid #8a8985; -} - -QSint--ActionGroup QFrame[class="content"] QHeaderView::section::horizontal:last { - border-left: none; -} - -QSint--ActionGroup QFrame[class="content"] QHeaderView::section::horizontal:only-one { - border: none; -} -/* enf of HACK */ - - -QSint--ActionGroup QToolButton[class="action"], -QSint--ActionGroup QToolButton[class="action"]:enabled { - font-weight: bold; - color: #71706d; -} - -QSint--ActionGroup QToolButton[class="action"]:hover, -QSint--ActionGroup QToolButton[class="action"]:enabled:hover { - text-decoration: none; - color: #51504d; - background-color: #cbc9c4; - border-color: #cbc9c4; -} - -QSint--ActionGroup QToolButton[class="action"]:disabled { - color: #8a8985; - background-color: #cbc9c4; - border-color: #cbc9c4; -} - -QSint--ActionGroup QToolButton[class="action"]:focus, -QSint--ActionGroup QToolButton[class="action"]:pressed -QSint--ActionGroup QToolButton[class="action"]:enabled:focus, -QSint--ActionGroup QToolButton[class="action"]:enabled:pressed { - color: white; - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #e0a108, stop:1 #f8bf36); - border-color: #e0a108; -} - -QSint--ActionGroup QToolButton[class="action"]:on { - background-color: red; - color: red; -} - - -/* EXPERIMENTAL -================================================= */ -QDial { - background-color: #8a8985; -} - -QLCDNumber { - background-color: #8a8985; -} - -QCalendarWidget { - background-color: green; -} - -/* Expressions popup dialog fixes to embed elements */ -QAbstractSpinBox QPushButton { - padding: 0px 15px 0px 15px; - margin: 2px 10px 2px 10px; - border: 1px solid #51504d; - border-radius: 3px; -} -QAbstractSpinBox QPushButton:disabled { - color: #9e9d9a; - background-color: #8a8985; - border-color: #8a8985; -} - -QAbstractSpinBox QFrame, -QSint--ActionGroup QFrame[class="content"] QAbstractSpinBox QFrame { - color: #fce6b1; - background-color: #71706d; - border-color: #71706d; - border-radius: 0px; - margin: 0px; - padding: 0px; -} - -QSint--ActionGroup QFrame[class="content"] QAbstractSpinBox QPushButton { - padding: 6px 15px 6px 15px; -} \ No newline at end of file +/* +ABOUT +============================================================================================================ +version 2.0 +QT theme (stylesheet) specially developed for FreeCAD (http://www.freecadweb.org/). +It might work with other software that uses QT styling. + + +LICENSE +============================================================================================================ +Copyright (c) 2016 Pablo Gil Fernández + +This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. +To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/. + + +INSTALLATION +============================================================================================================ +1) Place the .qss files and /images/ folder in the path that fits your OS: + OSX = /Users/[YOUR_USER_NAME]/Library/Preferences/FreeCAD/Gui/Stylesheets/ + WINDOWS = C:/[INSTALLATION_PATH]/FreeCAD/data/Gui/fStylesheets/ + LINUX = /home/[YOUR_USER_NAME]/.FreeCAD/Gui/Stylesheets/ + +2) In order to display correctly images: + 2.1) FreeCAD 0.16 (development builds newer than commit 5b3d50a): that's it, you are done! + + 2.2) FreeCAD 0.15: Images used in the theme need ABSOLUTE paths to be found by FreeCAD, so you should search the string "qss:images" (without "") and replace with the real path of your computer. It should be done with all the .qss files you want to install-use + find = qss:images + replace = /Users/myName/Library/Preferences/FreeCAD/Gui/Stylesheets/images + + +CUSTOMIZATION +============================================================================================================ +If you would like to change the overall look/style of the theme, just find and replace following colors in the whole file: + BACKGROUND (darker to ligher) + black + #1e1e1e + #3c3c3c + #505050 + #5a5a5a + #646464 + #6e6e6e = main background color + #787878 + #8c8c8c + #a0a0a0 + #b4b4b4 + #bebebe + #c8c8c8 + #d2d2d2 + #e0e0e0 + #f5f5f5 + white + + SELECTION (darker to lighter) + #624b14 + #b28416 + #d0970c + #daa116 = main selection color + #e2ac2a = used to build QSpinBox up and down buttons, it's used as color in the middle + #e3b64d + #e0c992 + #e3d8b9 + + +KNOWN BUGS and TO DO +============================================================================================================ + - please, follow the link to get updated information: http://forum.freecadweb.org/viewtopic.php?f=10&t=12417 +*/ + + +/*================================================================================================== +Reset elements +==================================================================================================*/ +/* Reseting everything helps to unify styles across different operating systems */ +* { + padding: 0px; + margin: 0px; + border: 0px; + border-style: none; +} + +/* specific reset for elements inside QToolBar */ +QToolBar * { + margin: 0px; + padding: 0px; +} + + +/*================================================================================================== +Main window +==================================================================================================*/ +QMainWindow, +QDialog, +QToolBar { + background-color: #6e6e6e; /* main background color */ +} + +QMdiArea[showImage="true"] { + background-image: url(qss:images/background_freecad.png); + background-position: center; + background-repeat: no-repeat; +} + + +/*================================================================================================== +MENUS +==================================================================================================*/ +QMenuBar, +QMenuBar::item { + color: #e0e0e0; + background-color: #6e6e6e; /* main background color */ +} + +QMenu, +QMenu::item { + color: #e0e0e0; + background-color: #5a5a5a; +} + +QMenuBar::item:selected, +QMenuBar::item:pressed, +QMenu::item:selected, +QMenu::item:pressed { + color: white; + background-color: #daa116; +} + +QMenu::right-arrow { + width: 10px; + height: 10px; + image:url(qss:images/right_arrow_dark.png); + margin-right: 2px; +} + +QMenu::right-arrow:selected { + image:url(qss:images/right_arrow_lighter.png); +} + +QMenu::item { + padding: 2px 16px 2px 26px; /* make room for icon at left */ + border: 1px solid transparent; /* reserve space for selection border */ +} + +QMenu::icon { + margin-left: 2px; +} + +QMenu::separator { + height: 1px; + background-color: rgba(255,255,255,30); + margin: 6px 4px; +} + +QMenu::indicator:non-exclusive:checked { + color: white; +} + + +/*================================================================================================== +Tool bar +==================================================================================================*/ +QToolBar { + border: none; + min-width: 32px; /* allows a minimum of space between QToolBar colums */ + min-height: 32px; /* allows a minimum of space between QToolBar rows */ +} + +QToolBar::handle:horizontal { + background-image: url(qss:images/Hmovetoolbar_dark.png); + width: 10px; + margin: 6px 2px 6px 2px; + background-position: top right; + background-repeat: repeat-y; +} + +QToolBar::handle:vertical { + background-image: url(qss:images/Vmovetoolbar_dark.png); + height: 10px; + margin: 2px 6px 2px 6px; + background-position: left bottom; + background-repeat: repeat-x; +} + +QToolBar::separator:horizontal { + background-image: url(qss:images/separtoolbar_dark.png); + width: 10px; + margin: 6px 2px 6px 2px; + background-position: center center; + background-repeat: repeat-y; +} + +QToolBar::separator:vertical { + background-image: url(qss:images/separtoolbar_dark.png); + height: 10px; + margin: 2px 6px 2px 6px; + background-position: center center; + background-repeat: repeat-x; +} + + +/*================================================================================================== +Group box +==================================================================================================*/ +QGroupBox { + color: rgba(0,0,0,120); + border:1px solid rgba(0, 0, 0, 20); /* lighter than its own border-color */; + border-radius: 3px; + margin-top: 10px; + padding: 6px; + background-color: rgba(255, 255, 255, 15); +} + +QGroupBox:title { + top: -8px; + left: 12px; +} + + +/*================================================================================================== +Tooltip +==================================================================================================*/ +QToolTip { + color: #1e1e1e; + background-color: #b4b4b4; + /*opacity: 90%; doesn't correctly work */ + padding: 4px; + border-radius: 3px; /* has no effect */ +} + + +/*================================================================================================== +Dock widget +==================================================================================================*/ +QDockWidget { + color: rgba(0,0,0,120); + titlebar-close-icon: url(qss:images/close_dark.png); + titlebar-normal-icon: url(qss:images/undock_dark.png); +} + +QDockWidget::title { + text-align: center; + background-color: rgba(0,0,0,20); + border: 4px solid #6e6e6e; /* fix to simulate margin between this :title and tabs */ /* same as main background color */ + border-radius: 6px; /* bigger than normal due to previous border fix */ + padding: 4px 0px; /* also needed because of previous border fix */ +} + +QDockWidget::close-button, +QDockWidget::float-button { + border: none; + background: transparent; + border-radius: 3px; + subcontrol-origin: padding; + subcontrol-position: right center; +} + +QDockWidget::close-button { + right: 4px; +} + +QDockWidget::float-button { + right: 22px; +} + +QDockWidget::close-button:hover, +QDockWidget::float-button:hover { + background-color: rgba(255,255,255,15); +} + +QDockWidget::close-button:pressed, +QDockWidget::float-button:pressed { + background-color: rgba(255,255,255,30); +} + +/* fix for Python Console (probably there is a smarter way to arrive to it) */ +QDockWidget > QFrame { + background-color: #c8c8c8; + border: 1px solid #505050; +} + + +/*================================================================================================== +Progress bar +==================================================================================================*/ +QProgressBar, +QProgressBar:horizontal { + color: white; + background-color: rgba(0,0,0,10); + text-align: center; + border: 1px solid rgba(0,0,0,80); + padding: 1px; + border-radius: 3px; +} +QProgressBar::chunk, +QProgressBar::chunk:horizontal { + background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #daa116, stop:1 #d0970c); + border-radius: 3px; +} + + +/*================================================================================================== +Scroll +==================================================================================================*/ +QAbstractScrollArea { + border-radius: 2px; + background-color: transparent; +} + +QAbstractScrollArea::corner { + border: none; + background-color: transparent; +} + +QScrollBar:horizontal { + background-color: transparent; + height: 15px; + margin: 0px; +} + +QScrollBar::handle:vertical, +QScrollBar::handle:horizontal { + background-color: rgba(0,0,0,100); +} + +QScrollBar::handle:vertical:hover, +QScrollBar::handle:horizontal:hover { + background-color: #1e1e1e; +} + +QScrollBar::handle:horizontal { + min-width: 5px; + border-radius: 3px; + margin: 4px 15px; +} + +QScrollBar::sub-line:horizontal { + margin: 1px 3px 0px 3px; /* 1px to correctly fit the 10px width image */ + border-image: url(qss:images/left_arrow_light.png); + width: 6px; + height: 10px; + subcontrol-position: left; + subcontrol-origin: margin; +} + +QScrollBar::add-line:horizontal { + margin: 1px 3px 0px 3px; /* 1px to correctly fit the 10px width image */ + border-image: url(qss:images/right_arrow_light.png); + width: 6px; + height: 10px; + subcontrol-position: right; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:horizontal:hover, +QScrollBar::sub-line:horizontal:on { + border-image: url(qss:images/left_arrow_lighter.png); +} + +QScrollBar::add-line:horizontal:hover, +QScrollBar::add-line:horizontal:on { + border-image: url(qss:images/right_arrow_lighter.png); +} + +QScrollBar::up-arrow:horizontal, +QScrollBar::down-arrow:horizontal { + background-color: none; +} + +QScrollBar::add-page:horizontal, +QScrollBar::sub-page:horizontal { + background-color: transparent; +} + +QScrollBar:vertical { + background-color: transparent; + width: 15px; + margin: 0px; +} + +QScrollBar::handle:vertical { + min-height: 5px; + border-radius: 3px; + margin: 15px 4px; +} + +QScrollBar::sub-line:vertical { + margin: 3px 0px 3px 1px; /* 1px to correctly fit the 10px width image */ + border-image: url(qss:images/up_arrow_light.png); + height: 6px; + width: 10px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::add-line:vertical { + margin: 3px 0px 3px 1px; /* 1px to correctly fit the 10px width image */ + border-image: url(qss:images/down_arrow_light.png); + height: 6px; + width: 10px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:vertical:hover, +QScrollBar::sub-line:vertical:on { + border-image: url(qss:images/up_arrow_lighter.png); +} + +QScrollBar::add-line:vertical:hover, +QScrollBar::add-line:vertical:on { + border-image: url(qss:images/down_arrow_lighter.png); +} + +QScrollBar::up-arrow:vertical, +QScrollBar::down-arrow:vertical { + background-color: none; +} + +QScrollBar::add-page:vertical, +QScrollBar::sub-page:vertical { + background-color: transparent; +} + + +/*================================================================================================== +Tab bar +==================================================================================================*/ +QTabWidget::pane { + background-color: transparent; /* temporal (transparent background) */ /* tab content background color */ + position: absolute; +} + +QTabWidget::pane:top { + top: -1px; + border-top: 1px solid #5a5a5a; +} + +QTabWidget::pane:bottom { + bottom: -1px; + border-bottom: 1px solid #5a5a5a; +} + +QTabWidget::pane:left { + right: -1px; + border-right: 1px solid #5a5a5a; +} + +QTabWidget::pane:right { + left: -1px; + border-left: 1px solid #5a5a5a; +} + +QTabWidget::tab-bar:top, +QTabWidget::tab-bar:bottom { + left: 10px; +} + +QTabWidget::tab-bar:left, +QTabWidget::tab-bar:right { + top: 10px; +} + +QTabBar { + qproperty-drawBase: 0; /* important */ + background-color: transparent; +} + +/* Workaround for QTabBars created from docked QDockWidgets which don't draw the border if not set and reseted as follows: */ +QTabBar { + border-top: 1px solid #5a5a5a; /* set color for all QTabBars */ +} +QDockWidget QTabBar { + border-color: transparent; /* set color for all QTabBars but ones created from QDockWidget */ +} +QDialog QTabBar { + border-color: transparent; /* set color for QTabBars inside Preferences dialog */ +} +/* end fix */ + +QTabBar::tab { + background-color: transparent; + border: 1px solid transparent; + padding: 3px; +} + +QTabBar::tab:top, +QTabBar::tab:bottom { + border-top-width: 4px; /* same as selected tab colored border in order to center close-button */ + border-bottom-width: 4px; /* same as selected tab colored border in order to center close-button */ + min-width: 11ex; + margin-left: 2px; + margin-right: 2px; +} + +QTabBar::tab:left, +QTabBar::tab:right { + border-left-width: 4px; /* same as selected tab colored border in order to center close-button */ + border-right-width: 4px; /* same as selected tab colored border in order to center close-button */ + min-height: 14ex; + margin-top: 2px; + margin-bottom: 2px; +} + +QTabBar::tab:selected { + color: #d2d2d2; + background-color: transparent; /* temporal (transparent background) */ + border-color: #5a5a5a; +} + +QTabBar::tab:top:selected { + border-top: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #daa116, stop:1 #d0970c); /* selection color */ + border-bottom-color: #6e6e6e; /* same as tab content background color */ +} + +QTabBar::tab:bottom:selected { + border-bottom: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #daa116, stop:1 #d0970c); /* selection color */ + border-top-color: #6e6e6e; /* same as tab content background color */ +} + +QTabBar::tab:right:selected { + border-left: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 #daa116, stop:1 #d0970c); /* selection color */ + border-right-color: #6e6e6e; /* same as tab content background color */ +} + +QTabBar::tab:left:selected { + border-right: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 #daa116, stop:1 #d0970c); /* selection color */ + border-left-color: #6e6e6e; /* same as tab content background color */ +} + +QTabBar::tab:!selected { + color: rgba(0,0,0,120); +} + +QTabBar::tab:!selected:hover { + color: rgba(0,0,0,180); + background-color: rgba(0,0,0,20); +} + +QTabBar::tab:first:selected { + margin-left: 0; /* the first selected tab has nothing to overlap with on the left */ +} + +QTabBar::tab:last:selected { + margin-right: 0; /* the last selected tab has nothing to overlap with on the right */ +} + +QTabBar::tab:only-one { + margin: 0; /* if there is only one tab, we don't want overlapping margins */ +} + +/* hack to access Preference TabBar background */ +QDialog#Gui__Dialog__DlgPreferences > QFrame QFrame { + background-color: transparent; /* main background color (in Windows is #6e6e6e) */ +} + +/* fix for previous hack that broke QTabWidget background on Windows */ +QDialog#Gui__Dialog__DlgPreferences QTabWidget::pane { + background-color: transparent; /* temporal (transparent background) */ +} + +/* hack to correctly align Preferences icon list on OSX */ +QDialog#Gui__Dialog__DlgPreferences > QListView { + min-width: 130px; +} + +/* unique styles for sections inside Preferences */ +QDialog#Gui__Dialog__DlgPreferences > QListView::item { + border-radius: 4px; +} + +QDialog#Gui__Dialog__DlgPreferences > QListView::item:hover { + background-color: #b4b4b4; +} + +QDialog#Gui__Dialog__DlgPreferences > QListView::item:selected { + color: white; + background-color: #daa116; + border: 1px solid #d0970c; +} + + +/*================================================================================================== +Tab bar buttons +==================================================================================================*/ +/* Close button */ +QTabBar::close-button { + subcontrol-origin: margin; + subcontrol-position: center right; /* only works for QT 4.6 and newer */; + border-radius: 2px; + background-image: url(qss:images/close_dark.png); + background-position: center center; + background-repeat: none; +} + +QTabBar::close-button:hover { + background-color: rgba(255,255,255,20); +} + +QTabBar::close-button:pressed { + background-color: rgba(255,255,255,30); +} + +/* Fix for lists inside Model tab */ +QDockWidget QTreeView, +QDockWidget QListView, +QDockWidget QTableView { + margin: 6px; + border: 1px solid #505050; /* same as regular QTreeView, QListView and QTableView */ + min-height: 40px; /* neccesary in some areas of FreeCAD */ +} + +/* Buttons to scroll tabs if there is not space to show all of them: */ +QTabBar::scroller { + width: 20px; /* the width of the scroll buttons */ +} + +QTabBar QToolButton, +QTabBar QToolButton:hover { + background-color: #6e6e6e; /* same as main background color */ +} + +QTabBar QToolButton::right-arrow:enabled { + image: url(qss:images/right_arrow_dark.png); +} + +QTabBar QToolButton::right-arrow:disabled, +QTabBar QToolButton::right-arrow:off { + image: url(qss:images/right_arrow_disabled_dark.png); +} + +QTabBar QToolButton::right-arrow:hover { + image: url(qss:images/right_arrow_darker.png); +} + + QTabBar QToolButton::left-arrow:enabled { + image: url(qss:images/left_arrow_dark.png); +} + + QTabBar QToolButton::left-arrow:disabled, + QTabBar QToolButton::left-arrow:off { + image: url(qss:images/left_arrow_disabled_dark.png); +} + + QTabBar QToolButton::left-arrow:hover { + image: url(qss:images/left_arrow_darker.png); +} + + QTabBar QToolButton::up-arrow:enabled { + image: url(qss:images/up_arrow_dark.png); +} + + QTabBar QToolButton::up-arrow:disabled, + QTabBar QToolButton::up-arrow:off { + image: url(qss:images/up_arrow_disabled_dark.png); +} + + QTabBar QToolButton::up-arrow:hover { + image: url(qss:images/up_arrow_darker.png); +} + + QTabBar QToolButton::down-arrow:enabled { + image: url(qss:images/down_arrow_dark.png); +} + + QTabBar QToolButton::down-arrow:disabled, + QTabBar QToolButton::down-arrow:off { + image: url(qss:images/down_arrow_disabled_dark.png); +} + + QTabBar QToolButton::down-arrow:hover { + image: url(qss:images/down_arrow_darker.png); +} + +QTabBar::tear { + /* default OS tear better */ +} + + +/*================================================================================================== +Tree and list views +==================================================================================================*/ +QTreeView, +QListView, +QTableView { + background-color: #c8c8c8; + alternate-background-color: #bebebe; /* related with QListView background */ + border: 1px solid #505050; + selection-color: white; + selection-background-color: #daa116; /* should be similar to QListView::item selected background-color */ + show-decoration-selected: 1; /* make the selection span the entire width of the view */ + border-radius: 3px; +} + +QListView::item:selected, +QTreeView::item:selected { + color: white; /* should be similar to QListView selection-color */ + background-color: #daa116; /* should be similar to QListView selection-background-color */ + show-decoration-selected: 1; /* make the selection span the entire width of the view */ +} + +/* Property Editor QTreeView (FreeCAD custom widget) */ +Gui--PropertyEditor--PropertyEditor { + gridline-color: #a0a0a0; /* same as Group header background */ +} + +/* fix for column items background when a link is present */ +Gui--PropertyEditor--PropertyEditor > QWidget > QFrame:focus { + background-color: #e3d8b9; /* same as focused background color */ +} + +/* hack to hide weird redundant information inside the value of a Placement cell */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel, +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel:disabled { + color: transparent; + background-color: transparent; + border: none; + border-radius: 0px; + margin: 0px; + padding: 0px; +} + +/* hack to hide non editable cells inside Property values */ +Gui--PropertyEditor--PropertyEditor QLineEdit:read-only, +Gui--PropertyEditor--PropertyEditor QLineEdit:disabled, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:read-only, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:disabled { + color: transparent; + border-color: transparent; + background-color: transparent; + selection-color: transparent; + selection-background-color: transparent; +} + +/* hack to disable margin inside Property values to following elements */ +Gui--PropertyEditor--PropertyEditor QSpinBox, +Gui--PropertyEditor--PropertyEditor QDoubleSpinBox, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox, +Gui--PropertyEditor--PropertyEditor QLineEdit, +Gui--PropertyEditor--PropertyEditor QComboBox { + margin-left: 0px; + margin-right: 0px; + padding-top: 0px; + padding-bottom: 0px; +} + +/* set border-radius to 0px inside list views */ +QTreeView > QWidget > QComboBox, +QTreeView > QWidget > QAbstractSpinBox, +QTreeView > QWidget > QSpinBox, +QTreeView > QWidget > QDoubleSpinBox, +QTreeView > QWidget > QLineEdit, +QTreeView > QWidget > QTextEdit, +QTreeView > QWidget > QTimeEdit, +QTreeView > QWidget > QDateEdit, +QTreeView > QWidget > QDateTimeEdit, +QTreeView > QWidget > QComboBox:drop-down, +QTreeView > QWidget > QAbstractSpinBox:up-button, +QTreeView > QWidget > QSpinBox:up-button, +QTreeView > QWidget > QDoubleSpinBox:up-button, +QTreeView > QWidget > QTimeEdit:up-button, +QTreeView > QWidget > QDateEdit:up-button, +QTreeView > QWidget > QDateTimeEdit:up-button, +QTreeView > QWidget > QAbstractSpinBox:down-button, +QTreeView > QWidget > QSpinBox:down-button, +QTreeView > QWidget > QDoubleSpinBox:down-button, +QTreeView > QWidget > QTimeEdit:down-button, +QTreeView > QWidget > QDateEdit:down-button, +QTreeView > QWidget > QDateTimeEdit:down-button, +QTreeView > QWidget > Gui--ColorButton { + border-radius: 0px; +} + +/* set focus colors to best viewing the editable fields */ +QTreeView > QWidget > QComboBox:focus, +QTreeView > QWidget > QAbstractSpinBox:focus, +QTreeView > QWidget > QSpinBox:focus, +QTreeView > QWidget > QDoubleSpinBox:focus, +QTreeView > QWidget > QLineEdit:focus, +QTreeView > QWidget > QTextEdit:focus, +QTreeView > QWidget > QTimeEdit:focus, +QTreeView > QWidget > QDateEdit:focus, +QTreeView > QWidget > QDateTimeEdit:focus { + border-color: #e3d8b9; /* same as focused background color */ + border-bottom-color: #e3b64d; /* same as focused border color */ +} + +QTreeView > QWidget > QAbstractSpinBox:read-only, +QTreeView > QWidget > QSpinBox:read-only, +QTreeView > QWidget > QDoubleSpinBox:read-only, +QTreeView > QWidget > QLineEdit:read-only, +QTreeView > QWidget > QTextEdit:read-only, +QTreeView > QWidget > QTimeEdit:read-only, +QTreeView > QWidget > QDateEdit:read-only, +QTreeView > QWidget > QDateTimeEdit:read-only { + color: transparent; + background-color: transparent; + border-color: transparent; +} + +/* Fix to correctly (not totally) draw QTextEdit on OSX at Page properties: "Page result", "Template" and "Editable Texts" */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QWidget { + min-height: 14px; +} + + +/*================================================================================================== +Header of tree and list views +==================================================================================================*/ +QHeaderView { + color: #c8c8c8; + background-color: #505050; + border-top-left-radius: 2px; /* 1px less than its container */ + border-top-right-radius: 2px; /* 1px less than its container */ + border-bottom-left-radius: 0px; + border-bottom-right-radius: 0px; +} + +QHeaderView::section { + border:none; + padding: 4px 6px; + background-color: #505050; +} + +QHeaderView::section:horizontal { + padding: 4px 6px; /* left and right value similar to QHeaderView::section */ + border-right: 1px solid rgba(255,255,255,30); +} + +QHeaderView::section:vertical { + border-bottom: 1px solid rgba(255,255,255,30); +} + +QTableCornerButton::section { + background-color: #505050; + border-top: none; + border-left: none; + border-right: 1px solid rgba(255,255,255,30); + border-bottom: 1px solid rgba(255,255,255,30); +} + +QHeaderView::section:last { + border-right: none; +} + +QHeaderView::up-arrow { + image: url(qss:images/up_arrow_light.png); +} + +QHeaderView::up-arrow:hover { + image: url(qss:images/up_arrow_lighter.png); +} + +QHeaderView::down-arrow { + image: url(qss:images/down_arrow_light.png); +} + +QHeaderView::down-arrow:hover { + image: url(qss:images/down_arrow_lighter.png); +} + +/* Group header inside Property Editor (FreeCAD custom widget) */ +Gui--PropertyEditor--PropertyEditor { + qproperty-groupTextColor: #505050; + qproperty-groupBackground: #8c8c8c; +} + + +/*================================================================================================== +Branch system for QTreeViews +==================================================================================================*/ +QTreeView::branch { + background: transparent; +} + +QTreeView::branch:has-siblings:!adjoins-item { + border-image: url(qss:images/branch_vline.png) 0; +} + +QTreeView::branch:has-siblings:adjoins-item { + border-image: url(qss:images/branch_more.png) 0; +} + +QTreeView::branch:!has-children:!has-siblings:adjoins-item { + border-image: url(qss:images/branch_end.png) 0; +} + +QTreeView::branch:closed:has-children:has-siblings { + image: url(qss:images/branch_closed_dark.png); +} + +QTreeView::branch:has-children:!has-siblings:closed { + image: url(qss:images/branch_closed_dark.png); + border-image: url(qss:images/branch_end.png) 0; +} + +QTreeView::branch:open:has-children:has-siblings { + image: url(qss:images/branch_open_dark.png); + border-image: url(qss:images/branch_more.png) 0; +} + +QTreeView::branch:open:has-children:!has-siblings { + image: url(qss:images/branch_open_dark.png); + border-image: url(qss:images/branch_end.png) 0; +} + + +/*================================================================================================== +Splitter and windows separator +==================================================================================================*/ +QSplitter::handle { + margin: 0px 11px; + padding: 0px; +} + +QSplitter::handle:vertical { + background-image: url(qss:images/splitter_horizontal_dark.png); + background-position: center center; + background-repeat: none; + margin: 2px 4px 2px 4px; + height: 2px; +} + +QSplitter::handle:horizontal { + background-image: url(qss:images/splitter_vertical_dark.png); + background-position: center center; + background-repeat: none; + margin: 4px 2px 4px 2px; + width: 2px; +} + +/* Similar to the splitter is the following window separator: */ +QMainWindow::separator { + background-position: center center; + background-repeat: none; +} + +QMainWindow::separator:horizontal { + height: 2px; + background-image: url(qss:images/splitter_horizontal_dark.png); + margin: 4px 2px 4px 2px; +} + +QMainWindow::separator:vertical { + width: 2px; + background-image: url(qss:images/splitter_vertical_dark.png); + margin: 2px 4px 2px 4px; +} + + +/*================================================================================================== +Tasks panel (custom FreeCAD class) +==================================================================================================*/ +/* Action group */ +QFrame[class="panel"] { + background-color: transparent; /* temporal (transparent background) */ +} + +/* Separator line */ +QSint--ActionGroup QFrame[height="1"], +QSint--ActionGroup QFrame[height="2"], +QSint--ActionGroup QFrame[height="3"], +QSint--ActionGroup QFrame[width="1"], +QSint--ActionGroup QFrame[width="2"], +QSint--ActionGroup QFrame[width="3"] { + border-color: rgba(0,0,0,60); +} + +/* Panel header */ +QSint--ActionGroup QFrame[class="header"] { + border: none; + background-color: #505050; /* Task Panel Header background color */ + border-top-left-radius: 3px; + border-top-right-radius: 3px; + border-bottom-left-radius: 0px; + border-bottom-right-radius: 0px; + margin: 0px; + padding: 0px; +} + +QSint--ActionGroup QFrame[class="header"]:hover { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #daa116, stop:1 #d0970c); +} + +QSint--ActionGroup QToolButton[class="header"] { + color: #e0e0e0; /* Task Panel Header text color */ + text-align: left; + font-weight: bold; + border: none; + margin: 0px; + padding: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel { + background-color: transparent; + background-image: url(qss:images/down_arrow_light.png); + background-repeat: none; + background-position: center center; + padding: 0px; + margin: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel:hover { + background-color: transparent; + background-image: url(qss:images/down_arrow_lighter.png); +} + +QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"] { + background-color: transparent; + background-image: url(qss:images/up_arrow_light.png); + background-repeat: none; + background-position: center center; + padding: 0px; + margin: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"]:hover { + background-color: transparent; + background-image: url(qss:images/up_arrow_lighter.png); +} + +QSint--ActionGroup QFrame[class="content"] { + background-color: #8c8c8c; /* Task Panel background color */ + margin: 0px; + padding: 0px; + border: none; + border-top-left-radius: 0px; + border-top-right-radius: 0px; + border-bottom-left-radius: 3px; + border-bottom-right-radius: 3px; +} + +QSint--ActionGroup QFrame[class="content"] > QWidget { + background-color: #8c8c8c; /* Task Panel background color */ +} + +/* Fixs for tabs inside Task Panel */ +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:top:selected { + border-bottom-color: #8c8c8c; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:bottom:selected { + border-top-color: #8c8c8c; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:right:selected { + border-right-color: #8c8c8c; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:left:selected { + border-left-color: #8c8c8c; /* same as Task Panel background color */ +} + + +/*================================================================================================== +Buttons +==================================================================================================*/ +/* Common */ +QComboBox, +QAbstractSpinBox, +QSpinBox, +QDoubleSpinBox, +QLineEdit, +QTextEdit, +QTimeEdit, +QDateEdit, +QDateTimeEdit { + color: #bebebe; + background-color: #5a5a5a; + selection-color: white; + selection-background-color: #d0970c; + border: 1px solid #5a5a5a; + border-radius: 3px; + min-width: 50px; /* it ensures the default value is correctly displayed */ + padding: 1px 2px; /* temporal: could don't be compatible with elements inside Tree/List view */ +} + +/* shifts text/number editable field to the left to make space for the up/down or drop-down buttons */ +QComboBox, +QAbstractSpinBox, +QSpinBox, +QDoubleSpinBox, +QTimeEdit, +QDateEdit, +QDateTimeEdit { + padding-right: 20px; +} + +/* when QTextEdit are no editable */ +QTextEdit:!editable { + background-color: #c8c8c8; + border: 1px solid #505050; +} + +QComboBox:focus, +QAbstractSpinBox:focus, +QSpinBox:focus, +QDoubleSpinBox:focus, +QLineEdit:focus, +QTextEdit:focus, +QTimeEdit:focus, +QDateEdit:focus, +QDateTimeEdit:focus { + color: black; + border-color: #e3b64d; + border-right-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #daa116, stop:1 #e3b64d); /* same as up/down or drop-down button color */ + background-color: #e3d8b9; +} + +QComboBox:disabled, +QAbstractSpinBox:disabled, +QSpinBox:disabled, +QDoubleSpinBox:disabled, +QLineEdit:disabled, +QTextEdit:disabled, +QTimeEdit:disabled, +QDateEdit:disabled, +QDateTimeEdit:disabled { + color: #787878; + background-color: #5a5a5a; /* same as enabled color */ + border-color: #5a5a5a; /* same as enabled color */ +} + +QAbstractSpinBox:up-button, +QSpinBox:up-button, +QDoubleSpinBox:up-button, +QTimeEdit:up-button, +QDateEdit:up-button, +QDateTimeEdit:up-button, +QAbstractSpinBox:down-button, +QSpinBox:down-button, +QDoubleSpinBox:down-button, +QTimeEdit:down-button, +QDateEdit:down-button, +QDateTimeEdit:down-button { + background-color: #505050; /* same color for QComboBox background-color */ + subcontrol-origin: border; /* important */ + width: 20px; /* same as QComboBox ... QDateTimeEdit padding-right */ +} + +QAbstractSpinBox:up-button, +QSpinBox:up-button, +QDoubleSpinBox:up-button, +QTimeEdit:up-button, +QDateEdit:up-button, +QDateTimeEdit:up-button { + subcontrol-position: top right; + border-top-right-radius: 3px; + height: 12px; /* fix for Ubuntu that doesn't divide the up/down button into the exact middle */ +} + +QAbstractSpinBox:down-button, +QSpinBox:down-button, +QDoubleSpinBox:down-button, +QTimeEdit:down-button, +QDateEdit:down-button, +QDateTimeEdit:down-button { + subcontrol-position: bottom right; + border-bottom-right-radius: 3px; +} + +QAbstractSpinBox:up-button:focus, +QSpinBox:up-button:focus, +QDoubleSpinBox:up-button:focus, +QTimeEdit:up-button:focus, +QDateEdit:up-button:focus, +QDateTimeEdit:up-button:focus { + background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #e2ac2a, stop:1 #e3b64d); +} + +QAbstractSpinBox:down-button:focus, +QSpinBox:down-button:focus, +QDoubleSpinBox:down-button:focus, +QTimeEdit:down-button:focus, +QDateEdit:down-button:focus, +QDateTimeEdit:down-button:focus { + background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #daa116, stop:1 #e2ac2a); +} + +QAbstractSpinBox:up-button:disabled, +QSpinBox:up-button:disabled, +QDoubleSpinBox:up-button:disabled, +QTimeEdit:up-button:disabled, +QDateEdit:up-button:disabled, +QDateTimeEdit:up-button:disabled, +QAbstractSpinBox:down-button:disabled, +QSpinBox:down-button:disabled, +QDoubleSpinBox:down-button:disabled, +QTimeEdit:down-button:disabled, +QDateEdit:down-button:disabled, +QDateTimeEdit:down-button:disabled { + background-color: transparent; +} + +QAbstractSpinBox::up-arrow, +QSpinBox::up-arrow, +QDoubleSpinBox::up-arrow, +QTimeEdit::up-arrow, +QDateEdit::up-arrow, +QDateTimeEdit::up-arrow { + image: url(qss:images/up_arrow_light.png); + top: 0px; /* fix simetry between up and down images */ +} + +QAbstractSpinBox::up-arrow:focus, +QSpinBox::up-arrow:focus, +QDoubleSpinBox::up-arrow:focus, +QTimeEdit::up-arrow:focus, +QDateEdit::up-arrow:focus, +QDateTimeEdit::up-arrow:focus { + image: url(qss:images/up_arrow_lighter.png); +} + +QAbstractSpinBox::up-arrow:off, +QSpinBox::up-arrow:off, +QDoubleSpinBox::up-arrow:off, +QTimeEdit::up-arrow:off, +QDateEdit::up-arrow:off, +QDateTimeEdit::up-arrow:off { + image: url(qss:images/up_arrow_disabled_dark.png); +} + +QAbstractSpinBox::up-arrow:disabled, +QSpinBox::up-arrow:disabled, +QDoubleSpinBox::up-arrow:disabled, +QTimeEdit::up-arrow:disabled, +QDateEdit::up-arrow:disabled, +QDateTimeEdit::up-arrow:disabled { + image: url(qss:images/up_arrow_disabled_dark.png); +} + +QAbstractSpinBox::down-arrow, +QSpinBox::down-arrow, +QDoubleSpinBox::down-arrow, +QTimeEdit::down-arrow, +QDateEdit::down-arrow, +QDateTimeEdit::down-arrow { + image: url(qss:images/down_arrow_light.png); + bottom: 0px; /* fix simetry between up and down images */ +} + +QAbstractSpinBox::down-arrow:focus, +QSpinBox::down-arrow:focus, +QDoubleSpinBox::down-arrow:focus, +QTimeEdit::down-arrow:focus, +QDateEdit::down-arrow:focus, +QDateTimeEdit::down-arrow:focus { + image: url(qss:images/down_arrow_lighter.png); +} + +QAbstractSpinBox::down-arrow:off, +QSpinBox::down-arrow:off, +QDoubleSpinBox::down-arrow:off, +QTimeEdit::down-arrow:off, +QDateEdit::down-arrow:off, +QDateTimeEdit::down-arrow:off { + image: url(qss:images/down_arrow_disabled_dark.png); +} + +QAbstractSpinBox::down-arrow:disabled, +QSpinBox::down-arrow:disabled, +QDoubleSpinBox::down-arrow:disabled, +QTimeEdit::down-arrow:disabled, +QDateEdit::down-arrow:disabled, +QDateTimeEdit::down-arrow:disabled { + image: url(qss:images/down_arrow_disabled_dark.png); +} + +/* ComboBox */ +QComboBox::drop-down { + background-color: #505050; /* same color as up/down QSpinBox ... QDateTimeView background-color */ + subcontrol-origin: border; /* important */ + subcontrol-position: top right; + width: 20px; + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; +} + +QComboBox::drop-down:on, +QComboBox::drop-down:focus { + background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #daa116, stop:1 #e3b64d); +} + +QComboBox::down-arrow { + image: url(qss:images/down_arrow_light.png); +} + +QComboBox::down-arrow:on, +QComboBox::down-arrow:focus { + image: url(qss:images/down_arrow_lighter.png); +} + +QComboBox::down-arrow:off, +QComboBox::down-arrow:disabled { + image: url(qss:images/down_arrow_disabled_dark.png); +} + +/* ComboBox menu */ +QComboBox { + selection-color: white; + selection-background-color: #daa116; +} + +QComboBox QAbstractItemView { + color: #bebebe; /* same as regular QComboBox color */ + background-color: transparent; + selection-color: white; + selection-background-color: #daa116; + border-width: 5px 0px 5px 0px; + border-style: solid; + border-color: transparent; + margin: 0px -1px 0px 0px; /* hack for Mac... try it on Windows and Linux */ +} + + +/*================================================================================================== +Push button +==================================================================================================*/ +QPushButton { + color: #e0e0e0; + text-align: center; + background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #6e6e6e, stop:1 #646464); + border: 1px solid #5a5a5a; + border-bottom-color: #505050; /* simulates shadow under the button */ + padding: 4px 22px; + margin: 4px 4px; + min-height: 16px; /* same as QTabBar QPushButton min-width */ + border-radius: 4px; +} + +QPushButton:hover, +QPushButton:focus { + color: white; + border-color: #d0970c; + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #daa116, stop:1 #d0970c); +} + +QPushButton:disabled, +QPushButton:disabled:checked { + color: #787878; + background-color: #5a5a5a; /* same as enabled color */ + border-color: #5a5a5a; /* same as enabled color */ +} + +QPushButton:pressed { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #d0970c, stop:1 #daa116); +} + +QPushButton:checked { + background-color: #daa116; + border-color: #d0970c; +} + +/* Color Buttons */ +Gui--ColorButton, +Gui--ColorButton:disabled { + padding: 0px; /* reset */ + margin: 0px; /* reset */ +} + +Gui--ColorButton { + background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #6e6e6e, stop:1 #646464); + border: 1px solid #5a5a5a; + border-bottom-color: #505050; /* simulates shadow under the button */ +} + +Gui--ColorButton:disabled { + border-color: transparent; + background-color: rgba(0,0,0,10); +} + +Gui--ColorButton:hover, +Gui--ColorButton:focus { + border-color: #d0970c; + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #daa116, stop:1 #d0970c); +} + +Gui--ColorButton:pressed { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #d0970c, stop:1 #daa116); +} + +/* Pushbutton style for "..." inside Placement cell which launches Placement tool */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QPushButton { + background-color: #6e6e6e; + border: 1px solid #5a5a5a; + min-width: 16px; /* reset it due to larger value on regular QPushButton, same or bigger value as regular QPushButton min-height */ + border-radius: 0px; + margin: 0px; /* reset */ + padding: 0px; /* reset */ +} + +/* Fix for Expressions description QFrame that is "broken" with initial reset */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QWidget > QWidget > QFrame { + background-color: #6e6e6e; /* main background color */ + border: 1px solid #5a5a5a; + border-radius: 2px; + padding: 2px 6px; +} + + +/*================================================================================================== +Tool button inside QDialogs that works as QPushButtons +==================================================================================================*/ +/* found under Tools -> Customize -> Macros -> Pixmap "..." button */ +QDialog QToolButton { + color: #e0e0e0; + text-align: center; + background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #6e6e6e, stop:1 #646464); + border: 1px solid #5a5a5a; + border-bottom-color: #505050; /* simulates shadow under the button */ + padding: 0px; /* different than regular QPushButton */ + margin: 2px; /* different than regular QPushButton */ + min-height: 16px; /* same as QTabBar QPushButton min-width */ + border-radius: 4px; +} + +QDialog QToolButton:hover, +QDialog QToolButton:focus { + color: white; + border-color: #d0970c; + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #daa116, stop:1 #d0970c); +} + +QDialog QToolButton:disabled, +QDialog QToolButton:disabled:checked { + color: #6e6e6e; + border-color: #5a5a5a; + background-color: #5a5a5a; +} + +QDialog QToolButton:pressed { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #d0970c, stop:1 #daa116); +} + +QPushButton:checked { + background-color: #daa116; + border-color: #d0970c; +} + + +/*================================================================================================== +Radio button +==================================================================================================*/ +QRadioButton::indicator:unchecked{ + color: black; + background-color: rgba(255,255,255,20); + border: 1px solid #5a5a5a; +} + +QRadioButton::indicator:checked { + background-color: #daa116; /* QCheckBox has the same color */ + border: 1px solid #d0970c; /* QCheckBox has the same color */ + image:url(qss:images/radiobutton_light.png); +} + +QRadioButton, +QRadioButton:disabled { + color: black; + padding: 3px; + outline: none; + background-color: transparent; +} + +QRadioButton::indicator { + width: 11px; + height: 11px; + border-radius: 6px; +} + +QRadioButton::indicator:pressed { + border-color: #e0c992; +} + +QRadioButton::indicator:disabled { + border: 1px solid #f5f5f5; +} + +QRadioButton::indicator:disabled { + color: #f5f5f5; + background-color: transparent; +} + +QRadioButton:focus { + border: none; +} + + +/*================================================================================================== +Checkbox +==================================================================================================*/ +QCheckBox, +QCheckBox:disabled { + color: black; + padding: 3px; + outline: none; + background-color: transparent; +} + +QCheckBox::indicator { + color: black; + background-color: rgba(255,255,255,20); + border: 1px solid #5a5a5a; +} + +QCheckBox::indicator { + width: 11px; + height: 11px; + border-radius:2px; +} + +QCheckBox::indicator:pressed, +QCheckBox::indicator:non-exclusive:checked:pressed, +QCheckBox::indicator:indeterminate:pressed, +QCheckBox::indicator:checked:pressed { + border-color: #e0c992; +} + +QCheckBox::indicator:checked { + background-color: #daa116; /* QRadioButton has the same color */ + border: 1px solid #d0970c; /* QRadioButton has the same color */ + image:url(qss:images/checkbox_light.png); +} + +QCheckBox:disabled { + color: rgba(255,255,255,40); + background-color: transparent; +} + +QCheckBox::indicator:disabled { + background-color: rgba(255,255,255,20); + border: 1px solid rgba(255,255,255,20); +} + +QCheckBox::indicator:indeterminate { + background-color: #daa116; + border: 1px solid #d0970c; + image: url(qss:images/checkbox_indeterminate_light.png); +} + +QCheckBox:focus { + border: none; +} + + +/*================================================================================================== +Slider +==================================================================================================*/ +QSlider, +QSlider:active, +QSlider:!active { + border: none; + background-color: transparent; +} + +QSlider:horizontal { + padding: 0px 10px; +} + +QSlider:vertical { + padding: 10px 0px; +} + +QSlider::groove { + background-color: rgba(0,0,0,30); + border: 1px solid rgba(0,0,0,40); + border-radius: 5px; + margin: 4px 0px; +} + +QSlider::groove:horizontal { + height: 8px; +} + +QSlider::groove:vertical { + width: 8px; +} + +QSlider::groove:horizontal:disabled, +QSlider::groove:vertical:disabled { + border-color: #5a5a5a; + background-color: #5a5a5a; +} + +QSlider::handle:horizontal, +QSlider::handle:vertical { + background-color: #505050; + border: 1px solid #505050; + width: 14px; + height: 14px; + border-radius: 8px; +} + +QSlider::handle:horizontal { + margin: -4px 0; +} + +QSlider::handle:vertical { + margin: 0 -4px; +} + +QSlider::handle:horizontal:hover, +QSlider::handle:vertical:hover, +QSlider::handle:horizontal:pressed, +QSlider::handle:vertical:pressed { + border-color: #daa116; + background-color: #daa116; +} + +QSlider::handle:horizontal:disabled, +QSlider::handle:vertical:disabled { + border-color: #5a5a5a; + background-color: #5a5a5a; +} + + +/*================================================================================================== +Toolbar buttons +==================================================================================================*/ +QToolBar > QToolButton { + margin: 2px; + padding: 2px; +} + +QToolBar > QPushButton, +/*QToolBar > QComboBox, disabled because creates different margins for body and drop-down button */ +QToolBar > QAbstractSpinBox, +QToolBar > QSpinBox, +QToolBar > QDoubleSpinBox, +QToolBar > QLineEdit, +QToolBar > QTextEdit, +QToolBar > QTimeEdit, +QToolBar > QDateEdit, +QToolBar > QDateTimeEdit { + margin: 2px; + padding: 2px; +} + +QToolBar > QPushButton { + border-radius: 4px; /* same as regular QPushButton */ + min-width: 20px; /* reset it due to larger value on regular QPushButton, same or bigger value as regular QPushButton min-height */ +} + +QToolBar > QPushButton:checked { + border: 1px solid #d0970c; + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #daa116, stop:1 #d0970c); +} + +QToolBar > QPushButton:!checked { + background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #6e6e6e, stop:1 #646464); + border: 1px solid #5a5a5a; + border-bottom-color: #505050; /* simulates shadow under the button */ +} + +QToolBar > QPushButton:checked:hover { + border-color: #b28416; +} + +QToolBar > QPushButton:!checked:hover { + color: #e3d8b9; + border-color: #505050; +} + +QToolBar > QPushButton:checked:pressed { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #d0970c, stop:1 #daa116); +} + +QToolBar > QPushButton:!checked:pressed { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #5a5a5a, stop:1 #6e6e6e); +} + +QToolBar > QPushButton:checked:disabled, +QToolBar > QPushButton:!checked:disabled { + border: none; + background-color: transparent; +} + +/* ToolBar menu buttons (buttons with drop-down menu) */ +QToolBar > QToolButton#qt_toolbutton_menubutton { + padding-right: 20px; /* Hack to add more width to buttons with menu */ + border: 1px solid transparent; + border-radius: 3px; +} + +QToolBar > QToolButton#qt_toolbutton_menubutton:hover, +QToolBar > QToolButton#qt_toolbutton_menubutton:pressed, +QToolBar > QToolButton#qt_toolbutton_menubutton:open { + border: 1px solid #e3b64d; +} + +QToolBar QToolButton::menu-button, +QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button { + border: none; + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; + width: 16px; /* 16px width + 4px for border = 20px allocated above */ + outline: none; + background-color: transparent; +} + +QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:hover, +QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:pressed, +QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:open { + background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #daa116, stop:1 #e3b64d); +} + +QToolBar > QToolButton::menu-arrow { + background-image: url(qss:images/down_arrow_dark.png); + background-position: center center; + background-repeat: none; + subcontrol-origin: padding; + subcontrol-position: bottom right; + height: 10px; /* same as arrow image */ +} + +QToolBar > QToolButton::menu-arrow:hover { + background-image: url(qss:images/down_arrow_lighter.png); +} + +QToolBar > QToolButton::menu-arrow:open { + background-image: url(qss:images/down_arrow_lighter.png); +} + +/*The "show more" button (it can also be stylable with "QToolBarExtension" */ +QToolBar QToolButton#qt_toolbar_ext_button { + margin: 0px; + padding: 0px; + /*background-image: url(qss:images/more_dark.png);*/ + image: transparent; + background-repeat: none; + background-position: center left; +} + +QToolBar QToolButton#qt_toolbar_ext_button:hover { + /*background-image: url(qss:images/more_light.png);*/ + border-color: #5a5a5a; + background-color: #5a5a5a; +} + +QToolBar QToolButton#qt_toolbar_ext_button:on { + /*background-image: url(qss:images/more_light.png);*/ + border-color: #5a5a5a; + background-color: #5a5a5a; +} + + +/*================================================================================================== +Tables (spreadsheets) +==================================================================================================*/ +QTableView { + gridline-color: #a0a0a0; + selection-color: #624b14; + selection-background-color: #e3d8b9; +} + +QTableView::item:hover { + background-color: rgba(0,0,0,10); /* temporal: is it displayed in Linux or Windows? on OSX it isn't */ +} + +QTableView::item:disabled { + color: #8c8c8c; +} + +QTableView::item:selected { + color: #624b14; + border-color: #e3d8b9; /* same as focused background color */ + border-bottom-color: #e3b64d; /* same as focused border color */ +} + +/* fix for elements inside the cells */ +QTableView QComboBox, +QTableView QAbstractSpinBox, +QTableView QSpinBox, +QTableView QDoubleSpinBox, +QTableView QLineEdit, +QTableView QTextEdit, +QTableView QTimeEdit, +QTableView QDateEdit, +QTableView QDateTimeEdit, +QTableView QComboBox:drop-down, +QTableView QAbstractSpinBox:up-button, +QTableView QSpinBox:up-button, +QTableView QDoubleSpinBox:up-button, +QTableView QTimeEdit:up-button, +QTableView QDateEdit:up-button, +QTableView QDateTimeEdit:up-button, +QTableView QAbstractSpinBox:down-button, +QTableView QSpinBox:down-button, +QTableView QDoubleSpinBox:down-button, +QTableView QTimeEdit:down-button, +QTableView QDateEdit:down-button, +QTableView QDateTimeEdit:down-button, +QTableView Gui--ColorButton { + border-radius: 0px; +} + +QTableView QComboBox, +QTableView QAbstractSpinBox, +QTableView QSpinBox, +QTableView QDoubleSpinBox, +QTableView QLineEdit, +QTableView QTextEdit, +QTableView QTimeEdit, +QTableView QDateEdit, +QTableView QDateTimeEdit { + color: black; + background-color: transparent; + border-color: transparent; +} + +QTableView QComboBox:drop-down, +QTableView QAbstractSpinBox:up-button, +QTableView QSpinBox:up-button, +QTableView QDoubleSpinBox:up-button, +QTableView QTimeEdit:up-button, +QTableView QDateEdit:up-button, +QTableView QDateTimeEdit:up-button, +QTableView QAbstractSpinBox:down-button, +QTableView QSpinBox:down-button, +QTableView QDoubleSpinBox:down-button, +QTableView QTimeEdit:down-button, +QTableView QDateEdit:down-button, +QTableView QDateTimeEdit:down-button, +QTableView Gui--ColorButton { + background-color: rgba(0,0,0,30); +} + +QTableView QComboBox:focus, +QTableView QAbstractSpinBox:focus, +QTableView QSpinBox:focus, +QTableView QDoubleSpinBox:focus, +QTableView QLineEdit:focus, +QTableView QTextEdit:focus, +QTableView QTimeEdit:focus, +QTableView QDateEdit:focus, +QTableView QDateTimeEdit:focus { + color: #624b14; + selection-color: white; + selection-background-color: #daa116; + border-color: #e3d8b9; + background-color: #e3d8b9; +} + +QTableView QComboBox:disabled, +QTableView QAbstractSpinBox:disabled, +QTableView QSpinBox:disabled, +QTableView QDoubleSpinBox:disabled, +QTableView QLineEdit:disabled, +QTableView QTextEdit:disabled, +QTableView QTimeEdit:disabled, +QTableView QDateEdit:disabled, +QTableView QDateTimeEdit:disabled { + color: rgba(0,0,0,120); + background-color: transparent; + border-color: transparent; +} + +QTableView QComboBox:read-only, +QTableView QAbstractSpinBox:read-only, +QTableView QSpinBox:read-only, +QTableView QDoubleSpinBox:read-only, +QTableView QLineEdit:read-only, +QTableView QTextEdit:read-only, +QTableView QTimeEdit:read-only, +QTableView QDateEdit:read-only, +QTableView QDateTimeEdit:read-only { + color: black; + background-color: transparent; + border-color: transparent; +} + + +/*================================================================================================== +EXPERIMENTAL +==================================================================================================*/ + +/* Fix for preventing elements in different rows to accidentaly overlap */ +QDialog QGroupBox QFrame { + margin: 2px 0px; +} + +*[mandatoryField="true"] { background-color: cyan } + + + diff --git a/images/background_freecad.png b/images/background_freecad.png index f2c085a63cf389960172087aa0ae7bb7835e1a03..ee72af5764ddd2b232ac7569a2cb1db0915c1903 100644 GIT binary patch delta 8309 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 literal 10833 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 R5*+_T9?GgbC_z6B{2#Qa73u&0 diff --git a/images/down_arrow_dark.png b/images/down_arrow_dark.png index 9fed1f726c0459f854d8c15ac34720e98b7f5e5b..296a86fe07aeb9dd5fc4f31888e5f26db805124b 100644 GIT binary patch literal 3427 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 LS3j3^P6Z`#K-)D3fct+#G@&004j+ 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 delta 116 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

^4~Jd+Emt0$PF}z1iT^y4}Y+i zTj!d4eV8Bz05G{@X_nd2@QN}D=LK~|>$}|EmG|36%@8#)DRQ5-J z|K?Sut$(GVV9?(Xk_Q58X=n`6!V%CQd5AnjRz}Ak>k9*`GJ{kIF0RU^+PeQx&>{rb zjYPsLL!o|teh|Nl5F7ymm4n0KP+1rh29u#7WQYOYBqx6vZ=%RAivMzGqlqX2O*$;j z8}y6Q$rsDT)(BjZ-M{(u0L}9mIA*8 z{`0&3f62xCKL!fzO><3tG&_R-!j#MGi4K9BbnqXv?6&% rd3nOZPo%3uj890#8YjsLL>vbcz2)St-hVelI}Om+xvE{G=@|YWlb%uK delta 118 zcmV-+0Ez#~DyspIBMblnVoOIv0063uBQlfN6dqpR1|1M8DKl`1i~s-tJV``BR0vyR z_+Lk}Nz#fuZQti8xjP6sJ+d${3Ek<~H(!3%$K+!(SJ{X~@`OmQ z5u0>DeZ%3OkAHLAzu*zf=XtjHq~)TeleoftY~tQZX)gO(xpj|w)wK4A@7!%32B)ss zZ?9{OdC#qr`}3m?|Fvzh_uKB-MWL) zJ9;Nf|3#m!nabYdZ1dc68o3NTWu~kMUh4Q?a@YaL)2EaEti3us!^c{Y!J_xW2$v4qnVOq!JOs!YYd}yt*PlO+{)1M=!L`u zk(CWoh2AO5F?Ht+74>xt-8^fT*xJaVQ?rV<*}Pwom2~pTrkOiMSL@A-vE9A1`eW1% zj&%mQJ0mpWyjF_(Y5Rn)S$AQ@*9XphB`+rOTmR8;&()YeZPvCsYbv$Zmc6@F_^0}v z*skxFUVEy0z4Tc=@8_1w=Zmg2MoAl8x-hYwS3dQMwCSzm-#VrCDu1^$y>&%xw`n%44;WS)tX!)!N9sd^Q;1wdyoFxc2v z6eK2Rr0UTq__OB&@Hb09I0xZL1XF8=&BvUzDm~qGzIKpzB(Z zS!SeU$E9FXl#*r@;>0WrfRwK%y57tfbt4Z!&8#sW*3we<$z62 zN!CxzNzF~oD=F4D)HBovt4~R`a?3BuO$6%C%uP&B)i20PSJDT$Rv+qIpzrnJ-UqpX z_F&W!lEQd2xJHAEq!1uU@o4HA4K9*GfF#AEscUEj7Z;)dm6``^HI)OKM-2ZP9Dq$L zrX+877l!}s{b%+Ad7K3vk;M!Q+`=Ht$S`XTuwll)UgGKN%Km^!lAT|=^|K|YWoYQ> z;uyjaot)CpsKv(SrXhWzrSO1Ho7n`ODJKscUy{D>xOn7?zx1 V{bI%zw+^V8!PC{xWt~$(69AfSH6{Q6 delta 124 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 delta 119 zcmV--0EqwWDy#vJBMblnVoOIv0063uBQlfv6dqsS1|1Lz37wja<^TWyJxN4CR0vx| zjKL8AAPB>PE3qIuIfpYLN5j@p5YUcm|002ovPDHLkV1hi_DXstj diff --git a/images/left_arrow_lighter.png b/images/left_arrow_lighter.png index 6bca3a583d24f697d2f01722c714bb57650f4b4d..01fbda8a096e621de36db0db992be34b9a9b6cc2 100644 GIT binary patch literal 5484 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 delta 123 zcmV->0EGYSDzE{NBMblnVoOIv0063uBQlfv6dq&W1|1M5Ct+sV#sB~SK}keGR0vx| zO~DZWAPB;iX#lrrz;<#PL**{~00(FgG5{N1R6_JnXVk$v^C>$DZD6rh*|uiQ^L9h< dYU&Ryu07eb8LOm97x(}G002ovPDHLkV1gP|Ed~Gp diff --git a/images/right_arrow_dark.png b/images/right_arrow_dark.png index f24e99688a8cd0afbf7e189d3bf4d172ab7df436..89cf86589f42f4d5f3e0ea93aa6b287d2bf3bb42 100644 GIT binary patch literal 3430 zcmeAS@N?(olHy`uVBq!ia0vp^Y(UJ#!2%?0*`M!VU|_mg6%tVrlvu7%P?VpRnUkte zQdy9ykXn(M#=uZ<>+Lk}Nz#fuZQti8xjP6sJ+d${3Ek<~H(!3%$K+!(SJ{X~@`RX2 zh)uenzTxoC$G2wv*=TuR!sWyX(`!zb=UOgnRQM?rMJr8g!w zmU!?h9J-`t-tkk6TX%oz&+I23?r_fXF>s6cxUfC^ko`+@=j1a&>RokDIa3>VREQ}Y zn(^eBbd-Zb^7D}Jx^RB}QepW6erdZdy}6Oldpz|~z^?1lbj~r^_G;#wNU4=}=z0(> z$ivBTq-WAHpNlhkIVwv&tn8Sh`jL@o$*H-A7^JV*KCtk=ACbJJB=V=w<19vwqZbVq zXa+HAtKM<6$nKL`r8TQ*Rhnt3Zq(){Q%s-dRNf1`dSuedRO4dpuvnX&Rb|EBA8joV zj7f|t+8D5BN|5%Puo>$jViyL!KG-hv@`AE_*^j`!TLE^urnx&KKZixVy|eW3kMDPM zOWrTNKG|=|rI~)VpEH-wf4YWwt69pDh06TWcBfXDXKm?!D{NZj{;oJ{%Szv*%$GOk zN*zhdSIdY~x0=}~q0Uq|n-%v!Emyl*ny6H}W<(@G$@O zImqETr~Z(Y3a>2dZ|>Ks8&pq!J6US4dOK)`!r{jq*A~=AMz2gx_q7mdJ6Tet6QrU( zUqzB(Sw($tXq@2-k*AtR?)+w8;LOSdW~m5YAFJg2T)o7U{G?R9irfOAGZ+|b>?;Zq zle1Gx6p~WYGxKbf-tXS8q>!0ns}yePYv5bpoSKp8QB{;0T;&&%T$P<{nWAKG$7NGt z1vDTxwIorYA~z?m*s8)-32d$vkPQ;nS5g2gDap1~itr6kaLzAERWQ*r(KFC>t;j4h zQnKSxuqjGOvkG!?gBk(k*(zm}loVL$>z9|8>y;bpKhp88yV>WRp=I1 z=9MH?=;jqGgN%Tf;gVXMTm%fe%=|nBkeP`|`K2YcN=iU^1*qXE$#Am^N{e#9CZ{Cp zr{<*QrskCt>l^AB>Vws%BwM-V7v&}b^=IZLrl;x`p0*}aI1_o|n5N2eUHAey{$X?><>&pIsNs^sk#dxa78K97!r;B3< zM|5(+3MMCw1g6UYddhQd9y`GB=s?OXg;NcS6dL^bkEm>L60sGS8z98+e=<9x!vFQ( QfjSvHUHx3vIVCg!0P+(p^Z)<= delta 117 zcmV-*0E++S8ma-1BMblnVoOIv0063uBQlft3?5zI1|1LyA{q-PWdHyGJ4r-AR0vyR zVAu?VP{0JHpo1mdLT-{9Ef(H03)1vmI1B|$OHjnAcO({ X-PH>YQWLO400000NkvXXu0mjfEUzSL diff --git a/images/right_arrow_darker.png b/images/right_arrow_darker.png new file mode 100644 index 0000000000000000000000000000000000000000..884627afe240897c551c332c55699a33d8f7aa20 GIT binary patch literal 3428 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 delta 118 zcmV-+0Ez$5DyspIBMblnVoOIv0063uBQlfV6dqpR1|1M54^-1~JOBUyJV``BR0vyR z_dEA$Qf$3URNJL3cV!1*=QGQxxPO3sl zWkIS!YDH!m14G5Fx6^zlNh|WSexIY{?jYn;ATw+JsyhnD&o>`?d*iWBs9I!7qJ~tI zF3TSN4YB_}*6zsnSfaRV!L+2li^{DsM&c%u>@P=7=6_weY*TjC7Hj$M>}{R_r+-TQ z{-(d-_1@;zTzk2<=U(+qE?aQ>g!O_m6D50-{fpRz?A~s#vpaF4LbM4-3=>zilo{-eTfrA0F=15_Ivc>rdIFtq(Zd9K*JE@U#fUs?VY}{PD7>NkaA-0gIiQf34CE^)W0+cRm{vIZd~-@Y${fEi*GWcusrf z(6ZDo&)~DEc+}%(rg2MKCQ2Wi%z2Q*)-L7ysUK5oSf!Hl3KwarUAW9S<2lQooUG0jZwa)*DvkxJp3_#Xni(+d3x*b+YIj= zAn?EIf<|fK`l!493Gc4V35=Fi1t#<)tSLORpd=ZT!fiVp`5GKJnBVU?r0$R?x?efw z+p~lJkEaR0RpBj3x#xd!n~=bHhdCFep7d{>dWe7C%YxF+b9s%XY0m2QzQmK%^e-;7 zlF@L#$fFl>Yl;~dII}W=`6BQBlHCS ztb$zJphf_Bwn`Z#B?VUc`sL;2dgaD?`9*7XiaAGe1uOWM*PgerbuVk`ho}0cv8bh!dFe{}AlK?coeT86KHU2tH_#r8T0&A7j|SIh zaFG-OBq<(EU8BK8QV5WwcrEH9G@w%RfUTx-VDpIKe}e?NMQuIvw(B-#0mH@HpY1`6qUx;Tb#L?@>-G-w%I zWqWAQq}d@5GlNr)C6IMmTFWXYp`;Avl`XSbjfHjE_!v%}X6rljy7eJYCxfS}pUXO@ GgeCxM7b+eA delta 139 zcmaDXwTy9saydEA$Qf$3^hNJL3cV!1*=QGQxxPO3sl zWkIS!YDH!m14G5Fx6^zlNh|WSexIY{?jYn;ATw+JsyhnD&o>`?d*iWBs9I!7;tI1Z zIw}?N3A_J2{#|fCz{9!3QTM3KVs}o<6ulQJ_0u-1%3pgPc`EPa#dkG#;thP7!p>d4 zvAw=A_C2#s&hL*IwlLo{df#AVY;1LW-V;8Rnp>Isch}4={E=$;TQFKt@A>oZ z2?C2Xdk*#OPO&LU6FlRvNMz>UCijO=R2TXS`Tfp*d*^DckpA=Qw|;K2eG=HU`^HDl z#kuOWYwrfVxGs5d?dkq_o{#2N?J~^Wypz8am#VsGh~ABxa$hlwzb`=~g|~Y}oBPG> zp~hKP22a(NjpF8rAl&pAem`?)6C5*b`A|8J10sfC<`&Fe>~G`=yrPgRDa`jVhsT@vdpt|ST{Hw zkZsvKZ9{uk7u)hxfxeT|bOVz*q>{H-ykC)&bnwcenX0G5CM}s@ax_JA=^U?TIy(-T z9M92PKBrjIBT8UbLP?{$CcAu5i*tX)jfs6VQ@Y*;J71MreKn+5w|BOQ%zv@jJEukE zEe$>%_G)2v|J|xrJEu49HA`t(sLUsw`6N&;YxXN;(<-I!mZrC^sBPTv=Zzn4+U97E zS=T%L(iDz0I^0oX%*mK{re={q#iZG1YSLu5QUjFd7D)LfDM(mt+C}d4RU;zU-#^K@?^5gN1>1ZmaVce zOcJ@nZU0r9fq^qC6PTMKe0{8v^K+E%t*c2-KgMo0y)eUyzrsqz`hfKGeBD-|NG@4{`(T!Kfu9h4E-`jRqG< zAwZJi(bP2>TqK16Ns32P*U$`sf113p!KBgbd3qVaWeNPw15RT~Nl!gZ5gi|bs z5?O);6n7X1$8ap-(mBf!+NyFSfhma7oI6b|f=8Bt;p%rb8-EeM2B203Pgg&ebxsLQ E03JCih5!Hn literal 0 HcmV?d00001 diff --git a/images/up_arrow_light.png b/images/up_arrow_light.png index 4c32b8a1937e36742ddc7db16c998eb6e388f715..675aa98fda81d86b1a3ee460a1db8fb5402b2ae6 100644 GIT binary patch literal 5454 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 delta 121 zcmX@7wVZK+vIPTElDE4H1H-CbWg`X#2F?PH$YKTtZeb8+WSBKa0w~B{;_2(kexFTN zfJbD-F}IySA&bfUqT;3pLroQy%v>NPEpg81P-~-BV;W;?gGh*kN)k^C2g5T)1~*56 U&YFO#yFeWbp00i_>zopr0RBH8&j0`b diff --git a/images/up_arrow_lighter.png b/images/up_arrow_lighter.png index c687416cb7618d8ac9aac0aa535e899490f4c078..cfe3fd389adc406bcd4e2134f267f4b29b32e911 100644 GIT binary patch literal 5454 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 Vz5eBJlO|9HgQu&X%Q~loCIAgSA`t)p diff --git a/light-blue.qss b/light-blue.qss index 86f58bf..def7042 100644 --- a/light-blue.qss +++ b/light-blue.qss @@ -1,1906 +1,1876 @@ -/* -ABOUT -=========================================================== -version 1.8 -QT theme (stylesheet) specially developed for FreeCAD (http://www.freecadweb.org/). -It might work with other software that uses QT styling. - - -LICENSE -=========================================================== -Copyright (c) 2015 Pablo Gil Fernández -The stylesheet barely uses code from Colin Duquesnoy "generic QT stylesheet" - -This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. -To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/. - - -INSTALLATION -=========================================================== -1) Place the .qss files and /images/ folder in the path that fits your OS: - OSX = /Users/[YOUR_USER_NAME]/Library/Preferences/FreeCAD/Gui/Stylesheets/ - WINDOWS = C:/[INSTALLATION_PATH]/FreeCAD/data/Gui/Stylesheets/ - LINUX = /home/[YOUR_USER_NAME]/.FreeCAD/Gui/Stylesheets/ - -2) In order to display correctly images that are used inside the stylesheet: - 2.1) If you use FreeCAD 0.16 (development builds newer than commit 5b3d50a): that's it, you are done! - - 2.2) If you use FreeCAD 0.15: Images used in the theme need full paths to be found by FreeCAD, so you should search the string "qss:images" (without "") and replace with the real path of your computer. It should be done with all the .qss files you want to install-use - find = qss:images - replace = /Users/myName/Library/Preferences/FreeCAD/Gui/Stylesheets/images - - -CUSTOMIZATION -=========================================================== -If you would like to change the overall look/style of the theme, just find and replace following colors in the whole file: - background darker = #828282 - background dark and slightly darker = #a2a2a0 - background dark = #b6b6b6 - background normal and slightly darker = #e0e0e0 - background normal = #e6e6e6 - background light = #f5f5f5 - background lighter = #ffffff - - lists background = #bdc1c9 - lists background (alternate) = #b3b8bf - lists backgrounds selection = #abb0b7 - - foreground = black - - selection darker = #1b3774 - selection dark = #3874f2 - selection normal = #5e90fa - selection inbetween normal and light = #6f9efa (used to build SpinBoxes) - selection light = #7cabf9 - selection lighter = #adc5ed - - -CAVEATS -=========================================================== - - FreeCAD 0.15 - - full paths to images are needed, that means all these .qss files should be edited per user - - the "Task panel" is not stylable - - in app icons-buttons are designed in svg but are not stylable, that is, it's not possible to change them... I hope it also changes in the near future - - -KNOWN BUGS and TO DO -=========================================================== - - please, follow the link to get updated information: http://forum.freecadweb.org/viewtopic.php?f=10&t=12417 -*/ - -/* RESET EVERYTHING */ -QAbstractScrollArea,QCheckBox,QColumnView,QComboBox,QDateEdit,QDateTimeEdit,QDialog,QDialogButtonBox,QDockWidget,QDoubleSpinBox,QFrame,QGroupBox,QHeaderView,QLabel,QLineEdit,QListView,QListWidget,QMainWindow,QMenu,QMenuBar,QMessageBox,QProgressBar,QPushButton,QRadioButton,QScrollBar,QSizeGrip,QSlider,QSpinBox,QSplitter,QStatusBar,QTabBar,QTabWidget,QTableView,QTableWidget,QTextEdit,QTimeEdit,QToolBar,QToolButton,QToolBox,QToolTip,QTreeView,QTreeWidget,QWidget { - padding: 0px; - margin: 0px; - border: 0px; - border-style: none; - background-color: #e6e6e6; /* set with default background color */ -} - -QMdiArea[showImage="true"] { - background-image: url(qss:images/background_freecad.png); - background-position: center; - background-repeat: no-repeat; -} - -QProgressBar, -QProgressBar:horizontal { - background: #bdc1c9; - border: 1px solid #b6b6b6; - text-align: center; - padding: 1px; - border-radius: 4px; -} -QProgressBar::chunk, -QProgressBar::chunk:horizontal { - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #3874f2, stop:1 #5e90fa); - border-radius: 3px; -} - -QToolTip { - background-color: #828282; - color: black; - padding: 4px; - border-radius: 4px; - /*opacity: 200;*/ -} - -QWidget { - color: #828282; - background-color: #e6e6e6; - background-clip: border; - border-image: none; - outline: 0; -} - -QWidget:focus { - border: 1px solid #828282; -} - -QWidget:disabled { - color: #f5f5f5; - background-color: #828282; /* same as QMenu background-color */ -} - -QMenuBar { - color: #ffffff; - background-color: #e0e0e0; -} - -QMenuBar::item { - background-color: #e0e0e0; -} - -QMenuBar::item:selected { - color: #1b3774; - border: 1px solid #5e90fa; - background-color: #5e90fa; -} - -QMenuBar::item:pressed { - color: #1b3774; - border: 1px solid #7cabf9; - background-color: #7cabf9; - margin-bottom:-1px; - padding-bottom:1px; -} - -QMenu { - color: #ffffff; - background-color: #828282; - margin: 2px; - border: 1px solid transparent; -} - -QMenu::icon { - margin: 5px; - border-style: none; -} - -QMenu::right-arrow { - image:url(qss:images/right_arrow_light.png); -} - -QMenu::item { - color: #ffffff; - background-color: #828282; - padding: 2px 30px 2px 30px; - border: 1px solid #828282; /* reserve space for selection border */ -} - -QMenu::item:selected { - color: #1b3774; - background-color: #7cabf9; -} - -QMenu::separator { - height: 1px; - background-color: #b6b6b6; - margin-top: 2px; - margin-bottom: 2px; - margin-left: 6px; - margin-right: 6px; -} - -QMenu::indicator:non-exclusive { - color: #ffffff; - background-color: #f5f5f5; - border: 1px solid #828282; - width: 11px; - height: 11px; - border-radius:2px; -} - -QMenu::indicator:non-exclusive:checked { - background-color: #3874f2; - border: 1px solid #1b3774; - image:url(qss:images/checkbox_light.png); -} - -QGroupBox { - color: #828282; - font-weight: bold; - border:1px solid blue; - border-radius: 4px; - margin-top: 20px; - border-color: rgba(0, 0, 0, 20); /* lighter than "QGroupBox" border-color */ - background-color: rgba(255, 255, 255, 15); -} - - - -QGroupBox::title { - subcontrol-origin: margin; - subcontrol-position: top left; - padding-left: 10px; - padding-right: 10px; - padding-top: 10px; - background-color: transparent; -} - -QAbstractScrollArea { - border-radius: 2px; - border: 1px solid #3A3939; - background-color: transparent; -} - -QAbstractScrollArea::corner { - border: none; - background-color: #e6e6e6; -} - -QScrollBar:horizontal { - height: 15px; - margin: 3px 15px 3px 15px; - border: 1px transparent #828282; - border-radius: 4px; - background-color: #828282; -} - -QScrollBar::handle:horizontal { - background-color: #b6b6b6; - min-width: 5px; - border-radius: 4px; -} - -QScrollBar::add-line:horizontal { - margin: 1px 3px 0px 3px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images/right_arrow_light.png); - width: 6px; - height: 10px; - subcontrol-position: right; - subcontrol-origin: margin; -} - -QScrollBar::sub-line:horizontal { - margin: 1px 3px 0px 3px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images/left_arrow_light.png); - height: 10px; - width: 6px; - subcontrol-position: left; - subcontrol-origin: margin; -} - -QScrollBar::add-line:horizontal:hover, -QScrollBar::add-line:horizontal:on { - border-image: url(qss:images/right_arrow_lighter.png); -} - - -QScrollBar::sub-line:horizontal:hover, -QScrollBar::sub-line:horizontal:on { - border-image: url(qss:images/left_arrow_lighter.png); -} - -QScrollBar::up-arrow:horizontal, -QScrollBar::down-arrow:horizontal { - background: none; -} - - -QScrollBar::add-page:horizontal, -QScrollBar::sub-page:horizontal { - background: none; -} - -QScrollBar:vertical { - background-color: #828282; - width: 15px; - margin: 15px 3px 15px 3px; - border: 1px transparent #828282; - border-radius: 4px; -} - -QScrollBar::handle:vertical { - background-color: #b6b6b6; - min-height: 5px; - border-radius: 4px; -} - -QScrollBar::sub-line:vertical { - margin: 3px 0px 3px 1px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images/up_arrow_light.png); - height: 6px; - width: 10px; - subcontrol-position: top; - subcontrol-origin: margin; -} - -QScrollBar::add-line:vertical { - margin: 3px 0px 3px 1px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images/down_arrow_light.png); - height: 6px; - width: 10px; - subcontrol-position: bottom; - subcontrol-origin: margin; -} - -QScrollBar::sub-line:vertical:hover, -QScrollBar::sub-line:vertical:on { - border-image: url(qss:images/up_arrow_lighter.png); -} - -QScrollBar::add-line:vertical:hover, -QScrollBar::add-line:vertical:on { - border-image: url(qss:images/down_arrow_lighter.png); -} - -QScrollBar::up-arrow:vertical, -QScrollBar::down-arrow:vertical { - background: none; -} - - -QScrollBar::add-page:vertical, -QScrollBar::sub-page:vertical { - background: none; -} - -QTextEdit { - color: #828282; - background-color: #bdc1c9; - border: 1px solid #b6b6b6; - padding: 0px; - margin: 0px; -} - -QPlainTextEdit { - color: #828282; - background-color: #bdc1c9; - border-radius: 2px; - border: 1px solid #b6b6b6; - padding: 0px; - margin: 0px; -} - -QSizeGrip { - image: url(qss:images/sizegrip_light.png); - width: 16px; - height: 16px; - background-color: transparent; -} - -QRadioButton::indicator:unchecked{ - color: #828282; - background-color: #f5f5f5; - border: 1px solid #828282; -} - -QRadioButton::indicator:checked { - background-color: #3874f2; - border: 1px solid #1b3774; - image:url(qss:images/radiobutton_light.png); -} - -QCheckBox, -QRadioButton, -QCheckBox:disabled, -QRadioButton:disabled { - color: #828282; - padding: 3px; - outline: none; - background-color: transparent; -} - -QCheckBox::indicator, -QGroupBox::indicator { - color: #ffffff; - background-color: #f5f5f5; - border: 1px solid #828282; -} - -QCheckBox::indicator { - width: 11px; - height: 11px; - border-radius:2px; -} - -QRadioButton::indicator { - width: 11px; - height: 11px; - border-radius: 6px; -} - -QRadioButton::indicator:pressed, -QCheckBox::indicator:pressed, -QCheckBox::indicator:non-exclusive:checked:pressed, -QCheckBox::indicator:indeterminate:pressed, -QCheckBox::indicator:checked:pressed { - border-color: #adc5ed; -} - -QCheckBox::indicator:checked, -QGroupBox::indicator:checked { - background-color: #3874f2; - border: 1px solid #1b3774; - image:url(qss:images/checkbox_light.png); -} - -QCheckBox::indicator:disabled, -QRadioButton::indicator:disabled { - border: 1px solid #b6b6b6; -} - -QCheckBox:disabled, -QRadioButton::indicator:disabled { - color: #b6b6b6; - background-color: transparent; -} - -QCheckBox::indicator:disabled, -QGroupBox::indicator:disabled, -QMenu::indicator:non-exclusive:disabled { - background-color: #e6e6e6; -} - -QCheckBox::indicator:indeterminate { - background-color: #3874f2; - border: 1px solid #1b3774; - image: url(qss:images/checkbox_indeterminate_light.png); -} - -QCheckBox:focus, -QRadioButton:focus { - border: none; -} - -QFrame, -QFrame:pressed, -QFrame:focus, -QFrame:on { - border: 1px solid #e6e6e6; - border-radius: 3px; - padding: 0px; - /* background-color: transparent; temporal */ -} - -/* border and background of QComboBox drop-down */ -QComboBox QFrame, -QComboBox QFrame:pressed, -QComboBox QFrame:focus, -QComboBox QFrame:on { - border: 1px solid #828282; - background-color: #828282; - padding: 0px; - margin: 0px; -} - -QFrame[frameShape="0"] { - border-radius: 3px; -} - -/* Separator line */ -QFrame[height="1"], -QFrame[height="2"], -QFrame[height="3"], -QFrame[width="1"], -QFrame[width="2"], -QFrame[width="3"] { - border-width: 1px 0px 0px 0px; - border-style: solid; - border-color: #e0e0e0; - background-color: transparent; -} - -QPushButton { - color: #ffffff; - text-align: center; - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #b6b6b6, stop:1 #e6e6e6); - border: 1px solid #828282; - padding: 5px 12px 5px 12px; - margin: 4px 8px 4px 8px; - border-radius: 3px; - min-width: 14px; - min-height: 14px; -} - -QPushButton:hover, -QPushButton:focus { - color: black; - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #3874f2, stop:1 #5e90fa); - border-color: #3874f2; -} - -QPushButton:disabled, -QPushButton:disabled:checked { - color: #b6b6b6; - background-color: #e6e6e6; - border-color: #b6b6b6; -} - -QPushButton:pressed { - background-color: #3874f2; -} - -QPushButton:checked { - background-color: #5e90fa; - border-color: #3874f2; -} - -/* Color Buttons */ -Gui--ColorButton, -Gui--ColorButton:disabled { - border-color: transparent; - background-color: transparent; - /*width: 60px;*/ - height: 24px; - padding: 0px; - margin: 0px; -} - -Gui--ColorButton:hover { - border-color: #e0e0e0; - background-color: #e0e0e0; -} - -/* Buttons inside the toolbar */ -QToolBar QPushButton { - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #e0e0e0, stop:1 #e6e6e6); - border: 1px solid #b6b6b6; - min-width: 22px; - min-height: 22px; - margin-left: 2px; - margin-right: 2px; - margin-bottom: 3px; /*bigger margin to correctly separate buttons inside a vertical toolbar */ - margin-top: 1px; - padding: 1px; -} - -QToolBar QPushButton:hover, -QToolBar QPushButton:focus { - color: #ffffff; - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #e0e0e0, stop:1 #e6e6e6); - border: 1px solid #828282; -} - -QToolBar QPushButton:disabled, -QToolBar QPushButton:disabled:checked { - background-color: #e6e6e6; - border-color: #e0e0e0; -} - -QToolBar QPushButton:pressed { - background-color: #b6b6b6; - border-color: #b6b6b6; -} - -QToolBar QPushButton:checked { - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #5e90fa, stop:1 #7cabf9); - border-color: #5e90fa; -} - -QToolBar QPushButton:checked:hover, -QToolBar QPushButton:checked:focus { - color: #ffffff; - border: 1px solid #3874f2; -} - -QToolBar { - border: 1px transparent #393838; - background-color: #e6e6e6; - font-weight: bold; - margin: 0px; - padding: 0px; -} - -QToolBar::handle:horizontal { - background-image: url(qss:images/Hmovetoolbar_dark.png); - width: 10px; - margin: 6px 2px 6px 2px; - background-position: top right; - background-repeat: repeat-y; -} - -QToolBar::handle:vertical { - background-image: url(qss:images/Vmovetoolbar_dark.png); - height: 10px; - margin: 2px 6px 2px 6px; - background-position: left bottom; - background-repeat: repeat-x; -} - -QToolBar::separator:horizontal { - background-image: url(qss:images/separtoolbar_dark.png); - width: 10px; - margin: 6px 2px 6px 2px; - background-position: center center; - background-repeat: repeat-y; -} - -QToolBar::separator:vertical { - background-image: url(qss:images/separtoolbar_dark.png); - height: 10px; - margin: 2px 6px 2px 6px; - background-position: center center; - background-repeat: repeat-x; -} - -QStackedWidget { - background-color: #e6e6e6; - border: 1px transparent #e6e6e6; -} - -QAbstractSpinBox { - color: #ffffff; - border: 1px solid #b6b6b6; /* border top color defined after QAbstractSpinBox, QLineEdit and QComboBox */ - background-color: #b6b6b6; - selection-color: black; - selection-background-color: #5e90fa; -} - -QAbstractSpinBox:disabled { - color: #f5f5f5; - background-color: #e0e0e0; - border-color: #e0e0e0; -} - -QAbstractSpinBox:up-button { - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #6f9efa, stop:1 #7cabf9); - subcontrol-origin: border; - subcontrol-position: top right; - border-top-right-radius: 3px; - width: 20px; -} - -QAbstractSpinBox:down-button { - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #5e90fa, stop:1 #6f9efa); - subcontrol-origin: border; - subcontrol-position: bottom right; - border-bottom-right-radius: 3px; - width: 20px; -} - -QAbstractSpinBox:up-button:disabled, -QAbstractSpinBox:down-button:disabled { - background-color: transparent; -} - -QAbstractSpinBox::up-arrow { - image: url(qss:images/up_arrow_light.png); - top: 1px; /* fix simetry between up and down images */ -} - -QAbstractSpinBox::up-arrow:hover { - image: url(qss:images/up_arrow_lighter.png); -} - -QAbstractSpinBox::up-arrow:off { - image: url(qss:images/up_arrow_disabled_dark.png); -} - -QAbstractSpinBox::up-arrow:disabled { - image: none; -} - -QAbstractSpinBox::down-arrow { - image: url(qss:images/down_arrow_light.png); - bottom: -1px; /* fix simetry between up and down images */ -} -QAbstractSpinBox::down-arrow:hover { - image: url(qss:images/down_arrow_lighter.png); -} - -QAbstractSpinBox::down-arrow:off { - image: url(qss:images/down_arrow_disabled_dark.png); -} - -QAbstractSpinBox::down-arrow:disabled { - image: none; -} - -QToolBar QAbstractSpinBox { - margin-top: 4px; - margin-bottom: 4px; -} - -QLineEdit { - color: #ffffff; - background-color: #b6b6b6; - selection-color: black; - selection-background-color: #5e90fa; - /* Padding and margin defined */ - border-style: solid; - border: 1px solid #b6b6b6; /* border top color defined after QAbstractSpinBox, QLineEdit and QComboBox */ - border-radius: 3px; -} - -QAbstractSpinBox:focus, -QLineEdit:focus, -QComboBox:focus { - border-color: #7cabf9; -} - -QComboBox { - color: #ffffff; - background-color: #b6b6b6; - selection-color: black; - selection-background-color: #5e90fa; - border: 1px solid #b6b6b6; /* border top color defined after QAbstractSpinBox, QLineEdit and QComboBox */ - border-radius: 3px; -} - -QComboBox:on { - color: black; - background-color: #b6b6b6; - border-color: #7cabf9; -} - -QComboBox::drop-down { - subcontrol-origin: margin; - subcontrol-position: top right; - width: 20px; - border-left-width: 1px; - border-left-color: transparent; - border-left-style: solid; - border-top-right-radius: 3px; - border-bottom-right-radius: 3px; - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #5e90fa, stop:1 #7cabf9); -} - -QComboBox::down-arrow { - image: url(qss:images/down_arrow_light.png); -} - -QComboBox::down-arrow:on, -QComboBox::down-arrow:hover, -QComboBox::down-arrow:focus { - image: url(qss:images/down_arrow_lighter.png); -} - -QComboBox QAbstractItemView { - color: #ffffff; - background-color: #828282; - border-radius: 3px; - margin: 0px; - padding: 0px; - border: none; -} - -/* Common parameters for QAbstractSpinBox, QLineEdit and QComboBox */ -QSpinBox, -QDoubleSpinBox, -QAbstractSpinBox, -QLineEdit, -QComboBox { - border-top-color: #a2a2a0; /* Creates an inset effect inside the elements */ - padding: 2px 6px 2px 6px; /* This makes text colour work on QComboBox */ - margin: 0px 2px 0px 2px; - min-width: 70px; /* it was 120 because of QCombobox... */ - border-radius: 3px; -} -/* end Common parameters */ - -QAbstractItemView { - color: #828282; - alternate-background-color: #b3b8bf; /* related with QListView background */ - border: 1px solid #828282; - border-radius: 3px; - padding: 0px; -} - -/* hack to deactivate changing background color when focus (due to QFrame generic transparent color) */ -QAbstractItemView:selected, -QAbstractItemView:on, -QAbstractItemView:focus { - background-color: #bdc1c9; /* same as QTable background color */ -} - -/* hack to hide weird redundant information inside the value of a Placement cell */ -QTreeView QLabel, -QTreeView QLabel:disabled { - color: transparent; - background-color: transparent; - border: none; - border-radius: 0px; - margin: 0px; - padding: 0px; -} - -QTreeView QLineEdit { - color: #ffffff; - border-color: #b6b6b6; - background-color: #b6b6b6; - selection-color: black; - selection-background-color: #5e90fa; -} - -/* hack to hide non editable cells inside Property values */ -QTreeView QLineEdit:read-only, -QTreeView QLineEdit:disabled, -QTreeView QAbstractSpinBox:read-only, -QTreeView QAbstractSpinBox:disabled { - color: transparent; - border-color: transparent; - background-color: transparent; - selection-color: transparent; - selection-background-color: transparent; -} - -/* hack to disable margin inside Property values to following elements */ -QTreeView QSpinBox, -QTreeView QDoubleSpinBox, -QTreeView QAbstractSpinBox, -QTreeView QLineEdit, -QTreeView QComboBox { - margin-left: 0px; - margin-right: 0px; - padding-top: 0px; - padding-bottom: 0px; -} - -/* Pushbutton style for "..." inside Placement cell which launches Placement tool */ -QTreeView QPushButton { - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #b6b6b6, stop:1 #e6e6e6); - border-top: none; - border-bottom: none; - border-right: none; - border-left: 1px solid #b6b6b6; - border-radius: 0px; - margin: 0px; - padding: 0px; - height: 24px; -} - -/* Color Buttons inside the "Properties window" */ -QAbstractItemView Gui--ColorButton { - padding: 0px; - margin: 0px; - height: 10px; -} - -QAbstractItemView QPushButton:hover { - color: black; - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #3874f2, stop:1 #5e90fa); - border-color: #3874f2; -} - -QAbstractItemView QPushButton:disabled { - color: transparent; - background-color: transparent; - border-color: transparent; -} - -QLabel { - border: 0px solid #828282; -} - -QTabWidget{ - border: none; -} - -QTabWidget:focus { - border: none; -} - -QTabWidget::pane { - border: none; - padding: 0px; - background-color: #e6e6e6; - position: absolute; - top: -15px; - padding-top: 15px; -} - -QTabWidget::tab-bar { - alignment: center; -} - -QTabBar { - qproperty-drawBase: 0; - left: 5px; - background-color: transparent; -} - -QTabBar:focus { - border: 0px transparent black; -} - -QTabBar::close-button { - padding: 0px; - margin: 0px; - border-radius: 2px; - background-image: url(qss:images/close_dark.png); - background-position: center center; - background-repeat: none; -} - -QTabBar::close-button:hover { - background-color: #7cabf9; -} - -QTabBar::close-button:pressed { - background-color: #adc5ed; -} - -QTabBar::scroller { /* the width of the scroll buttons */ - width: 20px; -} - -/* the scroll buttons are tool buttons */ -QTabBar QToolButton, -QTabBar QToolButton:hover { - margin-top: 4px; - margin-bottom: 4px; - margin-left: 0px; - margin-right: 0px; - padding: 0px; - border: none; - background-color: #e6e6e6; - border-radius: 0px; -} - -QTabBar QToolButton::right-arrow:enabled { - image: url(qss:images/right_arrow_light.png); -} - -QTabBar QToolButton::right-arrow:disabled, -QTabBar QToolButton::right-arrow:off { - image: url(qss:images/right_arrow_disabled_dark.png); -} - -QTabBar QToolButton::right-arrow:hover { - image: url(qss:images/right_arrow_lighter.png); -} - - QTabBar QToolButton::left-arrow:enabled { - image: url(qss:images/left_arrow_light.png); -} - - QTabBar QToolButton::left-arrow:disabled, - QTabBar QToolButton::left-arrow:off { - image: url(qss:images/left_arrow_disabled_dark.png); -} - - QTabBar QToolButton::left-arrow:hover { - image: url(qss:images/left_arrow_lighter.png); -} - - QTabBar QToolButton::up-arrow:enabled { - image: url(qss:images/up_arrow_light.png); -} - - QTabBar QToolButton::up-arrow:disabled, - QTabBar QToolButton::up-arrow:off { - image: url(qss:images/up_arrow_disabled_dark.png); -} - - QTabBar QToolButton::up-arrow:hover { - image: url(qss:images/up_arrow_lighter.png); -} - - QTabBar QToolButton::down-arrow:enabled { - image: url(qss:images/down_arrow_light.png); -} - - QTabBar QToolButton::down-arrow:disabled, - QTabBar QToolButton::down-arrow:off { - image: url(qss:images/down_arrow_disabled_dark.png); -} - - QTabBar QToolButton::down-arrow:hover { - image: url(qss:images/down_arrow_lighter.png); -} - -/* HORIZONTAL TABS */ -QTabBar::tab:top, -QTabBar::tab:bottom { - color: #ffffff; - border: 1px solid #b6b6b6; - border-left-color: #e6e6e6; - border-right-width: 0px; - border-bottom: 1px solid #a2a2a0; /* shadown effect */ - background-color: #b6b6b6; - padding:5px 15px; - margin-top: 4px; - margin-bottom: 4px; - position: center; -} - -QTabBar::tab:top:first, -QTabBar::tab:bottom:first { - border-top-left-radius: 6px; - border-bottom-left-radius: 6px; -} - -QTabBar::tab:top:last, -QTabBar::tab:bottom:last { - border-top-right-radius: 6px; - border-bottom-right-radius: 6px; - border-right-width: 1px; -} - -QTabBar::tab:top:selected, -QTabBar::tab:bottom:selected { - color: black; - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #3874f2, stop:1 #5e90fa); - border-color: #3874f2; - border-bottom: 1px solid #a2a2a0; /* shadown effect */ -} - -QTabBar::tab:top:!selected:hover, -QTabBar::tab:bottom:!selected:hover { - color: black; -} - -QTabBar::tab:top:only-one , -QTabBar::tab:bottom:only-one { - border: 1px solid #1b3774; - border-radius: 6px; -} - -/* VERTICAL TABS */ -QTabBar::tab:left, -QTabBar::tab:right { - color: #ffffff; - border: 1px solid #b6b6b6; - border-top-color: #e6e6e6; - border-bottom-width: 0px; - border-right: 1px solid #a2a2a0; /* shadown effect */ - background-color: #b6b6b6; - padding: 15px 5px; - margin-left: 4px; - margin-right: 4px; - position: center; -} - -QTabBar::tab:left:first, -QTabBar::tab:right:first { - border-top-left-radius: 6px; - border-top-right-radius: 6px; -} - -QTabBar::tab:left:last, -QTabBar::tab:right:last { - border-bottom-left-radius: 6px; - border-bottom-right-radius: 6px; - border-bottom-width: 1px; -} - -QTabBar::tab:left:selected, -QTabBar::tab:right:selected { - color: black; - background-color: qlineargradient(spread:pad, x1:0.545, y1:1, x2:0, y2:1, stop:0 #3874f2, stop:1 #5e90fa); - border-color: #3874f2; - border-right: 1px solid #a2a2a0; /* shadown effect */ -} - -QTabBar::tab:left:!selected:hover, -QTabBar::tab:right:!selected:hover { - color: black; -} - -QTabBar::tab:left:only-one , -QTabBar::tab:right:only-one { - border: 1px solid #1b3774; - border-radius: 6px; -} - -QDockWidget { - color: #828282; - border: 1px solid #e6e6e6; - titlebar-close-icon: url(qss:images/close_dark.png); - titlebar-normal-icon: url(qss:images/undock_dark.png); -} - -QDockWidget::title { - text-align: center; - background-color: #e0e0e0; - padding: 4px; - border-radius: 4px; -} - -QDockWidget::close-button, -QDockWidget::float-button { - border: 1px transparent #e6e6e6; - border-radius: 2px; - background: transparent; - subcontrol-origin: padding; - subcontrol-position: right center; -} - -QDockWidget::close-button { - right: 4px; -} - -QDockWidget::float-button { - right: 22px; -} - -QDockWidget::close-button:hover, -QDockWidget::float-button:hover { - background: #f5f5f5; -} - -QDockWidget::close-button:pressed, -QDockWidget::float-button:pressed { - /*padding: 1px -1px -1px 1px;*/ - background-color: #e0e0e0; -} - -QTreeView, -QListView { - color: #828282; - border: 1px solid #e6e6e6; - border-radius: 4px; - background-color: #bdc1c9; /* related with alternate-background-color*/ - selection-color: black; - selection-background-color: #5e90fa; /* should be similar to QListView::item selected background-color */ - show-decoration-selected: 1; /* make the selection span the entire width of the view */ - padding: 0px; - margin: 0px 4px 0px 4px; - min-width: 130px; /* hack to correctly align Preferences icon list */ -} - -QListView, -QListView::item, -QListView QAbstractItemView { - margin: 0px; - icon-size: 20px; /* temporal */ - paint-alternating-row-colors-for-empty-area: 1; - position: absolute; - subcontrol-origin: margin; - subcontrol-position: left top; -} - -/* Control dropdown list margins of QComboBox */ -QComboBox QTreeView, -QComboBox QListView { - margin: 0px; - padding: 0px; -} - -QListView::item { - border: 0px transparent #e6e6e6; - border-radius: 4px; - background-color: transparent; - padding: 0px; - margin: 0px; - display: inline-block; - position: relative; -} - -QListView::item:selected, -QTreeView::item:selected { - color: black; - background-color: #5e90fa; /* should be similar to QListView selection-background-color */ -} - -/* Branch system */ -QTreeView::branch { - background: transparent; -} - -QTreeView::branch:has-siblings:!adjoins-item { - border-image: url(qss:images/branch_vline.png) 0; -} - -QTreeView::branch:has-siblings:adjoins-item { - border-image: url(qss:images/branch_more.png) 0; -} - -QTreeView::branch:!has-children:!has-siblings:adjoins-item { - border-image: url(qss:images/branch_end.png) 0; -} - -QTreeView::branch:closed:has-children:has-siblings { - image: url(qss:images/branch_closed_dark.png); -} - -QTreeView::branch:has-children:!has-siblings:closed { - image: url(qss:images/branch_closed_dark.png); - border-image: url(qss:images/branch_end.png) 0; -} - -QTreeView::branch:open:has-children:has-siblings { - image: url(qss:images/branch_open_dark.png); - border-image: url(qss:images/branch_more.png) 0; -} - -QTreeView::branch:open:has-children:!has-siblings { - image: url(qss:images/branch_open_dark.png); - border-image: url(qss:images/branch_end.png) 0; -} - -QSlider, -QSlider:active, -QSlider:!active { - border: none; - background-color: transparent; -} - -QSlider:horizontal { - padding: 0px 10px; -} - -QSlider:vertical { - padding: 10px 0px; -} - -QSlider::groove:horizontal { - border: 1px solid #b6b6b6; - background-color: #b6b6b6; - height: 8px; - border-radius: 5px; - margin: 4px 0; -} - -QSlider::groove:vertical { - border: 1px solid #b6b6b6; - background-color: #b6b6b6; - width: 8px; - border-radius: 5px; - margin: 4px 0; -} - -QSlider::groove:horizontal:disabled, -QSlider::groove:vertical:disabled { - border-color: #e0e0e0; - background-color: #e0e0e0; -} - -QSlider::handle:horizontal, -QSlider::handle:vertical { - background-color: #828282; - border: 1px solid #828282; - width: 14px; - height: 14px; - border-radius: 8px; -} - -QSlider::handle:horizontal { - margin: -4px 0; -} - -QSlider::handle:vertical { - margin: 0 -4px; -} - -QSlider::handle:horizontal:hover, -QSlider::handle:vertical:hover { - border-color: #3874f2; - background-color: #3874f2; -} - -QSlider::handle:horizontal:pressed, -QSlider::handle:vertical:pressed { - border-color: #1b3774; - background-color: #1b3774; -} - -QSlider::handle:horizontal:disabled, -QSlider::handle:vertical:disabled { - border-color: #b6b6b6; - background-color: #e6e6e6; -} - -QToolButton { - color: #ffffff; - text-align: center; - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #b6b6b6, stop:1 #e6e6e6); - border: 1px solid #828282; - padding-top: 5px; - padding-bottom: 5px; - padding-left: 15px; - padding-right: 15px; - margin-top: 5px; - margin-bottom: 5px; - margin-left: 10px; - margin-right: 10px; - border-radius: 3px; - outline: none; - /*min-width: 36px;*/ -} - -QToolButton:hover, -QToolButton:focus { - color: black; - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #3874f2, stop:1 #5e90fa); - border-color: #3874f2; -} - -QToolButton:disabled, -QToolButton:disabled:checked { - color: #b6b6b6; - background-color: #e6e6e6; - border-color: #b6b6b6; -} - -QToolButton:pressed { - border-color: #7cabf9; -} - -QToolButton:checked { - background-color: #5e90fa; - border-color: #3874f2; -} - -QToolButton::menu-indicator { - subcontrol-origin: padding; - subcontrol-position: center right; - right: 4px; -} - -/*The "show more" button (it can also be stylable with "QToolBarExtension" */ -QToolButton#qt_toolbar_ext_button { - border-radius: 0px; - margin: 0px; - padding: 0px; - /*background-image: url(qss:images/more_dark.png);*/ - image: transparent; - background-repeat: none; - background-position: center left; -} - -QToolButton#qt_toolbar_ext_button:hover { - /*background-image: url(qss:images/more_light.png);*/ - border-color: #e0e0e0; - background-color: #e0e0e0; -} - -QToolButton#qt_toolbar_ext_button:on { - /*background-image: url(qss:images/more_light.png);*/ - border-color: #e0e0e0; - background-color: #e0e0e0; -} - -/*Buttons inside the Toolbar*/ -QToolBar QToolButton { - color: #828282; - background-color: #e6e6e6; - border: 1px transparent #e6e6e6; - border-radius: 3px; - margin: 0px; - padding: 2px; -} - -QToolBar QToolButton:disabled { - background-color: #e6e6e6; -} - -QToolBar QToolButton:checked { - color: #1b3774; - background-color: #5e90fa; - border: 1px solid #5e90fa; -} - -QToolBar QToolButton:hover { - background-color: #e6e6e6; -} - -QToolBar QToolButton:pressed, -QToolBar QToolButton::menu-button:pressed { - background-color: #e0e0e0; - border: 1px solid #e0e0e0; -} - - -QToolBar QToolButton::menu-indicator:hover, -QToolBar QToolButton::menu-indicator:pressed { - background-color: transparent; -} - -/* the subcontrols below are used only in the MenuButtonPopup mode */ -QToolBar QToolButton::menu-button { - border: none; - border-top-right-radius: 3px; - border-bottom-right-radius: 3px; - width: 16px; /* 16px width + 4px for border = 20px allocated above */ - outline: none; - background-color: transparent; -} - -QToolBar QToolButton::menu-button:hover, -QToolBar QToolButton::menu-button:active, -QToolBar QToolButton::menu-button:disabled { - border-color: transparent; - background-color: transparent; -} - -QToolBar QToolButton::menu-arrow { - background-image: url(qss:images/down_arrow_light.png); - background-position: center center; - background-repeat: none; - subcontrol-origin: padding; - subcontrol-position: bottom right; - height: 10px; /* same as arrow image */ -} - -QToolBar QToolButton::menu-arrow:open { - background-image: url(qss:images/down_arrow_lighter.png); -} - -/* If the QToolButton is also a menu: */ -QToolBar QToolButton#qt_toolbutton_menubutton { - padding-right: 20px; - border: 1px solid transparent; -} - -QToolBar QToolButton#qt_toolbutton_menubutton:hover, -QToolBar QToolButton#qt_toolbutton_menubutton:pressed, -QToolBar QToolButton#qt_toolbutton_menubutton:open { - border: 1px solid #7cabf9; -} - -QToolBar QToolButton#qt_toolbutton_menubutton::menu-button { - border: none; /* necessary because it inherits the border from QToolButton#qt_toolbutton_menubutton */ -} - -QToolBar QToolButton#qt_toolbutton_menubutton::menu-button:hover, -QToolBar QToolButton#qt_toolbutton_menubutton::menu-button:pressed, -QToolBar QToolButton#qt_toolbutton_menubutton::menu-button:open { - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #5e90fa, stop:1 #7cabf9); -} - -QToolBar:tear { - color: blue; - background-color: red; -} - -QTableView { - color: #828282; - border: 1px solid #b6b6b6; - gridline-color: #f5f5f5; - background-color: #bdc1c9; - selection-color: #828282; - selection-background-color: #adc5ed; - border-radius: 3px; - padding: 0px; - margin: 0px; -} - -QTableView::item:hover { - background: #abb0b7; -} - -QTableView::item:disabled { - color: #e6e6e6; -} - -QTableView::item:selected { - color: #1b3774; - background-color: #7cabf9; -} - -/* when editing a cell: */ -QTableView QLineEdit { - color: #828282; - background-color: #b3b8bf; - border-radius: 0px; - margin: 0px; - padding: 0px; -} - -QHeaderView { - border: none; - background-color: #828282; - border-top-left-radius: 3px; - border-top-right-radius: 3px; - border-bottom-left-radius: 0px; - border-bottom-right-radius: 0px; - margin: 0px; - padding: 0px; -} - -QHeaderView::section { - background-color: transparent; - color: #ffffff; - border: 1px solid transparent; - border-radius: 0px; - text-align: center; -} - -QHeaderView::section::vertical { - padding: 0px 6px 0px 6px; - border-bottom: 1px solid #b6b6b6; -} - -QHeaderView::section::vertical:first { - border-top: 1px solid #b6b6b6; -} - -QHeaderView::section::vertical:last { - border-bottom: none; -} - -QHeaderView::section::vertical:only-one { - border: none; -} - -QHeaderView::section::horizontal { - padding: 0px 0px 0px 6px; - border-right: 1px solid #b6b6b6; -} - -QHeaderView::section::horizontal:first { - border-left: 1px solid #b6b6b6; -} - -QHeaderView::section::horizontal:last { - border-left: none; -} - -QHeaderView::section::horizontal:only-one { - border: none; -} - -QDockWidget QHeaderView::section { - border-width: 6px 1px 6px 1px; /* hack to bigger margin for Model Panel table headers */ -} - -QHeaderView::section:checked { - color: #1b3774; - background-color: #7cabf9; -} - - /* style the sort indicator */ -QHeaderView::down-arrow { - image: url(qss:images/down_arrow_light.png); -} - -QHeaderView::up-arrow { - image: url(qss:images/up_arrow_light.png); -} - -QTableCornerButton::section { - background-color: #828282; - border: 1px solid #828282; - border-radius: 0px; -} - -QToolBox { - padding: 3px; - color: #1b3774; - border: none; -} - -QToolBox::tab { /* TODO */ - color: #ffffff; - background-color: #b6b6b6; - border: 1px transparent #828282; - border-bottom: 1px transparent #b6b6b6; - border-top-left-radius: 5px; - border-top-right-radius: 5px; - padding: 5px; -} - -QToolBox::tab:selected { /* italicize selected tabs */ - color: #1b3774; - font: italic; - background-color: #5e90fa; - border-color: #5e90fa; - } - -QStatusBar::item { - color: #ffffff; - background-color: #e6e6e6; - border: 1px solid #e6e6e6; - border-radius: 2px; -} - - -QSplitter::handle { - background-color: #e6e6e6; - margin: 0px 11px; - padding: 0px; - border-radius: 3px; -} - -QSplitter::handle:vertical { - background-image: url(qss:images/splitter_horizontal_dark.png); - background-position: center center; - background-repeat: none; - margin: 2px 10px 2px 10px; - height: 2px; -} - -QSplitter::handle:horizontal { - background-image: url(qss:images/splitter_horizontal_dark.png); - background-position: center center; - background-repeat: none; - margin: 10px 2px 10px 2px; - width: 2px; -} - -QSplitter::handle:horizontal:hover, -QSplitter::handle:vertical:hover { - background-color: #e6e6e6; -} - -/* Similar to the splitter is the following window separator: */ -QMainWindow::separator { - border: 1px solid #e6e6e6; - background-color: #e6e6e6; - background-position: center center; - background-repeat: none; -} - -QMainWindow::separator:hover { - background-color: #e6e6e6; -} - -QMainWindow::separator:horizontal { - height: 4px; - background-image: url(qss:images/splitter_horizontal_dark.png); -} - -QMainWindow::separator:vertical { - width: 4px; - background-image: url(qss:images/splitter_vertical_dark.png); -} - -QLabel { - padding-top: 3px; - padding-bottom: 3px; - background-color: transparent; -} - -QLabel:disabled { - color: #b6b6b6; - background-color: transparent; -} - -/* Action group */ -QFrame[class="panel"] { - border: none; - background-color: #e6e6e6; -} - -/* Separator line */ -QSint--ActionGroup QFrame[height="1"], -QSint--ActionGroup QFrame[height="2"], -QSint--ActionGroup QFrame[height="3"], -QSint--ActionGroup QFrame[width="1"], -QSint--ActionGroup QFrame[width="2"], -QSint--ActionGroup QFrame[width="3"] { - border-color: #f5f5f5; -} - -QSint--ActionGroup QFrame[class="header"] { - border: none; - background-color: #828282; - border-top-left-radius: 3px; - border-top-right-radius: 3px; - border-bottom-left-radius: 0px; - border-bottom-right-radius: 0px; - margin: 0px; - padding: 0px; -} - -QSint--ActionGroup QFrame[class="header"]:hover { - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #3874f2, stop:1 #5e90fa); -} - -QSint--ActionGroup QToolButton[class="header"] { - text-align: left; - font-weight: bold; - color: #ffffff; - background-color: transparent; - border: none; - margin: 0px; - padding: 0px; -} - -QSint--ActionGroup QToolButton[class="header"]:hover { - color: black; -} - -QSint--ActionGroup QFrame[class="header"] QLabel { - background-color: transparent; - background-image: url(qss:images/down_arrow_light.png); - background-repeat: none; - background-position: center center; - padding: 0px; - margin: 0px; -} - -QSint--ActionGroup QFrame[class="header"] QLabel:hover { - background-color: transparent; - background-image: url(qss:images/down_arrow_lighter.png); -} - -QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"] { - background-color: transparent; - background-image: url(qss:images/up_arrow_light.png); - background-repeat: none; - background-position: center center; - padding: 0px; - margin: 0px; -} - -QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"]:hover { - background-color: transparent; - background-image: url(qss:images/up_arrow_lighter.png); -} - -QSint--ActionGroup QFrame[class="content"] { - background-color: #bdc1c9; - margin: 0px; - padding: 0px; - border: none; - border-top-left-radius: 0px; - border-top-right-radius: 0px; - border-bottom-left-radius: 3px; - border-bottom-right-radius: 3px; -} - -/* HACK -This might not be the best way to reset the background color: */ -QSint--ActionGroup QFrame[class="content"] QWidget { - background-color: #bdc1c9; -} - -QSint--ActionGroup QFrame[class="content"] QPushButton { - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #b6b6b6, stop:1 #e6e6e6); -} - -QSint--ActionGroup QFrame[class="content"] QPushButton:hover, -QSint--ActionGroup QFrame[class="content"] QPushButton:focus { - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #3874f2, stop:1 #5e90fa); -} - -QSint--ActionGroup QFrame[class="content"] QPushButton:disabled, -QSint--ActionGroup QFrame[class="content"] QPushButton:disabled:checked { - color: #bdc1c9; - border-color: #f5f5f5; - background-color: #f5f5f5; -} -QSint--ActionGroup QFrame[class="content"] QPushButton:checked { - background-color: #5e90fa; -} - -QSint--ActionGroup QFrame[class="content"] QComboBox { - background-color: #b6b6b6; -} - -QSint--ActionGroup QFrame[class="content"] QComboBox:on { - background-color: #b6b6b6; -} - -QSint--ActionGroup QFrame[class="content"] QComboBox QAbstractItemView { - border-color: #828282; - background-color: #828282; -} - -QSint--ActionGroup QFrame[class="content"] QListView { - border-color: #abb0b7; - background-color: #abb0b7; -} - -QSint--ActionGroup QFrame[class="content"] QAbstractSpinBox { - background-color: #b6b6b6; -} - -QSint--ActionGroup QFrame[class="content"] QLineEdit { - background-color: #b6b6b6; -} - -QSint--ActionGroup QFrame[class="content"] QComboBox:disabled, -QSint--ActionGroup QFrame[class="content"] QAbstractSpinBox:disabled, -QSint--ActionGroup QFrame[class="content"] QLineEdit:disabled { - color: #bdc1c9; - border-color: #f5f5f5; - background-color: #f5f5f5; -} - -QSint--ActionGroup QFrame[class="content"] QCheckBox:disabled, -QSint--ActionGroup QFrame[class="content"] QRadioButton:disabled { - color: #f5f5f5; - border-color: #f5f5f5; -} - -QSint--ActionGroup QFrame[class="content"] QCheckBox::indicator:disabled, -QSint--ActionGroup QFrame[class="content"] QRadioButton::indicator:disabled { - border-color: #f5f5f5; - background-color: transparent; -} - -QSint--ActionGroup QFrame[class="content"] QHeaderView { - border: none; - background-color: #828282; - border-radius: 0px; - margin: 0px; - padding: 0px; -} - -QSint--ActionGroup QFrame[class="content"] QHeaderView::section { - background-color: transparent; - color: #ffffff; - border: 1px solid transparent; - border-radius: 0px; - text-align: center; -} - -QSint--ActionGroup QFrame[class="content"] QHeaderView::section::horizontal { - padding: 6px 0px 6px 6px; - border-right: 1px solid #b6b6b6; -} - -QSint--ActionGroup QFrame[class="content"] QHeaderView::section::horizontal:first { - border-left: 1px solid #e6e6e6; -} - -QSint--ActionGroup QFrame[class="content"] QHeaderView::section::horizontal:last { - border-left: none; -} - -QSint--ActionGroup QFrame[class="content"] QHeaderView::section::horizontal:only-one { - border: none; -} -/* enf of HACK */ - - -QSint--ActionGroup QToolButton[class="action"], -QSint--ActionGroup QToolButton[class="action"]:enabled { - font-weight: bold; - color: #b6b6b6; -} - -QSint--ActionGroup QToolButton[class="action"]:hover, -QSint--ActionGroup QToolButton[class="action"]:enabled:hover { - text-decoration: none; - color: #828282; - background-color: #abb0b7; - border-color: #abb0b7; -} - -QSint--ActionGroup QToolButton[class="action"]:disabled { - color: #e6e6e6; - background-color: #abb0b7; - border-color: #abb0b7; -} - -QSint--ActionGroup QToolButton[class="action"]:focus, -QSint--ActionGroup QToolButton[class="action"]:pressed -QSint--ActionGroup QToolButton[class="action"]:enabled:focus, -QSint--ActionGroup QToolButton[class="action"]:enabled:pressed { - color: black; - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #3874f2, stop:1 #5e90fa); - border-color: #3874f2; -} - -QSint--ActionGroup QToolButton[class="action"]:on { - background-color: red; - color: red; -} - - -/* EXPERIMENTAL -================================================= */ -QDial { - background-color: #e6e6e6; -} - -QLCDNumber { - background-color: #e6e6e6; -} - -QCalendarWidget { - background-color: green; -} - -/* Expressions popup dialog fixes to embed elements */ -QAbstractSpinBox QPushButton { - padding: 0px 15px 0px 15px; - margin: 2px 10px 2px 10px; - border: 1px solid #828282; - border-radius: 3px; -} -QAbstractSpinBox QPushButton:disabled { - color: #f5f5f5; - background-color: #e6e6e6; - border-color: #e6e6e6; -} - -QAbstractSpinBox QFrame, -QSint--ActionGroup QFrame[class="content"] QAbstractSpinBox QFrame { - color: #adc5ed; - background-color: #b6b6b6; - border-color: #b6b6b6; - border-radius: 0px; - margin: 0px; - padding: 0px; -} - -QSint--ActionGroup QFrame[class="content"] QAbstractSpinBox QPushButton { - padding: 6px 15px 6px 15px; -} \ No newline at end of file +/* +ABOUT +============================================================================================================ +version 2.0 +QT theme (stylesheet) specially developed for FreeCAD (http://www.freecadweb.org/). +It might work with other software that uses QT styling. + + +LICENSE +============================================================================================================ +Copyright (c) 2016 Pablo Gil Fernández + +This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. +To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/. + + +INSTALLATION +============================================================================================================ +1) Place the .qss files and /images/ folder in the path that fits your OS: + OSX = /Users/[YOUR_USER_NAME]/Library/Preferences/FreeCAD/Gui/Stylesheets/ + WINDOWS = C:/[INSTALLATION_PATH]/FreeCAD/data/Gui/Stylesheets/ + LINUX = /home/[YOUR_USER_NAME]/.FreeCAD/Gui/Stylesheets/ + +2) In order to display correctly images: + 2.1) FreeCAD 0.16 (development builds newer than commit 5b3d50a): that's it, you are done! + + 2.2) FreeCAD 0.15: Images used in the theme need ABSOLUTE paths to be found by FreeCAD, so you should search the string "qss:images" (without "") and replace with the real path of your computer. It should be done with all the .qss files you want to install-use + find = qss:images + replace = /Users/myName/Library/Preferences/FreeCAD/Gui/Stylesheets/images + + +CUSTOMIZATION +============================================================================================================ +If you would like to change the overall look/style of the theme, just find and replace following colors in the whole file: + BACKGROUND (darker to ligher) + black + #505050 + #6e6e6e + #828282 + #a2a2a0 + #b6b6b6 + #c8c8c8 + #c3c3c3 + #d2d2d2 + #dcdcdc + #e0e0e0 + #e6e6e6 + #f0f0f0 + #f5f5f5 = main background color + white + + SELECTION (darker to lighter) + #1b3774 + #2053c0 + #3874f2 + #5e90fa = main selection color + #6f9efa = used to build QSpinBox up and down buttons, it's used as color in the middle + #7cabf9 + #adc5ed + #cbd8e6 + + +KNOWN BUGS and TO DO +============================================================================================================ + - please, follow the link to get updated information: http://forum.freecadweb.org/viewtopic.php?f=10&t=12417 +*/ + + +/*================================================================================================== +Reset elements +==================================================================================================*/ +/* Reseting everything helps to unify styles across different operating systems */ +* { + padding: 0px; + margin: 0px; + border: 0px; + border-style: none; +} + +/* specific reset for elements inside QToolBar */ +QToolBar * { + margin: 0px; + padding: 0px; +} + + +/*================================================================================================== +Main window +==================================================================================================*/ +QMainWindow, +QDialog, +QToolBar { + background-color: #f5f5f5; /* main background color */ +} + +QMdiArea[showImage="true"] { + background-image: url(qss:images/background_freecad.png); + background-position: center; + background-repeat: no-repeat; +} + + +/*================================================================================================== +MENUS +==================================================================================================*/ +QMenuBar, +QMenuBar::item { + color: black; + background-color: #f5f5f5; /* main background color */ +} + +QMenu, +QMenu::item { + color: black; + background-color: #f5f5f5; /* main background color */ +} + +QMenuBar::item:selected, +QMenuBar::item:pressed, +QMenu::item:selected, +QMenu::item:pressed { + color: white; + background-color: #5e90fa; +} + +QMenu::right-arrow { + width: 10px; + height: 10px; + image:url(qss:images/right_arrow_dark.png); + margin-right: 2px; +} + +QMenu::right-arrow:selected { + image:url(qss:images/right_arrow_lighter.png); +} + +QMenu::item { + padding: 2px 16px 2px 26px; /* make room for icon at left */ + border: 1px solid transparent; /* reserve space for selection border */ +} + +QMenu::icon { + margin-left: 2px; +} + +QMenu::separator { + height: 1px; + background-color: rgba(0,0,0,30); + margin: 6px 4px; +} + +QMenu::indicator:non-exclusive:checked { + color: white; +} + + +/*================================================================================================== +Tool bar +==================================================================================================*/ +QToolBar { + border: none; + min-width: 32px; /* allows a minimum of space between QToolBar colums */ + min-height: 32px; /* allows a minimum of space between QToolBar rows */ +} + +QToolBar::handle:horizontal { + background-image: url(qss:images/Hmovetoolbar_dark.png); + width: 10px; + margin: 6px 2px 6px 2px; + background-position: top right; + background-repeat: repeat-y; +} + +QToolBar::handle:vertical { + background-image: url(qss:images/Vmovetoolbar_dark.png); + height: 10px; + margin: 2px 6px 2px 6px; + background-position: left bottom; + background-repeat: repeat-x; +} + +QToolBar::separator:horizontal { + background-image: url(qss:images/separtoolbar_dark.png); + width: 10px; + margin: 6px 2px 6px 2px; + background-position: center center; + background-repeat: repeat-y; +} + +QToolBar::separator:vertical { + background-image: url(qss:images/separtoolbar_dark.png); + height: 10px; + margin: 2px 6px 2px 6px; + background-position: center center; + background-repeat: repeat-x; +} + + +/*================================================================================================== +Group box +==================================================================================================*/ +QGroupBox { + color: rgba(0,0,0,120); + border:1px solid rgba(0, 0, 0, 20); /* lighter than its own border-color */; + border-radius: 3px; + margin-top: 10px; + padding: 6px; + background-color: rgba(255, 255, 255, 15); +} + +QGroupBox:title { + top: -8px; + left: 12px; +} + + +/*================================================================================================== +Tooltip +==================================================================================================*/ +QToolTip { + color: white; + background-color: #828282; + /*opacity: 90%; doesn't correctly work */ + padding: 4px; + border-radius: 3px; /* has no effect */ +} + + +/*================================================================================================== +Dock widget +==================================================================================================*/ +QDockWidget { + color: rgba(0,0,0,120); + titlebar-close-icon: url(qss:images/close_dark.png); + titlebar-normal-icon: url(qss:images/undock_dark.png); +} + +QDockWidget::title { + text-align: center; + background-color: rgba(0,0,0,10); + border: 4px solid #f5f5f5; /* fix to simulate margin between this :title and tabs */ /* same as main background color */ + border-radius: 6px; /* bigger than normal due to previous border fix */ + padding: 4px 0px; /* also needed because of previous border fix */ +} + +QDockWidget::close-button, +QDockWidget::float-button { + border: none; + background: transparent; + border-radius: 3px; + subcontrol-origin: padding; + subcontrol-position: right center; +} + +QDockWidget::close-button { + right: 4px; +} + +QDockWidget::float-button { + right: 22px; +} + +QDockWidget::close-button:hover, +QDockWidget::float-button:hover { + background-color: rgba(0,0,0,15); +} + +QDockWidget::close-button:pressed, +QDockWidget::float-button:pressed { + background-color: rgba(0,0,0,30); +} + +/* fix for Python Console (probably there is a smarter way to arrive to it) */ +QDockWidget > QFrame { + background-color: #f0f0f0; + border: 1px solid #c3c3c3; +} + + +/*================================================================================================== +Progress bar +==================================================================================================*/ +QProgressBar, +QProgressBar:horizontal { + color: white; + background-color: rgba(0,0,0,10); + text-align: center; + border: 1px solid rgba(0,0,0,80); + padding: 1px; + border-radius: 3px; +} +QProgressBar::chunk, +QProgressBar::chunk:horizontal { + background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #5e90fa, stop:1 #3874f2); + border-radius: 3px; +} + + +/*================================================================================================== +Scroll +==================================================================================================*/ +QAbstractScrollArea { + border-radius: 2px; + background-color: transparent; +} + +QAbstractScrollArea::corner { + border: none; + background-color: transparent; +} + +QScrollBar:horizontal { + background-color: transparent; + height: 15px; + margin: 0px; +} + +QScrollBar::handle:vertical, +QScrollBar::handle:horizontal { + background-color: rgba(0,0,0,100); +} + +QScrollBar::handle:vertical:hover, +QScrollBar::handle:horizontal:hover { + background-color: #a2a2a0; +} + +QScrollBar::handle:horizontal { + min-width: 5px; + border-radius: 3px; + margin: 4px 15px; +} + +QScrollBar::sub-line:horizontal { + margin: 1px 3px 0px 3px; /* 1px to correctly fit the 10px width image */ + border-image: url(qss:images/left_arrow_dark.png); + width: 6px; + height: 10px; + subcontrol-position: left; + subcontrol-origin: margin; +} + +QScrollBar::add-line:horizontal { + margin: 1px 3px 0px 3px; /* 1px to correctly fit the 10px width image */ + border-image: url(qss:images/right_arrow_dark.png); + width: 6px; + height: 10px; + subcontrol-position: right; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:horizontal:hover, +QScrollBar::sub-line:horizontal:on { + border-image: url(qss:images/left_arrow_darker.png); +} + +QScrollBar::add-line:horizontal:hover, +QScrollBar::add-line:horizontal:on { + border-image: url(qss:images/right_arrow_darker.png); +} + +QScrollBar::up-arrow:horizontal, +QScrollBar::down-arrow:horizontal { + background-color: none; +} + +QScrollBar::add-page:horizontal, +QScrollBar::sub-page:horizontal { + background-color: transparent; +} + +QScrollBar:vertical { + background-color: transparent; + width: 15px; + margin: 0px; +} + +QScrollBar::handle:vertical { + min-height: 5px; + border-radius: 3px; + margin: 15px 4px; +} + +QScrollBar::sub-line:vertical { + margin: 3px 0px 3px 1px; /* 1px to correctly fit the 10px width image */ + border-image: url(qss:images/up_arrow_dark.png); + height: 6px; + width: 10px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::add-line:vertical { + margin: 3px 0px 3px 1px; /* 1px to correctly fit the 10px width image */ + border-image: url(qss:images/down_arrow_dark.png); + height: 6px; + width: 10px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:vertical:hover, +QScrollBar::sub-line:vertical:on { + border-image: url(qss:images/up_arrow_darker.png); +} + +QScrollBar::add-line:vertical:hover, +QScrollBar::add-line:vertical:on { + border-image: url(qss:images/down_arrow_darker.png); +} + +QScrollBar::up-arrow:vertical, +QScrollBar::down-arrow:vertical { + background-color: none; +} + +QScrollBar::add-page:vertical, +QScrollBar::sub-page:vertical { + background-color: transparent; +} + + +/*================================================================================================== +Tab bar +==================================================================================================*/ +QTabWidget::pane { + background-color: transparent; /* temporal (transparent background) */ /* tab content background color */ + position: absolute; +} + +QTabWidget::pane:top { + top: -1px; + border-top: 1px solid #d2d2d2; +} + +QTabWidget::pane:bottom { + bottom: -1px; + border-bottom: 1px solid #d2d2d2; +} + +QTabWidget::pane:left { + right: -1px; + border-right: 1px solid #d2d2d2; +} + +QTabWidget::pane:right { + left: -1px; + border-left: 1px solid #d2d2d2; +} + +QTabWidget::tab-bar:top, +QTabWidget::tab-bar:bottom { + left: 10px; +} + +QTabWidget::tab-bar:left, +QTabWidget::tab-bar:right { + top: 10px; +} + +QTabBar { + qproperty-drawBase: 0; /* important */ + background-color: transparent; +} + +/* Workaround for QTabBars created from docked QDockWidgets which don't draw the border if not set and reseted as follows: */ +QTabBar { + border-top: 1px solid #d2d2d2; /* set color for all QTabBars */ +} +QDockWidget QTabBar { + border-color: transparent; /* set color for all QTabBars but ones created from QDockWidget */ +} +QDialog QTabBar { + border-color: transparent; /* set color for QTabBars inside Preferences dialog */ +} +/* end fix */ + +QTabBar::tab { + background-color: transparent; + border: 1px solid transparent; + padding: 3px; +} + +QTabBar::tab:top, +QTabBar::tab:bottom { + border-top-width: 4px; /* same as selected tab colored border in order to center close-button */ + border-bottom-width: 4px; /* same as selected tab colored border in order to center close-button */ + min-width: 11ex; + margin-left: 2px; + margin-right: 2px; +} + +QTabBar::tab:left, +QTabBar::tab:right { + border-left-width: 4px; /* same as selected tab colored border in order to center close-button */ + border-right-width: 4px; /* same as selected tab colored border in order to center close-button */ + min-height: 14ex; + margin-top: 2px; + margin-bottom: 2px; +} + +QTabBar::tab:selected { + background-color: transparent; /* temporal (transparent background) */ + border-color: #d2d2d2; +} + +QTabBar::tab:top:selected { + border-top: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #5e90fa, stop:1 #3874f2); /* selection color */ + border-bottom-color: #f5f5f5; /* same as tab content background color */ +} + +QTabBar::tab:bottom:selected { + border-bottom: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #5e90fa, stop:1 #3874f2); /* selection color */ + border-top-color: #f5f5f5; /* same as tab content background color */ +} + +QTabBar::tab:right:selected { + border-left: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 #5e90fa, stop:1 #3874f2); /* selection color */ + border-right-color: #f5f5f5; /* same as tab content background color */ +} + +QTabBar::tab:left:selected { + border-right: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 #5e90fa, stop:1 #3874f2); /* selection color */ + border-left-color: #f5f5f5; /* same as tab content background color */ +} + +QTabBar::tab:!selected { + color: rgba(0,0,0,160); +} + +QTabBar::tab:!selected:hover { + color: rgba(0,0,0,220); + background-color: rgba(0,0,0,20); +} + +QTabBar::tab:first:selected { + margin-left: 0; /* the first selected tab has nothing to overlap with on the left */ +} + +QTabBar::tab:last:selected { + margin-right: 0; /* the last selected tab has nothing to overlap with on the right */ +} + +QTabBar::tab:only-one { + margin: 0; /* if there is only one tab, we don't want overlapping margins */ +} + +/* hack to access Preference TabBar background */ +QDialog#Gui__Dialog__DlgPreferences > QFrame QFrame { + background-color: transparent; /* main background color (in Windows is #f5f5f5) */ +} + +/* fix for previous hack that broke QTabWidget background on Windows */ +QDialog#Gui__Dialog__DlgPreferences QTabWidget::pane { + background-color: transparent; /* temporal (transparent background) */ +} + +/* hack to correctly align Preferences icon list on OSX */ +QDialog#Gui__Dialog__DlgPreferences > QListView { + min-width: 130px; +} + +/* unique styles for sections inside Preferences */ +QDialog#Gui__Dialog__DlgPreferences > QListView::item { + border-radius: 4px; +} + +QDialog#Gui__Dialog__DlgPreferences > QListView::item:hover { + background-color: #cbd8e6; +} + +QDialog#Gui__Dialog__DlgPreferences > QListView::item:selected { + color: #1b3774; + background-color: #cbd8e6; + border: 1px solid #7cabf9; +} + + +/*================================================================================================== +Tab bar buttons +==================================================================================================*/ +/* Close button */ +QTabBar::close-button { + subcontrol-origin: margin; + subcontrol-position: center right; /* only works for QT 4.6 and newer */; + border-radius: 2px; + background-image: url(qss:images/close_dark.png); + background-position: center center; + background-repeat: none; +} + +QTabBar::close-button:hover { + background-color: rgba(0,0,0,20); +} + +QTabBar::close-button:pressed { + background-color: rgba(0,0,0,30); +} + +/* Fix for lists inside Model tab */ +QDockWidget QTreeView, +QDockWidget QListView, +QDockWidget QTableView { + margin: 6px; + border: 1px solid #c3c3c3; /* same as regular QTreeView, QListView and QTableView */ + min-height: 40px; /* neccesary in some areas of FreeCAD */ +} + +/* Buttons to scroll tabs if there is not space to show all of them: */ +QTabBar::scroller { + width: 20px; /* the width of the scroll buttons */ +} + +QTabBar QToolButton, +QTabBar QToolButton:hover { + background-color: #f5f5f5; /* same as main background color */ +} + +QTabBar QToolButton::right-arrow:enabled { + image: url(qss:images/right_arrow_dark.png); +} + +QTabBar QToolButton::right-arrow:disabled, +QTabBar QToolButton::right-arrow:off { + image: url(qss:images/right_arrow_disabled_dark.png); +} + +QTabBar QToolButton::right-arrow:hover { + image: url(qss:images/right_arrow_darker.png); +} + + QTabBar QToolButton::left-arrow:enabled { + image: url(qss:images/left_arrow_dark.png); +} + + QTabBar QToolButton::left-arrow:disabled, + QTabBar QToolButton::left-arrow:off { + image: url(qss:images/left_arrow_disabled_dark.png); +} + + QTabBar QToolButton::left-arrow:hover { + image: url(qss:images/left_arrow_darker.png); +} + + QTabBar QToolButton::up-arrow:enabled { + image: url(qss:images/up_arrow_dark.png); +} + + QTabBar QToolButton::up-arrow:disabled, + QTabBar QToolButton::up-arrow:off { + image: url(qss:images/up_arrow_disabled_dark.png); +} + + QTabBar QToolButton::up-arrow:hover { + image: url(qss:images/up_arrow_darker.png); +} + + QTabBar QToolButton::down-arrow:enabled { + image: url(qss:images/down_arrow_dark.png); +} + + QTabBar QToolButton::down-arrow:disabled, + QTabBar QToolButton::down-arrow:off { + image: url(qss:images/down_arrow_disabled_dark.png); +} + + QTabBar QToolButton::down-arrow:hover { + image: url(qss:images/down_arrow_darker.png); +} + +QTabBar::tear { + /* default OS tear better */ +} + + +/*================================================================================================== +Tree and list views +==================================================================================================*/ +QTreeView, +QListView, +QTableView { + background-color: #f0f0f0; + alternate-background-color: #e6e6e6; /* related with QListView background */ + border: 1px solid #c3c3c3; + selection-color: white; + selection-background-color: #5e90fa; /* should be similar to QListView::item selected background-color */ + show-decoration-selected: 1; /* make the selection span the entire width of the view */ + border-radius: 3px; +} + +QListView::item:selected, +QTreeView::item:selected { + color: white; /* should be similar to QListView selection-color */ + background-color: #5e90fa; /* should be similar to QListView selection-background-color */ + show-decoration-selected: 1; /* make the selection span the entire width of the view */ +} + +/* Property Editor QTreeView (FreeCAD custom widget) */ +Gui--PropertyEditor--PropertyEditor { + gridline-color: #d2d2d2; /* same as Group header background */ +} + +/* fix for column items background when a link is present */ +Gui--PropertyEditor--PropertyEditor > QWidget > QFrame:focus { + background-color: #cbd8e6; /* same as focused background color */ +} + +/* hack to hide weird redundant information inside the value of a Placement cell */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel, +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel:disabled { + color: transparent; + background-color: transparent; + border: none; + border-radius: 0px; + margin: 0px; + padding: 0px; +} + +/* hack to hide non editable cells inside Property values */ +Gui--PropertyEditor--PropertyEditor QLineEdit:read-only, +Gui--PropertyEditor--PropertyEditor QLineEdit:disabled, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:read-only, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:disabled { + color: transparent; + border-color: transparent; + background-color: transparent; + selection-color: transparent; + selection-background-color: transparent; +} + +/* hack to disable margin inside Property values to following elements */ +Gui--PropertyEditor--PropertyEditor QSpinBox, +Gui--PropertyEditor--PropertyEditor QDoubleSpinBox, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox, +Gui--PropertyEditor--PropertyEditor QLineEdit, +Gui--PropertyEditor--PropertyEditor QComboBox { + margin-left: 0px; + margin-right: 0px; + padding-top: 0px; + padding-bottom: 0px; +} + +/* set border-radius to 0px inside list views */ +QTreeView > QWidget > QComboBox, +QTreeView > QWidget > QAbstractSpinBox, +QTreeView > QWidget > QSpinBox, +QTreeView > QWidget > QDoubleSpinBox, +QTreeView > QWidget > QLineEdit, +QTreeView > QWidget > QTextEdit, +QTreeView > QWidget > QTimeEdit, +QTreeView > QWidget > QDateEdit, +QTreeView > QWidget > QDateTimeEdit, +QTreeView > QWidget > QComboBox:drop-down, +QTreeView > QWidget > QAbstractSpinBox:up-button, +QTreeView > QWidget > QSpinBox:up-button, +QTreeView > QWidget > QDoubleSpinBox:up-button, +QTreeView > QWidget > QTimeEdit:up-button, +QTreeView > QWidget > QDateEdit:up-button, +QTreeView > QWidget > QDateTimeEdit:up-button, +QTreeView > QWidget > QAbstractSpinBox:down-button, +QTreeView > QWidget > QSpinBox:down-button, +QTreeView > QWidget > QDoubleSpinBox:down-button, +QTreeView > QWidget > QTimeEdit:down-button, +QTreeView > QWidget > QDateEdit:down-button, +QTreeView > QWidget > QDateTimeEdit:down-button, +QTreeView > QWidget > Gui--ColorButton { + border-radius: 0px; +} + +/* set focus colors to best viewing the editable fields */ +QTreeView > QWidget > QComboBox:focus, +QTreeView > QWidget > QAbstractSpinBox:focus, +QTreeView > QWidget > QSpinBox:focus, +QTreeView > QWidget > QDoubleSpinBox:focus, +QTreeView > QWidget > QLineEdit:focus, +QTreeView > QWidget > QTextEdit:focus, +QTreeView > QWidget > QTimeEdit:focus, +QTreeView > QWidget > QDateEdit:focus, +QTreeView > QWidget > QDateTimeEdit:focus { + border-color: #cbd8e6; /* same as focused background color */ + border-bottom-color: #7cabf9; /* same as focused border color */ +} + +QTreeView > QWidget > QAbstractSpinBox:read-only, +QTreeView > QWidget > QSpinBox:read-only, +QTreeView > QWidget > QDoubleSpinBox:read-only, +QTreeView > QWidget > QLineEdit:read-only, +QTreeView > QWidget > QTextEdit:read-only, +QTreeView > QWidget > QTimeEdit:read-only, +QTreeView > QWidget > QDateEdit:read-only, +QTreeView > QWidget > QDateTimeEdit:read-only { + color: transparent; + background-color: transparent; + border-color: transparent; +} + +/* Fix to correctly (not totally) draw QTextEdit on OSX at Page properties: "Page result", "Template" and "Editable Texts" */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QWidget { + min-height: 14px; +} + + +/*================================================================================================== +Header of tree and list views +==================================================================================================*/ +QHeaderView { + background-color: #c3c3c3; + border-top-left-radius: 2px; /* 1px less than its container */ + border-top-right-radius: 2px; /* 1px less than its container */ + border-bottom-left-radius: 0px; + border-bottom-right-radius: 0px; +} + +QHeaderView::section { + border:none; + padding: 4px 6px; + background-color: #c3c3c3; +} + +QHeaderView::section:horizontal { + padding: 4px 6px; /* left and right value similar to QHeaderView::section */ + border-right: 1px solid rgba(0,0,0,30); +} + +QHeaderView::section:vertical { + border-bottom: 1px solid rgba(0,0,0,30); +} + +QTableCornerButton::section { + background-color: #c3c3c3; + border-top: none; + border-left: none; + border-right: 1px solid rgba(0,0,0,30); + border-bottom: 1px solid rgba(0,0,0,30); +} + +QHeaderView::section:last { + border-right: none; +} + +QHeaderView::up-arrow { + image: url(qss:images/up_arrow_dark.png); +} + +QHeaderView::up-arrow:hover { + image: url(qss:images/up_arrow_darker.png); +} + +QHeaderView::down-arrow { + image: url(qss:images/down_arrow_dark.png); +} + +QHeaderView::down-arrow:hover { + image: url(qss:images/down_arrow_darker.png); +} + +/* Group header inside Property Editor (FreeCAD custom widget) */ +Gui--PropertyEditor--PropertyEditor { + qproperty-groupTextColor: #828282; /* same as main background color */ + qproperty-groupBackground: #d2d2d2; /* same as item gridlines */ +} + + +/*================================================================================================== +Branch system for QTreeViews +==================================================================================================*/ +QTreeView::branch { + background: transparent; +} + +QTreeView::branch:has-siblings:!adjoins-item { + border-image: url(qss:images/branch_vline.png) 0; +} + +QTreeView::branch:has-siblings:adjoins-item { + border-image: url(qss:images/branch_more.png) 0; +} + +QTreeView::branch:!has-children:!has-siblings:adjoins-item { + border-image: url(qss:images/branch_end.png) 0; +} + +QTreeView::branch:closed:has-children:has-siblings { + image: url(qss:images/branch_closed_dark.png); +} + +QTreeView::branch:has-children:!has-siblings:closed { + image: url(qss:images/branch_closed_dark.png); + border-image: url(qss:images/branch_end.png) 0; +} + +QTreeView::branch:open:has-children:has-siblings { + image: url(qss:images/branch_open_dark.png); + border-image: url(qss:images/branch_more.png) 0; +} + +QTreeView::branch:open:has-children:!has-siblings { + image: url(qss:images/branch_open_dark.png); + border-image: url(qss:images/branch_end.png) 0; +} + + +/*================================================================================================== +Splitter and windows separator +==================================================================================================*/ +QSplitter::handle { + margin: 0px 11px; + padding: 0px; +} + +QSplitter::handle:vertical { + background-image: url(qss:images/splitter_horizontal_dark.png); + background-position: center center; + background-repeat: none; + margin: 2px 4px 2px 4px; + height: 2px; +} + +QSplitter::handle:horizontal { + background-image: url(qss:images/splitter_vertical_dark.png); + background-position: center center; + background-repeat: none; + margin: 4px 2px 4px 2px; + width: 2px; +} + +/* Similar to the splitter is the following window separator: */ +QMainWindow::separator { + background-position: center center; + background-repeat: none; +} + +QMainWindow::separator:horizontal { + height: 2px; + background-image: url(qss:images/splitter_horizontal_dark.png); + margin: 4px 2px 4px 2px; +} + +QMainWindow::separator:vertical { + width: 2px; + background-image: url(qss:images/splitter_vertical_dark.png); + margin: 2px 4px 2px 4px; +} + + +/*================================================================================================== +Tasks panel (custom FreeCAD class) +==================================================================================================*/ +/* Action group */ +QFrame[class="panel"] { + background-color: transparent; /* temporal (transparent background) */ +} + +/* Separator line */ +QSint--ActionGroup QFrame[height="1"], +QSint--ActionGroup QFrame[height="2"], +QSint--ActionGroup QFrame[height="3"], +QSint--ActionGroup QFrame[width="1"], +QSint--ActionGroup QFrame[width="2"], +QSint--ActionGroup QFrame[width="3"] { + border-color: rgba(0,0,0,60); +} + +/* Panel header */ +QSint--ActionGroup QFrame[class="header"] { + border: none; + background-color: #b6b6b6; /* Task Panel Header background color */ + border-top-left-radius: 3px; + border-top-right-radius: 3px; + border-bottom-left-radius: 0px; + border-bottom-right-radius: 0px; + margin: 0px; + padding: 0px; +} + +QSint--ActionGroup QFrame[class="header"]:hover { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #5e90fa, stop:1 #3874f2); +} + +QSint--ActionGroup QToolButton[class="header"] { + color: white; /* Task Panel Header text color */ + text-align: left; + font-weight: bold; + border: none; + margin: 0px; + padding: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel { + background-color: transparent; + background-image: url(qss:images/down_arrow_light.png); + background-repeat: none; + background-position: center center; + padding: 0px; + margin: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel:hover { + background-color: transparent; + background-image: url(qss:images/down_arrow_lighter.png); +} + +QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"] { + background-color: transparent; + background-image: url(qss:images/up_arrow_light.png); + background-repeat: none; + background-position: center center; + padding: 0px; + margin: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"]:hover { + background-color: transparent; + background-image: url(qss:images/up_arrow_lighter.png); +} + +QSint--ActionGroup QFrame[class="content"] { + background-color: #e6e6e6; /* Task Panel background color */ + margin: 0px; + padding: 0px; + border: none; + border-top-left-radius: 0px; + border-top-right-radius: 0px; + border-bottom-left-radius: 3px; + border-bottom-right-radius: 3px; +} + +QSint--ActionGroup QFrame[class="content"] > QWidget { + background-color: #e6e6e6; /* Task Panel background color */ +} + +/* Fixs for tabs inside Task Panel */ +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:top:selected { + border-bottom-color: #e6e6e6; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:bottom:selected { + border-top-color: #e6e6e6; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:right:selected { + border-right-color: #e6e6e6; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:left:selected { + border-left-color: #e6e6e6; /* same as Task Panel background color */ +} + + +/*================================================================================================== +Buttons +==================================================================================================*/ +/* Common */ +QComboBox, +QAbstractSpinBox, +QSpinBox, +QDoubleSpinBox, +QLineEdit, +QTextEdit, +QTimeEdit, +QDateEdit, +QDateTimeEdit { + color: #6e6e6e; + background-color: #e0e0e0; + selection-color: white; + selection-background-color: #5e90fa; + border: 1px solid #e0e0e0; + border-radius: 3px; + min-width: 50px; /* it ensures the default value is correctly displayed */ + padding: 1px 2px; /* temporal: could don't be compatible with elements inside Tree/List view */ +} + +/* shifts text/number editable field to the left to make space for the up/down or drop-down buttons */ +QComboBox, +QAbstractSpinBox, +QSpinBox, +QDoubleSpinBox, +QTimeEdit, +QDateEdit, +QDateTimeEdit { + padding-right: 20px; +} + +/* when QTextEdit are no editable */ +QTextEdit:!editable { + background-color: #f0f0f0; + border: 1px solid #c3c3c3; +} + +QComboBox:focus, +QAbstractSpinBox:focus, +QSpinBox:focus, +QDoubleSpinBox:focus, +QLineEdit:focus, +QTextEdit:focus, +QTimeEdit:focus, +QDateEdit:focus, +QDateTimeEdit:focus { + color: black; + border-color: #7cabf9; + border-right-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #5e90fa, stop:1 #7cabf9); /* same as up/down or drop-down button color */ + background-color: #cbd8e6; +} + +QComboBox:disabled, +QAbstractSpinBox:disabled, +QSpinBox:disabled, +QDoubleSpinBox:disabled, +QLineEdit:disabled, +QTextEdit:disabled, +QTimeEdit:disabled, +QDateEdit:disabled, +QDateTimeEdit:disabled { + color: #c3c3c3; + background-color: #e0e0e0; /* same as enabled color */ + border-color: #e0e0e0; /* same as enabled color */ +} + +QAbstractSpinBox:up-button, +QSpinBox:up-button, +QDoubleSpinBox:up-button, +QTimeEdit:up-button, +QDateEdit:up-button, +QDateTimeEdit:up-button, +QAbstractSpinBox:down-button, +QSpinBox:down-button, +QDoubleSpinBox:down-button, +QTimeEdit:down-button, +QDateEdit:down-button, +QDateTimeEdit:down-button { + background-color: #d2d2d2; + subcontrol-origin: border; /* important */ + width: 20px; /* same as QComboBox ... QDateTimeEdit padding-right */ +} + +QAbstractSpinBox:up-button, +QSpinBox:up-button, +QDoubleSpinBox:up-button, +QTimeEdit:up-button, +QDateEdit:up-button, +QDateTimeEdit:up-button { + subcontrol-position: top right; + border-top-right-radius: 3px; + height: 12px; /* fix for Ubuntu that doesn't divide the up/down button into the exact middle */ +} + +QAbstractSpinBox:down-button, +QSpinBox:down-button, +QDoubleSpinBox:down-button, +QTimeEdit:down-button, +QDateEdit:down-button, +QDateTimeEdit:down-button { + subcontrol-position: bottom right; + border-bottom-right-radius: 3px; +} + +QAbstractSpinBox:up-button:focus, +QSpinBox:up-button:focus, +QDoubleSpinBox:up-button:focus, +QTimeEdit:up-button:focus, +QDateEdit:up-button:focus, +QDateTimeEdit:up-button:focus { + background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #6f9efa, stop:1 #7cabf9); +} + +QAbstractSpinBox:down-button:focus, +QSpinBox:down-button:focus, +QDoubleSpinBox:down-button:focus, +QTimeEdit:down-button:focus, +QDateEdit:down-button:focus, +QDateTimeEdit:down-button:focus { + background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #5e90fa, stop:1 #6f9efa); +} + +QAbstractSpinBox:up-button:disabled, +QSpinBox:up-button:disabled, +QDoubleSpinBox:up-button:disabled, +QTimeEdit:up-button:disabled, +QDateEdit:up-button:disabled, +QDateTimeEdit:up-button:disabled, +QAbstractSpinBox:down-button:disabled, +QSpinBox:down-button:disabled, +QDoubleSpinBox:down-button:disabled, +QTimeEdit:down-button:disabled, +QDateEdit:down-button:disabled, +QDateTimeEdit:down-button:disabled { + background-color: transparent; +} + +QAbstractSpinBox::up-arrow, +QSpinBox::up-arrow, +QDoubleSpinBox::up-arrow, +QTimeEdit::up-arrow, +QDateEdit::up-arrow, +QDateTimeEdit::up-arrow { + image: url(qss:images/up_arrow_dark.png); + top: 0px; /* fix simetry between up and down images */ +} + +QAbstractSpinBox::up-arrow:focus, +QSpinBox::up-arrow:focus, +QDoubleSpinBox::up-arrow:focus, +QTimeEdit::up-arrow:focus, +QDateEdit::up-arrow:focus, +QDateTimeEdit::up-arrow:focus { + image: url(qss:images/up_arrow_lighter.png); +} + +QAbstractSpinBox::up-arrow:off, +QSpinBox::up-arrow:off, +QDoubleSpinBox::up-arrow:off, +QTimeEdit::up-arrow:off, +QDateEdit::up-arrow:off, +QDateTimeEdit::up-arrow:off { + image: url(qss:images/up_arrow_disabled_dark.png); +} + +QAbstractSpinBox::up-arrow:disabled, +QSpinBox::up-arrow:disabled, +QDoubleSpinBox::up-arrow:disabled, +QTimeEdit::up-arrow:disabled, +QDateEdit::up-arrow:disabled, +QDateTimeEdit::up-arrow:disabled { + image: url(qss:images/up_arrow_disabled_dark.png); +} + +QAbstractSpinBox::down-arrow, +QSpinBox::down-arrow, +QDoubleSpinBox::down-arrow, +QTimeEdit::down-arrow, +QDateEdit::down-arrow, +QDateTimeEdit::down-arrow { + image: url(qss:images/down_arrow_dark.png); + bottom: 0px; /* fix simetry between up and down images */ +} + +QAbstractSpinBox::down-arrow:focus, +QSpinBox::down-arrow:focus, +QDoubleSpinBox::down-arrow:focus, +QTimeEdit::down-arrow:focus, +QDateEdit::down-arrow:focus, +QDateTimeEdit::down-arrow:focus { + image: url(qss:images/down_arrow_lighter.png); +} + +QAbstractSpinBox::down-arrow:off, +QSpinBox::down-arrow:off, +QDoubleSpinBox::down-arrow:off, +QTimeEdit::down-arrow:off, +QDateEdit::down-arrow:off, +QDateTimeEdit::down-arrow:off { + image: url(qss:images/down_arrow_disabled_dark.png); +} + +QAbstractSpinBox::down-arrow:disabled, +QSpinBox::down-arrow:disabled, +QDoubleSpinBox::down-arrow:disabled, +QTimeEdit::down-arrow:disabled, +QDateEdit::down-arrow:disabled, +QDateTimeEdit::down-arrow:disabled { + image: url(qss:images/down_arrow_disabled_dark.png); +} + +/* ComboBox */ +QComboBox::drop-down { + background-color: #d2d2d2; + subcontrol-origin: border; /* important */ + subcontrol-position: top right; + width: 20px; + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; +} + +QComboBox::drop-down:on, +QComboBox::drop-down:focus { + background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #5e90fa, stop:1 #7cabf9); +} + +QComboBox::down-arrow { + image: url(qss:images/down_arrow_dark.png); +} + +QComboBox::down-arrow:on, +QComboBox::down-arrow:focus { + image: url(qss:images/down_arrow_lighter.png); +} + +QComboBox::down-arrow:off, +QComboBox::down-arrow:disabled { + image: url(qss:images/down_arrow_disabled_dark.png); +} + +/* ComboBox menu */ +QComboBox { + selection-color: white; + selection-background-color: #5e90fa; +} + +QComboBox QAbstractItemView { + color: #6e6e6e; /* same as regular QComboBox color */ + background-color: transparent; + selection-color: white; + selection-background-color: #5e90fa; + border-width: 5px 0px 5px 0px; + border-style: solid; + border-color: transparent; + margin: 0px -1px 0px 0px; /* temporal: hack for Mac... try it on Windows and Linux */ +} + + +/*================================================================================================== +Push button +==================================================================================================*/ +QPushButton { + color: #6e6e6e; + text-align: center; + background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #f5f5f5, stop:1 #e6e6e6); + border: 1px solid #d2d2d2; + border-bottom-color: #c3c3c3; /* simulates shadow under the button */ + padding: 4px 22px; + margin: 4px 4px; + min-height: 16px; /* same as QTabBar QPushButton min-width */ + border-radius: 4px; +} + +QPushButton:hover, +QPushButton:focus { + color: white; + border-color: #3874f2; + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #5e90fa, stop:1 #3874f2); +} + +QPushButton:disabled, +QPushButton:disabled:checked { + color: #b6b6b6; + border-color: #e6e6e6; + background-color: #e6e6e6; +} + +QPushButton:pressed { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #3874f2, stop:1 #5e90fa); +} + +QPushButton:checked { + background-color: #5e90fa; + border-color: #3874f2; +} + +/* Color Buttons */ +Gui--ColorButton, +Gui--ColorButton:disabled { + padding: 0px; /* reset */ + margin: 0px; /* reset */ +} + +Gui--ColorButton { + background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #f5f5f5, stop:1 #e6e6e6); + border: 1px solid #d2d2d2; + border-bottom-color: #c3c3c3; /* simulates shadow under the button */ +} + +Gui--ColorButton:disabled { + border-color: transparent; + background-color: rgba(0,0,0,10); +} + +Gui--ColorButton:hover, +Gui--ColorButton:focus { + border-color: #3874f2; + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #5e90fa, stop:1 #3874f2); +} + +Gui--ColorButton:pressed { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #3874f2, stop:1 #5e90fa); +} + +/* Pushbutton style for "..." inside Placement cell which launches Placement tool */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QPushButton { + background-color: #b6b6b6; + border: 1px solid #828282; + min-width: 16px; /* reset it due to larger value on regular QPushButton, same or bigger value as regular QPushButton min-height */ + border-radius: 0px; + margin: 0px; /* reset */ + padding: 0px; /* reset */ +} + +/* Fix for Expressions description QFrame that is "broken" with initial reset */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QWidget > QWidget > QFrame { + background-color: #f5f5f5; /* main background color */ + border: 1px solid #dcdcdc; + border-radius: 2px; + padding: 2px 6px; +} + + +/*================================================================================================== +Tool button inside QDialogs that works as QPushButtons +==================================================================================================*/ +/* found under Tools -> Customize -> Macros -> Pixmap "..." button */ +QDialog QToolButton { + color: #6e6e6e; + text-align: center; + background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #f5f5f5, stop:1 #e6e6e6); + border: 1px solid #d2d2d2; + border-bottom-color: #c3c3c3; /* simulates shadow under the button */ + padding: 0px; /* different than regular QPushButton */ + margin: 2px; /* different than regular QPushButton */ + min-height: 16px; /* same as QTabBar QPushButton min-width */ + border-radius: 4px; +} + +QDialog QToolButton:hover, +QDialog QToolButton:focus { + color: white; + border-color: #3874f2; + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #5e90fa, stop:1 #3874f2); +} + +QDialog QToolButton:disabled, +QDialog QToolButton:disabled:checked { + color: #b6b6b6; + border-color: #e6e6e6; + background-color: #e6e6e6; +} + +QDialog QToolButton:pressed { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #3874f2, stop:1 #5e90fa); +} + +QPushButton:checked { + background-color: #5e90fa; + border-color: #3874f2; +} + + +/*================================================================================================== +Radio button +==================================================================================================*/ +QRadioButton::indicator:unchecked{ + color: #505050; + background-color: rgba(0, 0, 0, 20); + border: 1px solid #505050; +} + +QRadioButton::indicator:checked { + background-color: #5e90fa; /* QCheckBox has the same color */ + border: 1px solid #3874f2; /* QCheckBox has the same color */ + image:url(qss:images/radiobutton_light.png); +} + +QRadioButton, +QRadioButton:disabled { + color: #505050; + padding: 3px; + outline: none; + background-color: transparent; +} + +QRadioButton::indicator { + width: 11px; + height: 11px; + border-radius: 6px; +} + +QRadioButton::indicator:pressed { + border-color: #adc5ed; +} + +QRadioButton::indicator:disabled { + border: 1px solid #6e6e6e; +} + +QRadioButton::indicator:disabled { + color: #6e6e6e; + background-color: transparent; +} + +QRadioButton:focus { + border: none; +} + + +/*================================================================================================== +Checkbox +==================================================================================================*/ +QCheckBox, +QCheckBox:disabled { + color: #505050; + padding: 3px; + outline: none; + background-color: transparent; +} + +QCheckBox::indicator { + color: #c8c8c8; + background-color: rgba(0,0,0,20); + border: 1px solid #505050; +} + +QCheckBox::indicator { + width: 11px; + height: 11px; + border-radius:2px; +} + +QCheckBox::indicator:pressed, +QCheckBox::indicator:non-exclusive:checked:pressed, +QCheckBox::indicator:indeterminate:pressed, +QCheckBox::indicator:checked:pressed { + border-color: #adc5ed; +} + +QCheckBox::indicator:checked { + background-color: #5e90fa; /* QRadioButton has the same color */ + border: 1px solid #3874f2; /* QRadioButton has the same color */ + image:url(qss:images/checkbox_light.png); +} + +QCheckBox:disabled { + color: rgba(0,0,0,40); + background-color: transparent; +} + +QCheckBox::indicator:disabled { + background-color: rgba(0,0,0,20); + border: 1px solid rgba(0,0,0,20); +} + +QCheckBox::indicator:indeterminate { + background-color: #5e90fa; + border: 1px solid #3874f2; + image: url(qss:images/checkbox_indeterminate_light.png); +} + +QCheckBox:focus { + border: none; +} + + +/*================================================================================================== +Slider +==================================================================================================*/ +QSlider, +QSlider:active, +QSlider:!active { + border: none; + background-color: transparent; +} + +QSlider:horizontal { + padding: 0px 10px; +} + +QSlider:vertical { + padding: 10px 0px; +} + +QSlider::groove { + background-color: rgba(0,0,0,30); + border: 1px solid rgba(0,0,0,40); + border-radius: 5px; + margin: 4px 0px; +} + +QSlider::groove:horizontal { + height: 8px; +} + +QSlider::groove:vertical { + width: 8px; +} + +QSlider::groove:horizontal:disabled, +QSlider::groove:vertical:disabled { + border-color: #dcdcdc; + background-color: #dcdcdc; +} + +QSlider::handle:horizontal, +QSlider::handle:vertical { + background-color: #b6b6b6; + border: 1px solid #b6b6b6; + width: 14px; + height: 14px; + border-radius: 8px; +} + +QSlider::handle:horizontal { + margin: -4px 0; +} + +QSlider::handle:vertical { + margin: 0 -4px; +} + +QSlider::handle:horizontal:hover, +QSlider::handle:vertical:hover, +QSlider::handle:horizontal:pressed, +QSlider::handle:vertical:pressed { + border-color: #5e90fa; + background-color: #5e90fa; +} + +QSlider::handle:horizontal:disabled, +QSlider::handle:vertical:disabled { + border-color: #dcdcdc; + background-color: #dcdcdc; +} + + +/*================================================================================================== +Toolbar buttons +==================================================================================================*/ +QToolBar > QToolButton { + margin: 2px; + padding: 2px; +} + +QToolBar > QPushButton, +/*QToolBar > QComboBox, disabled because creates different margins for body and drop-down button */ +QToolBar > QAbstractSpinBox, +QToolBar > QSpinBox, +QToolBar > QDoubleSpinBox, +QToolBar > QLineEdit, +QToolBar > QTextEdit, +QToolBar > QTimeEdit, +QToolBar > QDateEdit, +QToolBar > QDateTimeEdit { + margin: 2px; + padding: 2px; +} + +QToolBar > QPushButton { + border-radius: 4px; /* same as regular QPushButton */ + min-width: 20px; /* reset it due to larger value on regular QPushButton, same or bigger value as regular QPushButton min-height */ +} + +QToolBar > QPushButton:checked { + border: 1px solid #3874f2; + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #5e90fa, stop:1 #3874f2); +} + +QToolBar > QPushButton:!checked { + background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #f5f5f5, stop:1 #e6e6e6); + border: 1px solid #d2d2d2; + border-bottom-color: #c3c3c3; /* simulates shadow under the button */ +} + +QToolBar > QPushButton:checked:hover { + border-color: #2053c0; +} + +QToolBar > QPushButton:!checked:hover { + color: black; + border-color: #b6b6b6; +} + +QToolBar > QPushButton:checked:pressed { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #3874f2, stop:1 #5e90fa); +} + +QToolBar > QPushButton:!checked:pressed { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #b6b6b6, stop:1 #e6e6e6); +} + +QToolBar > QPushButton:checked:disabled, +QToolBar > QPushButton:!checked:disabled { + border: none; + background-color: transparent; +} + +/* ToolBar menu buttons (buttons with drop-down menu) */ +QToolBar > QToolButton#qt_toolbutton_menubutton { + padding-right: 20px; /* Hack to add more width to buttons with menu */ + border: 1px solid transparent; + border-radius: 3px; +} + +QToolBar > QToolButton#qt_toolbutton_menubutton:hover, +QToolBar > QToolButton#qt_toolbutton_menubutton:pressed, +QToolBar > QToolButton#qt_toolbutton_menubutton:open { + border: 1px solid #7cabf9; +} + +QToolBar QToolButton::menu-button, +QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button { + border: none; + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; + width: 16px; /* 16px width + 4px for border = 20px allocated above */ + outline: none; + background-color: transparent; +} + +QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:hover, +QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:pressed, +QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:open { + background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #5e90fa, stop:1 #7cabf9); +} + +QToolBar > QToolButton::menu-arrow { + background-image: url(qss:images/down_arrow_dark.png); + background-position: center center; + background-repeat: none; + subcontrol-origin: padding; + subcontrol-position: bottom right; + height: 10px; /* same as arrow image */ +} + +QToolBar > QToolButton::menu-arrow:hover { + background-image: url(qss:images/down_arrow_lighter.png); +} + +QToolBar > QToolButton::menu-arrow:open { + background-image: url(qss:images/down_arrow_lighter.png); +} + +/*The "show more" button (it can also be stylable with "QToolBarExtension" */ +QToolBar QToolButton#qt_toolbar_ext_button { + margin: 0px; + padding: 0px; + /*background-image: url(qss:images/more_dark.png);*/ + image: transparent; + background-repeat: none; + background-position: center left; +} + +QToolBar QToolButton#qt_toolbar_ext_button:hover { + /*background-image: url(qss:images/more_light.png);*/ + border-color: #e0e0e0; + background-color: #e0e0e0; +} + +QToolBar QToolButton#qt_toolbar_ext_button:on { + /*background-image: url(qss:images/more_light.png);*/ + border-color: #e0e0e0; + background-color: #e0e0e0; +} + + +/*================================================================================================== +Tables (spreadsheets) +==================================================================================================*/ +QTableView { + gridline-color: #d2d2d2; + selection-color: #1b3774; + selection-background-color: #cbd8e6; +} + +QTableView::item:hover { + background-color: rgba(0,0,0,10); /* temporal: is it displayed in Linux or Windows? on OSX it isn't */ +} + +QTableView::item:disabled { + color: #e6e6e6; +} + +QTableView::item:selected { + color: #1b3774; + border-color: #cbd8e6; /* same as focused background color */ + border-bottom-color: #7cabf9; /* same as focused border color */ +} + +/* fix for elements inside the cells */ +QTableView QComboBox, +QTableView QAbstractSpinBox, +QTableView QSpinBox, +QTableView QDoubleSpinBox, +QTableView QLineEdit, +QTableView QTextEdit, +QTableView QTimeEdit, +QTableView QDateEdit, +QTableView QDateTimeEdit, +QTableView QComboBox:drop-down, +QTableView QAbstractSpinBox:up-button, +QTableView QSpinBox:up-button, +QTableView QDoubleSpinBox:up-button, +QTableView QTimeEdit:up-button, +QTableView QDateEdit:up-button, +QTableView QDateTimeEdit:up-button, +QTableView QAbstractSpinBox:down-button, +QTableView QSpinBox:down-button, +QTableView QDoubleSpinBox:down-button, +QTableView QTimeEdit:down-button, +QTableView QDateEdit:down-button, +QTableView QDateTimeEdit:down-button, +QTableView Gui--ColorButton { + border-radius: 0px; +} + +QTableView QComboBox, +QTableView QAbstractSpinBox, +QTableView QSpinBox, +QTableView QDoubleSpinBox, +QTableView QLineEdit, +QTableView QTextEdit, +QTableView QTimeEdit, +QTableView QDateEdit, +QTableView QDateTimeEdit { + color: black; + background-color: transparent; + border-color: transparent; +} + +QTableView QComboBox:drop-down, +QTableView QAbstractSpinBox:up-button, +QTableView QSpinBox:up-button, +QTableView QDoubleSpinBox:up-button, +QTableView QTimeEdit:up-button, +QTableView QDateEdit:up-button, +QTableView QDateTimeEdit:up-button, +QTableView QAbstractSpinBox:down-button, +QTableView QSpinBox:down-button, +QTableView QDoubleSpinBox:down-button, +QTableView QTimeEdit:down-button, +QTableView QDateEdit:down-button, +QTableView QDateTimeEdit:down-button, +QTableView Gui--ColorButton { + background-color: rgba(0,0,0,30); +} + +QTableView QComboBox:focus, +QTableView QAbstractSpinBox:focus, +QTableView QSpinBox:focus, +QTableView QDoubleSpinBox:focus, +QTableView QLineEdit:focus, +QTableView QTextEdit:focus, +QTableView QTimeEdit:focus, +QTableView QDateEdit:focus, +QTableView QDateTimeEdit:focus { + color: #1b3774; + selection-color: white; + selection-background-color: #5e90fa; + border-color: #cbd8e6; + background-color: #cbd8e6; +} + +QTableView QComboBox:disabled, +QTableView QAbstractSpinBox:disabled, +QTableView QSpinBox:disabled, +QTableView QDoubleSpinBox:disabled, +QTableView QLineEdit:disabled, +QTableView QTextEdit:disabled, +QTableView QTimeEdit:disabled, +QTableView QDateEdit:disabled, +QTableView QDateTimeEdit:disabled { + color: rgba(0,0,0,120); + background-color: transparent; + border-color: transparent; +} + +QTableView QComboBox:read-only, +QTableView QAbstractSpinBox:read-only, +QTableView QSpinBox:read-only, +QTableView QDoubleSpinBox:read-only, +QTableView QLineEdit:read-only, +QTableView QTextEdit:read-only, +QTableView QTimeEdit:read-only, +QTableView QDateEdit:read-only, +QTableView QDateTimeEdit:read-only { + color: black; + background-color: transparent; + border-color: transparent; +} + + +/*================================================================================================== +EXPERIMENTAL +==================================================================================================*/ + +/* Fix for preventing elements in different rows to accidentaly overlap */ +QDialog QGroupBox QFrame { + margin: 2px 0px; +} + +*[mandatoryField="true"] { background-color: cyan } \ No newline at end of file diff --git a/light-green.qss b/light-green.qss index d2ddca2..4060d14 100644 --- a/light-green.qss +++ b/light-green.qss @@ -1,1906 +1,1876 @@ -/* -ABOUT -=========================================================== -version 1.8 -QT theme (stylesheet) specially developed for FreeCAD (http://www.freecadweb.org/). -It might work with other software that uses QT styling. - - -LICENSE -=========================================================== -Copyright (c) 2015 Pablo Gil Fernández -The stylesheet barely uses code from Colin Duquesnoy "generic QT stylesheet" - -This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. -To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/. - - -INSTALLATION -=========================================================== -1) Place the .qss files and /images/ folder in the path that fits your OS: - OSX = /Users/[YOUR_USER_NAME]/Library/Preferences/FreeCAD/Gui/Stylesheets/ - WINDOWS = C:/[INSTALLATION_PATH]/FreeCAD/data/Gui/Stylesheets/ - LINUX = /home/[YOUR_USER_NAME]/.FreeCAD/Gui/Stylesheets/ - -2) In order to display correctly images that are used inside the stylesheet: - 2.1) If you use FreeCAD 0.16 (development builds newer than commit 5b3d50a): that's it, you are done! - - 2.2) If you use FreeCAD 0.15: Images used in the theme need full paths to be found by FreeCAD, so you should search the string "qss:images" (without "") and replace with the real path of your computer. It should be done with all the .qss files you want to install-use - find = qss:images - replace = /Users/myName/Library/Preferences/FreeCAD/Gui/Stylesheets/images - - -CUSTOMIZATION -=========================================================== -If you would like to change the overall look/style of the theme, just find and replace following colors in the whole file: - background darker = #828282 - background dark and slightly darker = #a2a2a1 - background dark = #b6b6b6 - background normal and slightly darker = #e0e0e0 - background normal = #e6e6e6 - background light = #f5f5f5 - background lighter = #ffffff - - lists background = #d0d3cd - lists background (alternate) = #cccfc9 - lists backgrounds selection = #c8cbc4 - - foreground = black - - selection darker = #5d7619 - selection dark = #97c029 - selection normal = #b5d757 - selection inbetween normal and light = #c0dd70 (used to build SpinBoxes) - selection light = #cbe389 - selection lighter = #dfefb4 - - -CAVEATS -=========================================================== - - FreeCAD 0.15 - - full paths to images are needed, that means all these .qss files should be edited per user - - the "Task panel" is not stylable - - in app icons-buttons are designed in svg but are not stylable, that is, it's not possible to change them... I hope it also changes in the near future - - -KNOWN BUGS and TO DO -=========================================================== - - please, follow the link to get updated information: http://forum.freecadweb.org/viewtopic.php?f=10&t=12417 -*/ - -/* RESET EVERYTHING */ -QAbstractScrollArea,QCheckBox,QColumnView,QComboBox,QDateEdit,QDateTimeEdit,QDialog,QDialogButtonBox,QDockWidget,QDoubleSpinBox,QFrame,QGroupBox,QHeaderView,QLabel,QLineEdit,QListView,QListWidget,QMainWindow,QMenu,QMenuBar,QMessageBox,QProgressBar,QPushButton,QRadioButton,QScrollBar,QSizeGrip,QSlider,QSpinBox,QSplitter,QStatusBar,QTabBar,QTabWidget,QTableView,QTableWidget,QTextEdit,QTimeEdit,QToolBar,QToolButton,QToolBox,QToolTip,QTreeView,QTreeWidget,QWidget { - padding: 0px; - margin: 0px; - border: 0px; - border-style: none; - background-color: #e6e6e6; /* set with default background color */ -} - -QMdiArea[showImage="true"] { - background-image: url(qss:images/background_freecad.png); - background-position: center; - background-repeat: no-repeat; -} - -QProgressBar, -QProgressBar:horizontal { - background: #d0d3cd; - border: 1px solid #b6b6b6; - text-align: center; - padding: 1px; - border-radius: 4px; -} -QProgressBar::chunk, -QProgressBar::chunk:horizontal { - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #97c029, stop:1 #b5d757); - border-radius: 3px; -} - -QToolTip { - background-color: #828282; - color: black; - padding: 4px; - border-radius: 4px; - /*opacity: 200;*/ -} - -QWidget { - color: #828282; - background-color: #e6e6e6; - background-clip: border; - border-image: none; - outline: 0; -} - -QWidget:focus { - border: 1px solid #828282; -} - -QWidget:disabled { - color: #f5f5f5; - background-color: #828282; /* same as QMenu background-color */ -} - -QMenuBar { - color: #ffffff; - background-color: #e0e0e0; -} - -QMenuBar::item { - background-color: #e0e0e0; -} - -QMenuBar::item:selected { - color: #5d7619; - border: 1px solid #b5d757; - background-color: #b5d757; -} - -QMenuBar::item:pressed { - color: #5d7619; - border: 1px solid #cbe389; - background-color: #cbe389; - margin-bottom:-1px; - padding-bottom:1px; -} - -QMenu { - color: #ffffff; - background-color: #828282; - margin: 2px; - border: 1px solid transparent; -} - -QMenu::icon { - margin: 5px; - border-style: none; -} - -QMenu::right-arrow { - image:url(qss:images/right_arrow_light.png); -} - -QMenu::item { - color: #ffffff; - background-color: #828282; - padding: 2px 30px 2px 30px; - border: 1px solid #828282; /* reserve space for selection border */ -} - -QMenu::item:selected { - color: #5d7619; - background-color: #cbe389; -} - -QMenu::separator { - height: 1px; - background-color: #b6b6b6; - margin-top: 2px; - margin-bottom: 2px; - margin-left: 6px; - margin-right: 6px; -} - -QMenu::indicator:non-exclusive { - color: #ffffff; - background-color: #f5f5f5; - border: 1px solid #828282; - width: 11px; - height: 11px; - border-radius:2px; -} - -QMenu::indicator:non-exclusive:checked { - background-color: #97c029; - border: 1px solid #5d7619; - image:url(qss:images/checkbox_light.png); -} - -QGroupBox { - color: #828282; - font-weight: bold; - border:1px solid blue; - border-radius: 4px; - margin-top: 20px; - border-color: rgba(0, 0, 0, 20); /* lighter than "QGroupBox" border-color */ - background-color: rgba(255, 255, 255, 15); -} - - - -QGroupBox::title { - subcontrol-origin: margin; - subcontrol-position: top left; - padding-left: 10px; - padding-right: 10px; - padding-top: 10px; - background-color: transparent; -} - -QAbstractScrollArea { - border-radius: 2px; - border: 1px solid #3A3939; - background-color: transparent; -} - -QAbstractScrollArea::corner { - border: none; - background-color: #e6e6e6; -} - -QScrollBar:horizontal { - height: 15px; - margin: 3px 15px 3px 15px; - border: 1px transparent #828282; - border-radius: 4px; - background-color: #828282; -} - -QScrollBar::handle:horizontal { - background-color: #b6b6b6; - min-width: 5px; - border-radius: 4px; -} - -QScrollBar::add-line:horizontal { - margin: 1px 3px 0px 3px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images/right_arrow_light.png); - width: 6px; - height: 10px; - subcontrol-position: right; - subcontrol-origin: margin; -} - -QScrollBar::sub-line:horizontal { - margin: 1px 3px 0px 3px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images/left_arrow_light.png); - height: 10px; - width: 6px; - subcontrol-position: left; - subcontrol-origin: margin; -} - -QScrollBar::add-line:horizontal:hover, -QScrollBar::add-line:horizontal:on { - border-image: url(qss:images/right_arrow_lighter.png); -} - - -QScrollBar::sub-line:horizontal:hover, -QScrollBar::sub-line:horizontal:on { - border-image: url(qss:images/left_arrow_lighter.png); -} - -QScrollBar::up-arrow:horizontal, -QScrollBar::down-arrow:horizontal { - background: none; -} - - -QScrollBar::add-page:horizontal, -QScrollBar::sub-page:horizontal { - background: none; -} - -QScrollBar:vertical { - background-color: #828282; - width: 15px; - margin: 15px 3px 15px 3px; - border: 1px transparent #828282; - border-radius: 4px; -} - -QScrollBar::handle:vertical { - background-color: #b6b6b6; - min-height: 5px; - border-radius: 4px; -} - -QScrollBar::sub-line:vertical { - margin: 3px 0px 3px 1px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images/up_arrow_light.png); - height: 6px; - width: 10px; - subcontrol-position: top; - subcontrol-origin: margin; -} - -QScrollBar::add-line:vertical { - margin: 3px 0px 3px 1px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images/down_arrow_light.png); - height: 6px; - width: 10px; - subcontrol-position: bottom; - subcontrol-origin: margin; -} - -QScrollBar::sub-line:vertical:hover, -QScrollBar::sub-line:vertical:on { - border-image: url(qss:images/up_arrow_lighter.png); -} - -QScrollBar::add-line:vertical:hover, -QScrollBar::add-line:vertical:on { - border-image: url(qss:images/down_arrow_lighter.png); -} - -QScrollBar::up-arrow:vertical, -QScrollBar::down-arrow:vertical { - background: none; -} - - -QScrollBar::add-page:vertical, -QScrollBar::sub-page:vertical { - background: none; -} - -QTextEdit { - color: #828282; - background-color: #d0d3cd; - border: 1px solid #b6b6b6; - padding: 0px; - margin: 0px; -} - -QPlainTextEdit { - color: #828282; - background-color: #d0d3cd; - border-radius: 2px; - border: 1px solid #b6b6b6; - padding: 0px; - margin: 0px; -} - -QSizeGrip { - image: url(qss:images/sizegrip_light.png); - width: 16px; - height: 16px; - background-color: transparent; -} - -QRadioButton::indicator:unchecked{ - color: #828282; - background-color: #f5f5f5; - border: 1px solid #828282; -} - -QRadioButton::indicator:checked { - background-color: #97c029; - border: 1px solid #5d7619; - image:url(qss:images/radiobutton_light.png); -} - -QCheckBox, -QRadioButton, -QCheckBox:disabled, -QRadioButton:disabled { - color: #828282; - padding: 3px; - outline: none; - background-color: transparent; -} - -QCheckBox::indicator, -QGroupBox::indicator { - color: #ffffff; - background-color: #f5f5f5; - border: 1px solid #828282; -} - -QCheckBox::indicator { - width: 11px; - height: 11px; - border-radius:2px; -} - -QRadioButton::indicator { - width: 11px; - height: 11px; - border-radius: 6px; -} - -QRadioButton::indicator:pressed, -QCheckBox::indicator:pressed, -QCheckBox::indicator:non-exclusive:checked:pressed, -QCheckBox::indicator:indeterminate:pressed, -QCheckBox::indicator:checked:pressed { - border-color: #dfefb4; -} - -QCheckBox::indicator:checked, -QGroupBox::indicator:checked { - background-color: #97c029; - border: 1px solid #5d7619; - image:url(qss:images/checkbox_light.png); -} - -QCheckBox::indicator:disabled, -QRadioButton::indicator:disabled { - border: 1px solid #b6b6b6; -} - -QCheckBox:disabled, -QRadioButton::indicator:disabled { - color: #b6b6b6; - background-color: transparent; -} - -QCheckBox::indicator:disabled, -QGroupBox::indicator:disabled, -QMenu::indicator:non-exclusive:disabled { - background-color: #e6e6e6; -} - -QCheckBox::indicator:indeterminate { - background-color: #97c029; - border: 1px solid #5d7619; - image: url(qss:images/checkbox_indeterminate_light.png); -} - -QCheckBox:focus, -QRadioButton:focus { - border: none; -} - -QFrame, -QFrame:pressed, -QFrame:focus, -QFrame:on { - border: 1px solid #e6e6e6; - border-radius: 3px; - padding: 0px; - /* background-color: transparent; temporal */ -} - -/* border and background of QComboBox drop-down */ -QComboBox QFrame, -QComboBox QFrame:pressed, -QComboBox QFrame:focus, -QComboBox QFrame:on { - border: 1px solid #828282; - background-color: #828282; - padding: 0px; - margin: 0px; -} - -QFrame[frameShape="0"] { - border-radius: 3px; -} - -/* Separator line */ -QFrame[height="1"], -QFrame[height="2"], -QFrame[height="3"], -QFrame[width="1"], -QFrame[width="2"], -QFrame[width="3"] { - border-width: 1px 0px 0px 0px; - border-style: solid; - border-color: #e0e0e0; - background-color: transparent; -} - -QPushButton { - color: #ffffff; - text-align: center; - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #b6b6b6, stop:1 #e6e6e6); - border: 1px solid #828282; - padding: 5px 12px 5px 12px; - margin: 4px 8px 4px 8px; - border-radius: 3px; - min-width: 14px; - min-height: 14px; -} - -QPushButton:hover, -QPushButton:focus { - color: black; - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #97c029, stop:1 #b5d757); - border-color: #97c029; -} - -QPushButton:disabled, -QPushButton:disabled:checked { - color: #b6b6b6; - background-color: #e6e6e6; - border-color: #b6b6b6; -} - -QPushButton:pressed { - background-color: #97c029; -} - -QPushButton:checked { - background-color: #b5d757; - border-color: #97c029; -} - -/* Color Buttons */ -Gui--ColorButton, -Gui--ColorButton:disabled { - border-color: transparent; - background-color: transparent; - /*width: 60px;*/ - height: 24px; - padding: 0px; - margin: 0px; -} - -Gui--ColorButton:hover { - border-color: #e0e0e0; - background-color: #e0e0e0; -} - -/* Buttons inside the toolbar */ -QToolBar QPushButton { - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #e0e0e0, stop:1 #e6e6e6); - border: 1px solid #b6b6b6; - min-width: 22px; - min-height: 22px; - margin-left: 2px; - margin-right: 2px; - margin-bottom: 3px; /*bigger margin to correctly separate buttons inside a vertical toolbar */ - margin-top: 1px; - padding: 1px; -} - -QToolBar QPushButton:hover, -QToolBar QPushButton:focus { - color: #ffffff; - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #e0e0e0, stop:1 #e6e6e6); - border: 1px solid #828282; -} - -QToolBar QPushButton:disabled, -QToolBar QPushButton:disabled:checked { - background-color: #e6e6e6; - border-color: #e0e0e0; -} - -QToolBar QPushButton:pressed { - background-color: #b6b6b6; - border-color: #b6b6b6; -} - -QToolBar QPushButton:checked { - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #b5d757, stop:1 #cbe389); - border-color: #b5d757; -} - -QToolBar QPushButton:checked:hover, -QToolBar QPushButton:checked:focus { - color: #ffffff; - border: 1px solid #97c029; -} - -QToolBar { - border: 1px transparent #393838; - background-color: #e6e6e6; - font-weight: bold; - margin: 0px; - padding: 0px; -} - -QToolBar::handle:horizontal { - background-image: url(qss:images/Hmovetoolbar_dark.png); - width: 10px; - margin: 6px 2px 6px 2px; - background-position: top right; - background-repeat: repeat-y; -} - -QToolBar::handle:vertical { - background-image: url(qss:images/Vmovetoolbar_dark.png); - height: 10px; - margin: 2px 6px 2px 6px; - background-position: left bottom; - background-repeat: repeat-x; -} - -QToolBar::separator:horizontal { - background-image: url(qss:images/separtoolbar_dark.png); - width: 10px; - margin: 6px 2px 6px 2px; - background-position: center center; - background-repeat: repeat-y; -} - -QToolBar::separator:vertical { - background-image: url(qss:images/separtoolbar_dark.png); - height: 10px; - margin: 2px 6px 2px 6px; - background-position: center center; - background-repeat: repeat-x; -} - -QStackedWidget { - background-color: #e6e6e6; - border: 1px transparent #e6e6e6; -} - -QAbstractSpinBox { - color: #ffffff; - border: 1px solid #b6b6b6; /* border top color defined after QAbstractSpinBox, QLineEdit and QComboBox */ - background-color: #b6b6b6; - selection-color: black; - selection-background-color: #b5d757; -} - -QAbstractSpinBox:disabled { - color: #f5f5f5; - background-color: #e0e0e0; - border-color: #e0e0e0; -} - -QAbstractSpinBox:up-button { - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #c0dd70, stop:1 #cbe389); - subcontrol-origin: border; - subcontrol-position: top right; - border-top-right-radius: 3px; - width: 20px; -} - -QAbstractSpinBox:down-button { - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #b5d757, stop:1 #c0dd70); - subcontrol-origin: border; - subcontrol-position: bottom right; - border-bottom-right-radius: 3px; - width: 20px; -} - -QAbstractSpinBox:up-button:disabled, -QAbstractSpinBox:down-button:disabled { - background-color: transparent; -} - -QAbstractSpinBox::up-arrow { - image: url(qss:images/up_arrow_light.png); - top: 1px; /* fix simetry between up and down images */ -} - -QAbstractSpinBox::up-arrow:hover { - image: url(qss:images/up_arrow_lighter.png); -} - -QAbstractSpinBox::up-arrow:off { - image: url(qss:images/up_arrow_disabled_dark.png); -} - -QAbstractSpinBox::up-arrow:disabled { - image: none; -} - -QAbstractSpinBox::down-arrow { - image: url(qss:images/down_arrow_light.png); - bottom: -1px; /* fix simetry between up and down images */ -} -QAbstractSpinBox::down-arrow:hover { - image: url(qss:images/down_arrow_lighter.png); -} - -QAbstractSpinBox::down-arrow:off { - image: url(qss:images/down_arrow_disabled_dark.png); -} - -QAbstractSpinBox::down-arrow:disabled { - image: none; -} - -QToolBar QAbstractSpinBox { - margin-top: 4px; - margin-bottom: 4px; -} - -QLineEdit { - color: #ffffff; - background-color: #b6b6b6; - selection-color: black; - selection-background-color: #b5d757; - /* Padding and margin defined */ - border-style: solid; - border: 1px solid #b6b6b6; /* border top color defined after QAbstractSpinBox, QLineEdit and QComboBox */ - border-radius: 3px; -} - -QAbstractSpinBox:focus, -QLineEdit:focus, -QComboBox:focus { - border-color: #cbe389; -} - -QComboBox { - color: #ffffff; - background-color: #b6b6b6; - selection-color: black; - selection-background-color: #b5d757; - border: 1px solid #b6b6b6; /* border top color defined after QAbstractSpinBox, QLineEdit and QComboBox */ - border-radius: 3px; -} - -QComboBox:on { - color: black; - background-color: #b6b6b6; - border-color: #cbe389; -} - -QComboBox::drop-down { - subcontrol-origin: margin; - subcontrol-position: top right; - width: 20px; - border-left-width: 1px; - border-left-color: transparent; - border-left-style: solid; - border-top-right-radius: 3px; - border-bottom-right-radius: 3px; - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #b5d757, stop:1 #cbe389); -} - -QComboBox::down-arrow { - image: url(qss:images/down_arrow_light.png); -} - -QComboBox::down-arrow:on, -QComboBox::down-arrow:hover, -QComboBox::down-arrow:focus { - image: url(qss:images/down_arrow_lighter.png); -} - -QComboBox QAbstractItemView { - color: #ffffff; - background-color: #828282; - border-radius: 3px; - margin: 0px; - padding: 0px; - border: none; -} - -/* Common parameters for QAbstractSpinBox, QLineEdit and QComboBox */ -QSpinBox, -QDoubleSpinBox, -QAbstractSpinBox, -QLineEdit, -QComboBox { - border-top-color: #a2a2a1; /* Creates an inset effect inside the elements */ - padding: 2px 6px 2px 6px; /* This makes text colour work on QComboBox */ - margin: 0px 2px 0px 2px; - min-width: 70px; /* it was 120 because of QCombobox... */ - border-radius: 3px; -} -/* end Common parameters */ - -QAbstractItemView { - color: #828282; - alternate-background-color: #cccfc9; /* related with QListView background */ - border: 1px solid #828282; - border-radius: 3px; - padding: 0px; -} - -/* hack to deactivate changing background color when focus (due to QFrame generic transparent color) */ -QAbstractItemView:selected, -QAbstractItemView:on, -QAbstractItemView:focus { - background-color: #d0d3cd; /* same as QTable background color */ -} - -/* hack to hide weird redundant information inside the value of a Placement cell */ -QTreeView QLabel, -QTreeView QLabel:disabled { - color: transparent; - background-color: transparent; - border: none; - border-radius: 0px; - margin: 0px; - padding: 0px; -} - -QTreeView QLineEdit { - color: #ffffff; - border-color: #b6b6b6; - background-color: #b6b6b6; - selection-color: black; - selection-background-color: #b5d757; -} - -/* hack to hide non editable cells inside Property values */ -QTreeView QLineEdit:read-only, -QTreeView QLineEdit:disabled, -QTreeView QAbstractSpinBox:read-only, -QTreeView QAbstractSpinBox:disabled { - color: transparent; - border-color: transparent; - background-color: transparent; - selection-color: transparent; - selection-background-color: transparent; -} - -/* hack to disable margin inside Property values to following elements */ -QTreeView QSpinBox, -QTreeView QDoubleSpinBox, -QTreeView QAbstractSpinBox, -QTreeView QLineEdit, -QTreeView QComboBox { - margin-left: 0px; - margin-right: 0px; - padding-top: 0px; - padding-bottom: 0px; -} - -/* Pushbutton style for "..." inside Placement cell which launches Placement tool */ -QTreeView QPushButton { - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #b6b6b6, stop:1 #e6e6e6); - border-top: none; - border-bottom: none; - border-right: none; - border-left: 1px solid #b6b6b6; - border-radius: 0px; - margin: 0px; - padding: 0px; - height: 24px; -} - -/* Color Buttons inside the "Properties window" */ -QAbstractItemView Gui--ColorButton { - padding: 0px; - margin: 0px; - height: 10px; -} - -QAbstractItemView QPushButton:hover { - color: black; - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #97c029, stop:1 #b5d757); - border-color: #97c029; -} - -QAbstractItemView QPushButton:disabled { - color: transparent; - background-color: transparent; - border-color: transparent; -} - -QLabel { - border: 0px solid #828282; -} - -QTabWidget{ - border: none; -} - -QTabWidget:focus { - border: none; -} - -QTabWidget::pane { - border: none; - padding: 0px; - background-color: #e6e6e6; - position: absolute; - top: -15px; - padding-top: 15px; -} - -QTabWidget::tab-bar { - alignment: center; -} - -QTabBar { - qproperty-drawBase: 0; - left: 5px; - background-color: transparent; -} - -QTabBar:focus { - border: 0px transparent black; -} - -QTabBar::close-button { - padding: 0px; - margin: 0px; - border-radius: 2px; - background-image: url(qss:images/close_dark.png); - background-position: center center; - background-repeat: none; -} - -QTabBar::close-button:hover { - background-color: #cbe389; -} - -QTabBar::close-button:pressed { - background-color: #dfefb4; -} - -QTabBar::scroller { /* the width of the scroll buttons */ - width: 20px; -} - -/* the scroll buttons are tool buttons */ -QTabBar QToolButton, -QTabBar QToolButton:hover { - margin-top: 4px; - margin-bottom: 4px; - margin-left: 0px; - margin-right: 0px; - padding: 0px; - border: none; - background-color: #e6e6e6; - border-radius: 0px; -} - -QTabBar QToolButton::right-arrow:enabled { - image: url(qss:images/right_arrow_light.png); -} - -QTabBar QToolButton::right-arrow:disabled, -QTabBar QToolButton::right-arrow:off { - image: url(qss:images/right_arrow_disabled_dark.png); -} - -QTabBar QToolButton::right-arrow:hover { - image: url(qss:images/right_arrow_lighter.png); -} - - QTabBar QToolButton::left-arrow:enabled { - image: url(qss:images/left_arrow_light.png); -} - - QTabBar QToolButton::left-arrow:disabled, - QTabBar QToolButton::left-arrow:off { - image: url(qss:images/left_arrow_disabled_dark.png); -} - - QTabBar QToolButton::left-arrow:hover { - image: url(qss:images/left_arrow_lighter.png); -} - - QTabBar QToolButton::up-arrow:enabled { - image: url(qss:images/up_arrow_light.png); -} - - QTabBar QToolButton::up-arrow:disabled, - QTabBar QToolButton::up-arrow:off { - image: url(qss:images/up_arrow_disabled_dark.png); -} - - QTabBar QToolButton::up-arrow:hover { - image: url(qss:images/up_arrow_lighter.png); -} - - QTabBar QToolButton::down-arrow:enabled { - image: url(qss:images/down_arrow_light.png); -} - - QTabBar QToolButton::down-arrow:disabled, - QTabBar QToolButton::down-arrow:off { - image: url(qss:images/down_arrow_disabled_dark.png); -} - - QTabBar QToolButton::down-arrow:hover { - image: url(qss:images/down_arrow_lighter.png); -} - -/* HORIZONTAL TABS */ -QTabBar::tab:top, -QTabBar::tab:bottom { - color: #ffffff; - border: 1px solid #b6b6b6; - border-left-color: #e6e6e6; - border-right-width: 0px; - border-bottom: 1px solid #a2a2a1; /* shadown effect */ - background-color: #b6b6b6; - padding:5px 15px; - margin-top: 4px; - margin-bottom: 4px; - position: center; -} - -QTabBar::tab:top:first, -QTabBar::tab:bottom:first { - border-top-left-radius: 6px; - border-bottom-left-radius: 6px; -} - -QTabBar::tab:top:last, -QTabBar::tab:bottom:last { - border-top-right-radius: 6px; - border-bottom-right-radius: 6px; - border-right-width: 1px; -} - -QTabBar::tab:top:selected, -QTabBar::tab:bottom:selected { - color: black; - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #97c029, stop:1 #b5d757); - border-color: #97c029; - border-bottom: 1px solid #a2a2a1; /* shadown effect */ -} - -QTabBar::tab:top:!selected:hover, -QTabBar::tab:bottom:!selected:hover { - color: black; -} - -QTabBar::tab:top:only-one , -QTabBar::tab:bottom:only-one { - border: 1px solid #5d7619; - border-radius: 6px; -} - -/* VERTICAL TABS */ -QTabBar::tab:left, -QTabBar::tab:right { - color: #ffffff; - border: 1px solid #b6b6b6; - border-top-color: #e6e6e6; - border-bottom-width: 0px; - border-right: 1px solid #a2a2a1; /* shadown effect */ - background-color: #b6b6b6; - padding: 15px 5px; - margin-left: 4px; - margin-right: 4px; - position: center; -} - -QTabBar::tab:left:first, -QTabBar::tab:right:first { - border-top-left-radius: 6px; - border-top-right-radius: 6px; -} - -QTabBar::tab:left:last, -QTabBar::tab:right:last { - border-bottom-left-radius: 6px; - border-bottom-right-radius: 6px; - border-bottom-width: 1px; -} - -QTabBar::tab:left:selected, -QTabBar::tab:right:selected { - color: black; - background-color: qlineargradient(spread:pad, x1:0.545, y1:1, x2:0, y2:1, stop:0 #97c029, stop:1 #b5d757); - border-color: #97c029; - border-right: 1px solid #a2a2a1; /* shadown effect */ -} - -QTabBar::tab:left:!selected:hover, -QTabBar::tab:right:!selected:hover { - color: black; -} - -QTabBar::tab:left:only-one , -QTabBar::tab:right:only-one { - border: 1px solid #5d7619; - border-radius: 6px; -} - -QDockWidget { - color: #828282; - border: 1px solid #e6e6e6; - titlebar-close-icon: url(qss:images/close_dark.png); - titlebar-normal-icon: url(qss:images/undock_dark.png); -} - -QDockWidget::title { - text-align: center; - background-color: #e0e0e0; - padding: 4px; - border-radius: 4px; -} - -QDockWidget::close-button, -QDockWidget::float-button { - border: 1px transparent #e6e6e6; - border-radius: 2px; - background: transparent; - subcontrol-origin: padding; - subcontrol-position: right center; -} - -QDockWidget::close-button { - right: 4px; -} - -QDockWidget::float-button { - right: 22px; -} - -QDockWidget::close-button:hover, -QDockWidget::float-button:hover { - background: #f5f5f5; -} - -QDockWidget::close-button:pressed, -QDockWidget::float-button:pressed { - /*padding: 1px -1px -1px 1px;*/ - background-color: #e0e0e0; -} - -QTreeView, -QListView { - color: #828282; - border: 1px solid #e6e6e6; - border-radius: 4px; - background-color: #d0d3cd; /* related with alternate-background-color*/ - selection-color: black; - selection-background-color: #b5d757; /* should be similar to QListView::item selected background-color */ - show-decoration-selected: 1; /* make the selection span the entire width of the view */ - padding: 0px; - margin: 0px 4px 0px 4px; - min-width: 130px; /* hack to correctly align Preferences icon list */ -} - -QListView, -QListView::item, -QListView QAbstractItemView { - margin: 0px; - icon-size: 20px; /* temporal */ - paint-alternating-row-colors-for-empty-area: 1; - position: absolute; - subcontrol-origin: margin; - subcontrol-position: left top; -} - -/* Control dropdown list margins of QComboBox */ -QComboBox QTreeView, -QComboBox QListView { - margin: 0px; - padding: 0px; -} - -QListView::item { - border: 0px transparent #e6e6e6; - border-radius: 4px; - background-color: transparent; - padding: 0px; - margin: 0px; - display: inline-block; - position: relative; -} - -QListView::item:selected, -QTreeView::item:selected { - color: black; - background-color: #b5d757; /* should be similar to QListView selection-background-color */ -} - -/* Branch system */ -QTreeView::branch { - background: transparent; -} - -QTreeView::branch:has-siblings:!adjoins-item { - border-image: url(qss:images/branch_vline.png) 0; -} - -QTreeView::branch:has-siblings:adjoins-item { - border-image: url(qss:images/branch_more.png) 0; -} - -QTreeView::branch:!has-children:!has-siblings:adjoins-item { - border-image: url(qss:images/branch_end.png) 0; -} - -QTreeView::branch:closed:has-children:has-siblings { - image: url(qss:images/branch_closed_dark.png); -} - -QTreeView::branch:has-children:!has-siblings:closed { - image: url(qss:images/branch_closed_dark.png); - border-image: url(qss:images/branch_end.png) 0; -} - -QTreeView::branch:open:has-children:has-siblings { - image: url(qss:images/branch_open_dark.png); - border-image: url(qss:images/branch_more.png) 0; -} - -QTreeView::branch:open:has-children:!has-siblings { - image: url(qss:images/branch_open_dark.png); - border-image: url(qss:images/branch_end.png) 0; -} - -QSlider, -QSlider:active, -QSlider:!active { - border: none; - background-color: transparent; -} - -QSlider:horizontal { - padding: 0px 10px; -} - -QSlider:vertical { - padding: 10px 0px; -} - -QSlider::groove:horizontal { - border: 1px solid #b6b6b6; - background-color: #b6b6b6; - height: 8px; - border-radius: 5px; - margin: 4px 0; -} - -QSlider::groove:vertical { - border: 1px solid #b6b6b6; - background-color: #b6b6b6; - width: 8px; - border-radius: 5px; - margin: 4px 0; -} - -QSlider::groove:horizontal:disabled, -QSlider::groove:vertical:disabled { - border-color: #e0e0e0; - background-color: #e0e0e0; -} - -QSlider::handle:horizontal, -QSlider::handle:vertical { - background-color: #828282; - border: 1px solid #828282; - width: 14px; - height: 14px; - border-radius: 8px; -} - -QSlider::handle:horizontal { - margin: -4px 0; -} - -QSlider::handle:vertical { - margin: 0 -4px; -} - -QSlider::handle:horizontal:hover, -QSlider::handle:vertical:hover { - border-color: #97c029; - background-color: #97c029; -} - -QSlider::handle:horizontal:pressed, -QSlider::handle:vertical:pressed { - border-color: #5d7619; - background-color: #5d7619; -} - -QSlider::handle:horizontal:disabled, -QSlider::handle:vertical:disabled { - border-color: #b6b6b6; - background-color: #e6e6e6; -} - -QToolButton { - color: #ffffff; - text-align: center; - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #b6b6b6, stop:1 #e6e6e6); - border: 1px solid #828282; - padding-top: 5px; - padding-bottom: 5px; - padding-left: 15px; - padding-right: 15px; - margin-top: 5px; - margin-bottom: 5px; - margin-left: 10px; - margin-right: 10px; - border-radius: 3px; - outline: none; - /*min-width: 36px;*/ -} - -QToolButton:hover, -QToolButton:focus { - color: black; - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #97c029, stop:1 #b5d757); - border-color: #97c029; -} - -QToolButton:disabled, -QToolButton:disabled:checked { - color: #b6b6b6; - background-color: #e6e6e6; - border-color: #b6b6b6; -} - -QToolButton:pressed { - border-color: #cbe389; -} - -QToolButton:checked { - background-color: #b5d757; - border-color: #97c029; -} - -QToolButton::menu-indicator { - subcontrol-origin: padding; - subcontrol-position: center right; - right: 4px; -} - -/*The "show more" button (it can also be stylable with "QToolBarExtension" */ -QToolButton#qt_toolbar_ext_button { - border-radius: 0px; - margin: 0px; - padding: 0px; - /*background-image: url(qss:images/more_dark.png);*/ - image: transparent; - background-repeat: none; - background-position: center left; -} - -QToolButton#qt_toolbar_ext_button:hover { - /*background-image: url(qss:images/more_light.png);*/ - border-color: #e0e0e0; - background-color: #e0e0e0; -} - -QToolButton#qt_toolbar_ext_button:on { - /*background-image: url(qss:images/more_light.png);*/ - border-color: #e0e0e0; - background-color: #e0e0e0; -} - -/*Buttons inside the Toolbar*/ -QToolBar QToolButton { - color: #828282; - background-color: #e6e6e6; - border: 1px transparent #e6e6e6; - border-radius: 3px; - margin: 0px; - padding: 2px; -} - -QToolBar QToolButton:disabled { - background-color: #e6e6e6; -} - -QToolBar QToolButton:checked { - color: #5d7619; - background-color: #b5d757; - border: 1px solid #b5d757; -} - -QToolBar QToolButton:hover { - background-color: #e6e6e6; -} - -QToolBar QToolButton:pressed, -QToolBar QToolButton::menu-button:pressed { - background-color: #e0e0e0; - border: 1px solid #e0e0e0; -} - - -QToolBar QToolButton::menu-indicator:hover, -QToolBar QToolButton::menu-indicator:pressed { - background-color: transparent; -} - -/* the subcontrols below are used only in the MenuButtonPopup mode */ -QToolBar QToolButton::menu-button { - border: none; - border-top-right-radius: 3px; - border-bottom-right-radius: 3px; - width: 16px; /* 16px width + 4px for border = 20px allocated above */ - outline: none; - background-color: transparent; -} - -QToolBar QToolButton::menu-button:hover, -QToolBar QToolButton::menu-button:active, -QToolBar QToolButton::menu-button:disabled { - border-color: transparent; - background-color: transparent; -} - -QToolBar QToolButton::menu-arrow { - background-image: url(qss:images/down_arrow_light.png); - background-position: center center; - background-repeat: none; - subcontrol-origin: padding; - subcontrol-position: bottom right; - height: 10px; /* same as arrow image */ -} - -QToolBar QToolButton::menu-arrow:open { - background-image: url(qss:images/down_arrow_lighter.png); -} - -/* If the QToolButton is also a menu: */ -QToolBar QToolButton#qt_toolbutton_menubutton { - padding-right: 20px; - border: 1px solid transparent; -} - -QToolBar QToolButton#qt_toolbutton_menubutton:hover, -QToolBar QToolButton#qt_toolbutton_menubutton:pressed, -QToolBar QToolButton#qt_toolbutton_menubutton:open { - border: 1px solid #cbe389; -} - -QToolBar QToolButton#qt_toolbutton_menubutton::menu-button { - border: none; /* necessary because it inherits the border from QToolButton#qt_toolbutton_menubutton */ -} - -QToolBar QToolButton#qt_toolbutton_menubutton::menu-button:hover, -QToolBar QToolButton#qt_toolbutton_menubutton::menu-button:pressed, -QToolBar QToolButton#qt_toolbutton_menubutton::menu-button:open { - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #b5d757, stop:1 #cbe389); -} - -QToolBar:tear { - color: blue; - background-color: red; -} - -QTableView { - color: #828282; - border: 1px solid #b6b6b6; - gridline-color: #f5f5f5; - background-color: #d0d3cd; - selection-color: #828282; - selection-background-color: #dfefb4; - border-radius: 3px; - padding: 0px; - margin: 0px; -} - -QTableView::item:hover { - background: #c8cbc4; -} - -QTableView::item:disabled { - color: #e6e6e6; -} - -QTableView::item:selected { - color: #5d7619; - background-color: #cbe389; -} - -/* when editing a cell: */ -QTableView QLineEdit { - color: #828282; - background-color: #cccfc9; - border-radius: 0px; - margin: 0px; - padding: 0px; -} - -QHeaderView { - border: none; - background-color: #828282; - border-top-left-radius: 3px; - border-top-right-radius: 3px; - border-bottom-left-radius: 0px; - border-bottom-right-radius: 0px; - margin: 0px; - padding: 0px; -} - -QHeaderView::section { - background-color: transparent; - color: #ffffff; - border: 1px solid transparent; - border-radius: 0px; - text-align: center; -} - -QHeaderView::section::vertical { - padding: 0px 6px 0px 6px; - border-bottom: 1px solid #b6b6b6; -} - -QHeaderView::section::vertical:first { - border-top: 1px solid #b6b6b6; -} - -QHeaderView::section::vertical:last { - border-bottom: none; -} - -QHeaderView::section::vertical:only-one { - border: none; -} - -QHeaderView::section::horizontal { - padding: 0px 0px 0px 6px; - border-right: 1px solid #b6b6b6; -} - -QHeaderView::section::horizontal:first { - border-left: 1px solid #b6b6b6; -} - -QHeaderView::section::horizontal:last { - border-left: none; -} - -QHeaderView::section::horizontal:only-one { - border: none; -} - -QDockWidget QHeaderView::section { - border-width: 6px 1px 6px 1px; /* hack to bigger margin for Model Panel table headers */ -} - -QHeaderView::section:checked { - color: #5d7619; - background-color: #cbe389; -} - - /* style the sort indicator */ -QHeaderView::down-arrow { - image: url(qss:images/down_arrow_light.png); -} - -QHeaderView::up-arrow { - image: url(qss:images/up_arrow_light.png); -} - -QTableCornerButton::section { - background-color: #828282; - border: 1px solid #828282; - border-radius: 0px; -} - -QToolBox { - padding: 3px; - color: #5d7619; - border: none; -} - -QToolBox::tab { /* TODO */ - color: #ffffff; - background-color: #b6b6b6; - border: 1px transparent #828282; - border-bottom: 1px transparent #b6b6b6; - border-top-left-radius: 5px; - border-top-right-radius: 5px; - padding: 5px; -} - -QToolBox::tab:selected { /* italicize selected tabs */ - color: #5d7619; - font: italic; - background-color: #b5d757; - border-color: #b5d757; - } - -QStatusBar::item { - color: #ffffff; - background-color: #e6e6e6; - border: 1px solid #e6e6e6; - border-radius: 2px; -} - - -QSplitter::handle { - background-color: #e6e6e6; - margin: 0px 11px; - padding: 0px; - border-radius: 3px; -} - -QSplitter::handle:vertical { - background-image: url(qss:images/splitter_horizontal_dark.png); - background-position: center center; - background-repeat: none; - margin: 2px 10px 2px 10px; - height: 2px; -} - -QSplitter::handle:horizontal { - background-image: url(qss:images/splitter_horizontal_dark.png); - background-position: center center; - background-repeat: none; - margin: 10px 2px 10px 2px; - width: 2px; -} - -QSplitter::handle:horizontal:hover, -QSplitter::handle:vertical:hover { - background-color: #e6e6e6; -} - -/* Similar to the splitter is the following window separator: */ -QMainWindow::separator { - border: 1px solid #e6e6e6; - background-color: #e6e6e6; - background-position: center center; - background-repeat: none; -} - -QMainWindow::separator:hover { - background-color: #e6e6e6; -} - -QMainWindow::separator:horizontal { - height: 4px; - background-image: url(qss:images/splitter_horizontal_dark.png); -} - -QMainWindow::separator:vertical { - width: 4px; - background-image: url(qss:images/splitter_vertical_dark.png); -} - -QLabel { - padding-top: 3px; - padding-bottom: 3px; - background-color: transparent; -} - -QLabel:disabled { - color: #b6b6b6; - background-color: transparent; -} - -/* Action group */ -QFrame[class="panel"] { - border: none; - background-color: #e6e6e6; -} - -/* Separator line */ -QSint--ActionGroup QFrame[height="1"], -QSint--ActionGroup QFrame[height="2"], -QSint--ActionGroup QFrame[height="3"], -QSint--ActionGroup QFrame[width="1"], -QSint--ActionGroup QFrame[width="2"], -QSint--ActionGroup QFrame[width="3"] { - border-color: #f5f5f5; -} - -QSint--ActionGroup QFrame[class="header"] { - border: none; - background-color: #828282; - border-top-left-radius: 3px; - border-top-right-radius: 3px; - border-bottom-left-radius: 0px; - border-bottom-right-radius: 0px; - margin: 0px; - padding: 0px; -} - -QSint--ActionGroup QFrame[class="header"]:hover { - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #97c029, stop:1 #b5d757); -} - -QSint--ActionGroup QToolButton[class="header"] { - text-align: left; - font-weight: bold; - color: #ffffff; - background-color: transparent; - border: none; - margin: 0px; - padding: 0px; -} - -QSint--ActionGroup QToolButton[class="header"]:hover { - color: black; -} - -QSint--ActionGroup QFrame[class="header"] QLabel { - background-color: transparent; - background-image: url(qss:images/down_arrow_light.png); - background-repeat: none; - background-position: center center; - padding: 0px; - margin: 0px; -} - -QSint--ActionGroup QFrame[class="header"] QLabel:hover { - background-color: transparent; - background-image: url(qss:images/down_arrow_lighter.png); -} - -QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"] { - background-color: transparent; - background-image: url(qss:images/up_arrow_light.png); - background-repeat: none; - background-position: center center; - padding: 0px; - margin: 0px; -} - -QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"]:hover { - background-color: transparent; - background-image: url(qss:images/up_arrow_lighter.png); -} - -QSint--ActionGroup QFrame[class="content"] { - background-color: #d0d3cd; - margin: 0px; - padding: 0px; - border: none; - border-top-left-radius: 0px; - border-top-right-radius: 0px; - border-bottom-left-radius: 3px; - border-bottom-right-radius: 3px; -} - -/* HACK -This might not be the best way to reset the background color: */ -QSint--ActionGroup QFrame[class="content"] QWidget { - background-color: #d0d3cd; -} - -QSint--ActionGroup QFrame[class="content"] QPushButton { - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #b6b6b6, stop:1 #e6e6e6); -} - -QSint--ActionGroup QFrame[class="content"] QPushButton:hover, -QSint--ActionGroup QFrame[class="content"] QPushButton:focus { - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #97c029, stop:1 #b5d757); -} - -QSint--ActionGroup QFrame[class="content"] QPushButton:disabled, -QSint--ActionGroup QFrame[class="content"] QPushButton:disabled:checked { - color: #d0d3cd; - border-color: #f5f5f5; - background-color: #f5f5f5; -} -QSint--ActionGroup QFrame[class="content"] QPushButton:checked { - background-color: #b5d757; -} - -QSint--ActionGroup QFrame[class="content"] QComboBox { - background-color: #b6b6b6; -} - -QSint--ActionGroup QFrame[class="content"] QComboBox:on { - background-color: #b6b6b6; -} - -QSint--ActionGroup QFrame[class="content"] QComboBox QAbstractItemView { - border-color: #828282; - background-color: #828282; -} - -QSint--ActionGroup QFrame[class="content"] QListView { - border-color: #c8cbc4; - background-color: #c8cbc4; -} - -QSint--ActionGroup QFrame[class="content"] QAbstractSpinBox { - background-color: #b6b6b6; -} - -QSint--ActionGroup QFrame[class="content"] QLineEdit { - background-color: #b6b6b6; -} - -QSint--ActionGroup QFrame[class="content"] QComboBox:disabled, -QSint--ActionGroup QFrame[class="content"] QAbstractSpinBox:disabled, -QSint--ActionGroup QFrame[class="content"] QLineEdit:disabled { - color: #d0d3cd; - border-color: #f5f5f5; - background-color: #f5f5f5; -} - -QSint--ActionGroup QFrame[class="content"] QCheckBox:disabled, -QSint--ActionGroup QFrame[class="content"] QRadioButton:disabled { - color: #f5f5f5; - border-color: #f5f5f5; -} - -QSint--ActionGroup QFrame[class="content"] QCheckBox::indicator:disabled, -QSint--ActionGroup QFrame[class="content"] QRadioButton::indicator:disabled { - border-color: #f5f5f5; - background-color: transparent; -} - -QSint--ActionGroup QFrame[class="content"] QHeaderView { - border: none; - background-color: #828282; - border-radius: 0px; - margin: 0px; - padding: 0px; -} - -QSint--ActionGroup QFrame[class="content"] QHeaderView::section { - background-color: transparent; - color: #ffffff; - border: 1px solid transparent; - border-radius: 0px; - text-align: center; -} - -QSint--ActionGroup QFrame[class="content"] QHeaderView::section::horizontal { - padding: 6px 0px 6px 6px; - border-right: 1px solid #b6b6b6; -} - -QSint--ActionGroup QFrame[class="content"] QHeaderView::section::horizontal:first { - border-left: 1px solid #e6e6e6; -} - -QSint--ActionGroup QFrame[class="content"] QHeaderView::section::horizontal:last { - border-left: none; -} - -QSint--ActionGroup QFrame[class="content"] QHeaderView::section::horizontal:only-one { - border: none; -} -/* enf of HACK */ - - -QSint--ActionGroup QToolButton[class="action"], -QSint--ActionGroup QToolButton[class="action"]:enabled { - font-weight: bold; - color: #b6b6b6; -} - -QSint--ActionGroup QToolButton[class="action"]:hover, -QSint--ActionGroup QToolButton[class="action"]:enabled:hover { - text-decoration: none; - color: #828282; - background-color: #c8cbc4; - border-color: #c8cbc4; -} - -QSint--ActionGroup QToolButton[class="action"]:disabled { - color: #e6e6e6; - background-color: #c8cbc4; - border-color: #c8cbc4; -} - -QSint--ActionGroup QToolButton[class="action"]:focus, -QSint--ActionGroup QToolButton[class="action"]:pressed -QSint--ActionGroup QToolButton[class="action"]:enabled:focus, -QSint--ActionGroup QToolButton[class="action"]:enabled:pressed { - color: black; - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #97c029, stop:1 #b5d757); - border-color: #97c029; -} - -QSint--ActionGroup QToolButton[class="action"]:on { - background-color: red; - color: red; -} - - -/* EXPERIMENTAL -================================================= */ -QDial { - background-color: #e6e6e6; -} - -QLCDNumber { - background-color: #e6e6e6; -} - -QCalendarWidget { - background-color: green; -} - -/* Expressions popup dialog fixes to embed elements */ -QAbstractSpinBox QPushButton { - padding: 0px 15px 0px 15px; - margin: 2px 10px 2px 10px; - border: 1px solid #828282; - border-radius: 3px; -} -QAbstractSpinBox QPushButton:disabled { - color: #f5f5f5; - background-color: #e6e6e6; - border-color: #e6e6e6; -} - -QAbstractSpinBox QFrame, -QSint--ActionGroup QFrame[class="content"] QAbstractSpinBox QFrame { - color: #dfefb4; - background-color: #b6b6b6; - border-color: #b6b6b6; - border-radius: 0px; - margin: 0px; - padding: 0px; -} - -QSint--ActionGroup QFrame[class="content"] QAbstractSpinBox QPushButton { - padding: 6px 15px 6px 15px; -} \ No newline at end of file +/* +ABOUT +============================================================================================================ +version 2.0 +QT theme (stylesheet) specially developed for FreeCAD (http://www.freecadweb.org/). +It might work with other software that uses QT styling. + + +LICENSE +============================================================================================================ +Copyright (c) 2016 Pablo Gil Fernández + +This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. +To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/. + + +INSTALLATION +============================================================================================================ +1) Place the .qss files and /images/ folder in the path that fits your OS: + OSX = /Users/[YOUR_USER_NAME]/Library/Preferences/FreeCAD/Gui/Stylesheets/ + WINDOWS = C:/[INSTALLATION_PATH]/FreeCAD/data/Gui/Stylesheets/ + LINUX = /home/[YOUR_USER_NAME]/.FreeCAD/Gui/Stylesheets/ + +2) In order to display correctly images: + 2.1) FreeCAD 0.16 (development builds newer than commit 5b3d50a): that's it, you are done! + + 2.2) FreeCAD 0.15: Images used in the theme need ABSOLUTE paths to be found by FreeCAD, so you should search the string "qss:images" (without "") and replace with the real path of your computer. It should be done with all the .qss files you want to install-use + find = qss:images + replace = /Users/myName/Library/Preferences/FreeCAD/Gui/Stylesheets/images + + +CUSTOMIZATION +============================================================================================================ +If you would like to change the overall look/style of the theme, just find and replace following colors in the whole file: + BACKGROUND (darker to ligher) + black + #505050 + #6e6e6e + #828282 + #a2a2a0 + #b6b6b6 + #c8c8c8 + #c3c3c3 + #d2d2d2 + #dcdcdc + #e0e0e0 + #e6e6e6 + #f0f0f0 + #f5f5f5 = main background color + white + + SELECTION (darker to lighter) + #566214 + #74831d + #819c0c + #94b30f = main selection color + #9bbc12 = used to build QSpinBox up and down buttons, it's used as color in the middle + #a5c61a + #c5d675 + #dadfc5 + + +KNOWN BUGS and TO DO +============================================================================================================ + - please, follow the link to get updated information: http://forum.freecadweb.org/viewtopic.php?f=10&t=12417 +*/ + + +/*================================================================================================== +Reset elements +==================================================================================================*/ +/* Reseting everything helps to unify styles across different operating systems */ +* { + padding: 0px; + margin: 0px; + border: 0px; + border-style: none; +} + +/* specific reset for elements inside QToolBar */ +QToolBar * { + margin: 0px; + padding: 0px; +} + + +/*================================================================================================== +Main window +==================================================================================================*/ +QMainWindow, +QDialog, +QToolBar { + background-color: #f5f5f5; /* main background color */ +} + +QMdiArea[showImage="true"] { + background-image: url(qss:images/background_freecad.png); + background-position: center; + background-repeat: no-repeat; +} + + +/*================================================================================================== +MENUS +==================================================================================================*/ +QMenuBar, +QMenuBar::item { + color: black; + background-color: #f5f5f5; /* main background color */ +} + +QMenu, +QMenu::item { + color: black; + background-color: #f5f5f5; /* main background color */ +} + +QMenuBar::item:selected, +QMenuBar::item:pressed, +QMenu::item:selected, +QMenu::item:pressed { + color: white; + background-color: #94b30f; +} + +QMenu::right-arrow { + width: 10px; + height: 10px; + image:url(qss:images/right_arrow_dark.png); + margin-right: 2px; +} + +QMenu::right-arrow:selected { + image:url(qss:images/right_arrow_lighter.png); +} + +QMenu::item { + padding: 2px 16px 2px 26px; /* make room for icon at left */ + border: 1px solid transparent; /* reserve space for selection border */ +} + +QMenu::icon { + margin-left: 2px; +} + +QMenu::separator { + height: 1px; + background-color: rgba(0,0,0,30); + margin: 6px 4px; +} + +QMenu::indicator:non-exclusive:checked { + color: white; +} + + +/*================================================================================================== +Tool bar +==================================================================================================*/ +QToolBar { + border: none; + min-width: 32px; /* allows a minimum of space between QToolBar colums */ + min-height: 32px; /* allows a minimum of space between QToolBar rows */ +} + +QToolBar::handle:horizontal { + background-image: url(qss:images/Hmovetoolbar_dark.png); + width: 10px; + margin: 6px 2px 6px 2px; + background-position: top right; + background-repeat: repeat-y; +} + +QToolBar::handle:vertical { + background-image: url(qss:images/Vmovetoolbar_dark.png); + height: 10px; + margin: 2px 6px 2px 6px; + background-position: left bottom; + background-repeat: repeat-x; +} + +QToolBar::separator:horizontal { + background-image: url(qss:images/separtoolbar_dark.png); + width: 10px; + margin: 6px 2px 6px 2px; + background-position: center center; + background-repeat: repeat-y; +} + +QToolBar::separator:vertical { + background-image: url(qss:images/separtoolbar_dark.png); + height: 10px; + margin: 2px 6px 2px 6px; + background-position: center center; + background-repeat: repeat-x; +} + + +/*================================================================================================== +Group box +==================================================================================================*/ +QGroupBox { + color: rgba(0,0,0,120); + border:1px solid rgba(0, 0, 0, 20); /* lighter than its own border-color */; + border-radius: 3px; + margin-top: 10px; + padding: 6px; + background-color: rgba(255, 255, 255, 15); +} + +QGroupBox:title { + top: -8px; + left: 12px; +} + + +/*================================================================================================== +Tooltip +==================================================================================================*/ +QToolTip { + color: white; + background-color: #828282; + /*opacity: 90%; doesn't correctly work */ + padding: 4px; + border-radius: 3px; /* has no effect */ +} + + +/*================================================================================================== +Dock widget +==================================================================================================*/ +QDockWidget { + color: rgba(0,0,0,120); + titlebar-close-icon: url(qss:images/close_dark.png); + titlebar-normal-icon: url(qss:images/undock_dark.png); +} + +QDockWidget::title { + text-align: center; + background-color: rgba(0,0,0,10); + border: 4px solid #f5f5f5; /* fix to simulate margin between this :title and tabs */ /* same as main background color */ + border-radius: 6px; /* bigger than normal due to previous border fix */ + padding: 4px 0px; /* also needed because of previous border fix */ +} + +QDockWidget::close-button, +QDockWidget::float-button { + border: none; + background: transparent; + border-radius: 3px; + subcontrol-origin: padding; + subcontrol-position: right center; +} + +QDockWidget::close-button { + right: 4px; +} + +QDockWidget::float-button { + right: 22px; +} + +QDockWidget::close-button:hover, +QDockWidget::float-button:hover { + background-color: rgba(0,0,0,15); +} + +QDockWidget::close-button:pressed, +QDockWidget::float-button:pressed { + background-color: rgba(0,0,0,30); +} + +/* fix for Python Console (probably there is a smarter way to arrive to it) */ +QDockWidget > QFrame { + background-color: #f0f0f0; + border: 1px solid #c3c3c3; +} + + +/*================================================================================================== +Progress bar +==================================================================================================*/ +QProgressBar, +QProgressBar:horizontal { + color: white; + background-color: rgba(0,0,0,10); + text-align: center; + border: 1px solid rgba(0,0,0,80); + padding: 1px; + border-radius: 3px; +} +QProgressBar::chunk, +QProgressBar::chunk:horizontal { + background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #94b30f, stop:1 #819c0c); + border-radius: 3px; +} + + +/*================================================================================================== +Scroll +==================================================================================================*/ +QAbstractScrollArea { + border-radius: 2px; + background-color: transparent; +} + +QAbstractScrollArea::corner { + border: none; + background-color: transparent; +} + +QScrollBar:horizontal { + background-color: transparent; + height: 15px; + margin: 0px; +} + +QScrollBar::handle:vertical, +QScrollBar::handle:horizontal { + background-color: rgba(0,0,0,100); +} + +QScrollBar::handle:vertical:hover, +QScrollBar::handle:horizontal:hover { + background-color: #a2a2a0; +} + +QScrollBar::handle:horizontal { + min-width: 5px; + border-radius: 3px; + margin: 4px 15px; +} + +QScrollBar::sub-line:horizontal { + margin: 1px 3px 0px 3px; /* 1px to correctly fit the 10px width image */ + border-image: url(qss:images/left_arrow_dark.png); + width: 6px; + height: 10px; + subcontrol-position: left; + subcontrol-origin: margin; +} + +QScrollBar::add-line:horizontal { + margin: 1px 3px 0px 3px; /* 1px to correctly fit the 10px width image */ + border-image: url(qss:images/right_arrow_dark.png); + width: 6px; + height: 10px; + subcontrol-position: right; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:horizontal:hover, +QScrollBar::sub-line:horizontal:on { + border-image: url(qss:images/left_arrow_darker.png); +} + +QScrollBar::add-line:horizontal:hover, +QScrollBar::add-line:horizontal:on { + border-image: url(qss:images/right_arrow_darker.png); +} + +QScrollBar::up-arrow:horizontal, +QScrollBar::down-arrow:horizontal { + background-color: none; +} + +QScrollBar::add-page:horizontal, +QScrollBar::sub-page:horizontal { + background-color: transparent; +} + +QScrollBar:vertical { + background-color: transparent; + width: 15px; + margin: 0px; +} + +QScrollBar::handle:vertical { + min-height: 5px; + border-radius: 3px; + margin: 15px 4px; +} + +QScrollBar::sub-line:vertical { + margin: 3px 0px 3px 1px; /* 1px to correctly fit the 10px width image */ + border-image: url(qss:images/up_arrow_dark.png); + height: 6px; + width: 10px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::add-line:vertical { + margin: 3px 0px 3px 1px; /* 1px to correctly fit the 10px width image */ + border-image: url(qss:images/down_arrow_dark.png); + height: 6px; + width: 10px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:vertical:hover, +QScrollBar::sub-line:vertical:on { + border-image: url(qss:images/up_arrow_darker.png); +} + +QScrollBar::add-line:vertical:hover, +QScrollBar::add-line:vertical:on { + border-image: url(qss:images/down_arrow_darker.png); +} + +QScrollBar::up-arrow:vertical, +QScrollBar::down-arrow:vertical { + background-color: none; +} + +QScrollBar::add-page:vertical, +QScrollBar::sub-page:vertical { + background-color: transparent; +} + + +/*================================================================================================== +Tab bar +==================================================================================================*/ +QTabWidget::pane { + background-color: transparent; /* temporal (transparent background) */ /* tab content background color */ + position: absolute; +} + +QTabWidget::pane:top { + top: -1px; + border-top: 1px solid #d2d2d2; +} + +QTabWidget::pane:bottom { + bottom: -1px; + border-bottom: 1px solid #d2d2d2; +} + +QTabWidget::pane:left { + right: -1px; + border-right: 1px solid #d2d2d2; +} + +QTabWidget::pane:right { + left: -1px; + border-left: 1px solid #d2d2d2; +} + +QTabWidget::tab-bar:top, +QTabWidget::tab-bar:bottom { + left: 10px; +} + +QTabWidget::tab-bar:left, +QTabWidget::tab-bar:right { + top: 10px; +} + +QTabBar { + qproperty-drawBase: 0; /* important */ + background-color: transparent; +} + +/* Workaround for QTabBars created from docked QDockWidgets which don't draw the border if not set and reseted as follows: */ +QTabBar { + border-top: 1px solid #d2d2d2; /* set color for all QTabBars */ +} +QDockWidget QTabBar { + border-color: transparent; /* set color for all QTabBars but ones created from QDockWidget */ +} +QDialog QTabBar { + border-color: transparent; /* set color for QTabBars inside Preferences dialog */ +} +/* end fix */ + +QTabBar::tab { + background-color: transparent; + border: 1px solid transparent; + padding: 3px; +} + +QTabBar::tab:top, +QTabBar::tab:bottom { + border-top-width: 4px; /* same as selected tab colored border in order to center close-button */ + border-bottom-width: 4px; /* same as selected tab colored border in order to center close-button */ + min-width: 11ex; + margin-left: 2px; + margin-right: 2px; +} + +QTabBar::tab:left, +QTabBar::tab:right { + border-left-width: 4px; /* same as selected tab colored border in order to center close-button */ + border-right-width: 4px; /* same as selected tab colored border in order to center close-button */ + min-height: 14ex; + margin-top: 2px; + margin-bottom: 2px; +} + +QTabBar::tab:selected { + background-color: transparent; /* temporal (transparent background) */ + border-color: #d2d2d2; +} + +QTabBar::tab:top:selected { + border-top: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #94b30f, stop:1 #819c0c); /* selection color */ + border-bottom-color: #f5f5f5; /* same as tab content background color */ +} + +QTabBar::tab:bottom:selected { + border-bottom: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #94b30f, stop:1 #819c0c); /* selection color */ + border-top-color: #f5f5f5; /* same as tab content background color */ +} + +QTabBar::tab:right:selected { + border-left: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 #94b30f, stop:1 #819c0c); /* selection color */ + border-right-color: #f5f5f5; /* same as tab content background color */ +} + +QTabBar::tab:left:selected { + border-right: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 #94b30f, stop:1 #819c0c); /* selection color */ + border-left-color: #f5f5f5; /* same as tab content background color */ +} + +QTabBar::tab:!selected { + color: rgba(0,0,0,160); +} + +QTabBar::tab:!selected:hover { + color: rgba(0,0,0,220); + background-color: rgba(0,0,0,20); +} + +QTabBar::tab:first:selected { + margin-left: 0; /* the first selected tab has nothing to overlap with on the left */ +} + +QTabBar::tab:last:selected { + margin-right: 0; /* the last selected tab has nothing to overlap with on the right */ +} + +QTabBar::tab:only-one { + margin: 0; /* if there is only one tab, we don't want overlapping margins */ +} + +/* hack to access Preference TabBar background */ +QDialog#Gui__Dialog__DlgPreferences > QFrame QFrame { + background-color: transparent; /* main background color (in Windows is #f5f5f5) */ +} + +/* fix for previous hack that broke QTabWidget background on Windows */ +QDialog#Gui__Dialog__DlgPreferences QTabWidget::pane { + background-color: transparent; /* temporal (transparent background) */ +} + +/* hack to correctly align Preferences icon list on OSX */ +QDialog#Gui__Dialog__DlgPreferences > QListView { + min-width: 130px; +} + +/* unique styles for sections inside Preferences */ +QDialog#Gui__Dialog__DlgPreferences > QListView::item { + border-radius: 4px; +} + +QDialog#Gui__Dialog__DlgPreferences > QListView::item:hover { + background-color: #dadfc5; +} + +QDialog#Gui__Dialog__DlgPreferences > QListView::item:selected { + color: #566214; + background-color: #dadfc5; + border: 1px solid #a5c61a; +} + + +/*================================================================================================== +Tab bar buttons +==================================================================================================*/ +/* Close button */ +QTabBar::close-button { + subcontrol-origin: margin; + subcontrol-position: center right; /* only works for QT 4.6 and newer */; + border-radius: 2px; + background-image: url(qss:images/close_dark.png); + background-position: center center; + background-repeat: none; +} + +QTabBar::close-button:hover { + background-color: rgba(0,0,0,20); +} + +QTabBar::close-button:pressed { + background-color: rgba(0,0,0,30); +} + +/* Fix for lists inside Model tab */ +QDockWidget QTreeView, +QDockWidget QListView, +QDockWidget QTableView { + margin: 6px; + border: 1px solid #c3c3c3; /* same as regular QTreeView, QListView and QTableView */ + min-height: 40px; /* neccesary in some areas of FreeCAD */ +} + +/* Buttons to scroll tabs if there is not space to show all of them: */ +QTabBar::scroller { + width: 20px; /* the width of the scroll buttons */ +} + +QTabBar QToolButton, +QTabBar QToolButton:hover { + background-color: #f5f5f5; /* same as main background color */ +} + +QTabBar QToolButton::right-arrow:enabled { + image: url(qss:images/right_arrow_dark.png); +} + +QTabBar QToolButton::right-arrow:disabled, +QTabBar QToolButton::right-arrow:off { + image: url(qss:images/right_arrow_disabled_dark.png); +} + +QTabBar QToolButton::right-arrow:hover { + image: url(qss:images/right_arrow_darker.png); +} + + QTabBar QToolButton::left-arrow:enabled { + image: url(qss:images/left_arrow_dark.png); +} + + QTabBar QToolButton::left-arrow:disabled, + QTabBar QToolButton::left-arrow:off { + image: url(qss:images/left_arrow_disabled_dark.png); +} + + QTabBar QToolButton::left-arrow:hover { + image: url(qss:images/left_arrow_darker.png); +} + + QTabBar QToolButton::up-arrow:enabled { + image: url(qss:images/up_arrow_dark.png); +} + + QTabBar QToolButton::up-arrow:disabled, + QTabBar QToolButton::up-arrow:off { + image: url(qss:images/up_arrow_disabled_dark.png); +} + + QTabBar QToolButton::up-arrow:hover { + image: url(qss:images/up_arrow_darker.png); +} + + QTabBar QToolButton::down-arrow:enabled { + image: url(qss:images/down_arrow_dark.png); +} + + QTabBar QToolButton::down-arrow:disabled, + QTabBar QToolButton::down-arrow:off { + image: url(qss:images/down_arrow_disabled_dark.png); +} + + QTabBar QToolButton::down-arrow:hover { + image: url(qss:images/down_arrow_darker.png); +} + +QTabBar::tear { + /* default OS tear better */ +} + + +/*================================================================================================== +Tree and list views +==================================================================================================*/ +QTreeView, +QListView, +QTableView { + background-color: #f0f0f0; + alternate-background-color: #e6e6e6; /* related with QListView background */ + border: 1px solid #c3c3c3; + selection-color: white; + selection-background-color: #94b30f; /* should be similar to QListView::item selected background-color */ + show-decoration-selected: 1; /* make the selection span the entire width of the view */ + border-radius: 3px; +} + +QListView::item:selected, +QTreeView::item:selected { + color: white; /* should be similar to QListView selection-color */ + background-color: #94b30f; /* should be similar to QListView selection-background-color */ + show-decoration-selected: 1; /* make the selection span the entire width of the view */ +} + +/* Property Editor QTreeView (FreeCAD custom widget) */ +Gui--PropertyEditor--PropertyEditor { + gridline-color: #d2d2d2; /* same as Group header background */ +} + +/* fix for column items background when a link is present */ +Gui--PropertyEditor--PropertyEditor > QWidget > QFrame:focus { + background-color: #dadfc5; /* same as focused background color */ +} + +/* hack to hide weird redundant information inside the value of a Placement cell */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel, +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel:disabled { + color: transparent; + background-color: transparent; + border: none; + border-radius: 0px; + margin: 0px; + padding: 0px; +} + +/* hack to hide non editable cells inside Property values */ +Gui--PropertyEditor--PropertyEditor QLineEdit:read-only, +Gui--PropertyEditor--PropertyEditor QLineEdit:disabled, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:read-only, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:disabled { + color: transparent; + border-color: transparent; + background-color: transparent; + selection-color: transparent; + selection-background-color: transparent; +} + +/* hack to disable margin inside Property values to following elements */ +Gui--PropertyEditor--PropertyEditor QSpinBox, +Gui--PropertyEditor--PropertyEditor QDoubleSpinBox, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox, +Gui--PropertyEditor--PropertyEditor QLineEdit, +Gui--PropertyEditor--PropertyEditor QComboBox { + margin-left: 0px; + margin-right: 0px; + padding-top: 0px; + padding-bottom: 0px; +} + +/* set border-radius to 0px inside list views */ +QTreeView > QWidget > QComboBox, +QTreeView > QWidget > QAbstractSpinBox, +QTreeView > QWidget > QSpinBox, +QTreeView > QWidget > QDoubleSpinBox, +QTreeView > QWidget > QLineEdit, +QTreeView > QWidget > QTextEdit, +QTreeView > QWidget > QTimeEdit, +QTreeView > QWidget > QDateEdit, +QTreeView > QWidget > QDateTimeEdit, +QTreeView > QWidget > QComboBox:drop-down, +QTreeView > QWidget > QAbstractSpinBox:up-button, +QTreeView > QWidget > QSpinBox:up-button, +QTreeView > QWidget > QDoubleSpinBox:up-button, +QTreeView > QWidget > QTimeEdit:up-button, +QTreeView > QWidget > QDateEdit:up-button, +QTreeView > QWidget > QDateTimeEdit:up-button, +QTreeView > QWidget > QAbstractSpinBox:down-button, +QTreeView > QWidget > QSpinBox:down-button, +QTreeView > QWidget > QDoubleSpinBox:down-button, +QTreeView > QWidget > QTimeEdit:down-button, +QTreeView > QWidget > QDateEdit:down-button, +QTreeView > QWidget > QDateTimeEdit:down-button, +QTreeView > QWidget > Gui--ColorButton { + border-radius: 0px; +} + +/* set focus colors to best viewing the editable fields */ +QTreeView > QWidget > QComboBox:focus, +QTreeView > QWidget > QAbstractSpinBox:focus, +QTreeView > QWidget > QSpinBox:focus, +QTreeView > QWidget > QDoubleSpinBox:focus, +QTreeView > QWidget > QLineEdit:focus, +QTreeView > QWidget > QTextEdit:focus, +QTreeView > QWidget > QTimeEdit:focus, +QTreeView > QWidget > QDateEdit:focus, +QTreeView > QWidget > QDateTimeEdit:focus { + border-color: #dadfc5; /* same as focused background color */ + border-bottom-color: #a5c61a; /* same as focused border color */ +} + +QTreeView > QWidget > QAbstractSpinBox:read-only, +QTreeView > QWidget > QSpinBox:read-only, +QTreeView > QWidget > QDoubleSpinBox:read-only, +QTreeView > QWidget > QLineEdit:read-only, +QTreeView > QWidget > QTextEdit:read-only, +QTreeView > QWidget > QTimeEdit:read-only, +QTreeView > QWidget > QDateEdit:read-only, +QTreeView > QWidget > QDateTimeEdit:read-only { + color: transparent; + background-color: transparent; + border-color: transparent; +} + +/* Fix to correctly (not totally) draw QTextEdit on OSX at Page properties: "Page result", "Template" and "Editable Texts" */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QWidget { + min-height: 14px; +} + + +/*================================================================================================== +Header of tree and list views +==================================================================================================*/ +QHeaderView { + background-color: #c3c3c3; + border-top-left-radius: 2px; /* 1px less than its container */ + border-top-right-radius: 2px; /* 1px less than its container */ + border-bottom-left-radius: 0px; + border-bottom-right-radius: 0px; +} + +QHeaderView::section { + border:none; + padding: 4px 6px; + background-color: #c3c3c3; +} + +QHeaderView::section:horizontal { + padding: 4px 6px; /* left and right value similar to QHeaderView::section */ + border-right: 1px solid rgba(0,0,0,30); +} + +QHeaderView::section:vertical { + border-bottom: 1px solid rgba(0,0,0,30); +} + +QTableCornerButton::section { + background-color: #c3c3c3; + border-top: none; + border-left: none; + border-right: 1px solid rgba(0,0,0,30); + border-bottom: 1px solid rgba(0,0,0,30); +} + +QHeaderView::section:last { + border-right: none; +} + +QHeaderView::up-arrow { + image: url(qss:images/up_arrow_dark.png); +} + +QHeaderView::up-arrow:hover { + image: url(qss:images/up_arrow_darker.png); +} + +QHeaderView::down-arrow { + image: url(qss:images/down_arrow_dark.png); +} + +QHeaderView::down-arrow:hover { + image: url(qss:images/down_arrow_darker.png); +} + +/* Group header inside Property Editor (FreeCAD custom widget) */ +Gui--PropertyEditor--PropertyEditor { + qproperty-groupTextColor: #828282; /* same as main background color */ + qproperty-groupBackground: #d2d2d2; /* same as item gridlines */ +} + + +/*================================================================================================== +Branch system for QTreeViews +==================================================================================================*/ +QTreeView::branch { + background: transparent; +} + +QTreeView::branch:has-siblings:!adjoins-item { + border-image: url(qss:images/branch_vline.png) 0; +} + +QTreeView::branch:has-siblings:adjoins-item { + border-image: url(qss:images/branch_more.png) 0; +} + +QTreeView::branch:!has-children:!has-siblings:adjoins-item { + border-image: url(qss:images/branch_end.png) 0; +} + +QTreeView::branch:closed:has-children:has-siblings { + image: url(qss:images/branch_closed_dark.png); +} + +QTreeView::branch:has-children:!has-siblings:closed { + image: url(qss:images/branch_closed_dark.png); + border-image: url(qss:images/branch_end.png) 0; +} + +QTreeView::branch:open:has-children:has-siblings { + image: url(qss:images/branch_open_dark.png); + border-image: url(qss:images/branch_more.png) 0; +} + +QTreeView::branch:open:has-children:!has-siblings { + image: url(qss:images/branch_open_dark.png); + border-image: url(qss:images/branch_end.png) 0; +} + + +/*================================================================================================== +Splitter and windows separator +==================================================================================================*/ +QSplitter::handle { + margin: 0px 11px; + padding: 0px; +} + +QSplitter::handle:vertical { + background-image: url(qss:images/splitter_horizontal_dark.png); + background-position: center center; + background-repeat: none; + margin: 2px 4px 2px 4px; + height: 2px; +} + +QSplitter::handle:horizontal { + background-image: url(qss:images/splitter_vertical_dark.png); + background-position: center center; + background-repeat: none; + margin: 4px 2px 4px 2px; + width: 2px; +} + +/* Similar to the splitter is the following window separator: */ +QMainWindow::separator { + background-position: center center; + background-repeat: none; +} + +QMainWindow::separator:horizontal { + height: 2px; + background-image: url(qss:images/splitter_horizontal_dark.png); + margin: 4px 2px 4px 2px; +} + +QMainWindow::separator:vertical { + width: 2px; + background-image: url(qss:images/splitter_vertical_dark.png); + margin: 2px 4px 2px 4px; +} + + +/*================================================================================================== +Tasks panel (custom FreeCAD class) +==================================================================================================*/ +/* Action group */ +QFrame[class="panel"] { + background-color: transparent; /* temporal (transparent background) */ +} + +/* Separator line */ +QSint--ActionGroup QFrame[height="1"], +QSint--ActionGroup QFrame[height="2"], +QSint--ActionGroup QFrame[height="3"], +QSint--ActionGroup QFrame[width="1"], +QSint--ActionGroup QFrame[width="2"], +QSint--ActionGroup QFrame[width="3"] { + border-color: rgba(0,0,0,60); +} + +/* Panel header */ +QSint--ActionGroup QFrame[class="header"] { + border: none; + background-color: #b6b6b6; /* Task Panel Header background color */ + border-top-left-radius: 3px; + border-top-right-radius: 3px; + border-bottom-left-radius: 0px; + border-bottom-right-radius: 0px; + margin: 0px; + padding: 0px; +} + +QSint--ActionGroup QFrame[class="header"]:hover { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #94b30f, stop:1 #819c0c); +} + +QSint--ActionGroup QToolButton[class="header"] { + color: white; /* Task Panel Header text color */ + text-align: left; + font-weight: bold; + border: none; + margin: 0px; + padding: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel { + background-color: transparent; + background-image: url(qss:images/down_arrow_light.png); + background-repeat: none; + background-position: center center; + padding: 0px; + margin: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel:hover { + background-color: transparent; + background-image: url(qss:images/down_arrow_lighter.png); +} + +QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"] { + background-color: transparent; + background-image: url(qss:images/up_arrow_light.png); + background-repeat: none; + background-position: center center; + padding: 0px; + margin: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"]:hover { + background-color: transparent; + background-image: url(qss:images/up_arrow_lighter.png); +} + +QSint--ActionGroup QFrame[class="content"] { + background-color: #e6e6e6; /* Task Panel background color */ + margin: 0px; + padding: 0px; + border: none; + border-top-left-radius: 0px; + border-top-right-radius: 0px; + border-bottom-left-radius: 3px; + border-bottom-right-radius: 3px; +} + +QSint--ActionGroup QFrame[class="content"] > QWidget { + background-color: #e6e6e6; /* Task Panel background color */ +} + +/* Fixs for tabs inside Task Panel */ +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:top:selected { + border-bottom-color: #e6e6e6; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:bottom:selected { + border-top-color: #e6e6e6; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:right:selected { + border-right-color: #e6e6e6; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:left:selected { + border-left-color: #e6e6e6; /* same as Task Panel background color */ +} + + +/*================================================================================================== +Buttons +==================================================================================================*/ +/* Common */ +QComboBox, +QAbstractSpinBox, +QSpinBox, +QDoubleSpinBox, +QLineEdit, +QTextEdit, +QTimeEdit, +QDateEdit, +QDateTimeEdit { + color: #6e6e6e; + background-color: #e0e0e0; + selection-color: white; + selection-background-color: #94b30f; + border: 1px solid #e0e0e0; + border-radius: 3px; + min-width: 50px; /* it ensures the default value is correctly displayed */ + padding: 1px 2px; /* temporal: could don't be compatible with elements inside Tree/List view */ +} + +/* shifts text/number editable field to the left to make space for the up/down or drop-down buttons */ +QComboBox, +QAbstractSpinBox, +QSpinBox, +QDoubleSpinBox, +QTimeEdit, +QDateEdit, +QDateTimeEdit { + padding-right: 20px; +} + +/* when QTextEdit are no editable */ +QTextEdit:!editable { + background-color: #f0f0f0; + border: 1px solid #c3c3c3; +} + +QComboBox:focus, +QAbstractSpinBox:focus, +QSpinBox:focus, +QDoubleSpinBox:focus, +QLineEdit:focus, +QTextEdit:focus, +QTimeEdit:focus, +QDateEdit:focus, +QDateTimeEdit:focus { + color: black; + border-color: #a5c61a; + border-right-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #94b30f, stop:1 #a5c61a); /* same as up/down or drop-down button color */ + background-color: #dadfc5; +} + +QComboBox:disabled, +QAbstractSpinBox:disabled, +QSpinBox:disabled, +QDoubleSpinBox:disabled, +QLineEdit:disabled, +QTextEdit:disabled, +QTimeEdit:disabled, +QDateEdit:disabled, +QDateTimeEdit:disabled { + color: #c3c3c3; + background-color: #e0e0e0; /* same as enabled color */ + border-color: #e0e0e0; /* same as enabled color */ +} + +QAbstractSpinBox:up-button, +QSpinBox:up-button, +QDoubleSpinBox:up-button, +QTimeEdit:up-button, +QDateEdit:up-button, +QDateTimeEdit:up-button, +QAbstractSpinBox:down-button, +QSpinBox:down-button, +QDoubleSpinBox:down-button, +QTimeEdit:down-button, +QDateEdit:down-button, +QDateTimeEdit:down-button { + background-color: #d2d2d2; + subcontrol-origin: border; /* important */ + width: 20px; /* same as QComboBox ... QDateTimeEdit padding-right */ +} + +QAbstractSpinBox:up-button, +QSpinBox:up-button, +QDoubleSpinBox:up-button, +QTimeEdit:up-button, +QDateEdit:up-button, +QDateTimeEdit:up-button { + subcontrol-position: top right; + border-top-right-radius: 3px; + height: 12px; /* fix for Ubuntu that doesn't divide the up/down button into the exact middle */ +} + +QAbstractSpinBox:down-button, +QSpinBox:down-button, +QDoubleSpinBox:down-button, +QTimeEdit:down-button, +QDateEdit:down-button, +QDateTimeEdit:down-button { + subcontrol-position: bottom right; + border-bottom-right-radius: 3px; +} + +QAbstractSpinBox:up-button:focus, +QSpinBox:up-button:focus, +QDoubleSpinBox:up-button:focus, +QTimeEdit:up-button:focus, +QDateEdit:up-button:focus, +QDateTimeEdit:up-button:focus { + background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #9bbc12, stop:1 #a5c61a); +} + +QAbstractSpinBox:down-button:focus, +QSpinBox:down-button:focus, +QDoubleSpinBox:down-button:focus, +QTimeEdit:down-button:focus, +QDateEdit:down-button:focus, +QDateTimeEdit:down-button:focus { + background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #94b30f, stop:1 #9bbc12); +} + +QAbstractSpinBox:up-button:disabled, +QSpinBox:up-button:disabled, +QDoubleSpinBox:up-button:disabled, +QTimeEdit:up-button:disabled, +QDateEdit:up-button:disabled, +QDateTimeEdit:up-button:disabled, +QAbstractSpinBox:down-button:disabled, +QSpinBox:down-button:disabled, +QDoubleSpinBox:down-button:disabled, +QTimeEdit:down-button:disabled, +QDateEdit:down-button:disabled, +QDateTimeEdit:down-button:disabled { + background-color: transparent; +} + +QAbstractSpinBox::up-arrow, +QSpinBox::up-arrow, +QDoubleSpinBox::up-arrow, +QTimeEdit::up-arrow, +QDateEdit::up-arrow, +QDateTimeEdit::up-arrow { + image: url(qss:images/up_arrow_dark.png); + top: 0px; /* fix simetry between up and down images */ +} + +QAbstractSpinBox::up-arrow:focus, +QSpinBox::up-arrow:focus, +QDoubleSpinBox::up-arrow:focus, +QTimeEdit::up-arrow:focus, +QDateEdit::up-arrow:focus, +QDateTimeEdit::up-arrow:focus { + image: url(qss:images/up_arrow_lighter.png); +} + +QAbstractSpinBox::up-arrow:off, +QSpinBox::up-arrow:off, +QDoubleSpinBox::up-arrow:off, +QTimeEdit::up-arrow:off, +QDateEdit::up-arrow:off, +QDateTimeEdit::up-arrow:off { + image: url(qss:images/up_arrow_disabled_dark.png); +} + +QAbstractSpinBox::up-arrow:disabled, +QSpinBox::up-arrow:disabled, +QDoubleSpinBox::up-arrow:disabled, +QTimeEdit::up-arrow:disabled, +QDateEdit::up-arrow:disabled, +QDateTimeEdit::up-arrow:disabled { + image: url(qss:images/up_arrow_disabled_dark.png); +} + +QAbstractSpinBox::down-arrow, +QSpinBox::down-arrow, +QDoubleSpinBox::down-arrow, +QTimeEdit::down-arrow, +QDateEdit::down-arrow, +QDateTimeEdit::down-arrow { + image: url(qss:images/down_arrow_dark.png); + bottom: 0px; /* fix simetry between up and down images */ +} + +QAbstractSpinBox::down-arrow:focus, +QSpinBox::down-arrow:focus, +QDoubleSpinBox::down-arrow:focus, +QTimeEdit::down-arrow:focus, +QDateEdit::down-arrow:focus, +QDateTimeEdit::down-arrow:focus { + image: url(qss:images/down_arrow_lighter.png); +} + +QAbstractSpinBox::down-arrow:off, +QSpinBox::down-arrow:off, +QDoubleSpinBox::down-arrow:off, +QTimeEdit::down-arrow:off, +QDateEdit::down-arrow:off, +QDateTimeEdit::down-arrow:off { + image: url(qss:images/down_arrow_disabled_dark.png); +} + +QAbstractSpinBox::down-arrow:disabled, +QSpinBox::down-arrow:disabled, +QDoubleSpinBox::down-arrow:disabled, +QTimeEdit::down-arrow:disabled, +QDateEdit::down-arrow:disabled, +QDateTimeEdit::down-arrow:disabled { + image: url(qss:images/down_arrow_disabled_dark.png); +} + +/* ComboBox */ +QComboBox::drop-down { + background-color: #d2d2d2; + subcontrol-origin: border; /* important */ + subcontrol-position: top right; + width: 20px; + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; +} + +QComboBox::drop-down:on, +QComboBox::drop-down:focus { + background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #94b30f, stop:1 #a5c61a); +} + +QComboBox::down-arrow { + image: url(qss:images/down_arrow_dark.png); +} + +QComboBox::down-arrow:on, +QComboBox::down-arrow:focus { + image: url(qss:images/down_arrow_lighter.png); +} + +QComboBox::down-arrow:off, +QComboBox::down-arrow:disabled { + image: url(qss:images/down_arrow_disabled_dark.png); +} + +/* ComboBox menu */ +QComboBox { + selection-color: white; + selection-background-color: #94b30f; +} + +QComboBox QAbstractItemView { + color: #6e6e6e; /* same as regular QComboBox color */ + background-color: transparent; + selection-color: white; + selection-background-color: #94b30f; + border-width: 5px 0px 5px 0px; + border-style: solid; + border-color: transparent; + margin: 0px -1px 0px 0px; /* temporal: hack for Mac... try it on Windows and Linux */ +} + + +/*================================================================================================== +Push button +==================================================================================================*/ +QPushButton { + color: #6e6e6e; + text-align: center; + background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #f5f5f5, stop:1 #e6e6e6); + border: 1px solid #d2d2d2; + border-bottom-color: #c3c3c3; /* simulates shadow under the button */ + padding: 4px 22px; + margin: 4px 4px; + min-height: 16px; /* same as QTabBar QPushButton min-width */ + border-radius: 4px; +} + +QPushButton:hover, +QPushButton:focus { + color: white; + border-color: #819c0c; + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #94b30f, stop:1 #819c0c); +} + +QPushButton:disabled, +QPushButton:disabled:checked { + color: #b6b6b6; + border-color: #e6e6e6; + background-color: #e6e6e6; +} + +QPushButton:pressed { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #819c0c, stop:1 #94b30f); +} + +QPushButton:checked { + background-color: #94b30f; + border-color: #819c0c; +} + +/* Color Buttons */ +Gui--ColorButton, +Gui--ColorButton:disabled { + padding: 0px; /* reset */ + margin: 0px; /* reset */ +} + +Gui--ColorButton { + background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #f5f5f5, stop:1 #e6e6e6); + border: 1px solid #d2d2d2; + border-bottom-color: #c3c3c3; /* simulates shadow under the button */ +} + +Gui--ColorButton:disabled { + border-color: transparent; + background-color: rgba(0,0,0,10); +} + +Gui--ColorButton:hover, +Gui--ColorButton:focus { + border-color: #819c0c; + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #94b30f, stop:1 #819c0c); +} + +Gui--ColorButton:pressed { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #819c0c, stop:1 #94b30f); +} + +/* Pushbutton style for "..." inside Placement cell which launches Placement tool */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QPushButton { + background-color: #b6b6b6; + border: 1px solid #828282; + min-width: 16px; /* reset it due to larger value on regular QPushButton, same or bigger value as regular QPushButton min-height */ + border-radius: 0px; + margin: 0px; /* reset */ + padding: 0px; /* reset */ +} + +/* Fix for Expressions description QFrame that is "broken" with initial reset */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QWidget > QWidget > QFrame { + background-color: #f5f5f5; /* main background color */ + border: 1px solid #dcdcdc; + border-radius: 2px; + padding: 2px 6px; +} + + +/*================================================================================================== +Tool button inside QDialogs that works as QPushButtons +==================================================================================================*/ +/* found under Tools -> Customize -> Macros -> Pixmap "..." button */ +QDialog QToolButton { + color: #6e6e6e; + text-align: center; + background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #f5f5f5, stop:1 #e6e6e6); + border: 1px solid #d2d2d2; + border-bottom-color: #c3c3c3; /* simulates shadow under the button */ + padding: 0px; /* different than regular QPushButton */ + margin: 2px; /* different than regular QPushButton */ + min-height: 16px; /* same as QTabBar QPushButton min-width */ + border-radius: 4px; +} + +QDialog QToolButton:hover, +QDialog QToolButton:focus { + color: white; + border-color: #819c0c; + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #94b30f, stop:1 #819c0c); +} + +QDialog QToolButton:disabled, +QDialog QToolButton:disabled:checked { + color: #b6b6b6; + border-color: #e6e6e6; + background-color: #e6e6e6; +} + +QDialog QToolButton:pressed { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #819c0c, stop:1 #94b30f); +} + +QPushButton:checked { + background-color: #94b30f; + border-color: #819c0c; +} + + +/*================================================================================================== +Radio button +==================================================================================================*/ +QRadioButton::indicator:unchecked{ + color: #505050; + background-color: rgba(0, 0, 0, 20); + border: 1px solid #505050; +} + +QRadioButton::indicator:checked { + background-color: #94b30f; /* QCheckBox has the same color */ + border: 1px solid #819c0c; /* QCheckBox has the same color */ + image:url(qss:images/radiobutton_light.png); +} + +QRadioButton, +QRadioButton:disabled { + color: #505050; + padding: 3px; + outline: none; + background-color: transparent; +} + +QRadioButton::indicator { + width: 11px; + height: 11px; + border-radius: 6px; +} + +QRadioButton::indicator:pressed { + border-color: #c5d675; +} + +QRadioButton::indicator:disabled { + border: 1px solid #6e6e6e; +} + +QRadioButton::indicator:disabled { + color: #6e6e6e; + background-color: transparent; +} + +QRadioButton:focus { + border: none; +} + + +/*================================================================================================== +Checkbox +==================================================================================================*/ +QCheckBox, +QCheckBox:disabled { + color: #505050; + padding: 3px; + outline: none; + background-color: transparent; +} + +QCheckBox::indicator { + color: #c8c8c8; + background-color: rgba(0,0,0,20); + border: 1px solid #505050; +} + +QCheckBox::indicator { + width: 11px; + height: 11px; + border-radius:2px; +} + +QCheckBox::indicator:pressed, +QCheckBox::indicator:non-exclusive:checked:pressed, +QCheckBox::indicator:indeterminate:pressed, +QCheckBox::indicator:checked:pressed { + border-color: #c5d675; +} + +QCheckBox::indicator:checked { + background-color: #94b30f; /* QRadioButton has the same color */ + border: 1px solid #819c0c; /* QRadioButton has the same color */ + image:url(qss:images/checkbox_light.png); +} + +QCheckBox:disabled { + color: rgba(0,0,0,40); + background-color: transparent; +} + +QCheckBox::indicator:disabled { + background-color: rgba(0,0,0,20); + border: 1px solid rgba(0,0,0,20); +} + +QCheckBox::indicator:indeterminate { + background-color: #94b30f; + border: 1px solid #819c0c; + image: url(qss:images/checkbox_indeterminate_light.png); +} + +QCheckBox:focus { + border: none; +} + + +/*================================================================================================== +Slider +==================================================================================================*/ +QSlider, +QSlider:active, +QSlider:!active { + border: none; + background-color: transparent; +} + +QSlider:horizontal { + padding: 0px 10px; +} + +QSlider:vertical { + padding: 10px 0px; +} + +QSlider::groove { + background-color: rgba(0,0,0,30); + border: 1px solid rgba(0,0,0,40); + border-radius: 5px; + margin: 4px 0px; +} + +QSlider::groove:horizontal { + height: 8px; +} + +QSlider::groove:vertical { + width: 8px; +} + +QSlider::groove:horizontal:disabled, +QSlider::groove:vertical:disabled { + border-color: #dcdcdc; + background-color: #dcdcdc; +} + +QSlider::handle:horizontal, +QSlider::handle:vertical { + background-color: #b6b6b6; + border: 1px solid #b6b6b6; + width: 14px; + height: 14px; + border-radius: 8px; +} + +QSlider::handle:horizontal { + margin: -4px 0; +} + +QSlider::handle:vertical { + margin: 0 -4px; +} + +QSlider::handle:horizontal:hover, +QSlider::handle:vertical:hover, +QSlider::handle:horizontal:pressed, +QSlider::handle:vertical:pressed { + border-color: #94b30f; + background-color: #94b30f; +} + +QSlider::handle:horizontal:disabled, +QSlider::handle:vertical:disabled { + border-color: #dcdcdc; + background-color: #dcdcdc; +} + + +/*================================================================================================== +Toolbar buttons +==================================================================================================*/ +QToolBar > QToolButton { + margin: 2px; + padding: 2px; +} + +QToolBar > QPushButton, +/*QToolBar > QComboBox, disabled because creates different margins for body and drop-down button */ +QToolBar > QAbstractSpinBox, +QToolBar > QSpinBox, +QToolBar > QDoubleSpinBox, +QToolBar > QLineEdit, +QToolBar > QTextEdit, +QToolBar > QTimeEdit, +QToolBar > QDateEdit, +QToolBar > QDateTimeEdit { + margin: 2px; + padding: 2px; +} + +QToolBar > QPushButton { + border-radius: 4px; /* same as regular QPushButton */ + min-width: 20px; /* reset it due to larger value on regular QPushButton, same or bigger value as regular QPushButton min-height */ +} + +QToolBar > QPushButton:checked { + border: 1px solid #819c0c; + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #94b30f, stop:1 #819c0c); +} + +QToolBar > QPushButton:!checked { + background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #f5f5f5, stop:1 #e6e6e6); + border: 1px solid #d2d2d2; + border-bottom-color: #c3c3c3; /* simulates shadow under the button */ +} + +QToolBar > QPushButton:checked:hover { + border-color: #74831d; +} + +QToolBar > QPushButton:!checked:hover { + color: black; + border-color: #b6b6b6; +} + +QToolBar > QPushButton:checked:pressed { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #819c0c, stop:1 #94b30f); +} + +QToolBar > QPushButton:!checked:pressed { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #b6b6b6, stop:1 #e6e6e6); +} + +QToolBar > QPushButton:checked:disabled, +QToolBar > QPushButton:!checked:disabled { + border: none; + background-color: transparent; +} + +/* ToolBar menu buttons (buttons with drop-down menu) */ +QToolBar > QToolButton#qt_toolbutton_menubutton { + padding-right: 20px; /* Hack to add more width to buttons with menu */ + border: 1px solid transparent; + border-radius: 3px; +} + +QToolBar > QToolButton#qt_toolbutton_menubutton:hover, +QToolBar > QToolButton#qt_toolbutton_menubutton:pressed, +QToolBar > QToolButton#qt_toolbutton_menubutton:open { + border: 1px solid #a5c61a; +} + +QToolBar QToolButton::menu-button, +QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button { + border: none; + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; + width: 16px; /* 16px width + 4px for border = 20px allocated above */ + outline: none; + background-color: transparent; +} + +QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:hover, +QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:pressed, +QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:open { + background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #94b30f, stop:1 #a5c61a); +} + +QToolBar > QToolButton::menu-arrow { + background-image: url(qss:images/down_arrow_dark.png); + background-position: center center; + background-repeat: none; + subcontrol-origin: padding; + subcontrol-position: bottom right; + height: 10px; /* same as arrow image */ +} + +QToolBar > QToolButton::menu-arrow:hover { + background-image: url(qss:images/down_arrow_lighter.png); +} + +QToolBar > QToolButton::menu-arrow:open { + background-image: url(qss:images/down_arrow_lighter.png); +} + +/*The "show more" button (it can also be stylable with "QToolBarExtension" */ +QToolBar QToolButton#qt_toolbar_ext_button { + margin: 0px; + padding: 0px; + /*background-image: url(qss:images/more_dark.png);*/ + image: transparent; + background-repeat: none; + background-position: center left; +} + +QToolBar QToolButton#qt_toolbar_ext_button:hover { + /*background-image: url(qss:images/more_light.png);*/ + border-color: #e0e0e0; + background-color: #e0e0e0; +} + +QToolBar QToolButton#qt_toolbar_ext_button:on { + /*background-image: url(qss:images/more_light.png);*/ + border-color: #e0e0e0; + background-color: #e0e0e0; +} + + +/*================================================================================================== +Tables (spreadsheets) +==================================================================================================*/ +QTableView { + gridline-color: #d2d2d2; + selection-color: #566214; + selection-background-color: #dadfc5; +} + +QTableView::item:hover { + background-color: rgba(0,0,0,10); /* temporal: is it displayed in Linux or Windows? on OSX it isn't */ +} + +QTableView::item:disabled { + color: #e6e6e6; +} + +QTableView::item:selected { + color: #566214; + border-color: #dadfc5; /* same as focused background color */ + border-bottom-color: #a5c61a; /* same as focused border color */ +} + +/* fix for elements inside the cells */ +QTableView QComboBox, +QTableView QAbstractSpinBox, +QTableView QSpinBox, +QTableView QDoubleSpinBox, +QTableView QLineEdit, +QTableView QTextEdit, +QTableView QTimeEdit, +QTableView QDateEdit, +QTableView QDateTimeEdit, +QTableView QComboBox:drop-down, +QTableView QAbstractSpinBox:up-button, +QTableView QSpinBox:up-button, +QTableView QDoubleSpinBox:up-button, +QTableView QTimeEdit:up-button, +QTableView QDateEdit:up-button, +QTableView QDateTimeEdit:up-button, +QTableView QAbstractSpinBox:down-button, +QTableView QSpinBox:down-button, +QTableView QDoubleSpinBox:down-button, +QTableView QTimeEdit:down-button, +QTableView QDateEdit:down-button, +QTableView QDateTimeEdit:down-button, +QTableView Gui--ColorButton { + border-radius: 0px; +} + +QTableView QComboBox, +QTableView QAbstractSpinBox, +QTableView QSpinBox, +QTableView QDoubleSpinBox, +QTableView QLineEdit, +QTableView QTextEdit, +QTableView QTimeEdit, +QTableView QDateEdit, +QTableView QDateTimeEdit { + color: black; + background-color: transparent; + border-color: transparent; +} + +QTableView QComboBox:drop-down, +QTableView QAbstractSpinBox:up-button, +QTableView QSpinBox:up-button, +QTableView QDoubleSpinBox:up-button, +QTableView QTimeEdit:up-button, +QTableView QDateEdit:up-button, +QTableView QDateTimeEdit:up-button, +QTableView QAbstractSpinBox:down-button, +QTableView QSpinBox:down-button, +QTableView QDoubleSpinBox:down-button, +QTableView QTimeEdit:down-button, +QTableView QDateEdit:down-button, +QTableView QDateTimeEdit:down-button, +QTableView Gui--ColorButton { + background-color: rgba(0,0,0,30); +} + +QTableView QComboBox:focus, +QTableView QAbstractSpinBox:focus, +QTableView QSpinBox:focus, +QTableView QDoubleSpinBox:focus, +QTableView QLineEdit:focus, +QTableView QTextEdit:focus, +QTableView QTimeEdit:focus, +QTableView QDateEdit:focus, +QTableView QDateTimeEdit:focus { + color: #566214; + selection-color: white; + selection-background-color: #94b30f; + border-color: #dadfc5; + background-color: #dadfc5; +} + +QTableView QComboBox:disabled, +QTableView QAbstractSpinBox:disabled, +QTableView QSpinBox:disabled, +QTableView QDoubleSpinBox:disabled, +QTableView QLineEdit:disabled, +QTableView QTextEdit:disabled, +QTableView QTimeEdit:disabled, +QTableView QDateEdit:disabled, +QTableView QDateTimeEdit:disabled { + color: rgba(0,0,0,120); + background-color: transparent; + border-color: transparent; +} + +QTableView QComboBox:read-only, +QTableView QAbstractSpinBox:read-only, +QTableView QSpinBox:read-only, +QTableView QDoubleSpinBox:read-only, +QTableView QLineEdit:read-only, +QTableView QTextEdit:read-only, +QTableView QTimeEdit:read-only, +QTableView QDateEdit:read-only, +QTableView QDateTimeEdit:read-only { + color: black; + background-color: transparent; + border-color: transparent; +} + + +/*================================================================================================== +EXPERIMENTAL +==================================================================================================*/ + +/* Fix for preventing elements in different rows to accidentaly overlap */ +QDialog QGroupBox QFrame { + margin: 2px 0px; +} + +*[mandatoryField="true"] { background-color: cyan } \ No newline at end of file diff --git a/light-orange.qss b/light-orange.qss index e46850a..6f388b7 100644 --- a/light-orange.qss +++ b/light-orange.qss @@ -1,1906 +1,1876 @@ -/* -ABOUT -=========================================================== -version 1.8 -QT theme (stylesheet) specially developed for FreeCAD (http://www.freecadweb.org/). -It might work with other software that uses QT styling. - - -LICENSE -=========================================================== -Copyright (c) 2015 Pablo Gil Fernández -The stylesheet barely uses code from Colin Duquesnoy "generic QT stylesheet" - -This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. -To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/. - - -INSTALLATION -=========================================================== -1) Place the .qss files and /images/ folder in the path that fits your OS: - OSX = /Users/[YOUR_USER_NAME]/Library/Preferences/FreeCAD/Gui/Stylesheets/ - WINDOWS = C:/[INSTALLATION_PATH]/FreeCAD/data/Gui/Stylesheets/ - LINUX = /home/[YOUR_USER_NAME]/.FreeCAD/Gui/Stylesheets/ - -2) In order to display correctly images that are used inside the stylesheet: - 2.1) If you use FreeCAD 0.16 (development builds newer than commit 5b3d50a): that's it, you are done! - - 2.2) If you use FreeCAD 0.15: Images used in the theme need full paths to be found by FreeCAD, so you should search the string "qss:images" (without "") and replace with the real path of your computer. It should be done with all the .qss files you want to install-use - find = qss:images - replace = /Users/myName/Library/Preferences/FreeCAD/Gui/Stylesheets/images - - -CUSTOMIZATION -=========================================================== -If you would like to change the overall look/style of the theme, just find and replace following colors in the whole file: - background darker = #828282 - background dark and slightly darker = #a2a2a2 - background dark = #b6b6b6 - background normal and slightly darker = #e0e0e0 - background normal = #e6e6e6 - background light = #f5f5f5 - background lighter = #ffffff - - lists background = #d3d1cd - lists background (alternate) = #cfcdc9 - lists backgrounds selection = #cbc9c4 - - foreground = black - - selection darker = #9d7106 - selection dark = #e0a108 - selection normal = #f8bf36 - selection inbetween normal and light = #f9ca58 (used to build SpinBoxes) - selection light = #fad57a - selection lighter = #fce6b1 - - -CAVEATS -=========================================================== - - FreeCAD 0.15 - - full paths to images are needed, that means all these .qss files should be edited per user - - the "Task panel" is not stylable - - in app icons-buttons are designed in svg but are not stylable, that is, it's not possible to change them... I hope it also changes in the near future - - -KNOWN BUGS and TO DO -=========================================================== - - please, follow the link to get updated information: http://forum.freecadweb.org/viewtopic.php?f=10&t=12417 -*/ - -/* RESET EVERYTHING */ -QAbstractScrollArea,QCheckBox,QColumnView,QComboBox,QDateEdit,QDateTimeEdit,QDialog,QDialogButtonBox,QDockWidget,QDoubleSpinBox,QFrame,QGroupBox,QHeaderView,QLabel,QLineEdit,QListView,QListWidget,QMainWindow,QMenu,QMenuBar,QMessageBox,QProgressBar,QPushButton,QRadioButton,QScrollBar,QSizeGrip,QSlider,QSpinBox,QSplitter,QStatusBar,QTabBar,QTabWidget,QTableView,QTableWidget,QTextEdit,QTimeEdit,QToolBar,QToolButton,QToolBox,QToolTip,QTreeView,QTreeWidget,QWidget { - padding: 0px; - margin: 0px; - border: 0px; - border-style: none; - background-color: #e6e6e6; /* set with default background color */ -} - -QMdiArea[showImage="true"] { - background-image: url(qss:images/background_freecad.png); - background-position: center; - background-repeat: no-repeat; -} - -QProgressBar, -QProgressBar:horizontal { - background: #d3d1cd; - border: 1px solid #b6b6b6; - text-align: center; - padding: 1px; - border-radius: 4px; -} -QProgressBar::chunk, -QProgressBar::chunk:horizontal { - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #e0a108, stop:1 #f8bf36); - border-radius: 3px; -} - -QToolTip { - background-color: #828282; - color: black; - padding: 4px; - border-radius: 4px; - /*opacity: 200;*/ -} - -QWidget { - color: #828282; - background-color: #e6e6e6; - background-clip: border; - border-image: none; - outline: 0; -} - -QWidget:focus { - border: 1px solid #828282; -} - -QWidget:disabled { - color: #f5f5f5; - background-color: #828282; /* same as QMenu background-color */ -} - -QMenuBar { - color: #ffffff; - background-color: #e0e0e0; -} - -QMenuBar::item { - background-color: #e0e0e0; -} - -QMenuBar::item:selected { - color: #9d7106; - border: 1px solid #f8bf36; - background-color: #f8bf36; -} - -QMenuBar::item:pressed { - color: #9d7106; - border: 1px solid #fad57a; - background-color: #fad57a; - margin-bottom:-1px; - padding-bottom:1px; -} - -QMenu { - color: #ffffff; - background-color: #828282; - margin: 2px; - border: 1px solid transparent; -} - -QMenu::icon { - margin: 5px; - border-style: none; -} - -QMenu::right-arrow { - image:url(qss:images/right_arrow_light.png); -} - -QMenu::item { - color: #ffffff; - background-color: #828282; - padding: 2px 30px 2px 30px; - border: 1px solid #828282; /* reserve space for selection border */ -} - -QMenu::item:selected { - color: #9d7106; - background-color: #fad57a; -} - -QMenu::separator { - height: 1px; - background-color: #b6b6b6; - margin-top: 2px; - margin-bottom: 2px; - margin-left: 6px; - margin-right: 6px; -} - -QMenu::indicator:non-exclusive { - color: #ffffff; - background-color: #f5f5f5; - border: 1px solid #828282; - width: 11px; - height: 11px; - border-radius:2px; -} - -QMenu::indicator:non-exclusive:checked { - background-color: #e0a108; - border: 1px solid #9d7106; - image:url(qss:images/checkbox_light.png); -} - -QGroupBox { - color: #828282; - font-weight: bold; - border:1px solid blue; - border-radius: 4px; - margin-top: 20px; - border-color: rgba(0, 0, 0, 20); /* lighter than "QGroupBox" border-color */ - background-color: rgba(255, 255, 255, 15); -} - - - -QGroupBox::title { - subcontrol-origin: margin; - subcontrol-position: top left; - padding-left: 10px; - padding-right: 10px; - padding-top: 10px; - background-color: transparent; -} - -QAbstractScrollArea { - border-radius: 2px; - border: 1px solid #3A3939; - background-color: transparent; -} - -QAbstractScrollArea::corner { - border: none; - background-color: #e6e6e6; -} - -QScrollBar:horizontal { - height: 15px; - margin: 3px 15px 3px 15px; - border: 1px transparent #828282; - border-radius: 4px; - background-color: #828282; -} - -QScrollBar::handle:horizontal { - background-color: #b6b6b6; - min-width: 5px; - border-radius: 4px; -} - -QScrollBar::add-line:horizontal { - margin: 1px 3px 0px 3px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images/right_arrow_light.png); - width: 6px; - height: 10px; - subcontrol-position: right; - subcontrol-origin: margin; -} - -QScrollBar::sub-line:horizontal { - margin: 1px 3px 0px 3px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images/left_arrow_light.png); - height: 10px; - width: 6px; - subcontrol-position: left; - subcontrol-origin: margin; -} - -QScrollBar::add-line:horizontal:hover, -QScrollBar::add-line:horizontal:on { - border-image: url(qss:images/right_arrow_lighter.png); -} - - -QScrollBar::sub-line:horizontal:hover, -QScrollBar::sub-line:horizontal:on { - border-image: url(qss:images/left_arrow_lighter.png); -} - -QScrollBar::up-arrow:horizontal, -QScrollBar::down-arrow:horizontal { - background: none; -} - - -QScrollBar::add-page:horizontal, -QScrollBar::sub-page:horizontal { - background: none; -} - -QScrollBar:vertical { - background-color: #828282; - width: 15px; - margin: 15px 3px 15px 3px; - border: 1px transparent #828282; - border-radius: 4px; -} - -QScrollBar::handle:vertical { - background-color: #b6b6b6; - min-height: 5px; - border-radius: 4px; -} - -QScrollBar::sub-line:vertical { - margin: 3px 0px 3px 1px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images/up_arrow_light.png); - height: 6px; - width: 10px; - subcontrol-position: top; - subcontrol-origin: margin; -} - -QScrollBar::add-line:vertical { - margin: 3px 0px 3px 1px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images/down_arrow_light.png); - height: 6px; - width: 10px; - subcontrol-position: bottom; - subcontrol-origin: margin; -} - -QScrollBar::sub-line:vertical:hover, -QScrollBar::sub-line:vertical:on { - border-image: url(qss:images/up_arrow_lighter.png); -} - -QScrollBar::add-line:vertical:hover, -QScrollBar::add-line:vertical:on { - border-image: url(qss:images/down_arrow_lighter.png); -} - -QScrollBar::up-arrow:vertical, -QScrollBar::down-arrow:vertical { - background: none; -} - - -QScrollBar::add-page:vertical, -QScrollBar::sub-page:vertical { - background: none; -} - -QTextEdit { - color: #828282; - background-color: #d3d1cd; - border: 1px solid #b6b6b6; - padding: 0px; - margin: 0px; -} - -QPlainTextEdit { - color: #828282; - background-color: #d3d1cd; - border-radius: 2px; - border: 1px solid #b6b6b6; - padding: 0px; - margin: 0px; -} - -QSizeGrip { - image: url(qss:images/sizegrip_light.png); - width: 16px; - height: 16px; - background-color: transparent; -} - -QRadioButton::indicator:unchecked{ - color: #828282; - background-color: #f5f5f5; - border: 1px solid #828282; -} - -QRadioButton::indicator:checked { - background-color: #e0a108; - border: 1px solid #9d7106; - image:url(qss:images/radiobutton_light.png); -} - -QCheckBox, -QRadioButton, -QCheckBox:disabled, -QRadioButton:disabled { - color: #828282; - padding: 3px; - outline: none; - background-color: transparent; -} - -QCheckBox::indicator, -QGroupBox::indicator { - color: #ffffff; - background-color: #f5f5f5; - border: 1px solid #828282; -} - -QCheckBox::indicator { - width: 11px; - height: 11px; - border-radius:2px; -} - -QRadioButton::indicator { - width: 11px; - height: 11px; - border-radius: 6px; -} - -QRadioButton::indicator:pressed, -QCheckBox::indicator:pressed, -QCheckBox::indicator:non-exclusive:checked:pressed, -QCheckBox::indicator:indeterminate:pressed, -QCheckBox::indicator:checked:pressed { - border-color: #fce6b1; -} - -QCheckBox::indicator:checked, -QGroupBox::indicator:checked { - background-color: #e0a108; - border: 1px solid #9d7106; - image:url(qss:images/checkbox_light.png); -} - -QCheckBox::indicator:disabled, -QRadioButton::indicator:disabled { - border: 1px solid #b6b6b6; -} - -QCheckBox:disabled, -QRadioButton::indicator:disabled { - color: #b6b6b6; - background-color: transparent; -} - -QCheckBox::indicator:disabled, -QGroupBox::indicator:disabled, -QMenu::indicator:non-exclusive:disabled { - background-color: #e6e6e6; -} - -QCheckBox::indicator:indeterminate { - background-color: #e0a108; - border: 1px solid #9d7106; - image: url(qss:images/checkbox_indeterminate_light.png); -} - -QCheckBox:focus, -QRadioButton:focus { - border: none; -} - -QFrame, -QFrame:pressed, -QFrame:focus, -QFrame:on { - border: 1px solid #e6e6e6; - border-radius: 3px; - padding: 0px; - /* background-color: transparent; temporal */ -} - -/* border and background of QComboBox drop-down */ -QComboBox QFrame, -QComboBox QFrame:pressed, -QComboBox QFrame:focus, -QComboBox QFrame:on { - border: 1px solid #828282; - background-color: #828282; - padding: 0px; - margin: 0px; -} - -QFrame[frameShape="0"] { - border-radius: 3px; -} - -/* Separator line */ -QFrame[height="1"], -QFrame[height="2"], -QFrame[height="3"], -QFrame[width="1"], -QFrame[width="2"], -QFrame[width="3"] { - border-width: 1px 0px 0px 0px; - border-style: solid; - border-color: #e0e0e0; - background-color: transparent; -} - -QPushButton { - color: #ffffff; - text-align: center; - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #b6b6b6, stop:1 #e6e6e6); - border: 1px solid #828282; - padding: 5px 12px 5px 12px; - margin: 4px 8px 4px 8px; - border-radius: 3px; - min-width: 14px; - min-height: 14px; -} - -QPushButton:hover, -QPushButton:focus { - color: black; - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #e0a108, stop:1 #f8bf36); - border-color: #e0a108; -} - -QPushButton:disabled, -QPushButton:disabled:checked { - color: #b6b6b6; - background-color: #e6e6e6; - border-color: #b6b6b6; -} - -QPushButton:pressed { - background-color: #e0a108; -} - -QPushButton:checked { - background-color: #f8bf36; - border-color: #e0a108; -} - -/* Color Buttons */ -Gui--ColorButton, -Gui--ColorButton:disabled { - border-color: transparent; - background-color: transparent; - /*width: 60px;*/ - height: 24px; - padding: 0px; - margin: 0px; -} - -Gui--ColorButton:hover { - border-color: #e0e0e0; - background-color: #e0e0e0; -} - -/* Buttons inside the toolbar */ -QToolBar QPushButton { - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #e0e0e0, stop:1 #e6e6e6); - border: 1px solid #b6b6b6; - min-width: 22px; - min-height: 22px; - margin-left: 2px; - margin-right: 2px; - margin-bottom: 3px; /*bigger margin to correctly separate buttons inside a vertical toolbar */ - margin-top: 1px; - padding: 1px; -} - -QToolBar QPushButton:hover, -QToolBar QPushButton:focus { - color: #ffffff; - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #e0e0e0, stop:1 #e6e6e6); - border: 1px solid #828282; -} - -QToolBar QPushButton:disabled, -QToolBar QPushButton:disabled:checked { - background-color: #e6e6e6; - border-color: #e0e0e0; -} - -QToolBar QPushButton:pressed { - background-color: #b6b6b6; - border-color: #b6b6b6; -} - -QToolBar QPushButton:checked { - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #f8bf36, stop:1 #fad57a); - border-color: #f8bf36; -} - -QToolBar QPushButton:checked:hover, -QToolBar QPushButton:checked:focus { - color: #ffffff; - border: 1px solid #e0a108; -} - -QToolBar { - border: 1px transparent #393838; - background-color: #e6e6e6; - font-weight: bold; - margin: 0px; - padding: 0px; -} - -QToolBar::handle:horizontal { - background-image: url(qss:images/Hmovetoolbar_dark.png); - width: 10px; - margin: 6px 2px 6px 2px; - background-position: top right; - background-repeat: repeat-y; -} - -QToolBar::handle:vertical { - background-image: url(qss:images/Vmovetoolbar_dark.png); - height: 10px; - margin: 2px 6px 2px 6px; - background-position: left bottom; - background-repeat: repeat-x; -} - -QToolBar::separator:horizontal { - background-image: url(qss:images/separtoolbar_dark.png); - width: 10px; - margin: 6px 2px 6px 2px; - background-position: center center; - background-repeat: repeat-y; -} - -QToolBar::separator:vertical { - background-image: url(qss:images/separtoolbar_dark.png); - height: 10px; - margin: 2px 6px 2px 6px; - background-position: center center; - background-repeat: repeat-x; -} - -QStackedWidget { - background-color: #e6e6e6; - border: 1px transparent #e6e6e6; -} - -QAbstractSpinBox { - color: #ffffff; - border: 1px solid #b6b6b6; /* border top color defined after QAbstractSpinBox, QLineEdit and QComboBox */ - background-color: #b6b6b6; - selection-color: black; - selection-background-color: #f8bf36; -} - -QAbstractSpinBox:disabled { - color: #f5f5f5; - background-color: #e0e0e0; - border-color: #e0e0e0; -} - -QAbstractSpinBox:up-button { - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #f9ca58, stop:1 #fad57a); - subcontrol-origin: border; - subcontrol-position: top right; - border-top-right-radius: 3px; - width: 20px; -} - -QAbstractSpinBox:down-button { - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #f8bf36, stop:1 #f9ca58); - subcontrol-origin: border; - subcontrol-position: bottom right; - border-bottom-right-radius: 3px; - width: 20px; -} - -QAbstractSpinBox:up-button:disabled, -QAbstractSpinBox:down-button:disabled { - background-color: transparent; -} - -QAbstractSpinBox::up-arrow { - image: url(qss:images/up_arrow_light.png); - top: 1px; /* fix simetry between up and down images */ -} - -QAbstractSpinBox::up-arrow:hover { - image: url(qss:images/up_arrow_lighter.png); -} - -QAbstractSpinBox::up-arrow:off { - image: url(qss:images/up_arrow_disabled_dark.png); -} - -QAbstractSpinBox::up-arrow:disabled { - image: none; -} - -QAbstractSpinBox::down-arrow { - image: url(qss:images/down_arrow_light.png); - bottom: -1px; /* fix simetry between up and down images */ -} -QAbstractSpinBox::down-arrow:hover { - image: url(qss:images/down_arrow_lighter.png); -} - -QAbstractSpinBox::down-arrow:off { - image: url(qss:images/down_arrow_disabled_dark.png); -} - -QAbstractSpinBox::down-arrow:disabled { - image: none; -} - -QToolBar QAbstractSpinBox { - margin-top: 4px; - margin-bottom: 4px; -} - -QLineEdit { - color: #ffffff; - background-color: #b6b6b6; - selection-color: black; - selection-background-color: #f8bf36; - /* Padding and margin defined */ - border-style: solid; - border: 1px solid #b6b6b6; /* border top color defined after QAbstractSpinBox, QLineEdit and QComboBox */ - border-radius: 3px; -} - -QAbstractSpinBox:focus, -QLineEdit:focus, -QComboBox:focus { - border-color: #fad57a; -} - -QComboBox { - color: #ffffff; - background-color: #b6b6b6; - selection-color: black; - selection-background-color: #f8bf36; - border: 1px solid #b6b6b6; /* border top color defined after QAbstractSpinBox, QLineEdit and QComboBox */ - border-radius: 3px; -} - -QComboBox:on { - color: black; - background-color: #b6b6b6; - border-color: #fad57a; -} - -QComboBox::drop-down { - subcontrol-origin: margin; - subcontrol-position: top right; - width: 20px; - border-left-width: 1px; - border-left-color: transparent; - border-left-style: solid; - border-top-right-radius: 3px; - border-bottom-right-radius: 3px; - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #f8bf36, stop:1 #fad57a); -} - -QComboBox::down-arrow { - image: url(qss:images/down_arrow_light.png); -} - -QComboBox::down-arrow:on, -QComboBox::down-arrow:hover, -QComboBox::down-arrow:focus { - image: url(qss:images/down_arrow_lighter.png); -} - -QComboBox QAbstractItemView { - color: #ffffff; - background-color: #828282; - border-radius: 3px; - margin: 0px; - padding: 0px; - border: none; -} - -/* Common parameters for QAbstractSpinBox, QLineEdit and QComboBox */ -QSpinBox, -QDoubleSpinBox, -QAbstractSpinBox, -QLineEdit, -QComboBox { - border-top-color: #a2a2a2; /* Creates an inset effect inside the elements */ - padding: 2px 6px 2px 6px; /* This makes text colour work on QComboBox */ - margin: 0px 2px 0px 2px; - min-width: 70px; /* it was 120 because of QCombobox... */ - border-radius: 3px; -} -/* end Common parameters */ - -QAbstractItemView { - color: #828282; - alternate-background-color: #cfcdc9; /* related with QListView background */ - border: 1px solid #828282; - border-radius: 3px; - padding: 0px; -} - -/* hack to deactivate changing background color when focus (due to QFrame generic transparent color) */ -QAbstractItemView:selected, -QAbstractItemView:on, -QAbstractItemView:focus { - background-color: #d3d1cd; /* same as QTable background color */ -} - -/* hack to hide weird redundant information inside the value of a Placement cell */ -QTreeView QLabel, -QTreeView QLabel:disabled { - color: transparent; - background-color: transparent; - border: none; - border-radius: 0px; - margin: 0px; - padding: 0px; -} - -QTreeView QLineEdit { - color: #ffffff; - border-color: #b6b6b6; - background-color: #b6b6b6; - selection-color: black; - selection-background-color: #f8bf36; -} - -/* hack to hide non editable cells inside Property values */ -QTreeView QLineEdit:read-only, -QTreeView QLineEdit:disabled, -QTreeView QAbstractSpinBox:read-only, -QTreeView QAbstractSpinBox:disabled { - color: transparent; - border-color: transparent; - background-color: transparent; - selection-color: transparent; - selection-background-color: transparent; -} - -/* hack to disable margin inside Property values to following elements */ -QTreeView QSpinBox, -QTreeView QDoubleSpinBox, -QTreeView QAbstractSpinBox, -QTreeView QLineEdit, -QTreeView QComboBox { - margin-left: 0px; - margin-right: 0px; - padding-top: 0px; - padding-bottom: 0px; -} - -/* Pushbutton style for "..." inside Placement cell which launches Placement tool */ -QTreeView QPushButton { - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #b6b6b6, stop:1 #e6e6e6); - border-top: none; - border-bottom: none; - border-right: none; - border-left: 1px solid #b6b6b6; - border-radius: 0px; - margin: 0px; - padding: 0px; - height: 24px; -} - -/* Color Buttons inside the "Properties window" */ -QAbstractItemView Gui--ColorButton { - padding: 0px; - margin: 0px; - height: 10px; -} - -QAbstractItemView QPushButton:hover { - color: black; - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #e0a108, stop:1 #f8bf36); - border-color: #e0a108; -} - -QAbstractItemView QPushButton:disabled { - color: transparent; - background-color: transparent; - border-color: transparent; -} - -QLabel { - border: 0px solid #828282; -} - -QTabWidget{ - border: none; -} - -QTabWidget:focus { - border: none; -} - -QTabWidget::pane { - border: none; - padding: 0px; - background-color: #e6e6e6; - position: absolute; - top: -15px; - padding-top: 15px; -} - -QTabWidget::tab-bar { - alignment: center; -} - -QTabBar { - qproperty-drawBase: 0; - left: 5px; - background-color: transparent; -} - -QTabBar:focus { - border: 0px transparent black; -} - -QTabBar::close-button { - padding: 0px; - margin: 0px; - border-radius: 2px; - background-image: url(qss:images/close_dark.png); - background-position: center center; - background-repeat: none; -} - -QTabBar::close-button:hover { - background-color: #fad57a; -} - -QTabBar::close-button:pressed { - background-color: #fce6b1; -} - -QTabBar::scroller { /* the width of the scroll buttons */ - width: 20px; -} - -/* the scroll buttons are tool buttons */ -QTabBar QToolButton, -QTabBar QToolButton:hover { - margin-top: 4px; - margin-bottom: 4px; - margin-left: 0px; - margin-right: 0px; - padding: 0px; - border: none; - background-color: #e6e6e6; - border-radius: 0px; -} - -QTabBar QToolButton::right-arrow:enabled { - image: url(qss:images/right_arrow_light.png); -} - -QTabBar QToolButton::right-arrow:disabled, -QTabBar QToolButton::right-arrow:off { - image: url(qss:images/right_arrow_disabled_dark.png); -} - -QTabBar QToolButton::right-arrow:hover { - image: url(qss:images/right_arrow_lighter.png); -} - - QTabBar QToolButton::left-arrow:enabled { - image: url(qss:images/left_arrow_light.png); -} - - QTabBar QToolButton::left-arrow:disabled, - QTabBar QToolButton::left-arrow:off { - image: url(qss:images/left_arrow_disabled_dark.png); -} - - QTabBar QToolButton::left-arrow:hover { - image: url(qss:images/left_arrow_lighter.png); -} - - QTabBar QToolButton::up-arrow:enabled { - image: url(qss:images/up_arrow_light.png); -} - - QTabBar QToolButton::up-arrow:disabled, - QTabBar QToolButton::up-arrow:off { - image: url(qss:images/up_arrow_disabled_dark.png); -} - - QTabBar QToolButton::up-arrow:hover { - image: url(qss:images/up_arrow_lighter.png); -} - - QTabBar QToolButton::down-arrow:enabled { - image: url(qss:images/down_arrow_light.png); -} - - QTabBar QToolButton::down-arrow:disabled, - QTabBar QToolButton::down-arrow:off { - image: url(qss:images/down_arrow_disabled_dark.png); -} - - QTabBar QToolButton::down-arrow:hover { - image: url(qss:images/down_arrow_lighter.png); -} - -/* HORIZONTAL TABS */ -QTabBar::tab:top, -QTabBar::tab:bottom { - color: #ffffff; - border: 1px solid #b6b6b6; - border-left-color: #e6e6e6; - border-right-width: 0px; - border-bottom: 1px solid #a2a2a2; /* shadown effect */ - background-color: #b6b6b6; - padding:5px 15px; - margin-top: 4px; - margin-bottom: 4px; - position: center; -} - -QTabBar::tab:top:first, -QTabBar::tab:bottom:first { - border-top-left-radius: 6px; - border-bottom-left-radius: 6px; -} - -QTabBar::tab:top:last, -QTabBar::tab:bottom:last { - border-top-right-radius: 6px; - border-bottom-right-radius: 6px; - border-right-width: 1px; -} - -QTabBar::tab:top:selected, -QTabBar::tab:bottom:selected { - color: black; - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #e0a108, stop:1 #f8bf36); - border-color: #e0a108; - border-bottom: 1px solid #a2a2a2; /* shadown effect */ -} - -QTabBar::tab:top:!selected:hover, -QTabBar::tab:bottom:!selected:hover { - color: black; -} - -QTabBar::tab:top:only-one , -QTabBar::tab:bottom:only-one { - border: 1px solid #9d7106; - border-radius: 6px; -} - -/* VERTICAL TABS */ -QTabBar::tab:left, -QTabBar::tab:right { - color: #ffffff; - border: 1px solid #b6b6b6; - border-top-color: #e6e6e6; - border-bottom-width: 0px; - border-right: 1px solid #a2a2a2; /* shadown effect */ - background-color: #b6b6b6; - padding: 15px 5px; - margin-left: 4px; - margin-right: 4px; - position: center; -} - -QTabBar::tab:left:first, -QTabBar::tab:right:first { - border-top-left-radius: 6px; - border-top-right-radius: 6px; -} - -QTabBar::tab:left:last, -QTabBar::tab:right:last { - border-bottom-left-radius: 6px; - border-bottom-right-radius: 6px; - border-bottom-width: 1px; -} - -QTabBar::tab:left:selected, -QTabBar::tab:right:selected { - color: black; - background-color: qlineargradient(spread:pad, x1:0.545, y1:1, x2:0, y2:1, stop:0 #e0a108, stop:1 #f8bf36); - border-color: #e0a108; - border-right: 1px solid #a2a2a2; /* shadown effect */ -} - -QTabBar::tab:left:!selected:hover, -QTabBar::tab:right:!selected:hover { - color: black; -} - -QTabBar::tab:left:only-one , -QTabBar::tab:right:only-one { - border: 1px solid #9d7106; - border-radius: 6px; -} - -QDockWidget { - color: #828282; - border: 1px solid #e6e6e6; - titlebar-close-icon: url(qss:images/close_dark.png); - titlebar-normal-icon: url(qss:images/undock_dark.png); -} - -QDockWidget::title { - text-align: center; - background-color: #e0e0e0; - padding: 4px; - border-radius: 4px; -} - -QDockWidget::close-button, -QDockWidget::float-button { - border: 1px transparent #e6e6e6; - border-radius: 2px; - background: transparent; - subcontrol-origin: padding; - subcontrol-position: right center; -} - -QDockWidget::close-button { - right: 4px; -} - -QDockWidget::float-button { - right: 22px; -} - -QDockWidget::close-button:hover, -QDockWidget::float-button:hover { - background: #f5f5f5; -} - -QDockWidget::close-button:pressed, -QDockWidget::float-button:pressed { - /*padding: 1px -1px -1px 1px;*/ - background-color: #e0e0e0; -} - -QTreeView, -QListView { - color: #828282; - border: 1px solid #e6e6e6; - border-radius: 4px; - background-color: #d3d1cd; /* related with alternate-background-color*/ - selection-color: black; - selection-background-color: #f8bf36; /* should be similar to QListView::item selected background-color */ - show-decoration-selected: 1; /* make the selection span the entire width of the view */ - padding: 0px; - margin: 0px 4px 0px 4px; - min-width: 130px; /* hack to correctly align Preferences icon list */ -} - -QListView, -QListView::item, -QListView QAbstractItemView { - margin: 0px; - icon-size: 20px; /* temporal */ - paint-alternating-row-colors-for-empty-area: 1; - position: absolute; - subcontrol-origin: margin; - subcontrol-position: left top; -} - -/* Control dropdown list margins of QComboBox */ -QComboBox QTreeView, -QComboBox QListView { - margin: 0px; - padding: 0px; -} - -QListView::item { - border: 0px transparent #e6e6e6; - border-radius: 4px; - background-color: transparent; - padding: 0px; - margin: 0px; - display: inline-block; - position: relative; -} - -QListView::item:selected, -QTreeView::item:selected { - color: black; - background-color: #f8bf36; /* should be similar to QListView selection-background-color */ -} - -/* Branch system */ -QTreeView::branch { - background: transparent; -} - -QTreeView::branch:has-siblings:!adjoins-item { - border-image: url(qss:images/branch_vline.png) 0; -} - -QTreeView::branch:has-siblings:adjoins-item { - border-image: url(qss:images/branch_more.png) 0; -} - -QTreeView::branch:!has-children:!has-siblings:adjoins-item { - border-image: url(qss:images/branch_end.png) 0; -} - -QTreeView::branch:closed:has-children:has-siblings { - image: url(qss:images/branch_closed_dark.png); -} - -QTreeView::branch:has-children:!has-siblings:closed { - image: url(qss:images/branch_closed_dark.png); - border-image: url(qss:images/branch_end.png) 0; -} - -QTreeView::branch:open:has-children:has-siblings { - image: url(qss:images/branch_open_dark.png); - border-image: url(qss:images/branch_more.png) 0; -} - -QTreeView::branch:open:has-children:!has-siblings { - image: url(qss:images/branch_open_dark.png); - border-image: url(qss:images/branch_end.png) 0; -} - -QSlider, -QSlider:active, -QSlider:!active { - border: none; - background-color: transparent; -} - -QSlider:horizontal { - padding: 0px 10px; -} - -QSlider:vertical { - padding: 10px 0px; -} - -QSlider::groove:horizontal { - border: 1px solid #b6b6b6; - background-color: #b6b6b6; - height: 8px; - border-radius: 5px; - margin: 4px 0; -} - -QSlider::groove:vertical { - border: 1px solid #b6b6b6; - background-color: #b6b6b6; - width: 8px; - border-radius: 5px; - margin: 4px 0; -} - -QSlider::groove:horizontal:disabled, -QSlider::groove:vertical:disabled { - border-color: #e0e0e0; - background-color: #e0e0e0; -} - -QSlider::handle:horizontal, -QSlider::handle:vertical { - background-color: #828282; - border: 1px solid #828282; - width: 14px; - height: 14px; - border-radius: 8px; -} - -QSlider::handle:horizontal { - margin: -4px 0; -} - -QSlider::handle:vertical { - margin: 0 -4px; -} - -QSlider::handle:horizontal:hover, -QSlider::handle:vertical:hover { - border-color: #e0a108; - background-color: #e0a108; -} - -QSlider::handle:horizontal:pressed, -QSlider::handle:vertical:pressed { - border-color: #9d7106; - background-color: #9d7106; -} - -QSlider::handle:horizontal:disabled, -QSlider::handle:vertical:disabled { - border-color: #b6b6b6; - background-color: #e6e6e6; -} - -QToolButton { - color: #ffffff; - text-align: center; - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #b6b6b6, stop:1 #e6e6e6); - border: 1px solid #828282; - padding-top: 5px; - padding-bottom: 5px; - padding-left: 15px; - padding-right: 15px; - margin-top: 5px; - margin-bottom: 5px; - margin-left: 10px; - margin-right: 10px; - border-radius: 3px; - outline: none; - /*min-width: 36px;*/ -} - -QToolButton:hover, -QToolButton:focus { - color: black; - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #e0a108, stop:1 #f8bf36); - border-color: #e0a108; -} - -QToolButton:disabled, -QToolButton:disabled:checked { - color: #b6b6b6; - background-color: #e6e6e6; - border-color: #b6b6b6; -} - -QToolButton:pressed { - border-color: #fad57a; -} - -QToolButton:checked { - background-color: #f8bf36; - border-color: #e0a108; -} - -QToolButton::menu-indicator { - subcontrol-origin: padding; - subcontrol-position: center right; - right: 4px; -} - -/*The "show more" button (it can also be stylable with "QToolBarExtension" */ -QToolButton#qt_toolbar_ext_button { - border-radius: 0px; - margin: 0px; - padding: 0px; - /*background-image: url(qss:images/more_dark.png);*/ - image: transparent; - background-repeat: none; - background-position: center left; -} - -QToolButton#qt_toolbar_ext_button:hover { - /*background-image: url(qss:images/more_light.png);*/ - border-color: #e0e0e0; - background-color: #e0e0e0; -} - -QToolButton#qt_toolbar_ext_button:on { - /*background-image: url(qss:images/more_light.png);*/ - border-color: #e0e0e0; - background-color: #e0e0e0; -} - -/*Buttons inside the Toolbar*/ -QToolBar QToolButton { - color: #828282; - background-color: #e6e6e6; - border: 1px transparent #e6e6e6; - border-radius: 3px; - margin: 0px; - padding: 2px; -} - -QToolBar QToolButton:disabled { - background-color: #e6e6e6; -} - -QToolBar QToolButton:checked { - color: #9d7106; - background-color: #f8bf36; - border: 1px solid #f8bf36; -} - -QToolBar QToolButton:hover { - background-color: #e6e6e6; -} - -QToolBar QToolButton:pressed, -QToolBar QToolButton::menu-button:pressed { - background-color: #e0e0e0; - border: 1px solid #e0e0e0; -} - - -QToolBar QToolButton::menu-indicator:hover, -QToolBar QToolButton::menu-indicator:pressed { - background-color: transparent; -} - -/* the subcontrols below are used only in the MenuButtonPopup mode */ -QToolBar QToolButton::menu-button { - border: none; - border-top-right-radius: 3px; - border-bottom-right-radius: 3px; - width: 16px; /* 16px width + 4px for border = 20px allocated above */ - outline: none; - background-color: transparent; -} - -QToolBar QToolButton::menu-button:hover, -QToolBar QToolButton::menu-button:active, -QToolBar QToolButton::menu-button:disabled { - border-color: transparent; - background-color: transparent; -} - -QToolBar QToolButton::menu-arrow { - background-image: url(qss:images/down_arrow_light.png); - background-position: center center; - background-repeat: none; - subcontrol-origin: padding; - subcontrol-position: bottom right; - height: 10px; /* same as arrow image */ -} - -QToolBar QToolButton::menu-arrow:open { - background-image: url(qss:images/down_arrow_lighter.png); -} - -/* If the QToolButton is also a menu: */ -QToolBar QToolButton#qt_toolbutton_menubutton { - padding-right: 20px; - border: 1px solid transparent; -} - -QToolBar QToolButton#qt_toolbutton_menubutton:hover, -QToolBar QToolButton#qt_toolbutton_menubutton:pressed, -QToolBar QToolButton#qt_toolbutton_menubutton:open { - border: 1px solid #fad57a; -} - -QToolBar QToolButton#qt_toolbutton_menubutton::menu-button { - border: none; /* necessary because it inherits the border from QToolButton#qt_toolbutton_menubutton */ -} - -QToolBar QToolButton#qt_toolbutton_menubutton::menu-button:hover, -QToolBar QToolButton#qt_toolbutton_menubutton::menu-button:pressed, -QToolBar QToolButton#qt_toolbutton_menubutton::menu-button:open { - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #f8bf36, stop:1 #fad57a); -} - -QToolBar:tear { - color: blue; - background-color: red; -} - -QTableView { - color: #828282; - border: 1px solid #b6b6b6; - gridline-color: #f5f5f5; - background-color: #d3d1cd; - selection-color: #828282; - selection-background-color: #fce6b1; - border-radius: 3px; - padding: 0px; - margin: 0px; -} - -QTableView::item:hover { - background: #cbc9c4; -} - -QTableView::item:disabled { - color: #e6e6e6; -} - -QTableView::item:selected { - color: #9d7106; - background-color: #fad57a; -} - -/* when editing a cell: */ -QTableView QLineEdit { - color: #828282; - background-color: #cfcdc9; - border-radius: 0px; - margin: 0px; - padding: 0px; -} - -QHeaderView { - border: none; - background-color: #828282; - border-top-left-radius: 3px; - border-top-right-radius: 3px; - border-bottom-left-radius: 0px; - border-bottom-right-radius: 0px; - margin: 0px; - padding: 0px; -} - -QHeaderView::section { - background-color: transparent; - color: #ffffff; - border: 1px solid transparent; - border-radius: 0px; - text-align: center; -} - -QHeaderView::section::vertical { - padding: 0px 6px 0px 6px; - border-bottom: 1px solid #b6b6b6; -} - -QHeaderView::section::vertical:first { - border-top: 1px solid #b6b6b6; -} - -QHeaderView::section::vertical:last { - border-bottom: none; -} - -QHeaderView::section::vertical:only-one { - border: none; -} - -QHeaderView::section::horizontal { - padding: 0px 0px 0px 6px; - border-right: 1px solid #b6b6b6; -} - -QHeaderView::section::horizontal:first { - border-left: 1px solid #b6b6b6; -} - -QHeaderView::section::horizontal:last { - border-left: none; -} - -QHeaderView::section::horizontal:only-one { - border: none; -} - -QDockWidget QHeaderView::section { - border-width: 6px 1px 6px 1px; /* hack to bigger margin for Model Panel table headers */ -} - -QHeaderView::section:checked { - color: #9d7106; - background-color: #fad57a; -} - - /* style the sort indicator */ -QHeaderView::down-arrow { - image: url(qss:images/down_arrow_light.png); -} - -QHeaderView::up-arrow { - image: url(qss:images/up_arrow_light.png); -} - -QTableCornerButton::section { - background-color: #828282; - border: 1px solid #828282; - border-radius: 0px; -} - -QToolBox { - padding: 3px; - color: #9d7106; - border: none; -} - -QToolBox::tab { /* TODO */ - color: #ffffff; - background-color: #b6b6b6; - border: 1px transparent #828282; - border-bottom: 1px transparent #b6b6b6; - border-top-left-radius: 5px; - border-top-right-radius: 5px; - padding: 5px; -} - -QToolBox::tab:selected { /* italicize selected tabs */ - color: #9d7106; - font: italic; - background-color: #f8bf36; - border-color: #f8bf36; - } - -QStatusBar::item { - color: #ffffff; - background-color: #e6e6e6; - border: 1px solid #e6e6e6; - border-radius: 2px; -} - - -QSplitter::handle { - background-color: #e6e6e6; - margin: 0px 11px; - padding: 0px; - border-radius: 3px; -} - -QSplitter::handle:vertical { - background-image: url(qss:images/splitter_horizontal_dark.png); - background-position: center center; - background-repeat: none; - margin: 2px 10px 2px 10px; - height: 2px; -} - -QSplitter::handle:horizontal { - background-image: url(qss:images/splitter_horizontal_dark.png); - background-position: center center; - background-repeat: none; - margin: 10px 2px 10px 2px; - width: 2px; -} - -QSplitter::handle:horizontal:hover, -QSplitter::handle:vertical:hover { - background-color: #e6e6e6; -} - -/* Similar to the splitter is the following window separator: */ -QMainWindow::separator { - border: 1px solid #e6e6e6; - background-color: #e6e6e6; - background-position: center center; - background-repeat: none; -} - -QMainWindow::separator:hover { - background-color: #e6e6e6; -} - -QMainWindow::separator:horizontal { - height: 4px; - background-image: url(qss:images/splitter_horizontal_dark.png); -} - -QMainWindow::separator:vertical { - width: 4px; - background-image: url(qss:images/splitter_vertical_dark.png); -} - -QLabel { - padding-top: 3px; - padding-bottom: 3px; - background-color: transparent; -} - -QLabel:disabled { - color: #b6b6b6; - background-color: transparent; -} - -/* Action group */ -QFrame[class="panel"] { - border: none; - background-color: #e6e6e6; -} - -/* Separator line */ -QSint--ActionGroup QFrame[height="1"], -QSint--ActionGroup QFrame[height="2"], -QSint--ActionGroup QFrame[height="3"], -QSint--ActionGroup QFrame[width="1"], -QSint--ActionGroup QFrame[width="2"], -QSint--ActionGroup QFrame[width="3"] { - border-color: #f5f5f5; -} - -QSint--ActionGroup QFrame[class="header"] { - border: none; - background-color: #828282; - border-top-left-radius: 3px; - border-top-right-radius: 3px; - border-bottom-left-radius: 0px; - border-bottom-right-radius: 0px; - margin: 0px; - padding: 0px; -} - -QSint--ActionGroup QFrame[class="header"]:hover { - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #e0a108, stop:1 #f8bf36); -} - -QSint--ActionGroup QToolButton[class="header"] { - text-align: left; - font-weight: bold; - color: #ffffff; - background-color: transparent; - border: none; - margin: 0px; - padding: 0px; -} - -QSint--ActionGroup QToolButton[class="header"]:hover { - color: black; -} - -QSint--ActionGroup QFrame[class="header"] QLabel { - background-color: transparent; - background-image: url(qss:images/down_arrow_light.png); - background-repeat: none; - background-position: center center; - padding: 0px; - margin: 0px; -} - -QSint--ActionGroup QFrame[class="header"] QLabel:hover { - background-color: transparent; - background-image: url(qss:images/down_arrow_lighter.png); -} - -QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"] { - background-color: transparent; - background-image: url(qss:images/up_arrow_light.png); - background-repeat: none; - background-position: center center; - padding: 0px; - margin: 0px; -} - -QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"]:hover { - background-color: transparent; - background-image: url(qss:images/up_arrow_lighter.png); -} - -QSint--ActionGroup QFrame[class="content"] { - background-color: #d3d1cd; - margin: 0px; - padding: 0px; - border: none; - border-top-left-radius: 0px; - border-top-right-radius: 0px; - border-bottom-left-radius: 3px; - border-bottom-right-radius: 3px; -} - -/* HACK -This might not be the best way to reset the background color: */ -QSint--ActionGroup QFrame[class="content"] QWidget { - background-color: #d3d1cd; -} - -QSint--ActionGroup QFrame[class="content"] QPushButton { - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #b6b6b6, stop:1 #e6e6e6); -} - -QSint--ActionGroup QFrame[class="content"] QPushButton:hover, -QSint--ActionGroup QFrame[class="content"] QPushButton:focus { - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #e0a108, stop:1 #f8bf36); -} - -QSint--ActionGroup QFrame[class="content"] QPushButton:disabled, -QSint--ActionGroup QFrame[class="content"] QPushButton:disabled:checked { - color: #d3d1cd; - border-color: #f5f5f5; - background-color: #f5f5f5; -} -QSint--ActionGroup QFrame[class="content"] QPushButton:checked { - background-color: #f8bf36; -} - -QSint--ActionGroup QFrame[class="content"] QComboBox { - background-color: #b6b6b6; -} - -QSint--ActionGroup QFrame[class="content"] QComboBox:on { - background-color: #b6b6b6; -} - -QSint--ActionGroup QFrame[class="content"] QComboBox QAbstractItemView { - border-color: #828282; - background-color: #828282; -} - -QSint--ActionGroup QFrame[class="content"] QListView { - border-color: #cbc9c4; - background-color: #cbc9c4; -} - -QSint--ActionGroup QFrame[class="content"] QAbstractSpinBox { - background-color: #b6b6b6; -} - -QSint--ActionGroup QFrame[class="content"] QLineEdit { - background-color: #b6b6b6; -} - -QSint--ActionGroup QFrame[class="content"] QComboBox:disabled, -QSint--ActionGroup QFrame[class="content"] QAbstractSpinBox:disabled, -QSint--ActionGroup QFrame[class="content"] QLineEdit:disabled { - color: #d3d1cd; - border-color: #f5f5f5; - background-color: #f5f5f5; -} - -QSint--ActionGroup QFrame[class="content"] QCheckBox:disabled, -QSint--ActionGroup QFrame[class="content"] QRadioButton:disabled { - color: #f5f5f5; - border-color: #f5f5f5; -} - -QSint--ActionGroup QFrame[class="content"] QCheckBox::indicator:disabled, -QSint--ActionGroup QFrame[class="content"] QRadioButton::indicator:disabled { - border-color: #f5f5f5; - background-color: transparent; -} - -QSint--ActionGroup QFrame[class="content"] QHeaderView { - border: none; - background-color: #828282; - border-radius: 0px; - margin: 0px; - padding: 0px; -} - -QSint--ActionGroup QFrame[class="content"] QHeaderView::section { - background-color: transparent; - color: #ffffff; - border: 1px solid transparent; - border-radius: 0px; - text-align: center; -} - -QSint--ActionGroup QFrame[class="content"] QHeaderView::section::horizontal { - padding: 6px 0px 6px 6px; - border-right: 1px solid #b6b6b6; -} - -QSint--ActionGroup QFrame[class="content"] QHeaderView::section::horizontal:first { - border-left: 1px solid #e6e6e6; -} - -QSint--ActionGroup QFrame[class="content"] QHeaderView::section::horizontal:last { - border-left: none; -} - -QSint--ActionGroup QFrame[class="content"] QHeaderView::section::horizontal:only-one { - border: none; -} -/* enf of HACK */ - - -QSint--ActionGroup QToolButton[class="action"], -QSint--ActionGroup QToolButton[class="action"]:enabled { - font-weight: bold; - color: #b6b6b6; -} - -QSint--ActionGroup QToolButton[class="action"]:hover, -QSint--ActionGroup QToolButton[class="action"]:enabled:hover { - text-decoration: none; - color: #828282; - background-color: #cbc9c4; - border-color: #cbc9c4; -} - -QSint--ActionGroup QToolButton[class="action"]:disabled { - color: #e6e6e6; - background-color: #cbc9c4; - border-color: #cbc9c4; -} - -QSint--ActionGroup QToolButton[class="action"]:focus, -QSint--ActionGroup QToolButton[class="action"]:pressed -QSint--ActionGroup QToolButton[class="action"]:enabled:focus, -QSint--ActionGroup QToolButton[class="action"]:enabled:pressed { - color: black; - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #e0a108, stop:1 #f8bf36); - border-color: #e0a108; -} - -QSint--ActionGroup QToolButton[class="action"]:on { - background-color: red; - color: red; -} - - -/* EXPERIMENTAL -================================================= */ -QDial { - background-color: #e6e6e6; -} - -QLCDNumber { - background-color: #e6e6e6; -} - -QCalendarWidget { - background-color: green; -} - -/* Expressions popup dialog fixes to embed elements */ -QAbstractSpinBox QPushButton { - padding: 0px 15px 0px 15px; - margin: 2px 10px 2px 10px; - border: 1px solid #828282; - border-radius: 3px; -} -QAbstractSpinBox QPushButton:disabled { - color: #f5f5f5; - background-color: #e6e6e6; - border-color: #e6e6e6; -} - -QAbstractSpinBox QFrame, -QSint--ActionGroup QFrame[class="content"] QAbstractSpinBox QFrame { - color: #fce6b1; - background-color: #b6b6b6; - border-color: #b6b6b6; - border-radius: 0px; - margin: 0px; - padding: 0px; -} - -QSint--ActionGroup QFrame[class="content"] QAbstractSpinBox QPushButton { - padding: 6px 15px 6px 15px; -} \ No newline at end of file +/* +ABOUT +============================================================================================================ +version 2.0 +QT theme (stylesheet) specially developed for FreeCAD (http://www.freecadweb.org/). +It might work with other software that uses QT styling. + + +LICENSE +============================================================================================================ +Copyright (c) 2016 Pablo Gil Fernández + +This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. +To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/. + + +INSTALLATION +============================================================================================================ +1) Place the .qss files and /images/ folder in the path that fits your OS: + OSX = /Users/[YOUR_USER_NAME]/Library/Preferences/FreeCAD/Gui/Stylesheets/ + WINDOWS = C:/[INSTALLATION_PATH]/FreeCAD/data/Gui/Stylesheets/ + LINUX = /home/[YOUR_USER_NAME]/.FreeCAD/Gui/Stylesheets/ + +2) In order to display correctly images: + 2.1) FreeCAD 0.16 (development builds newer than commit 5b3d50a): that's it, you are done! + + 2.2) FreeCAD 0.15: Images used in the theme need ABSOLUTE paths to be found by FreeCAD, so you should search the string "qss:images" (without "") and replace with the real path of your computer. It should be done with all the .qss files you want to install-use + find = qss:images + replace = /Users/myName/Library/Preferences/FreeCAD/Gui/Stylesheets/images + + +CUSTOMIZATION +============================================================================================================ +If you would like to change the overall look/style of the theme, just find and replace following colors in the whole file: + BACKGROUND (darker to ligher) + black + #505050 + #6e6e6e + #828282 + #a2a2a0 + #b6b6b6 + #c8c8c8 + #c3c3c3 + #d2d2d2 + #dcdcdc + #e0e0e0 + #e6e6e6 + #f0f0f0 + #f5f5f5 = main background color + white + + SELECTION (darker to lighter) + #624b14 + #b28416 + #d0970c + #daa116 = main selection color + #e2ac2a = used to build QSpinBox up and down buttons, it's used as color in the middle + #e3b64d + #e0c992 + #e3d8b9 + + +KNOWN BUGS and TO DO +============================================================================================================ + - please, follow the link to get updated information: http://forum.freecadweb.org/viewtopic.php?f=10&t=12417 +*/ + + +/*================================================================================================== +Reset elements +==================================================================================================*/ +/* Reseting everything helps to unify styles across different operating systems */ +* { + padding: 0px; + margin: 0px; + border: 0px; + border-style: none; +} + +/* specific reset for elements inside QToolBar */ +QToolBar * { + margin: 0px; + padding: 0px; +} + + +/*================================================================================================== +Main window +==================================================================================================*/ +QMainWindow, +QDialog, +QToolBar { + background-color: #f5f5f5; /* main background color */ +} + +QMdiArea[showImage="true"] { + background-image: url(qss:images/background_freecad.png); + background-position: center; + background-repeat: no-repeat; +} + + +/*================================================================================================== +MENUS +==================================================================================================*/ +QMenuBar, +QMenuBar::item { + color: black; + background-color: #f5f5f5; /* main background color */ +} + +QMenu, +QMenu::item { + color: black; + background-color: #f5f5f5; /* main background color */ +} + +QMenuBar::item:selected, +QMenuBar::item:pressed, +QMenu::item:selected, +QMenu::item:pressed { + color: white; + background-color: #daa116; +} + +QMenu::right-arrow { + width: 10px; + height: 10px; + image:url(qss:images/right_arrow_dark.png); + margin-right: 2px; +} + +QMenu::right-arrow:selected { + image:url(qss:images/right_arrow_lighter.png); +} + +QMenu::item { + padding: 2px 16px 2px 26px; /* make room for icon at left */ + border: 1px solid transparent; /* reserve space for selection border */ +} + +QMenu::icon { + margin-left: 2px; +} + +QMenu::separator { + height: 1px; + background-color: rgba(0,0,0,30); + margin: 6px 4px; +} + +QMenu::indicator:non-exclusive:checked { + color: white; +} + + +/*================================================================================================== +Tool bar +==================================================================================================*/ +QToolBar { + border: none; + min-width: 32px; /* allows a minimum of space between QToolBar colums */ + min-height: 32px; /* allows a minimum of space between QToolBar rows */ +} + +QToolBar::handle:horizontal { + background-image: url(qss:images/Hmovetoolbar_dark.png); + width: 10px; + margin: 6px 2px 6px 2px; + background-position: top right; + background-repeat: repeat-y; +} + +QToolBar::handle:vertical { + background-image: url(qss:images/Vmovetoolbar_dark.png); + height: 10px; + margin: 2px 6px 2px 6px; + background-position: left bottom; + background-repeat: repeat-x; +} + +QToolBar::separator:horizontal { + background-image: url(qss:images/separtoolbar_dark.png); + width: 10px; + margin: 6px 2px 6px 2px; + background-position: center center; + background-repeat: repeat-y; +} + +QToolBar::separator:vertical { + background-image: url(qss:images/separtoolbar_dark.png); + height: 10px; + margin: 2px 6px 2px 6px; + background-position: center center; + background-repeat: repeat-x; +} + + +/*================================================================================================== +Group box +==================================================================================================*/ +QGroupBox { + color: rgba(0,0,0,120); + border:1px solid rgba(0, 0, 0, 20); /* lighter than its own border-color */; + border-radius: 3px; + margin-top: 10px; + padding: 6px; + background-color: rgba(255, 255, 255, 15); +} + +QGroupBox:title { + top: -8px; + left: 12px; +} + + +/*================================================================================================== +Tooltip +==================================================================================================*/ +QToolTip { + color: white; + background-color: #828282; + /*opacity: 90%; doesn't correctly work */ + padding: 4px; + border-radius: 3px; /* has no effect */ +} + + +/*================================================================================================== +Dock widget +==================================================================================================*/ +QDockWidget { + color: rgba(0,0,0,120); + titlebar-close-icon: url(qss:images/close_dark.png); + titlebar-normal-icon: url(qss:images/undock_dark.png); +} + +QDockWidget::title { + text-align: center; + background-color: rgba(0,0,0,10); + border: 4px solid #f5f5f5; /* fix to simulate margin between this :title and tabs */ /* same as main background color */ + border-radius: 6px; /* bigger than normal due to previous border fix */ + padding: 4px 0px; /* also needed because of previous border fix */ +} + +QDockWidget::close-button, +QDockWidget::float-button { + border: none; + background: transparent; + border-radius: 3px; + subcontrol-origin: padding; + subcontrol-position: right center; +} + +QDockWidget::close-button { + right: 4px; +} + +QDockWidget::float-button { + right: 22px; +} + +QDockWidget::close-button:hover, +QDockWidget::float-button:hover { + background-color: rgba(0,0,0,15); +} + +QDockWidget::close-button:pressed, +QDockWidget::float-button:pressed { + background-color: rgba(0,0,0,30); +} + +/* fix for Python Console (probably there is a smarter way to arrive to it) */ +QDockWidget > QFrame { + background-color: #f0f0f0; + border: 1px solid #c3c3c3; +} + + +/*================================================================================================== +Progress bar +==================================================================================================*/ +QProgressBar, +QProgressBar:horizontal { + color: white; + background-color: rgba(0,0,0,10); + text-align: center; + border: 1px solid rgba(0,0,0,80); + padding: 1px; + border-radius: 3px; +} +QProgressBar::chunk, +QProgressBar::chunk:horizontal { + background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 #daa116, stop:1 #d0970c); + border-radius: 3px; +} + + +/*================================================================================================== +Scroll +==================================================================================================*/ +QAbstractScrollArea { + border-radius: 2px; + background-color: transparent; +} + +QAbstractScrollArea::corner { + border: none; + background-color: transparent; +} + +QScrollBar:horizontal { + background-color: transparent; + height: 15px; + margin: 0px; +} + +QScrollBar::handle:vertical, +QScrollBar::handle:horizontal { + background-color: rgba(0,0,0,100); +} + +QScrollBar::handle:vertical:hover, +QScrollBar::handle:horizontal:hover { + background-color: #a2a2a0; +} + +QScrollBar::handle:horizontal { + min-width: 5px; + border-radius: 3px; + margin: 4px 15px; +} + +QScrollBar::sub-line:horizontal { + margin: 1px 3px 0px 3px; /* 1px to correctly fit the 10px width image */ + border-image: url(qss:images/left_arrow_dark.png); + width: 6px; + height: 10px; + subcontrol-position: left; + subcontrol-origin: margin; +} + +QScrollBar::add-line:horizontal { + margin: 1px 3px 0px 3px; /* 1px to correctly fit the 10px width image */ + border-image: url(qss:images/right_arrow_dark.png); + width: 6px; + height: 10px; + subcontrol-position: right; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:horizontal:hover, +QScrollBar::sub-line:horizontal:on { + border-image: url(qss:images/left_arrow_darker.png); +} + +QScrollBar::add-line:horizontal:hover, +QScrollBar::add-line:horizontal:on { + border-image: url(qss:images/right_arrow_darker.png); +} + +QScrollBar::up-arrow:horizontal, +QScrollBar::down-arrow:horizontal { + background-color: none; +} + +QScrollBar::add-page:horizontal, +QScrollBar::sub-page:horizontal { + background-color: transparent; +} + +QScrollBar:vertical { + background-color: transparent; + width: 15px; + margin: 0px; +} + +QScrollBar::handle:vertical { + min-height: 5px; + border-radius: 3px; + margin: 15px 4px; +} + +QScrollBar::sub-line:vertical { + margin: 3px 0px 3px 1px; /* 1px to correctly fit the 10px width image */ + border-image: url(qss:images/up_arrow_dark.png); + height: 6px; + width: 10px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::add-line:vertical { + margin: 3px 0px 3px 1px; /* 1px to correctly fit the 10px width image */ + border-image: url(qss:images/down_arrow_dark.png); + height: 6px; + width: 10px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:vertical:hover, +QScrollBar::sub-line:vertical:on { + border-image: url(qss:images/up_arrow_darker.png); +} + +QScrollBar::add-line:vertical:hover, +QScrollBar::add-line:vertical:on { + border-image: url(qss:images/down_arrow_darker.png); +} + +QScrollBar::up-arrow:vertical, +QScrollBar::down-arrow:vertical { + background-color: none; +} + +QScrollBar::add-page:vertical, +QScrollBar::sub-page:vertical { + background-color: transparent; +} + + +/*================================================================================================== +Tab bar +==================================================================================================*/ +QTabWidget::pane { + background-color: transparent; /* temporal (transparent background) */ /* tab content background color */ + position: absolute; +} + +QTabWidget::pane:top { + top: -1px; + border-top: 1px solid #d2d2d2; +} + +QTabWidget::pane:bottom { + bottom: -1px; + border-bottom: 1px solid #d2d2d2; +} + +QTabWidget::pane:left { + right: -1px; + border-right: 1px solid #d2d2d2; +} + +QTabWidget::pane:right { + left: -1px; + border-left: 1px solid #d2d2d2; +} + +QTabWidget::tab-bar:top, +QTabWidget::tab-bar:bottom { + left: 10px; +} + +QTabWidget::tab-bar:left, +QTabWidget::tab-bar:right { + top: 10px; +} + +QTabBar { + qproperty-drawBase: 0; /* important */ + background-color: transparent; +} + +/* Workaround for QTabBars created from docked QDockWidgets which don't draw the border if not set and reseted as follows: */ +QTabBar { + border-top: 1px solid #d2d2d2; /* set color for all QTabBars */ +} +QDockWidget QTabBar { + border-color: transparent; /* set color for all QTabBars but ones created from QDockWidget */ +} +QDialog QTabBar { + border-color: transparent; /* set color for QTabBars inside Preferences dialog */ +} +/* end fix */ + +QTabBar::tab { + background-color: transparent; + border: 1px solid transparent; + padding: 3px; +} + +QTabBar::tab:top, +QTabBar::tab:bottom { + border-top-width: 4px; /* same as selected tab colored border in order to center close-button */ + border-bottom-width: 4px; /* same as selected tab colored border in order to center close-button */ + min-width: 11ex; + margin-left: 2px; + margin-right: 2px; +} + +QTabBar::tab:left, +QTabBar::tab:right { + border-left-width: 4px; /* same as selected tab colored border in order to center close-button */ + border-right-width: 4px; /* same as selected tab colored border in order to center close-button */ + min-height: 14ex; + margin-top: 2px; + margin-bottom: 2px; +} + +QTabBar::tab:selected { + background-color: transparent; /* temporal (transparent background) */ + border-color: #d2d2d2; +} + +QTabBar::tab:top:selected { + border-top: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #daa116, stop:1 #d0970c); /* selection color */ + border-bottom-color: #f5f5f5; /* same as tab content background color */ +} + +QTabBar::tab:bottom:selected { + border-bottom: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #daa116, stop:1 #d0970c); /* selection color */ + border-top-color: #f5f5f5; /* same as tab content background color */ +} + +QTabBar::tab:right:selected { + border-left: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 #daa116, stop:1 #d0970c); /* selection color */ + border-right-color: #f5f5f5; /* same as tab content background color */ +} + +QTabBar::tab:left:selected { + border-right: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 #daa116, stop:1 #d0970c); /* selection color */ + border-left-color: #f5f5f5; /* same as tab content background color */ +} + +QTabBar::tab:!selected { + color: rgba(0,0,0,160); +} + +QTabBar::tab:!selected:hover { + color: rgba(0,0,0,220); + background-color: rgba(0,0,0,20); +} + +QTabBar::tab:first:selected { + margin-left: 0; /* the first selected tab has nothing to overlap with on the left */ +} + +QTabBar::tab:last:selected { + margin-right: 0; /* the last selected tab has nothing to overlap with on the right */ +} + +QTabBar::tab:only-one { + margin: 0; /* if there is only one tab, we don't want overlapping margins */ +} + +/* hack to access Preference TabBar background */ +QDialog#Gui__Dialog__DlgPreferences > QFrame QFrame { + background-color: transparent; /* main background color (in Windows is #f5f5f5) */ +} + +/* fix for previous hack that broke QTabWidget background on Windows */ +QDialog#Gui__Dialog__DlgPreferences QTabWidget::pane { + background-color: transparent; /* temporal (transparent background) */ +} + +/* hack to correctly align Preferences icon list on OSX */ +QDialog#Gui__Dialog__DlgPreferences > QListView { + min-width: 130px; +} + +/* unique styles for sections inside Preferences */ +QDialog#Gui__Dialog__DlgPreferences > QListView::item { + border-radius: 4px; +} + +QDialog#Gui__Dialog__DlgPreferences > QListView::item:hover { + background-color: #e3d8b9; +} + +QDialog#Gui__Dialog__DlgPreferences > QListView::item:selected { + color: #624b14; + background-color: #e3d8b9; + border: 1px solid #e3b64d; +} + + +/*================================================================================================== +Tab bar buttons +==================================================================================================*/ +/* Close button */ +QTabBar::close-button { + subcontrol-origin: margin; + subcontrol-position: center right; /* only works for QT 4.6 and newer */; + border-radius: 2px; + background-image: url(qss:images/close_dark.png); + background-position: center center; + background-repeat: none; +} + +QTabBar::close-button:hover { + background-color: rgba(0,0,0,20); +} + +QTabBar::close-button:pressed { + background-color: rgba(0,0,0,30); +} + +/* Fix for lists inside Model tab */ +QDockWidget QTreeView, +QDockWidget QListView, +QDockWidget QTableView { + margin: 6px; + border: 1px solid #c3c3c3; /* same as regular QTreeView, QListView and QTableView */ + min-height: 40px; /* neccesary in some areas of FreeCAD */ +} + +/* Buttons to scroll tabs if there is not space to show all of them: */ +QTabBar::scroller { + width: 20px; /* the width of the scroll buttons */ +} + +QTabBar QToolButton, +QTabBar QToolButton:hover { + background-color: #f5f5f5; /* same as main background color */ +} + +QTabBar QToolButton::right-arrow:enabled { + image: url(qss:images/right_arrow_dark.png); +} + +QTabBar QToolButton::right-arrow:disabled, +QTabBar QToolButton::right-arrow:off { + image: url(qss:images/right_arrow_disabled_dark.png); +} + +QTabBar QToolButton::right-arrow:hover { + image: url(qss:images/right_arrow_darker.png); +} + + QTabBar QToolButton::left-arrow:enabled { + image: url(qss:images/left_arrow_dark.png); +} + + QTabBar QToolButton::left-arrow:disabled, + QTabBar QToolButton::left-arrow:off { + image: url(qss:images/left_arrow_disabled_dark.png); +} + + QTabBar QToolButton::left-arrow:hover { + image: url(qss:images/left_arrow_darker.png); +} + + QTabBar QToolButton::up-arrow:enabled { + image: url(qss:images/up_arrow_dark.png); +} + + QTabBar QToolButton::up-arrow:disabled, + QTabBar QToolButton::up-arrow:off { + image: url(qss:images/up_arrow_disabled_dark.png); +} + + QTabBar QToolButton::up-arrow:hover { + image: url(qss:images/up_arrow_darker.png); +} + + QTabBar QToolButton::down-arrow:enabled { + image: url(qss:images/down_arrow_dark.png); +} + + QTabBar QToolButton::down-arrow:disabled, + QTabBar QToolButton::down-arrow:off { + image: url(qss:images/down_arrow_disabled_dark.png); +} + + QTabBar QToolButton::down-arrow:hover { + image: url(qss:images/down_arrow_darker.png); +} + +QTabBar::tear { + /* default OS tear better */ +} + + +/*================================================================================================== +Tree and list views +==================================================================================================*/ +QTreeView, +QListView, +QTableView { + background-color: #f0f0f0; + alternate-background-color: #e6e6e6; /* related with QListView background */ + border: 1px solid #c3c3c3; + selection-color: white; + selection-background-color: #daa116; /* should be similar to QListView::item selected background-color */ + show-decoration-selected: 1; /* make the selection span the entire width of the view */ + border-radius: 3px; +} + +QListView::item:selected, +QTreeView::item:selected { + color: white; /* should be similar to QListView selection-color */ + background-color: #daa116; /* should be similar to QListView selection-background-color */ + show-decoration-selected: 1; /* make the selection span the entire width of the view */ +} + +/* Property Editor QTreeView (FreeCAD custom widget) */ +Gui--PropertyEditor--PropertyEditor { + gridline-color: #d2d2d2; /* same as Group header background */ +} + +/* fix for column items background when a link is present */ +Gui--PropertyEditor--PropertyEditor > QWidget > QFrame:focus { + background-color: #e3d8b9; /* same as focused background color */ +} + +/* hack to hide weird redundant information inside the value of a Placement cell */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel, +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel:disabled { + color: transparent; + background-color: transparent; + border: none; + border-radius: 0px; + margin: 0px; + padding: 0px; +} + +/* hack to hide non editable cells inside Property values */ +Gui--PropertyEditor--PropertyEditor QLineEdit:read-only, +Gui--PropertyEditor--PropertyEditor QLineEdit:disabled, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:read-only, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:disabled { + color: transparent; + border-color: transparent; + background-color: transparent; + selection-color: transparent; + selection-background-color: transparent; +} + +/* hack to disable margin inside Property values to following elements */ +Gui--PropertyEditor--PropertyEditor QSpinBox, +Gui--PropertyEditor--PropertyEditor QDoubleSpinBox, +Gui--PropertyEditor--PropertyEditor QAbstractSpinBox, +Gui--PropertyEditor--PropertyEditor QLineEdit, +Gui--PropertyEditor--PropertyEditor QComboBox { + margin-left: 0px; + margin-right: 0px; + padding-top: 0px; + padding-bottom: 0px; +} + +/* set border-radius to 0px inside list views */ +QTreeView > QWidget > QComboBox, +QTreeView > QWidget > QAbstractSpinBox, +QTreeView > QWidget > QSpinBox, +QTreeView > QWidget > QDoubleSpinBox, +QTreeView > QWidget > QLineEdit, +QTreeView > QWidget > QTextEdit, +QTreeView > QWidget > QTimeEdit, +QTreeView > QWidget > QDateEdit, +QTreeView > QWidget > QDateTimeEdit, +QTreeView > QWidget > QComboBox:drop-down, +QTreeView > QWidget > QAbstractSpinBox:up-button, +QTreeView > QWidget > QSpinBox:up-button, +QTreeView > QWidget > QDoubleSpinBox:up-button, +QTreeView > QWidget > QTimeEdit:up-button, +QTreeView > QWidget > QDateEdit:up-button, +QTreeView > QWidget > QDateTimeEdit:up-button, +QTreeView > QWidget > QAbstractSpinBox:down-button, +QTreeView > QWidget > QSpinBox:down-button, +QTreeView > QWidget > QDoubleSpinBox:down-button, +QTreeView > QWidget > QTimeEdit:down-button, +QTreeView > QWidget > QDateEdit:down-button, +QTreeView > QWidget > QDateTimeEdit:down-button, +QTreeView > QWidget > Gui--ColorButton { + border-radius: 0px; +} + +/* set focus colors to best viewing the editable fields */ +QTreeView > QWidget > QComboBox:focus, +QTreeView > QWidget > QAbstractSpinBox:focus, +QTreeView > QWidget > QSpinBox:focus, +QTreeView > QWidget > QDoubleSpinBox:focus, +QTreeView > QWidget > QLineEdit:focus, +QTreeView > QWidget > QTextEdit:focus, +QTreeView > QWidget > QTimeEdit:focus, +QTreeView > QWidget > QDateEdit:focus, +QTreeView > QWidget > QDateTimeEdit:focus { + border-color: #e3d8b9; /* same as focused background color */ + border-bottom-color: #e3b64d; /* same as focused border color */ +} + +QTreeView > QWidget > QAbstractSpinBox:read-only, +QTreeView > QWidget > QSpinBox:read-only, +QTreeView > QWidget > QDoubleSpinBox:read-only, +QTreeView > QWidget > QLineEdit:read-only, +QTreeView > QWidget > QTextEdit:read-only, +QTreeView > QWidget > QTimeEdit:read-only, +QTreeView > QWidget > QDateEdit:read-only, +QTreeView > QWidget > QDateTimeEdit:read-only { + color: transparent; + background-color: transparent; + border-color: transparent; +} + +/* Fix to correctly (not totally) draw QTextEdit on OSX at Page properties: "Page result", "Template" and "Editable Texts" */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QWidget { + min-height: 14px; +} + + +/*================================================================================================== +Header of tree and list views +==================================================================================================*/ +QHeaderView { + background-color: #c3c3c3; + border-top-left-radius: 2px; /* 1px less than its container */ + border-top-right-radius: 2px; /* 1px less than its container */ + border-bottom-left-radius: 0px; + border-bottom-right-radius: 0px; +} + +QHeaderView::section { + border:none; + padding: 4px 6px; + background-color: #c3c3c3; +} + +QHeaderView::section:horizontal { + padding: 4px 6px; /* left and right value similar to QHeaderView::section */ + border-right: 1px solid rgba(0,0,0,30); +} + +QHeaderView::section:vertical { + border-bottom: 1px solid rgba(0,0,0,30); +} + +QTableCornerButton::section { + background-color: #c3c3c3; + border-top: none; + border-left: none; + border-right: 1px solid rgba(0,0,0,30); + border-bottom: 1px solid rgba(0,0,0,30); +} + +QHeaderView::section:last { + border-right: none; +} + +QHeaderView::up-arrow { + image: url(qss:images/up_arrow_dark.png); +} + +QHeaderView::up-arrow:hover { + image: url(qss:images/up_arrow_darker.png); +} + +QHeaderView::down-arrow { + image: url(qss:images/down_arrow_dark.png); +} + +QHeaderView::down-arrow:hover { + image: url(qss:images/down_arrow_darker.png); +} + +/* Group header inside Property Editor (FreeCAD custom widget) */ +Gui--PropertyEditor--PropertyEditor { + qproperty-groupTextColor: #828282; /* same as main background color */ + qproperty-groupBackground: #d2d2d2; /* same as item gridlines */ +} + + +/*================================================================================================== +Branch system for QTreeViews +==================================================================================================*/ +QTreeView::branch { + background: transparent; +} + +QTreeView::branch:has-siblings:!adjoins-item { + border-image: url(qss:images/branch_vline.png) 0; +} + +QTreeView::branch:has-siblings:adjoins-item { + border-image: url(qss:images/branch_more.png) 0; +} + +QTreeView::branch:!has-children:!has-siblings:adjoins-item { + border-image: url(qss:images/branch_end.png) 0; +} + +QTreeView::branch:closed:has-children:has-siblings { + image: url(qss:images/branch_closed_dark.png); +} + +QTreeView::branch:has-children:!has-siblings:closed { + image: url(qss:images/branch_closed_dark.png); + border-image: url(qss:images/branch_end.png) 0; +} + +QTreeView::branch:open:has-children:has-siblings { + image: url(qss:images/branch_open_dark.png); + border-image: url(qss:images/branch_more.png) 0; +} + +QTreeView::branch:open:has-children:!has-siblings { + image: url(qss:images/branch_open_dark.png); + border-image: url(qss:images/branch_end.png) 0; +} + + +/*================================================================================================== +Splitter and windows separator +==================================================================================================*/ +QSplitter::handle { + margin: 0px 11px; + padding: 0px; +} + +QSplitter::handle:vertical { + background-image: url(qss:images/splitter_horizontal_dark.png); + background-position: center center; + background-repeat: none; + margin: 2px 4px 2px 4px; + height: 2px; +} + +QSplitter::handle:horizontal { + background-image: url(qss:images/splitter_vertical_dark.png); + background-position: center center; + background-repeat: none; + margin: 4px 2px 4px 2px; + width: 2px; +} + +/* Similar to the splitter is the following window separator: */ +QMainWindow::separator { + background-position: center center; + background-repeat: none; +} + +QMainWindow::separator:horizontal { + height: 2px; + background-image: url(qss:images/splitter_horizontal_dark.png); + margin: 4px 2px 4px 2px; +} + +QMainWindow::separator:vertical { + width: 2px; + background-image: url(qss:images/splitter_vertical_dark.png); + margin: 2px 4px 2px 4px; +} + + +/*================================================================================================== +Tasks panel (custom FreeCAD class) +==================================================================================================*/ +/* Action group */ +QFrame[class="panel"] { + background-color: transparent; /* temporal (transparent background) */ +} + +/* Separator line */ +QSint--ActionGroup QFrame[height="1"], +QSint--ActionGroup QFrame[height="2"], +QSint--ActionGroup QFrame[height="3"], +QSint--ActionGroup QFrame[width="1"], +QSint--ActionGroup QFrame[width="2"], +QSint--ActionGroup QFrame[width="3"] { + border-color: rgba(0,0,0,60); +} + +/* Panel header */ +QSint--ActionGroup QFrame[class="header"] { + border: none; + background-color: #b6b6b6; /* Task Panel Header background color */ + border-top-left-radius: 3px; + border-top-right-radius: 3px; + border-bottom-left-radius: 0px; + border-bottom-right-radius: 0px; + margin: 0px; + padding: 0px; +} + +QSint--ActionGroup QFrame[class="header"]:hover { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #daa116, stop:1 #d0970c); +} + +QSint--ActionGroup QToolButton[class="header"] { + color: white; /* Task Panel Header text color */ + text-align: left; + font-weight: bold; + border: none; + margin: 0px; + padding: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel { + background-color: transparent; + background-image: url(qss:images/down_arrow_light.png); + background-repeat: none; + background-position: center center; + padding: 0px; + margin: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel:hover { + background-color: transparent; + background-image: url(qss:images/down_arrow_lighter.png); +} + +QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"] { + background-color: transparent; + background-image: url(qss:images/up_arrow_light.png); + background-repeat: none; + background-position: center center; + padding: 0px; + margin: 0px; +} + +QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"]:hover { + background-color: transparent; + background-image: url(qss:images/up_arrow_lighter.png); +} + +QSint--ActionGroup QFrame[class="content"] { + background-color: #e6e6e6; /* Task Panel background color */ + margin: 0px; + padding: 0px; + border: none; + border-top-left-radius: 0px; + border-top-right-radius: 0px; + border-bottom-left-radius: 3px; + border-bottom-right-radius: 3px; +} + +QSint--ActionGroup QFrame[class="content"] > QWidget { + background-color: #e6e6e6; /* Task Panel background color */ +} + +/* Fixs for tabs inside Task Panel */ +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:top:selected { + border-bottom-color: #e6e6e6; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:bottom:selected { + border-top-color: #e6e6e6; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:right:selected { + border-right-color: #e6e6e6; /* same as Task Panel background color */ +} + +QSint--ActionGroup QFrame[class="content"] QTabBar::tab:left:selected { + border-left-color: #e6e6e6; /* same as Task Panel background color */ +} + + +/*================================================================================================== +Buttons +==================================================================================================*/ +/* Common */ +QComboBox, +QAbstractSpinBox, +QSpinBox, +QDoubleSpinBox, +QLineEdit, +QTextEdit, +QTimeEdit, +QDateEdit, +QDateTimeEdit { + color: #6e6e6e; + background-color: #e0e0e0; + selection-color: white; + selection-background-color: #daa116; + border: 1px solid #e0e0e0; + border-radius: 3px; + min-width: 50px; /* it ensures the default value is correctly displayed */ + padding: 1px 2px; /* temporal: could don't be compatible with elements inside Tree/List view */ +} + +/* shifts text/number editable field to the left to make space for the up/down or drop-down buttons */ +QComboBox, +QAbstractSpinBox, +QSpinBox, +QDoubleSpinBox, +QTimeEdit, +QDateEdit, +QDateTimeEdit { + padding-right: 20px; +} + +/* when QTextEdit are no editable */ +QTextEdit:!editable { + background-color: #f0f0f0; + border: 1px solid #c3c3c3; +} + +QComboBox:focus, +QAbstractSpinBox:focus, +QSpinBox:focus, +QDoubleSpinBox:focus, +QLineEdit:focus, +QTextEdit:focus, +QTimeEdit:focus, +QDateEdit:focus, +QDateTimeEdit:focus { + color: black; + border-color: #e3b64d; + border-right-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #daa116, stop:1 #e3b64d); /* same as up/down or drop-down button color */ + background-color: #e3d8b9; +} + +QComboBox:disabled, +QAbstractSpinBox:disabled, +QSpinBox:disabled, +QDoubleSpinBox:disabled, +QLineEdit:disabled, +QTextEdit:disabled, +QTimeEdit:disabled, +QDateEdit:disabled, +QDateTimeEdit:disabled { + color: #c3c3c3; + background-color: #e0e0e0; /* same as enabled color */ + border-color: #e0e0e0; /* same as enabled color */ +} + +QAbstractSpinBox:up-button, +QSpinBox:up-button, +QDoubleSpinBox:up-button, +QTimeEdit:up-button, +QDateEdit:up-button, +QDateTimeEdit:up-button, +QAbstractSpinBox:down-button, +QSpinBox:down-button, +QDoubleSpinBox:down-button, +QTimeEdit:down-button, +QDateEdit:down-button, +QDateTimeEdit:down-button { + background-color: #d2d2d2; + subcontrol-origin: border; /* important */ + width: 20px; /* same as QComboBox ... QDateTimeEdit padding-right */ +} + +QAbstractSpinBox:up-button, +QSpinBox:up-button, +QDoubleSpinBox:up-button, +QTimeEdit:up-button, +QDateEdit:up-button, +QDateTimeEdit:up-button { + subcontrol-position: top right; + border-top-right-radius: 3px; + height: 12px; /* fix for Ubuntu that doesn't divide the up/down button into the exact middle */ +} + +QAbstractSpinBox:down-button, +QSpinBox:down-button, +QDoubleSpinBox:down-button, +QTimeEdit:down-button, +QDateEdit:down-button, +QDateTimeEdit:down-button { + subcontrol-position: bottom right; + border-bottom-right-radius: 3px; +} + +QAbstractSpinBox:up-button:focus, +QSpinBox:up-button:focus, +QDoubleSpinBox:up-button:focus, +QTimeEdit:up-button:focus, +QDateEdit:up-button:focus, +QDateTimeEdit:up-button:focus { + background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #e2ac2a, stop:1 #e3b64d); +} + +QAbstractSpinBox:down-button:focus, +QSpinBox:down-button:focus, +QDoubleSpinBox:down-button:focus, +QTimeEdit:down-button:focus, +QDateEdit:down-button:focus, +QDateTimeEdit:down-button:focus { + background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #daa116, stop:1 #e2ac2a); +} + +QAbstractSpinBox:up-button:disabled, +QSpinBox:up-button:disabled, +QDoubleSpinBox:up-button:disabled, +QTimeEdit:up-button:disabled, +QDateEdit:up-button:disabled, +QDateTimeEdit:up-button:disabled, +QAbstractSpinBox:down-button:disabled, +QSpinBox:down-button:disabled, +QDoubleSpinBox:down-button:disabled, +QTimeEdit:down-button:disabled, +QDateEdit:down-button:disabled, +QDateTimeEdit:down-button:disabled { + background-color: transparent; +} + +QAbstractSpinBox::up-arrow, +QSpinBox::up-arrow, +QDoubleSpinBox::up-arrow, +QTimeEdit::up-arrow, +QDateEdit::up-arrow, +QDateTimeEdit::up-arrow { + image: url(qss:images/up_arrow_dark.png); + top: 0px; /* fix simetry between up and down images */ +} + +QAbstractSpinBox::up-arrow:focus, +QSpinBox::up-arrow:focus, +QDoubleSpinBox::up-arrow:focus, +QTimeEdit::up-arrow:focus, +QDateEdit::up-arrow:focus, +QDateTimeEdit::up-arrow:focus { + image: url(qss:images/up_arrow_lighter.png); +} + +QAbstractSpinBox::up-arrow:off, +QSpinBox::up-arrow:off, +QDoubleSpinBox::up-arrow:off, +QTimeEdit::up-arrow:off, +QDateEdit::up-arrow:off, +QDateTimeEdit::up-arrow:off { + image: url(qss:images/up_arrow_disabled_dark.png); +} + +QAbstractSpinBox::up-arrow:disabled, +QSpinBox::up-arrow:disabled, +QDoubleSpinBox::up-arrow:disabled, +QTimeEdit::up-arrow:disabled, +QDateEdit::up-arrow:disabled, +QDateTimeEdit::up-arrow:disabled { + image: url(qss:images/up_arrow_disabled_dark.png); +} + +QAbstractSpinBox::down-arrow, +QSpinBox::down-arrow, +QDoubleSpinBox::down-arrow, +QTimeEdit::down-arrow, +QDateEdit::down-arrow, +QDateTimeEdit::down-arrow { + image: url(qss:images/down_arrow_dark.png); + bottom: 0px; /* fix simetry between up and down images */ +} + +QAbstractSpinBox::down-arrow:focus, +QSpinBox::down-arrow:focus, +QDoubleSpinBox::down-arrow:focus, +QTimeEdit::down-arrow:focus, +QDateEdit::down-arrow:focus, +QDateTimeEdit::down-arrow:focus { + image: url(qss:images/down_arrow_lighter.png); +} + +QAbstractSpinBox::down-arrow:off, +QSpinBox::down-arrow:off, +QDoubleSpinBox::down-arrow:off, +QTimeEdit::down-arrow:off, +QDateEdit::down-arrow:off, +QDateTimeEdit::down-arrow:off { + image: url(qss:images/down_arrow_disabled_dark.png); +} + +QAbstractSpinBox::down-arrow:disabled, +QSpinBox::down-arrow:disabled, +QDoubleSpinBox::down-arrow:disabled, +QTimeEdit::down-arrow:disabled, +QDateEdit::down-arrow:disabled, +QDateTimeEdit::down-arrow:disabled { + image: url(qss:images/down_arrow_disabled_dark.png); +} + +/* ComboBox */ +QComboBox::drop-down { + background-color: #d2d2d2; + subcontrol-origin: border; /* important */ + subcontrol-position: top right; + width: 20px; + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; +} + +QComboBox::drop-down:on, +QComboBox::drop-down:focus { + background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #daa116, stop:1 #e3b64d); +} + +QComboBox::down-arrow { + image: url(qss:images/down_arrow_dark.png); +} + +QComboBox::down-arrow:on, +QComboBox::down-arrow:focus { + image: url(qss:images/down_arrow_lighter.png); +} + +QComboBox::down-arrow:off, +QComboBox::down-arrow:disabled { + image: url(qss:images/down_arrow_disabled_dark.png); +} + +/* ComboBox menu */ +QComboBox { + selection-color: white; + selection-background-color: #daa116; +} + +QComboBox QAbstractItemView { + color: #6e6e6e; /* same as regular QComboBox color */ + background-color: transparent; + selection-color: white; + selection-background-color: #daa116; + border-width: 5px 0px 5px 0px; + border-style: solid; + border-color: transparent; + margin: 0px -1px 0px 0px; /* temporal: hack for Mac... try it on Windows and Linux */ +} + + +/*================================================================================================== +Push button +==================================================================================================*/ +QPushButton { + color: #6e6e6e; + text-align: center; + background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #f5f5f5, stop:1 #e6e6e6); + border: 1px solid #d2d2d2; + border-bottom-color: #c3c3c3; /* simulates shadow under the button */ + padding: 4px 22px; + margin: 4px 4px; + min-height: 16px; /* same as QTabBar QPushButton min-width */ + border-radius: 4px; +} + +QPushButton:hover, +QPushButton:focus { + color: white; + border-color: #d0970c; + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #daa116, stop:1 #d0970c); +} + +QPushButton:disabled, +QPushButton:disabled:checked { + color: #b6b6b6; + border-color: #e6e6e6; + background-color: #e6e6e6; +} + +QPushButton:pressed { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #d0970c, stop:1 #daa116); +} + +QPushButton:checked { + background-color: #daa116; + border-color: #d0970c; +} + +/* Color Buttons */ +Gui--ColorButton, +Gui--ColorButton:disabled { + padding: 0px; /* reset */ + margin: 0px; /* reset */ +} + +Gui--ColorButton { + background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #f5f5f5, stop:1 #e6e6e6); + border: 1px solid #d2d2d2; + border-bottom-color: #c3c3c3; /* simulates shadow under the button */ +} + +Gui--ColorButton:disabled { + border-color: transparent; + background-color: rgba(0,0,0,10); +} + +Gui--ColorButton:hover, +Gui--ColorButton:focus { + border-color: #d0970c; + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #daa116, stop:1 #d0970c); +} + +Gui--ColorButton:pressed { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #d0970c, stop:1 #daa116); +} + +/* Pushbutton style for "..." inside Placement cell which launches Placement tool */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QPushButton { + background-color: #b6b6b6; + border: 1px solid #828282; + min-width: 16px; /* reset it due to larger value on regular QPushButton, same or bigger value as regular QPushButton min-height */ + border-radius: 0px; + margin: 0px; /* reset */ + padding: 0px; /* reset */ +} + +/* Fix for Expressions description QFrame that is "broken" with initial reset */ +Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QWidget > QWidget > QFrame { + background-color: #f5f5f5; /* main background color */ + border: 1px solid #dcdcdc; + border-radius: 2px; + padding: 2px 6px; +} + + +/*================================================================================================== +Tool button inside QDialogs that works as QPushButtons +==================================================================================================*/ +/* found under Tools -> Customize -> Macros -> Pixmap "..." button */ +QDialog QToolButton { + color: #6e6e6e; + text-align: center; + background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #f5f5f5, stop:1 #e6e6e6); + border: 1px solid #d2d2d2; + border-bottom-color: #c3c3c3; /* simulates shadow under the button */ + padding: 0px; /* different than regular QPushButton */ + margin: 2px; /* different than regular QPushButton */ + min-height: 16px; /* same as QTabBar QPushButton min-width */ + border-radius: 4px; +} + +QDialog QToolButton:hover, +QDialog QToolButton:focus { + color: white; + border-color: #d0970c; + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #daa116, stop:1 #d0970c); +} + +QDialog QToolButton:disabled, +QDialog QToolButton:disabled:checked { + color: #b6b6b6; + border-color: #e6e6e6; + background-color: #e6e6e6; +} + +QDialog QToolButton:pressed { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #d0970c, stop:1 #daa116); +} + +QPushButton:checked { + background-color: #daa116; + border-color: #d0970c; +} + + +/*================================================================================================== +Radio button +==================================================================================================*/ +QRadioButton::indicator:unchecked{ + color: #505050; + background-color: rgba(0, 0, 0, 20); + border: 1px solid #505050; +} + +QRadioButton::indicator:checked { + background-color: #daa116; /* QCheckBox has the same color */ + border: 1px solid #d0970c; /* QCheckBox has the same color */ + image:url(qss:images/radiobutton_light.png); +} + +QRadioButton, +QRadioButton:disabled { + color: #505050; + padding: 3px; + outline: none; + background-color: transparent; +} + +QRadioButton::indicator { + width: 11px; + height: 11px; + border-radius: 6px; +} + +QRadioButton::indicator:pressed { + border-color: #e0c992; +} + +QRadioButton::indicator:disabled { + border: 1px solid #6e6e6e; +} + +QRadioButton::indicator:disabled { + color: #6e6e6e; + background-color: transparent; +} + +QRadioButton:focus { + border: none; +} + + +/*================================================================================================== +Checkbox +==================================================================================================*/ +QCheckBox, +QCheckBox:disabled { + color: #505050; + padding: 3px; + outline: none; + background-color: transparent; +} + +QCheckBox::indicator { + color: #c8c8c8; + background-color: rgba(0,0,0,20); + border: 1px solid #505050; +} + +QCheckBox::indicator { + width: 11px; + height: 11px; + border-radius:2px; +} + +QCheckBox::indicator:pressed, +QCheckBox::indicator:non-exclusive:checked:pressed, +QCheckBox::indicator:indeterminate:pressed, +QCheckBox::indicator:checked:pressed { + border-color: #e0c992; +} + +QCheckBox::indicator:checked { + background-color: #daa116; /* QRadioButton has the same color */ + border: 1px solid #d0970c; /* QRadioButton has the same color */ + image:url(qss:images/checkbox_light.png); +} + +QCheckBox:disabled { + color: rgba(0,0,0,40); + background-color: transparent; +} + +QCheckBox::indicator:disabled { + background-color: rgba(0,0,0,20); + border: 1px solid rgba(0,0,0,20); +} + +QCheckBox::indicator:indeterminate { + background-color: #daa116; + border: 1px solid #d0970c; + image: url(qss:images/checkbox_indeterminate_light.png); +} + +QCheckBox:focus { + border: none; +} + + +/*================================================================================================== +Slider +==================================================================================================*/ +QSlider, +QSlider:active, +QSlider:!active { + border: none; + background-color: transparent; +} + +QSlider:horizontal { + padding: 0px 10px; +} + +QSlider:vertical { + padding: 10px 0px; +} + +QSlider::groove { + background-color: rgba(0,0,0,30); + border: 1px solid rgba(0,0,0,40); + border-radius: 5px; + margin: 4px 0px; +} + +QSlider::groove:horizontal { + height: 8px; +} + +QSlider::groove:vertical { + width: 8px; +} + +QSlider::groove:horizontal:disabled, +QSlider::groove:vertical:disabled { + border-color: #dcdcdc; + background-color: #dcdcdc; +} + +QSlider::handle:horizontal, +QSlider::handle:vertical { + background-color: #b6b6b6; + border: 1px solid #b6b6b6; + width: 14px; + height: 14px; + border-radius: 8px; +} + +QSlider::handle:horizontal { + margin: -4px 0; +} + +QSlider::handle:vertical { + margin: 0 -4px; +} + +QSlider::handle:horizontal:hover, +QSlider::handle:vertical:hover, +QSlider::handle:horizontal:pressed, +QSlider::handle:vertical:pressed { + border-color: #daa116; + background-color: #daa116; +} + +QSlider::handle:horizontal:disabled, +QSlider::handle:vertical:disabled { + border-color: #dcdcdc; + background-color: #dcdcdc; +} + + +/*================================================================================================== +Toolbar buttons +==================================================================================================*/ +QToolBar > QToolButton { + margin: 2px; + padding: 2px; +} + +QToolBar > QPushButton, +/*QToolBar > QComboBox, disabled because creates different margins for body and drop-down button */ +QToolBar > QAbstractSpinBox, +QToolBar > QSpinBox, +QToolBar > QDoubleSpinBox, +QToolBar > QLineEdit, +QToolBar > QTextEdit, +QToolBar > QTimeEdit, +QToolBar > QDateEdit, +QToolBar > QDateTimeEdit { + margin: 2px; + padding: 2px; +} + +QToolBar > QPushButton { + border-radius: 4px; /* same as regular QPushButton */ + min-width: 20px; /* reset it due to larger value on regular QPushButton, same or bigger value as regular QPushButton min-height */ +} + +QToolBar > QPushButton:checked { + border: 1px solid #d0970c; + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #daa116, stop:1 #d0970c); +} + +QToolBar > QPushButton:!checked { + background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #f5f5f5, stop:1 #e6e6e6); + border: 1px solid #d2d2d2; + border-bottom-color: #c3c3c3; /* simulates shadow under the button */ +} + +QToolBar > QPushButton:checked:hover { + border-color: #b28416; +} + +QToolBar > QPushButton:!checked:hover { + color: black; + border-color: #b6b6b6; +} + +QToolBar > QPushButton:checked:pressed { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #d0970c, stop:1 #daa116); +} + +QToolBar > QPushButton:!checked:pressed { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #b6b6b6, stop:1 #e6e6e6); +} + +QToolBar > QPushButton:checked:disabled, +QToolBar > QPushButton:!checked:disabled { + border: none; + background-color: transparent; +} + +/* ToolBar menu buttons (buttons with drop-down menu) */ +QToolBar > QToolButton#qt_toolbutton_menubutton { + padding-right: 20px; /* Hack to add more width to buttons with menu */ + border: 1px solid transparent; + border-radius: 3px; +} + +QToolBar > QToolButton#qt_toolbutton_menubutton:hover, +QToolBar > QToolButton#qt_toolbutton_menubutton:pressed, +QToolBar > QToolButton#qt_toolbutton_menubutton:open { + border: 1px solid #e3b64d; +} + +QToolBar QToolButton::menu-button, +QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button { + border: none; + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; + width: 16px; /* 16px width + 4px for border = 20px allocated above */ + outline: none; + background-color: transparent; +} + +QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:hover, +QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:pressed, +QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:open { + background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 #daa116, stop:1 #e3b64d); +} + +QToolBar > QToolButton::menu-arrow { + background-image: url(qss:images/down_arrow_dark.png); + background-position: center center; + background-repeat: none; + subcontrol-origin: padding; + subcontrol-position: bottom right; + height: 10px; /* same as arrow image */ +} + +QToolBar > QToolButton::menu-arrow:hover { + background-image: url(qss:images/down_arrow_lighter.png); +} + +QToolBar > QToolButton::menu-arrow:open { + background-image: url(qss:images/down_arrow_lighter.png); +} + +/*The "show more" button (it can also be stylable with "QToolBarExtension" */ +QToolBar QToolButton#qt_toolbar_ext_button { + margin: 0px; + padding: 0px; + /*background-image: url(qss:images/more_dark.png);*/ + image: transparent; + background-repeat: none; + background-position: center left; +} + +QToolBar QToolButton#qt_toolbar_ext_button:hover { + /*background-image: url(qss:images/more_light.png);*/ + border-color: #e0e0e0; + background-color: #e0e0e0; +} + +QToolBar QToolButton#qt_toolbar_ext_button:on { + /*background-image: url(qss:images/more_light.png);*/ + border-color: #e0e0e0; + background-color: #e0e0e0; +} + + +/*================================================================================================== +Tables (spreadsheets) +==================================================================================================*/ +QTableView { + gridline-color: #d2d2d2; + selection-color: #624b14; + selection-background-color: #e3d8b9; +} + +QTableView::item:hover { + background-color: rgba(0,0,0,10); /* temporal: is it displayed in Linux or Windows? on OSX it isn't */ +} + +QTableView::item:disabled { + color: #e6e6e6; +} + +QTableView::item:selected { + color: #624b14; + border-color: #e3d8b9; /* same as focused background color */ + border-bottom-color: #e3b64d; /* same as focused border color */ +} + +/* fix for elements inside the cells */ +QTableView QComboBox, +QTableView QAbstractSpinBox, +QTableView QSpinBox, +QTableView QDoubleSpinBox, +QTableView QLineEdit, +QTableView QTextEdit, +QTableView QTimeEdit, +QTableView QDateEdit, +QTableView QDateTimeEdit, +QTableView QComboBox:drop-down, +QTableView QAbstractSpinBox:up-button, +QTableView QSpinBox:up-button, +QTableView QDoubleSpinBox:up-button, +QTableView QTimeEdit:up-button, +QTableView QDateEdit:up-button, +QTableView QDateTimeEdit:up-button, +QTableView QAbstractSpinBox:down-button, +QTableView QSpinBox:down-button, +QTableView QDoubleSpinBox:down-button, +QTableView QTimeEdit:down-button, +QTableView QDateEdit:down-button, +QTableView QDateTimeEdit:down-button, +QTableView Gui--ColorButton { + border-radius: 0px; +} + +QTableView QComboBox, +QTableView QAbstractSpinBox, +QTableView QSpinBox, +QTableView QDoubleSpinBox, +QTableView QLineEdit, +QTableView QTextEdit, +QTableView QTimeEdit, +QTableView QDateEdit, +QTableView QDateTimeEdit { + color: black; + background-color: transparent; + border-color: transparent; +} + +QTableView QComboBox:drop-down, +QTableView QAbstractSpinBox:up-button, +QTableView QSpinBox:up-button, +QTableView QDoubleSpinBox:up-button, +QTableView QTimeEdit:up-button, +QTableView QDateEdit:up-button, +QTableView QDateTimeEdit:up-button, +QTableView QAbstractSpinBox:down-button, +QTableView QSpinBox:down-button, +QTableView QDoubleSpinBox:down-button, +QTableView QTimeEdit:down-button, +QTableView QDateEdit:down-button, +QTableView QDateTimeEdit:down-button, +QTableView Gui--ColorButton { + background-color: rgba(0,0,0,30); +} + +QTableView QComboBox:focus, +QTableView QAbstractSpinBox:focus, +QTableView QSpinBox:focus, +QTableView QDoubleSpinBox:focus, +QTableView QLineEdit:focus, +QTableView QTextEdit:focus, +QTableView QTimeEdit:focus, +QTableView QDateEdit:focus, +QTableView QDateTimeEdit:focus { + color: #624b14; + selection-color: white; + selection-background-color: #daa116; + border-color: #e3d8b9; + background-color: #e3d8b9; +} + +QTableView QComboBox:disabled, +QTableView QAbstractSpinBox:disabled, +QTableView QSpinBox:disabled, +QTableView QDoubleSpinBox:disabled, +QTableView QLineEdit:disabled, +QTableView QTextEdit:disabled, +QTableView QTimeEdit:disabled, +QTableView QDateEdit:disabled, +QTableView QDateTimeEdit:disabled { + color: rgba(0,0,0,120); + background-color: transparent; + border-color: transparent; +} + +QTableView QComboBox:read-only, +QTableView QAbstractSpinBox:read-only, +QTableView QSpinBox:read-only, +QTableView QDoubleSpinBox:read-only, +QTableView QLineEdit:read-only, +QTableView QTextEdit:read-only, +QTableView QTimeEdit:read-only, +QTableView QDateEdit:read-only, +QTableView QDateTimeEdit:read-only { + color: black; + background-color: transparent; + border-color: transparent; +} + + +/*================================================================================================== +EXPERIMENTAL +==================================================================================================*/ + +/* Fix for preventing elements in different rows to accidentaly overlap */ +QDialog QGroupBox QFrame { + margin: 2px 0px; +} + +*[mandatoryField="true"] { background-color: cyan } \ No newline at end of file