diff --git a/Plugins/org.blueberry.ui.qt/resources/darkStyle2017-activetab.qss b/Plugins/org.blueberry.ui.qt/resources/darkStyle2017-activetab.qss index e9a1cb4d38..21b9a60661 100644 --- a/Plugins/org.blueberry.ui.qt/resources/darkStyle2017-activetab.qss +++ b/Plugins/org.blueberry.ui.qt/resources/darkStyle2017-activetab.qss @@ -1,25 +1,25 @@ berry--QCTabBar::tab:selected { background: #3daee9; } berry--QCTabBar QToolButton#TabCloseButton { - image: url(D:/qdarkstyle/rc/close.png); + image: url(:/org.blueberry.ui.qt/dark/close.png); border: none; background: red; } berry--QCTabBar QToolButton#TabCloseButton:hover { - image: url(D:/qdarkstyle/rc/close-hover.png); + image: url(:/org.blueberry.ui.qt/dark/close-hover.png); background: blue; } berry--QCTabBar QToolButton#TabCloseButton:pressed { - image: url(D:/qdarkstyle/rc/close-pressed.png); + image: url(:/org.blueberry.ui.qt/dark/close-pressed.png); background: black; } QFrame#ViewFormContentFrame { border: 2px solid #3daee9 -} \ No newline at end of file +} diff --git a/Plugins/org.blueberry.ui.qt/resources/darkStyle2017-tab.qss b/Plugins/org.blueberry.ui.qt/resources/darkStyle2017-tab.qss index e9c1b3b57c..8a2df3fcff 100644 --- a/Plugins/org.blueberry.ui.qt/resources/darkStyle2017-tab.qss +++ b/Plugins/org.blueberry.ui.qt/resources/darkStyle2017-tab.qss @@ -1,26 +1,26 @@ berry--QCTabBar::tab:selected { background: #76797C; } berry--QCTabBar::tab:selected:hover { background-color: #3daee9; } berry--QCTabBar QToolButton#TabCloseButton { - background-image: url(D:/qdarkstyle/rc/close.png); + background-image: url(:/org.blueberry.ui.qt/dark/close.png); border: none; background: green; } berry--QCTabBar QToolButton { border: 1px solid green; max-height: 22px; background: white; } QFrame#ViewFormContentFrame { border: 2px solid #76797C -} \ No newline at end of file +} diff --git a/Plugins/org.blueberry.ui.qt/resources/darkStyle2017.qss b/Plugins/org.blueberry.ui.qt/resources/darkStyle2017.qss index b1d85e8637..d94bd68d77 100644 --- a/Plugins/org.blueberry.ui.qt/resources/darkStyle2017.qss +++ b/Plugins/org.blueberry.ui.qt/resources/darkStyle2017.qss @@ -1,1257 +1,1257 @@ /* * The MIT License (MIT) * * Copyright (c) <2013-2014> * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ QToolTip { border: 1px solid #76797C; background-color: rgb(90, 102, 117);; color: white; padding: 5px; opacity: 200; } QWidget { color: #eff0f1; background-color: #31363b; selection-background-color:#3daee9; selection-color: #eff0f1; background-clip: border; border-image: none; border: 0px transparent black; outline: 0; } QWidget:item:hover { background-color: #3daee9; color: #eff0f1; } QWidget:item:selected { background-color: #3daee9; } QCheckBox { spacing: 5px; outline: none; color: #eff0f1; margin-bottom: 2px; } QCheckBox:disabled { color: #76797C; } QCheckBox::indicator, QGroupBox::indicator { width: 18px; height: 30px; } QGroupBox::indicator { margin-left: 0px; } QCheckBox::indicator:unchecked { - image: url(D:/qdarkstyle/rc/checkbox_unchecked.png); + image: url(:/org.blueberry.ui.qt/dark/checkbox_unchecked.png); } QCheckBox::indicator:unchecked:hover, QCheckBox::indicator:unchecked:focus, QCheckBox::indicator:unchecked:pressed, QGroupBox::indicator:unchecked:hover, QGroupBox::indicator:unchecked:focus, QGroupBox::indicator:unchecked:pressed { border: none; - image: url(D:/qdarkstyle/rc/checkbox_unchecked_focus.png); + image: url(:/org.blueberry.ui.qt/dark/checkbox_unchecked_focus.png); } QCheckBox::indicator:checked { - image: url(D:/qdarkstyle/rc/checkbox_checked.png); + image: url(:/org.blueberry.ui.qt/dark/checkbox_checked.png); } QCheckBox::indicator:checked:hover, QCheckBox::indicator:checked:focus, QCheckBox::indicator:checked:pressed, QGroupBox::indicator:checked:hover, QGroupBox::indicator:checked:focus, QGroupBox::indicator:checked:pressed { border: none; - image: url(D:/qdarkstyle/rc/checkbox_checked_focus.png); + image: url(:/org.blueberry.ui.qt/dark/checkbox_checked_focus.png); } QCheckBox::indicator:indeterminate { - image: url(D:/qdarkstyle/rc/checkbox_indeterminate.png); + image: url(:/org.blueberry.ui.qt/dark/checkbox_indeterminate.png); } QCheckBox::indicator:indeterminate:focus, QCheckBox::indicator:indeterminate:hover, QCheckBox::indicator:indeterminate:pressed { - image: url(D:/qdarkstyle/rc/checkbox_indeterminate_focus.png); + image: url(:/org.blueberry.ui.qt/dark/checkbox_indeterminate_focus.png); } QCheckBox::indicator:checked:disabled, QGroupBox::indicator:checked:disabled { - image: url(D:/qdarkstyle/rc/checkbox_checked_disabled.png); + image: url(:/org.blueberry.ui.qt/dark/checkbox_checked_disabled.png); } QCheckBox::indicator:unchecked:disabled, QGroupBox::indicator:unchecked:disabled { - image: url(D:/qdarkstyle/rc/checkbox_unchecked_disabled.png); + image: url(:/org.blueberry.ui.qt/dark/checkbox_unchecked_disabled.png); } QRadioButton { spacing: 5px; outline: none; color: #eff0f1; margin-bottom: 2px; } QRadioButton:disabled { color: #76797C; } QRadioButton::indicator { width: 21px; height: 21px; } QRadioButton::indicator:unchecked { - image: url(D:/qdarkstyle/rc/radio_unchecked.png); + image: url(:/org.blueberry.ui.qt/dark/radio_unchecked.png); } QRadioButton::indicator:unchecked:hover, QRadioButton::indicator:unchecked:focus, QRadioButton::indicator:unchecked:pressed { border: none; outline: none; - image: url(D:/qdarkstyle/rc/radio_unchecked_focus.png); + image: url(:/org.blueberry.ui.qt/dark/radio_unchecked_focus.png); } QRadioButton::indicator:checked { border: none; outline: none; - image: url(D:/qdarkstyle/rc/radio_checked.png); + image: url(:/org.blueberry.ui.qt/dark/radio_checked.png); } QRadioButton::indicator:checked:hover, QRadioButton::indicator:checked:focus, QRadioButton::indicator:checked:pressed { border: none; outline: none; - image: url(D:/qdarkstyle/rc/radio_checked_focus.png); + image: url(:/org.blueberry.ui.qt/dark/radio_checked_focus.png); } QRadioButton::indicator:checked:disabled { outline: none; - image: url(D:/qdarkstyle/rc/radio_checked_disabled.png); + image: url(:/org.blueberry.ui.qt/dark/radio_checked_disabled.png); } QRadioButton::indicator:unchecked:disabled { - image: url(D:/qdarkstyle/rc/radio_unchecked_disabled.png); + image: url(:/org.blueberry.ui.qt/dark/radio_unchecked_disabled.png); } QMenuBar { background-color: #31363b; color: #eff0f1; } QMenuBar::item { background: transparent; } QMenuBar::item:selected { background: transparent; border: 1px solid #76797C; } QMenuBar::item:pressed { border: 1px solid #76797C; background-color: #3daee9; color: #eff0f1; margin-bottom:-1px; padding-bottom:1px; } QMenu { border: 1px solid #76797C; color: #eff0f1; margin: 2px; } QMenu::icon { margin: 5px; } QMenu::item { padding: 5px 30px 5px 30px; margin-left: 5px; border: 1px solid transparent; /* reserve space for selection border */ } QMenu::item:selected { color: #eff0f1; } QMenu::separator { height: 2px; background: lightblue; margin-left: 10px; margin-right: 5px; } QMenu::indicator { width: 18px; height: 18px; } /* non-exclusive indicator = check box style indicator (see QActionGroup::setExclusive) */ QMenu::indicator:non-exclusive:unchecked { - image: url(D:/qdarkstyle/rc/checkbox_unchecked.png); + image: url(:/org.blueberry.ui.qt/dark/checkbox_unchecked.png); } QMenu::indicator:non-exclusive:unchecked:selected { - image: url(D:/qdarkstyle/rc/checkbox_unchecked_disabled.png); + image: url(:/org.blueberry.ui.qt/dark/checkbox_unchecked_disabled.png); } QMenu::indicator:non-exclusive:checked { - image: url(D:/qdarkstyle/rc/checkbox_checked.png); + image: url(:/org.blueberry.ui.qt/dark/checkbox_checked.png); } QMenu::indicator:non-exclusive:checked:selected { - image: url(D:/qdarkstyle/rc/checkbox_checked_disabled.png); + image: url(:/org.blueberry.ui.qt/dark/checkbox_checked_disabled.png); } /* exclusive indicator = radio button style indicator (see QActionGroup::setExclusive) */ QMenu::indicator:exclusive:unchecked { - image: url(D:/qdarkstyle/rc/radio_unchecked.png); + image: url(:/org.blueberry.ui.qt/dark/radio_unchecked.png); } QMenu::indicator:exclusive:unchecked:selected { - image: url(D:/qdarkstyle/rc/radio_unchecked_disabled.png); + image: url(:/org.blueberry.ui.qt/dark/radio_unchecked_disabled.png); } QMenu::indicator:exclusive:checked { - image: url(D:/qdarkstyle/rc/radio_checked.png); + image: url(:/org.blueberry.ui.qt/dark/radio_checked.png); } QMenu::indicator:exclusive:checked:selected { - image: url(D:/qdarkstyle/rc/radio_checked_disabled.png); + image: url(:/org.blueberry.ui.qt/dark/radio_checked_disabled.png); } QMenu::right-arrow { margin: 5px; - image: url(D:/qdarkstyle/rc/right_arrow.png) + image: url(:/org.blueberry.ui.qt/dark/right_arrow.png) } QWidget:disabled { color: #454545; background-color: #31363b; } QAbstractItemView { alternate-background-color: #31363b; color: #eff0f1; border: 1px solid 3A3939; border-radius: 0px; } QWidget:focus, QMenuBar:focus { border: 1px solid #3daee9; } QTabWidget:focus, QCheckBox:focus, QRadioButton:focus, QSlider:focus { border: none; } QLineEdit { background-color: #232629; padding: 5px; border-style: solid; border: 1px solid #76797C; border-radius: 0px; color: #eff0f1; } QGroupBox { border:1px solid #76797C; border-radius: 0px; margin-top: 6px; margin-left: 0px; } QGroupBox::title { subcontrol-origin: margin; margin-left: 0px; margin-top: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; padding-bottom: 0px; } QAbstractScrollArea { border-radius: 0px; border: 1px solid #76797C; background-color: transparent; } QScrollBar:horizontal { height: 15px; margin: 3px 15px 3px 15px; border: 1px transparent #2A2929; border-radius: 0px; background-color: #2A2929; } QScrollBar::handle:horizontal { background-color: #605F5F; min-width: 5px; border-radius: 0px; } QScrollBar::add-line:horizontal { margin: 0px 3px 0px 3px; - border-image: url(D:/qdarkstyle/rc/right_arrow_disabled.png); + border-image: url(:/org.blueberry.ui.qt/dark/right_arrow_disabled.png); width: 10px; height: 10px; subcontrol-position: right; subcontrol-origin: margin; } QScrollBar::sub-line:horizontal { margin: 0px 3px 0px 3px; - border-image: url(D:/qdarkstyle/rc/left_arrow_disabled.png); + border-image: url(:/org.blueberry.ui.qt/dark/left_arrow_disabled.png); height: 10px; width: 10px; subcontrol-position: left; subcontrol-origin: margin; } QScrollBar::add-line:horizontal:hover,QScrollBar::add-line:horizontal:on { - border-image: url(D:/qdarkstyle/rc/right_arrow.png); + border-image: url(:/org.blueberry.ui.qt/dark/right_arrow.png); height: 10px; width: 10px; subcontrol-position: right; subcontrol-origin: margin; } QScrollBar::sub-line:horizontal:hover, QScrollBar::sub-line:horizontal:on { - border-image: url(D:/qdarkstyle/rc/left_arrow.png); + border-image: url(:/org.blueberry.ui.qt/dark/left_arrow.png); height: 10px; width: 10px; subcontrol-position: left; subcontrol-origin: margin; } QScrollBar::up-arrow:horizontal, QScrollBar::down-arrow:horizontal { background: none; } QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal { background: none; } QScrollBar:vertical { background-color: #2A2929; width: 15px; margin: 15px 3px 15px 3px; border: 1px transparent #2A2929; border-radius: 0px; } QScrollBar::handle:vertical { background-color: #605F5F; min-height: 5px; border-radius: 0px; } QScrollBar::sub-line:vertical { margin: 3px 0px 3px 0px; - border-image: url(D:/qdarkstyle/rc/up_arrow_disabled.png); + border-image: url(:/org.blueberry.ui.qt/dark/up_arrow_disabled.png); height: 10px; width: 10px; subcontrol-position: top; subcontrol-origin: margin; } QScrollBar::add-line:vertical { margin: 3px 0px 3px 0px; - border-image: url(D:/qdarkstyle/rc/down_arrow_disabled.png); + border-image: url(:/org.blueberry.ui.qt/dark/down_arrow_disabled.png); height: 10px; width: 10px; subcontrol-position: bottom; subcontrol-origin: margin; } QScrollBar::sub-line:vertical:hover,QScrollBar::sub-line:vertical:on { - border-image: url(D:/qdarkstyle/rc/up_arrow.png); + border-image: url(:/org.blueberry.ui.qt/dark/up_arrow.png); height: 10px; width: 10px; subcontrol-position: top; subcontrol-origin: margin; } QScrollBar::add-line:vertical:hover, QScrollBar::add-line:vertical:on { - border-image: url(D:/qdarkstyle/rc/down_arrow.png); + border-image: url(:/org.blueberry.ui.qt/dark/down_arrow.png); height: 10px; width: 10px; subcontrol-position: bottom; subcontrol-origin: margin; } QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical { background: none; } QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { background: none; } QTextEdit { background-color: #232629; color: #eff0f1; border: 1px solid #76797C; } QPlainTextEdit { background-color: #232629;; color: #eff0f1; border-radius: 0px; border: 1px solid #76797C; } QHeaderView::section { background-color: #76797C; color: #eff0f1; padding: 5px; border: 1px solid #76797C; } QSizeGrip { - image: url(D:/qdarkstyle/rc/sizegrip.png); + image: url(:/org.blueberry.ui.qt/dark/sizegrip.png); width: 12px; height: 12px; } QMainWindow::separator { background-color: #31363b; color: white; padding-left: 4px; spacing: 2px; border: 1px dashed #76797C; } QMainWindow::separator:hover { background-color: #787876; color: white; padding-left: 4px; border: 1px solid #76797C; spacing: 2px; } QMenu::separator { height: 1px; background-color: #76797C; color: white; padding-left: 4px; margin-left: 10px; margin-right: 5px; } QFrame { border-radius: 0px; border: 1px solid #76797C; } QFrame[frameShape="0"] { border-radius: 0px; border: 1px transparent #76797C; } QStackedWidget { border: 1px transparent black; } QToolBar { border: 1px transparent #393838; background: 1px solid #31363b; font-weight: bold; } QToolBar::handle:horizontal { - image: url(D:/qdarkstyle/rc/Hmovetoolbar.png); + image: url(:/org.blueberry.ui.qt/dark/Hmovetoolbar.png); } QToolBar::handle:vertical { - image: url(D:/qdarkstyle/rc/Vmovetoolbar.png); + image: url(:/org.blueberry.ui.qt/dark/Vmovetoolbar.png); } QToolBar::separator:horizontal { - image: url(D:/qdarkstyle/rc/Hsepartoolbar.png); + image: url(:/org.blueberry.ui.qt/dark/Hsepartoolbar.png); } QToolBar::separator:vertical { - image: url(D:/qdarkstyle/rc/Vsepartoolbar.png); + image: url(:/org.blueberry.ui.qt/dark/Vsepartoolbar.png); } QToolButton#qt_toolbar_ext_button { background: #58595a } QPushButton { color: #eff0f1; background-color: #31363b; min-width: 68px; border-width: 1px; border-color: #76797C; border-style: solid; padding: 3px; border-radius: 0px; outline: none; } QPushButton:disabled { border-width: 1px; border-color: #454545; color: #454545; } QPushButton:focus { background-color: #3daee9; color: white; } QPushButton:pressed { background-color: #3daee9; padding-top: -15px; padding-bottom: -17px; } QComboBox { selection-background-color: #3daee9; border-style: solid; border: 1px solid #76797C; border-radius: 0px; padding: 5px; min-width: 75px; } QPushButton:checked{ background-color: #76797C; border-color: #6A6969; } QComboBox:hover,QPushButton:hover,QAbstractSpinBox:hover,QLineEdit:hover,QTextEdit:hover,QPlainTextEdit:hover,QAbstractView:hover,QTreeView:hover { border: 1px solid #3daee9; color: #eff0f1; } QComboBox:on { padding-top: 3px; padding-left: 4px; selection-background-color: #4a4a4a; } QComboBox QAbstractItemView { background-color: #232629; border-radius: 0px; border: 1px solid #76797C; selection-background-color: #3daee9; } QComboBox::drop-down { subcontrol-origin: padding; subcontrol-position: top right; width: 15px; border-left-width: 0px; border-left-color: darkgray; border-left-style: solid; border-top-right-radius: 0px; border-bottom-right-radius: 0px; } QComboBox::down-arrow { - image: url(D:/qdarkstyle/rc/down_arrow_disabled.png); + image: url(:/org.blueberry.ui.qt/dark/down_arrow_disabled.png); } QComboBox::down-arrow:on, QComboBox::down-arrow:hover, QComboBox::down-arrow:focus { - image: url(D:/qdarkstyle/rc/down_arrow.png); + image: url(:/org.blueberry.ui.qt/dark/down_arrow.png); } QAbstractSpinBox { border: 1px solid #76797C; background-color: #232629; color: #eff0f1; border-radius: 0px; min-width: 50px; } QAbstractSpinBox:up-button { background-color: transparent; subcontrol-origin: border; subcontrol-position: top right; } QAbstractSpinBox:down-button { background-color: transparent; subcontrol-origin: border; subcontrol-position: bottom right; } QAbstractSpinBox::up-arrow,QAbstractSpinBox::up-arrow:disabled,QAbstractSpinBox::up-arrow:off { - image: url(D:/qdarkstyle/rc/up_arrow_disabled.png); + image: url(:/org.blueberry.ui.qt/dark/up_arrow_disabled.png); width: 10px; height: 10px; } QAbstractSpinBox::up-arrow:hover { - image: url(D:/qdarkstyle/rc/up_arrow.png); + image: url(:/org.blueberry.ui.qt/dark/up_arrow.png); } QAbstractSpinBox::down-arrow,QAbstractSpinBox::down-arrow:disabled,QAbstractSpinBox::down-arrow:off { - image: url(D:/qdarkstyle/rc/down_arrow_disabled.png); + image: url(:/org.blueberry.ui.qt/dark/down_arrow_disabled.png); width: 10px; height: 10px; } QAbstractSpinBox::down-arrow:hover { - image: url(D:/qdarkstyle/rc/down_arrow.png); + image: url(:/org.blueberry.ui.qt/dark/down_arrow.png); } QLabel { border: 0px solid black; } QTabWidget{ border: 1px transparent black; } QTabWidget::pane { border: 1px solid #76797C; padding: 2px; margin: 0px; } QTabBar { qproperty-drawBase: 0; left: 0px; /* move to the right by 5px */ border-radius: 0px; border: 1px trasparent black; } QTabBar:focus { border: 1px solid #76797C; } QTabBar::close-button { - image: url(D:/qdarkstyle/rc/close.png); + image: url(:/org.blueberry.ui.qt/dark/close.png); background: transparent; } QTabBar::close-button:hover { - image: url(D:/qdarkstyle/rc/close-hover.png); + image: url(:/org.blueberry.ui.qt/dark/close-hover.png); background: transparent; } QTabBar::close-button:pressed { - image: url(D:/qdarkstyle/rc/close-pressed.png); + image: url(:/org.blueberry.ui.qt/dark/close-pressed.png); background: transparent; } /* TOP TABS */ QTabBar::tab:top { color: #000000; border: 0px solid #76797C; border-bottom: 0px solid #76797C; background-color: #76797C; padding: 5px; min-width: 50px; border-top-left-radius: 0px; border-top-right-radius: 0px; } QTabBar::tab:top:!selected { color: #eff0f1; background-color: #54575B; border: 0px solid #76797C; border-bottom: 0px solid #76797C; border-top-left-radius: 0px; border-top-right-radius: 0px; } QTabBar::tab:top:!selected:hover { background-color: #3daee9; } /* BOTTOM TABS */ QTabBar::tab:bottom { color: #eff0f1; border: 0px solid #76797C; border-top: 0px transparent black; background-color: #31363b; padding: 5px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; min-width: 50px; } QTabBar::tab:bottom:!selected { color: #eff0f1; background-color: #54575B; border: 0px solid #76797C; border-top: 0px transparent black; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; } QTabBar::tab:bottom:!selected:hover { background-color: #3daee9; } /* LEFT TABS */ QTabBar::tab:left { color: #eff0f1; border: 0px solid #76797C; border-left: 0px transparent black; background-color: #31363b; padding: 5px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; min-height: 50px; } QTabBar::tab:left:!selected { color: #eff0f1; background-color: #54575B; border: 0px solid #76797C; border-left: 0px transparent black; border-top-right-radius: 0px; border-bottom-right-radius: 0px; } QTabBar::tab:left:!selected:hover { background-color: #3daee9; } /* RIGHT TABS */ QTabBar::tab:right { color: #eff0f1; border: 0px solid #76797C; border-right: 0px transparent black; background-color: #31363b; padding: 5px; border-top-left-radius: 0px; border-bottom-left-radius: 0px; min-height: 50px; } QTabBar::tab:right:!selected { color: #eff0f1; background-color: #54575B; border: 0px solid #76797C; border-right: 0px transparent black; border-top-left-radius: 0px; border-bottom-left-radius: 0px; } QTabBar::tab:right:!selected:hover { background-color: #3daee9; } QTabBar QToolButton::right-arrow:enabled { - image: url(D:/qdarkstyle/rc/right_arrow.png); + image: url(:/org.blueberry.ui.qt/dark/right_arrow.png); } QTabBar QToolButton::left-arrow:enabled { - image: url(D:/qdarkstyle/rc/left_arrow.png); + image: url(:/org.blueberry.ui.qt/dark/left_arrow.png); } QTabBar QToolButton::right-arrow:disabled { - image: url(D:/qdarkstyle/rc/right_arrow_disabled.png); + image: url(:/org.blueberry.ui.qt/dark/right_arrow_disabled.png); } QTabBar QToolButton::left-arrow:disabled { - image: url(D:/qdarkstyle/rc/left_arrow_disabled.png); + image: url(:/org.blueberry.ui.qt/dark/left_arrow_disabled.png); } QDockWidget { background: #31363b; border: 1px solid #403F3F; - titlebar-close-icon: url(D:/qdarkstyle/rc/close.png); - titlebar-normal-icon: url(D:/qdarkstyle/rc/undock.png); + titlebar-close-icon: url(:/org.blueberry.ui.qt/dark/close.png); + titlebar-normal-icon: url(:/org.blueberry.ui.qt/dark/undock.png); } QDockWidget::close-button, QDockWidget::float-button { border: 1px solid transparent; border-radius: 0px; background: transparent; } QDockWidget::close-button:hover, QDockWidget::float-button:hover { background: rgba(255, 255, 255, 10); } QDockWidget::close-button:pressed, QDockWidget::float-button:pressed { padding: 1px -1px -1px 1px; background: rgba(255, 255, 255, 10); } QTreeView, QListView { border: 1px solid #76797C; background-color: #232629; } QTreeView:branch:selected, QTreeView:branch:hover { - background: url(D:/qdarkstyle/rc/transparent.png); + background: url(:/org.blueberry.ui.qt/dark/transparent.png); } QTreeView::branch:has-siblings:!adjoins-item { - border-image: url(D:/qdarkstyle/rc/transparent.png); + border-image: url(:/org.blueberry.ui.qt/dark/transparent.png); } QTreeView::branch:has-siblings:adjoins-item { - border-image: url(D:/qdarkstyle/rc/transparent.png); + border-image: url(:/org.blueberry.ui.qt/dark/transparent.png); } QTreeView::branch:!has-children:!has-siblings:adjoins-item { - border-image: url(D:/qdarkstyle/rc/transparent.png); + border-image: url(:/org.blueberry.ui.qt/dark/transparent.png); } QTreeView::branch:has-children:!has-siblings:closed, QTreeView::branch:closed:has-children:has-siblings { - image: url(D:/qdarkstyle/rc/branch_closed.png); + image: url(:/org.blueberry.ui.qt/dark/branch_closed.png); } QTreeView::branch:open:has-children:!has-siblings, QTreeView::branch:open:has-children:has-siblings { - image: url(D:/qdarkstyle/rc/branch_open.png); + image: url(:/org.blueberry.ui.qt/dark/branch_open.png); } QTreeView::branch:has-children:!has-siblings:closed:hover, QTreeView::branch:closed:has-children:has-siblings:hover { - image: url(D:/qdarkstyle/rc/branch_closed-on.png); + image: url(:/org.blueberry.ui.qt/dark/branch_closed-on.png); } QTreeView::branch:open:has-children:!has-siblings:hover, QTreeView::branch:open:has-children:has-siblings:hover { - image: url(D:/qdarkstyle/rc/branch_open-on.png); + image: url(:/org.blueberry.ui.qt/dark/branch_open-on.png); } QListView::item:!selected:hover, QTreeView::item:!selected:hover { background: rgba(167,218,245, 0.3); outline: 0; color: #eff0f1 } QListView::item:selected:hover, QTreeView::item:selected:hover { background: #3daee9; color: #eff0f1; } QSlider::groove:horizontal { border: 1px solid #565a5e; height: 4px; background: #565a5e; margin: 0px; border-radius: 0px; } QSlider::handle:horizontal { background: #232629; border: 1px solid #565a5e; width: 10px; height: 16px; margin: -8px 0; border-radius: 0px; } QSlider::groove:vertical { border: 1px solid #565a5e; width: 4px; background: #565a5e; margin: 0px; border-radius: 0px; } QSlider::handle:vertical { background: #232629; border: 1px solid #565a5e; width: 16px; height: 10px; margin: 0 -8px; border-radius: 0px; } QToolButton { background-color: transparent; border: 1px transparent #76797C; border-radius: 0px; margin: 3px; padding: 5px; } QToolButton[popupMode="1"] { /* only for MenuButtonPopup */ padding-right: 20px; /* make way for the popup button */ border: 1px #76797C; border-radius: 0px; } QToolButton[popupMode="2"] { /* only for InstantPopup */ padding-right: 10px; /* make way for the popup button */ border: 1px #76797C; } QToolButton:hover, QToolButton::menu-button:hover { background-color: transparent; border: 1px solid #3daee9; padding: 5px; } QToolButton:checked, QToolButton:pressed, QToolButton::menu-button:pressed { background-color: #3daee9; border: 1px solid #3daee9; padding: 5px; } /* the subcontrol below is used only in the InstantPopup or DelayedPopup mode */ QToolButton::menu-indicator { - image: url(D:/qdarkstyle/rc/down_arrow.png); + image: url(:/org.blueberry.ui.qt/dark/down_arrow.png); top: -7px; left: -2px; /* shift it a bit */ } /* the subcontrols below are used only in the MenuButtonPopup mode */ QToolButton::menu-button { border: 1px transparent #76797C; border-top-right-radius: 0px; border-bottom-right-radius: 0px; /* 16px width + 4px for border = 20px allocated above */ width: 16px; outline: none; } QToolButton::menu-arrow { - image: url(D:/qdarkstyle/rc/down_arrow.png); + image: url(:/org.blueberry.ui.qt/dark/down_arrow.png); } QToolButton::menu-arrow:open { border: 1px solid #76797C; } QPushButton::menu-indicator { subcontrol-origin: padding; subcontrol-position: bottom right; left: 8px; } QTableView { border: 0px solid #76797C; gridline-color: #31363b; background-color: #232629; } QTableView, QHeaderView { border-radius: 0px; } QTableView::item:pressed, QListView::item:pressed, QTreeView::item:pressed { background: #3daee9; color: #eff0f1; } QTableView::item:selected:active, QTreeView::item:selected:active, QListView::item:selected:active { background: #3daee9; color: #eff0f1; } QHeaderView { background-color: #31363b; border: 1px transparent; border-radius: 0px; margin: 0px; padding: 0px; } QHeaderView::section { background-color: #31363b; color: #eff0f1; padding: 5px; border: 1px solid #76797C; border-radius: 0px; text-align: left; } QHeaderView::section::vertical::first, QHeaderView::section::vertical::only-one { border-top: 1px solid #76797C; } QHeaderView::section::vertical { border-top: transparent; } QHeaderView::section::horizontal::first, QHeaderView::section::horizontal::only-one { border-left: 1px solid #76797C; } QHeaderView::section::horizontal { border-left: transparent; } QHeaderView::section:checked { color: white; background-color: #334e5e; } /* style the sort indicator */ QHeaderView::down-arrow { - image: url(D:/qdarkstyle/rc/down_arrow.png); + image: url(:/org.blueberry.ui.qt/dark/down_arrow.png); } QHeaderView::up-arrow { - image: url(D:/qdarkstyle/rc/up_arrow.png); + image: url(:/org.blueberry.ui.qt/dark/up_arrow.png); } QTableCornerButton::section { background-color: #31363b; border: 1px transparent #76797C; border-radius: 0px; } QToolBox { padding: 5px; border: 1px transparent black; } QToolBox::tab { color: #eff0f1; background-color: #31363b; border: 1px solid #76797C; border-bottom: 1px transparent #31363b; border-top-left-radius: 0px; border-top-right-radius: 0px; } QToolBox::tab:selected { /* italicize selected tabs */ font: italic; background-color: #31363b; border-color: #3daee9; } QStatusBar::item { border: 0px transparent dark; } QFrame[height="3"], QFrame[width="3"] { background-color: #76797C; } QSplitter::handle { border: 1px dashed #76797C; } QSplitter::handle:hover { background-color: #787876; border: 1px solid #76797C; } QSplitter::handle:horizontal { width: 1px; } QSplitter::handle:vertical { height: 1px; } QProgressBar { border: 1px solid #76797C; border-radius: 0px; text-align: center; } QProgressBar::chunk { background-color: #05B8CC; } QDateEdit { selection-background-color: #3daee9; border-style: solid; border: 1px solid #3375A3; border-radius: 0px; padding: 1px; min-width: 75px; } QDateEdit:on { padding-top: 3px; padding-left: 4px; selection-background-color: #4a4a4a; } QDateEdit QAbstractItemView { background-color: #232629; border-radius: 0px; border: 1px solid #3375A3; selection-background-color: #3daee9; } QDateEdit::drop-down { subcontrol-origin: padding; subcontrol-position: top right; width: 15px; border-left-width: 0px; border-left-color: darkgray; border-left-style: solid; border-top-right-radius: 0px; border-bottom-right-radius: 0px; } QDateEdit::down-arrow { - image: url(D:/qdarkstyle/rc/down_arrow_disabled.png); + image: url(:/org.blueberry.ui.qt/dark/down_arrow_disabled.png); } QDateEdit::down-arrow:on, QDateEdit::down-arrow:hover, QDateEdit::down-arrow:focus { - image: url(D:/qdarkstyle/rc/down_arrow.png); + image: url(:/org.blueberry.ui.qt/dark/down_arrow.png); } diff --git a/Plugins/org.blueberry.ui.qt/src/internal/berryQtStyleManager.cpp b/Plugins/org.blueberry.ui.qt/src/internal/berryQtStyleManager.cpp index 82afb3f7c3..2a999c75a0 100644 --- a/Plugins/org.blueberry.ui.qt/src/internal/berryQtStyleManager.cpp +++ b/Plugins/org.blueberry.ui.qt/src/internal/berryQtStyleManager.cpp @@ -1,346 +1,347 @@ /*=================================================================== BlueBerry Platform Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ #include "berryQtStyleManager.h" #include #include #include #include #include #include #include #include #include #include #include #include #include "berryQtPreferences.h" #include "berryWorkbenchPlugin.h" namespace berry { QtStyleManager::QtStyleManager() { AddDefaultStyle(); ReadPreferences(); } void QtStyleManager::ReadPreferences() { IPreferencesService* prefService = WorkbenchPlugin::GetDefault()->GetPreferencesService(); IPreferences::Pointer stylePref = prefService->GetSystemPreferences()->Node(QtPreferences::QT_STYLES_NODE); QString paths = stylePref->Get(QtPreferences::QT_STYLE_SEARCHPATHS, ""); QStringList pathList = paths.split(";", QString::SkipEmptyParts); QStringListIterator it(pathList); while (it.hasNext()) { AddStyles(it.next()); } QString styleName = stylePref->Get(QtPreferences::QT_STYLE_NAME, ""); // if a style is contributed via the Qt resource mechanism, it may not be // registered yet. if (Contains(styleName)) // do not update the style in the QApplication instance, // since it might not be created yet SetStyle(styleName, false); else SetDefaultStyle(false); } QtStyleManager::~QtStyleManager() { for (FileNameToStyleMap::const_iterator i = styles.begin(); i != styles.end(); ++i) { delete i.value(); } } void QtStyleManager::AddDefaultStyle() { #ifndef _APPLE_ AddStyle(":/org.blueberry.ui.qt/defaultstyle.qss", "Default"); + AddStyle(":/org.blueberry.ui.qt/darkStyle2017.qss", "Dark"); defaultStyle = styles[":/org.blueberry.ui.qt/defaultstyle.qss"]; #endif } void QtStyleManager::ClearStyles() { for (FileNameToStyleMap::iterator i = styles.begin(); i != styles.end(); ) { if (!i.value()->fileName.startsWith(':')) { delete i.value(); i = styles.erase(i); } else ++i; } SetDefaultStyle(); } QtStyleManager::Style QtStyleManager::GetStyle() const { return Style(currentStyle->name, currentStyle->fileName); } QString QtStyleManager::GetStylesheet() const { return currentStyle->stylesheet; } QString QtStyleManager::GetActiveTabStylesheet() const { return currentStyle->activeTabStylesheet; } QString QtStyleManager::GetTabStylesheet() const { return currentStyle->tabStylesheet; } void QtStyleManager::AddStyle(const QString& styleFileName, const QString& styleName) { auto newStyle = new ExtStyle(); if (styleName.isEmpty()) { QFileInfo info(styleFileName); newStyle->name = info.completeBaseName(); } else { newStyle->name = styleName; } newStyle->fileName = styleFileName; styles.insert(newStyle->fileName, newStyle); } void QtStyleManager::AddStyles(const QString& path) { QDirIterator dirIt(path); while (dirIt.hasNext()) { QString current = dirIt.next(); QFileInfo info = dirIt.fileInfo(); if (info.isFile() && info.isReadable()) { QString fileName = info.fileName(); if (fileName.endsWith("-tab.qss") || fileName.endsWith("-activetab.qss")) continue; if (fileName.endsWith(".qss")) AddStyle(current); } } } void QtStyleManager::ReadStyleData(ExtStyle* style) { QString tabStyleFileName(style->fileName); QString activeTabStyleFileName(style->fileName); int index = style->fileName.lastIndexOf(".qss"); tabStyleFileName.replace(index, 4, "-tab.qss"); activeTabStyleFileName.replace(index, 4, "-activetab.qss"); QFile styleFile(style->fileName); if (styleFile.open(QIODevice::ReadOnly)) { QTextStream in(&styleFile); style->stylesheet = in.readAll(); } else { BERRY_WARN << "Could not read " << style->fileName.toStdString(); } QFile tabStyleFile(tabStyleFileName); if (tabStyleFile.open(QIODevice::ReadOnly)) { QTextStream in(&tabStyleFile); style->tabStylesheet = in.readAll(); } else { BERRY_WARN << "Could not read " << tabStyleFileName.toStdString(); } QFile activeTabStyleFile(activeTabStyleFileName); if (activeTabStyleFile.open(QIODevice::ReadOnly)) { QTextStream in(&activeTabStyleFile); style->activeTabStylesheet = in.readAll(); } else { BERRY_WARN << "Could not read " << activeTabStyleFileName.toStdString(); } } void QtStyleManager::RemoveStyle(const QString& styleFileName) { if (currentStyle->fileName == styleFileName) { SetDefaultStyle(); } delete styles.take(styleFileName); } void QtStyleManager::RemoveStyles(const QString& repo) { if (repo.isEmpty()) { ClearStyles(); return; } for (FileNameToStyleMap::iterator i = styles.begin(); i != styles.end();) { ExtStyle* style = i.value(); QFileInfo info(style->fileName); if (info.absolutePath() == repo) { if (style->name == currentStyle->name) { SetDefaultStyle(); } i = styles.erase(i); delete style; } else { ++i; } } } void QtStyleManager::GetStyles(StyleList& styleNames) const { for (FileNameToStyleMap::const_iterator i = styles.begin(); i != styles.end(); ++i) styleNames.push_back(Style(i.value()->name, i.value()->fileName)); } void QtStyleManager::GetIconThemes(IconThemeList& iconThemes) const { iconThemes.clear(); iconThemes.push_back(IconTheme(QString( "<>" ))); QStringList iconSearchPaths = QIcon::themeSearchPaths(); for(QStringList::Iterator pathIt = iconSearchPaths.begin(); pathIt != iconSearchPaths.end(); ++pathIt) { QDirIterator dirIt(*pathIt); while (dirIt.hasNext()) { QString current = dirIt.next(); QFileInfo info = dirIt.fileInfo(); if (info.isDir() && info.isReadable()) { QFileInfo themeFile( info.filePath() + QString("/index.theme") ); if( themeFile.exists() && themeFile.isFile() && themeFile.isReadable() ) { QString fileName = info.fileName(); iconThemes.push_back( IconTheme(fileName) ); } } } } } void QtStyleManager::SetStyle(const QString& fileName) { SetStyle(fileName, true); } void QtStyleManager::SetStyle(const QString& fileName, bool update) { if (fileName.isEmpty()) { SetDefaultStyle(); return; } FileNameToStyleMap::const_iterator i = styles.find(fileName); ExtStyle* style = nullptr; if (i == styles.end()) { BERRY_WARN << "Style " + fileName.toStdString() << " does not exist"; style = defaultStyle; } else { style = i.value(); } currentStyle = style; ReadStyleData(style); if (update) { qApp->setStyleSheet(currentStyle->stylesheet); PlatformUI::GetWorkbench()->UpdateTheme(); } } void QtStyleManager::SetIconTheme(const QString& themeName) { if( themeName == QString( "<>" ) ) { SetIconTheme( QString("tango"), true); } else { SetIconTheme(themeName, true); } } void QtStyleManager::SetIconTheme(const QString& themeName, bool /*update*/) { QIcon::setThemeName( themeName ); } QtStyleManager::Style QtStyleManager::GetDefaultStyle() const { return Style(defaultStyle->name, defaultStyle->fileName); } void QtStyleManager::SetDefaultStyle() { SetDefaultStyle(true); } void QtStyleManager::SetDefaultStyle(bool update) { SetStyle(defaultStyle->fileName, update); } bool QtStyleManager::Contains(const QString& fileName) const { return styles.contains(fileName); } }