diff --git a/Plugins/org.blueberry.ui.qt.help/plugin.xml b/Plugins/org.blueberry.ui.qt.help/plugin.xml index 3a14272ba2..d2f6f14968 100644 --- a/Plugins/org.blueberry.ui.qt.help/plugin.xml +++ b/Plugins/org.blueberry.ui.qt.help/plugin.xml @@ -1,49 +1,49 @@ + icon="resources/help.svg"> diff --git a/Plugins/org.blueberry.ui.qt.help/resources/help.svg b/Plugins/org.blueberry.ui.qt.help/resources/help.svg index 7fbcd22f55..2eea8fafba 100644 --- a/Plugins/org.blueberry.ui.qt.help/resources/help.svg +++ b/Plugins/org.blueberry.ui.qt.help/resources/help.svg @@ -1,2 +1,54 @@ - - \ No newline at end of file + + + + + + image/svg+xml + + + + + + + + diff --git a/Plugins/org.blueberry.ui.qt.help/resources/helpIndex.svg b/Plugins/org.blueberry.ui.qt.help/resources/helpIndex.svg index 3880456aa5..1bd9d6cf2d 100644 --- a/Plugins/org.blueberry.ui.qt.help/resources/helpIndex.svg +++ b/Plugins/org.blueberry.ui.qt.help/resources/helpIndex.svg @@ -1,38 +1,62 @@ + width="1792" + inkscape:version="0.91 r13725" + sodipodi:docname="helpIndex.svg"> + image/svg+xml - + + style="fill:#00ff00;fill-opacity:1;stroke:none" /> diff --git a/Plugins/org.blueberry.ui.qt.help/resources/helpSearch.svg b/Plugins/org.blueberry.ui.qt.help/resources/helpSearch.svg index 689739a0e4..63c3cd84db 100644 --- a/Plugins/org.blueberry.ui.qt.help/resources/helpSearch.svg +++ b/Plugins/org.blueberry.ui.qt.help/resources/helpSearch.svg @@ -1,33 +1,59 @@ + width="1792" + inkscape:version="0.91 r13725" + sodipodi:docname="helpSearch.svg"> + image/svg+xml - + + d="M1216 832q0-185-131.5-316.5t-316.5-131.5-316.5 131.5-131.5 316.5 131.5 316.5 316.5 131.5 316.5-131.5 131.5-316.5zm512 832q0 52-38 90t-90 38q-54 0-90-38l-343-342q-179 124-399 124-143 0-273.5-55.5t-225-150-150-225-55.5-273.5 55.5-273.5 150-225 225-150 273.5-55.5 273.5 55.5 225 150 150 225 55.5 273.5q0 220-124 399l343 343q37 37 37 90z" + style="fill:#00ff00;fill-opacity:1;stroke:none" /> + d="m 851.9887,1061.8192 0,121.2429 c 0,7.0725 -2.27331,12.8821 -6.81992,17.4287 -4.54661,4.5466 -10.35617,6.8199 -17.42868,6.8199 l -121.24293,0 c -7.0725,0 -12.88206,-2.2733 -17.42867,-6.8199 -4.54661,-4.5466 -6.81992,-10.3562 -6.81992,-17.4287 l 0,-121.2429 c 0,-7.0725 2.27331,-12.8821 6.81992,-17.4287 4.54661,-4.5466 10.35617,-6.8199 17.42867,-6.8199 l 121.24293,0 c 7.07251,0 12.88207,2.2733 17.42868,6.8199 4.54661,4.5466 6.81992,10.3562 6.81992,17.4287 z m 193.9887,-375.85311 c 0,25.25895 -3.7888,47.992 -11.3665,68.19916 -7.5777,20.20716 -19.0706,37.63583 -34.4785,52.28602 -15.40795,14.65019 -28.5426,25.76412 -39.40395,33.3418 -10.86134,7.57768 -25.89041,16.6709 -45.08722,27.27967 -16.16572,9.09321 -27.91113,16.16572 -35.23622,21.21751 -7.3251,5.05179 -13.89243,11.11393 -19.70198,18.18644 -5.80955,7.0725 -8.71433,14.39759 -8.71433,21.97528 l 0,24.24859 c 0,7.0725 -2.27331,12.88206 -6.81992,17.42867 -4.54661,4.54661 -10.35617,6.81992 -17.42868,6.81992 l -121.24293,0 c -7.0725,0 -12.88206,-2.27331 -17.42867,-6.81992 -4.54661,-4.54661 -6.81992,-10.35617 -6.81992,-17.42867 l 0,-51.52825 c 0,-17.68126 2.65219,-33.97328 7.95657,-48.87606 5.30438,-14.90278 11.36653,-26.90078 18.18644,-35.99399 6.81991,-9.09323 16.6709,-18.06015 29.55297,-26.90078 12.88206,-8.84063 23.23823,-15.28166 31.0685,-19.32309 7.83027,-4.04143 19.07051,-9.34581 33.7207,-15.91314 26.77447,-12.62947 45.71868,-23.49082 56.83262,-32.58405 11.11394,-9.09321 16.67091,-21.47009 16.67091,-37.13064 0,-21.21751 -10.98764,-39.27766 -32.96293,-54.18044 -21.97528,-14.90278 -46.09757,-22.35417 -72.36688,-22.35417 -28.29002,0 -52.28602,6.81992 -71.988,20.45975 -14.65019,10.10357 -34.85734,31.0685 -60.62146,62.89478 -4.54661,6.06214 -10.86135,9.09321 -18.94421,9.09321 -5.55697,0 -10.35617,-1.51554 -14.3976,-4.54661 l -81.83899,-62.13701 c -5.05178,-3.53625 -8.08285,-8.58803 -9.09321,-15.15536 -1.01036,-6.56732 0.25259,-12.37688 3.78884,-17.42867 61.63183,-96.99435 149.78555,-145.49153 264.46116,-145.49153 65.16808,0 125.41067,22.60676 180.72776,67.82027 55.31713,45.21351 82.97563,99.39395 82.97563,162.54131 z" + style="fill:#00ff00;fill-opacity:1;stroke:none" /> diff --git a/Plugins/org.blueberry.ui.qt.log/resources/logging.svg b/Plugins/org.blueberry.ui.qt.log/resources/logging.svg index 0bbcb505c7..bf7e60d22b 100644 --- a/Plugins/org.blueberry.ui.qt.log/resources/logging.svg +++ b/Plugins/org.blueberry.ui.qt.log/resources/logging.svg @@ -1,73 +1,74 @@ + inkscape:current-layer="svg2" /> image/svg+xml + d="m 1792,1312 0,192 c 0,8.6667 -3.1667,16.1667 -9.5,22.5 -6.3333,6.3333 -13.8333,9.5 -22.5,9.5 l -1216,0 c -8.66667,0 -16.16667,-3.1667 -22.5,-9.5 -6.33333,-6.3333 -9.5,-13.8333 -9.5,-22.5 l 0,-192 c 0,-9.3333 3,-17 9,-23 6,-6 13.66667,-9 23,-9 l 1216,0 c 8.6667,0 16.1667,3.1667 22.5,9.5 6.3333,6.3333 9.5,13.8333 9.5,22.5 z m 0,-512 0,192 c 0,8.6667 -3.1667,16.1667 -9.5,22.5 -6.3333,6.3333 -13.8333,9.5 -22.5,9.5 l -1216,0 c -8.66667,0 -16.16667,-3.1667 -22.5,-9.5 -6.33333,-6.3333 -9.5,-13.8333 -9.5,-22.5 l 0,-192 c 0,-9.33333 3,-17 9,-23 6,-6 13.66667,-9 23,-9 l 1216,0 c 8.6667,0 16.1667,3.16667 22.5,9.5 6.3333,6.33333 9.5,13.83333 9.5,22.5 z m 0,-512 0,192 c 0,8.66667 -3.1667,16.16667 -9.5,22.5 -6.3333,6.33333 -13.8333,9.5 -22.5,9.5 l -1216,0 c -8.66667,0 -16.16667,-3.16667 -22.5,-9.5 -6.33333,-6.33333 -9.5,-13.83333 -9.5,-22.5 l 0,-192 c 0,-8.66667 3.16667,-16.16667 9.5,-22.5 6.33333,-6.33333 13.83333,-9.5 22.5,-9.5 l 1216,0 c 8.6667,0 16.1667,3.16667 22.5,9.5 6.3333,6.33333 9.5,13.83333 9.5,22.5 z" + style="fill:#00ff00;fill-opacity:1;stroke:none" /> diff --git a/Plugins/org.blueberry.ui.qt/resources/darkstyle.qss b/Plugins/org.blueberry.ui.qt/resources/darkstyle.qss index a99f20cc63..ce69adf7f2 100644 --- a/Plugins/org.blueberry.ui.qt/resources/darkstyle.qss +++ b/Plugins/org.blueberry.ui.qt/resources/darkstyle.qss @@ -1,1472 +1,1473 @@ /*=================================================================== 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. ===================================================================*/ /* * 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. */ /* foregroundColor = #adb1b6 + iconColor = #adb1b6 <- This line is parsed by MITK backgroundColor = #323231 inactiveColor = #1d1d1c highlightColor = #3399cc popupColor = #027c90 warningColor = #ffb400 borderColor = #1d1d1c */ QToolTip { border: 1px solid #1d1d1c; background-color: #323231; color: #adb1b6; padding: 3px; opacity: 200; } QWidget { color: #adb1b6; background-color: #323231; selection-background-color: #3399cc; selection-color: #1d1d1c; background-clip: border; border-image: none; border: 0px transparent #1d1d1c; outline: 0; } QWidget:item:hover { background-color: #3399cc; color: #adb1b6; } QWidget:item:selected { background-color: #3399cc; } QCheckBox { spacing: 5px; outline: none; color: #adb1b6; margin-bottom: 2px; } QCheckBox:disabled { color: #1d1d1c; } QCheckBox::indicator, QGroupBox::indicator { width: 18px; height: 30px; } QGroupBox::indicator { margin-left: 0px; } QCheckBox::indicator:unchecked { 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(:/org.blueberry.ui.qt/dark/checkbox_unchecked_focus.png); } QCheckBox::indicator:checked { 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(:/org.blueberry.ui.qt/dark/checkbox_checked_focus.png); } QCheckBox::indicator:indeterminate { image: url(:/org.blueberry.ui.qt/dark/checkbox_indeterminate.png); } QCheckBox::indicator:indeterminate:focus, QCheckBox::indicator:indeterminate:hover, QCheckBox::indicator:indeterminate:pressed { image: url(:/org.blueberry.ui.qt/dark/checkbox_indeterminate_focus.png); } QCheckBox::indicator:checked:disabled, QGroupBox::indicator:checked:disabled { image: url(:/org.blueberry.ui.qt/dark/checkbox_checked_disabled.png); } QCheckBox::indicator:unchecked:disabled, QGroupBox::indicator:unchecked:disabled { image: url(:/org.blueberry.ui.qt/dark/checkbox_unchecked_disabled.png); } QRadioButton { spacing: 5px; outline: none; color: #adb1b6; margin-bottom: 2px; } QRadioButton:disabled { color: #1d1d1c; } QRadioButton::indicator { width: 21px; height: 21px; } QRadioButton::indicator:unchecked { 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(:/org.blueberry.ui.qt/dark/radio_unchecked_focus.png); } QRadioButton::indicator:checked { border: none; outline: none; 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(:/org.blueberry.ui.qt/dark/radio_checked_focus.png); } QRadioButton::indicator:checked:disabled { outline: none; image: url(:/org.blueberry.ui.qt/dark/radio_checked_disabled.png); } QRadioButton::indicator:unchecked:disabled { image: url(:/org.blueberry.ui.qt/dark/radio_unchecked_disabled.png); } QMenuBar { background-color: #323231; color: #adb1b6; } QMenuBar::item { background: transparent; } QMenuBar::item:selected { background: transparent; border: 1px solid #1d1d1c; } QMenuBar::item:pressed { border: 1px solid #1d1d1c; background-color: #3399cc; color: #adb1b6; margin-bottom:-1px; padding-bottom:1px; } QMenu { border: 1px solid #1d1d1c; color: #adb1b6; margin: 2px; } QMenu::icon { margin: 5px; } QMenu::item { padding: 5px 30px 5px 30px; margin-left: 5px; border: 1px solid transparent; /* leave some space for selection border */ } QMenu::item:selected { color: #adb1b6; } QMenu::separator { height: 2px; background: #3399cc; 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(:/org.blueberry.ui.qt/dark/checkbox_unchecked.png); } QMenu::indicator:non-exclusive:unchecked:selected { image: url(:/org.blueberry.ui.qt/dark/checkbox_unchecked_disabled.png); } QMenu::indicator:non-exclusive:checked { image: url(:/org.blueberry.ui.qt/dark/checkbox_checked.png); } QMenu::indicator:non-exclusive:checked:selected { 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(:/org.blueberry.ui.qt/dark/radio_unchecked.png); } QMenu::indicator:exclusive:unchecked:selected { image: url(:/org.blueberry.ui.qt/dark/radio_unchecked_disabled.png); } QMenu::indicator:exclusive:checked { image: url(:/org.blueberry.ui.qt/dark/radio_checked.png); } QMenu::indicator:exclusive:checked:selected { image: url(:/org.blueberry.ui.qt/dark/radio_checked_disabled.png); } QMenu::right-arrow { margin: 5px; image: url(:/org.blueberry.ui.qt/dark/right_arrow.png) } QWidget:disabled { color: #1d1d1c; background-color: #323231; } QAbstractItemView { alternate-background-color: #323231; color: #adb1b6; border: 1px solid 3A3939; border-radius: 0px; } QWidget:focus, QMenuBar:focus { border: 1px solid #3399cc; } QTabWidget:focus, QCheckBox:focus, QRadioButton:focus, QSlider:focus { border: none; } QLineEdit { background-color: #1d1d1c; padding: 2px; border-style: solid; border: 1px solid #1d1d1c; border-radius: 0px; color: #adb1b6; } QGroupBox { border:1px solid #323231; border-radius: 0px; padding-top: 24px; font-weight: bold; } QGroupBox::title { border:1px solid #323231; border-right:0px; border-bottom:0px; subcontrol-position: top left; subcontrol-origin: margin; padding: 1px; } QAbstractScrollArea { border-radius: 0px; border: 1px solid #1d1d1c; background-color: #323231; } QScrollBar:horizontal { height: 15px; margin: 3px 15px 3px 15px; border: 1px transparent #1d1d1c; border-radius: 0px; background-color: #1d1d1c; } QScrollBar::handle:horizontal { background-color: #323231; border: 2px solid #1d1d1c; min-width: 5px; border-radius: 0px; } QScrollBar::add-line:horizontal { margin: 0px 3px 0px 3px; 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(:/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(:/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(:/org.blueberry.ui.qt/dark/left_arrow.png); height: 10px; width: 10px; subcontrol-position: left; subcontrol-origin: margin; } -QScrollBar::up-arrow:horizontal, +QScrollBar::up-arrow:horizontal, QScrollBar::down-arrow:horizontal { background: none; } -QScrollBar::add-page:horizontal, +QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal { background: none; } QScrollBar:vertical { background-color: #1d1d1c; width: 15px; margin: 15px 2px 15px 2px; border: 1px transparent #1d1d1c; border-radius: 0px; } QScrollBar::handle:vertical { background-color: #323231; border: 2px solid #1d1d1c; min-height: 5px; border-radius: 0px; } QScrollBar::sub-line:vertical { margin: 3px 0px 3px 0px; 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(:/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(:/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(:/org.blueberry.ui.qt/dark/down_arrow.png); height: 10px; width: 10px; subcontrol-position: bottom; subcontrol-origin: margin; } -QScrollBar::up-arrow:vertical, +QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical { background: none; } -QScrollBar::add-page:vertical, +QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { background: none; } QTextEdit { background-color: #1d1d1c; color: #adb1b6; border: 1px solid #1d1d1c; } QPlainTextEdit { background-color: #1d1d1c;; color: #adb1b6; border-radius: 0px; border: 1px solid #1d1d1c; } QHeaderView::section { background-color: #1d1d1c; color: #adb1b6; padding: 5px; border: 1px solid #1d1d1c; } QSizeGrip { image: url(:/org.blueberry.ui.qt/dark/sizegrip.png); width: 12px; height: 12px; } QMainWindow::separator { background-color: #323231; color: #adb1b6; padding-left: 4px; spacing: 2px; border: 1px dashed #1d1d1c; } QMainWindow::separator:hover { background-color: #adb1b6; color: #adb1b6; padding-left: 4px; border: 1px solid #1d1d1c; spacing: 2px; } QMenu::separator { height: 1px; background-color: #1d1d1c; color: #adb1b6; padding-left: 4px; margin-left: 10px; margin-right: 5px; } QFrame { border-radius: 0px; border: 1px solid #1d1d1c; } QFrame[frameShape="0"] { border-radius: 0px; border: 1px transparent #1d1d1c; } QStackedWidget { border: 1px transparent #1d1d1c; } QToolBar { border: 1px transparent #393838; background: 1px solid #323231; font-weight: bold; } /* this fixes the size of the plugin icons in the toolbar */ QToolBar QToolButton { background-color: #323231; border: 1px solid #323231; border-radius: 0px; min-width: 30px; min-height: 30px; margin: 0px; padding: 0px; } QToolBar::handle:horizontal { image: url(:/org.blueberry.ui.qt/dark/Hmovetoolbar.png); } QToolBar::handle:vertical { image: url(:/org.blueberry.ui.qt/dark/Vmovetoolbar.png); } QToolBar::separator:horizontal { image: url(:/org.blueberry.ui.qt/dark/Hsepartoolbar.png); } QToolBar::separator:vertical { image: url(:/org.blueberry.ui.qt/dark/Vsepartoolbar.png); } QToolButton { background-color: #323231; border: 1px solid #323231; border-radius: 0px; min-width: 12px; min-height: 12px; margin: 0px; padding: 0px; } /* only for MenuButtonPopup */ QToolButton[popupMode="1"] { border: 0px solid #1d1d1c; } /* only for InstantPopup */ QToolButton[popupMode="2"] { border: 0px solid #1d1d1c; } /* this fixes the size of the standard icons in the toolbar */ QToolButton:hover, QToolButton::menu-button:hover { background-color: #323231; border: 1px solid #3399cc; min-width: 30px; min-height: 30px; margin: 0px; padding: 0px; } /* TODO what is this and do we need it */ QToolButton#qt_toolbar_ext_button { background: #58595a } QPushButton { color: #adb1b6; background-color: #323231; min-width: 68px; border-width: 1px; border-color: #1d1d1c; border-style: solid; padding: 3px; border-radius: 0px; outline: none; } QPushButton:disabled { background-color: #1d1d1c; color: #323231; } QPushButton:focus { color: #3399cc; border-color: #3399cc; border-style: solid; border-width: 1px; } QPushButton:pressed { background-color: #3399cc; color: #1d1d1c; padding-top: -15px; padding-bottom: -17px; border-width: 1px; border-color: #1d1d1c; } QComboBox { selection-background-color: #3399cc; - selection-color: #1d1d1c; + selection-color: #1d1d1c; border: 1px solid #1d1d1c; border-radius: 0px; padding: 3px; min-width: 75px; } QPushButton:checked{ background-color: #1d1d1c; border-color: #adb1b6; } QComboBox:hover, QAbstractSpinBox:hover, QLineEdit:hover, QTextEdit:hover, QPlainTextEdit:hover, QAbstractView:hover { border: 1px solid #3399cc; color: #adb1b6; } QPushButton:hover,QTreeView:hover { border: 1px solid #1d1d1c; color: #3399cc; } QComboBox QAbstractItemView { background-color: #323231; border-radius: 0px; border: 1px solid #1d1d1c; selection-background-color: #3399cc; selection-color: #adb1b6; } QComboBox:on { padding-top: 3px; padding-left: 3px; selection-background-color: #3399cc; color: #adb1b6; selection-color: #adb1b6; } QComboBox::drop-down { subcontrol-origin: padding; subcontrol-position: top right; min-width: 15px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; } QComboBox::down-arrow { image: url(:/org.blueberry.ui.qt/dark/down_arrow_disabled.png); } -QComboBox::down-arrow:on, +QComboBox::down-arrow:on, QComboBox::down-arrow:hover, QComboBox::down-arrow:focus { image: url(:/org.blueberry.ui.qt/dark/down_arrow.png); } QAbstractSpinBox { border: 1px solid #1d1d1c; background-color: #1d1d1c; padding-top: 1px; padding-bottom: 1px; color: #adb1b6; border-radius: 0px; min-width: 50px; } QAbstractSpinBox:up-button { border: 2px transparent #1d1d1c; background-color: #323231; subcontrol-origin: border; subcontrol-position: top right; padding-top: 1px; margin-bottom: 1px; margin-top: 2px; margin-right: 2px; margin-left: 2px; } QAbstractSpinBox:down-button { border: 2px transparent #1d1d1c; background-color: #323231; subcontrol-origin: border; subcontrol-position: bottom right; padding-bottom: 0px; margin-bottom: 2px; margin-top: 1px; margin-right: 2px; margin-left: 2px; } QAbstractSpinBox::up-arrow,QAbstractSpinBox::up-arrow:disabled,QAbstractSpinBox::up-arrow:off { image: url(:/org.blueberry.ui.qt/dark/up_arrow_disabled.png); width: 10px; height: 10px; } QAbstractSpinBox::up-arrow:hover { image: url(:/org.blueberry.ui.qt/dark/up_arrow.png); } QAbstractSpinBox::down-arrow,QAbstractSpinBox::down-arrow:disabled,QAbstractSpinBox::down-arrow:off { image: url(:/org.blueberry.ui.qt/dark/down_arrow_disabled.png); width: 10px; height: 10px; } QAbstractSpinBox::down-arrow:hover { image: url(:/org.blueberry.ui.qt/dark/down_arrow.png); } QLabel { border: 0px solid #1d1d1c; } QTabWidget{ border: 1px transparent #1d1d1c; } QTabWidget::pane { border: 1px solid #1d1d1c; padding: 2px; margin: 0px; } /* TABS IN GENERAL */ QTabBar { qproperty-drawBase: 0; left: 0px; border-radius: 0px; border: 1px trasparent #1d1d1c; } QTabBar:focus { border: 1px solid #1d1d1c; } QTabBar::close-button { image: url(:/org.blueberry.ui.qt/dark/tab_close_grey.svg); background: transparent; } QTabBar::close-button:hover { image: url(:/org.blueberry.ui.qt/dark/tab_close_grey.svg); background: transparent; } QTabBar::close-button:pressed { image: url(:/org.blueberry.ui.qt/dark/tab_close_grey.svg); background: transparent; } QTabBar::tab:right:!selected:hover { color: #3399cc; } QTabBar QToolButton::right-arrow:enabled { image: url(:/org.blueberry.ui.qt/dark/right_arrow.png); } QTabBar QToolButton::left-arrow:enabled { image: url(:/org.blueberry.ui.qt/dark/left_arrow.png); } QTabBar QToolButton::right-arrow:disabled { image: url(:/org.blueberry.ui.qt/dark/right_arrow_disabled.png); } QTabBar QToolButton::left-arrow:disabled { image: url(:/org.blueberry.ui.qt/dark/left_arrow_disabled.png); } QTabBar::scroller { margin: 0px; padding: 0px; } /* TOP TABS */ QTabBar::tab:top { font-weight: bold; color: #adb1b6; border: 0px solid #1d1d1c; background-color: #1d1d1c; padding: 5px; min-width: 50px; border-top-left-radius: 0px; border-top-right-radius: 0px; } QTabBar::tab:top:!selected { color: #adb1b6; font-weight: normal; background-color: #323231; border: 0px solid #1d1d1c; border-top-left-radius: 0px; border-top-right-radius: 0px; } QTabBar::tab:top:!selected:hover { color: #3399cc; } /* BOTTOM TABS */ QTabBar::tab:bottom { font-weight: bold; color: #adb1b6; border: 0px solid #1d1d1c; background-color: #1d1d1c; padding: 5px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; min-width: 50px; } QTabBar::tab:bottom:!selected { color: #adb1b6; font-weight: normal; background-color: #323231; border: 0px solid #1d1d1c; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; } QTabBar::tab:bottom:!selected:hover { color: #3399cc; } /* LEFT TABS */ QTabBar::tab:left { color: #adb1b6; font-weight: bold; border: 0px solid #1d1d1c; background-color: #1d1d1c; padding: 5px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; min-height: 50px; } QTabBar::tab:left:!selected { color: #adb1b6; font-weight: normal; background-color: #323231; border: 0px solid #1d1d1c; border-top-right-radius: 0px; border-bottom-right-radius: 0px; } QTabBar::tab:left:!selected:hover { color: #3399cc; } /* RIGHT TABS */ QTabBar::tab:right { color: #adb1b6; font-weight: bold; border: 0px solid #1d1d1c; background-color: #1d1d1c; padding: 5px; border-top-left-radius: 0px; border-bottom-left-radius: 0px; min-height: 50px; } QTabBar::tab:right:!selected { color: #adb1b6; font-weight: normal; background-color: #323231; border: 0px solid #1d1d1c; border-top-left-radius: 0px; border-bottom-left-radius: 0px; } /* TODO check if #403F3F is nice */ QDockWidget { background: #323231; border: 1px solid #403F3F; titlebar-close-icon: url(:/org.blueberry.ui.qt/dark/tab_close_grey.svg); 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; } /* TODO check if rgba(255, 255, 255, 10) is nice */ 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 #1d1d1c; background-color: #1d1d1c; } QTreeView::indicator:unchecked { image: url(:/org.blueberry.ui.qt/dark/checkbox_big_unchecked.png); } QTreeView::indicator:checked, QTreeView::indicator:indeterminate { image: url(:/org.blueberry.ui.qt/dark/checkbox_big_checked.png); } QTreeView::indicator:unchecked:selected { image: url(:/org.blueberry.ui.qt/dark/checkbox_big_unchecked_disabled.png); } QTreeView::indicator:indeterminate:selected, QTreeView::indicator:checked:selected { image: url(:/org.blueberry.ui.qt/dark/checkbox_big_checked_disabled.png); } -QTreeView:branch:selected, +QTreeView:branch:selected, QTreeView:branch:hover { background: url(:/org.blueberry.ui.qt/dark/transparent.png); } QTreeView::branch:has-siblings:!adjoins-item { border-image: url(:/org.blueberry.ui.qt/dark/transparent.png); } QTreeView::branch:has-siblings:adjoins-item { border-image: url(:/org.blueberry.ui.qt/dark/transparent.png); } QTreeView::branch:!has-children:!has-siblings:adjoins-item { 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(:/org.blueberry.ui.qt/dark/branch_closed.png); } QTreeView::branch:open:has-children:!has-siblings, QTreeView::branch:open:has-children:has-siblings { 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(:/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(:/org.blueberry.ui.qt/dark/branch_open-on.png); } QListView::item:!selected:hover, QTreeView::item:!selected:hover { background: #323231; outline: 0; color: #adb1b6 } QListView::item:selected:hover, QTreeView::item:selected:hover { background: #3399cc; color: #adb1b6; } QSlider::groove:horizontal { border: 1px solid #1d1d1c; height: 3px; background: #1d1d1c; margin: 0px; border-radius: 0px; } QSlider::handle:horizontal { background: #adb1b6; border: 1px solid #1d1d1c; width: 7px; height: 16px; margin: -8px 0; border-radius: 0px; } QSlider::groove:vertical { border: 1px solid #1d1d1c; width: 3px; background: #1d1d1c; margin: 0px; border-radius: 0px; } QSlider::handle:vertical { background: #adb1b6; border: 1px solid #1d1d1c; width: 16px; height: 7px; margin: 0 -8px; border-radius: 0px; } QmitkRenderWindowMenu { background-color: transparent; } /* this fixes the size of the icons in the stdMultiWidget */ -QmitkRenderWindowMenu QToolButton, +QmitkRenderWindowMenu QToolButton, QmitkRenderWindowMenu QToolButton::menu-button { background-color: transparent; border: 0px solid #1d1d1c; border-radius: 0px; width: 15px; height: 15px; margin: 1px; padding: 0px; } -QmitkRenderWindowMenu QToolButton:hover, +QmitkRenderWindowMenu QToolButton:hover, QmitkRenderWindowMenu QToolButton::menu-button:hover { background-color: #adb1b6; border: 0px solid #3399cc; width: 15px; height: 15px; margin: 1px; padding: 0px; } -QToolButton:checked, -QToolButton:pressed, -QToolButton::menu-button:pressed +QToolButton:checked, +QToolButton:pressed, +QToolButton::menu-button:pressed { color: #3399cc; border: 1px solid #3399cc; padding: 0px; } /* the subcontrol below is used only in the InstantPopup or DelayedPopup mode */ -QToolButton::menu-indicator +QToolButton::menu-indicator { 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 #1d1d1c; 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(:/org.blueberry.ui.qt/dark/down_arrow.png); } QToolButton::menu-arrow:open { border: 1px solid #1d1d1c; } QPushButton::menu-indicator { subcontrol-origin: padding; subcontrol-position: bottom right; left: 8px; } QTableView { border: 1px solid #1d1d1c; gridline-color: #323231; background-color: #1d1d1c; } QTableView, QHeaderView { border-radius: 0px; } QTableView::item:pressed, QListView::item:pressed, QTreeView::item:pressed { background: #3399cc; color: #1d1d1c; } QTableView::item:selected:active, QTreeView::item:selected:active, QListView::item:selected:active { background: #3399cc; color: #1d1d1c; } QHeaderView { background-color: #323231; border: 1px transparent; border-radius: 0px; margin: 0px; padding: 0px; } QHeaderView::section { background-color: #323231; color: #adb1b6; padding: 5px; border: 1px solid #1d1d1c; border-radius: 0px; text-align: left; } QHeaderView::section::vertical::first, QHeaderView::section::vertical::only-one { border-top: 1px solid #1d1d1c; } QHeaderView::section::vertical { border-top: transparent; } QHeaderView::section::horizontal::first, QHeaderView::section::horizontal::only-one { border-left: 1px solid #1d1d1c; } QHeaderView::section::horizontal { border-left: transparent; } QHeaderView::section:checked { color: #adb1b6; background-color: #323231; } /* sort indicator */ QHeaderView::down-arrow { image: url(:/org.blueberry.ui.qt/dark/down_arrow.png); } QHeaderView::up-arrow { image: url(:/org.blueberry.ui.qt/dark/up_arrow.png); } QTableCornerButton::section { background-color: #323231; border: 1px transparent #1d1d1c; border-radius: 0px; } QToolBox { color: #adb1b6; background-color: #323231; padding: 5px; border: 1px transparent #1d1d1c; } QToolBox::tab { color: #adb1b6; background-color: #323231; border: 1px solid #1d1d1c; border-bottom: 1px transparent #323231; border-top-left-radius: 0px; border-top-right-radius: 0px; } QToolBox::tab:selected { background-color: #323231; border-color: #3399cc; } QStatusBar::item { border: 0px transparent #1d1d1c; } QSplitter::handle { border: 1px dashed #1d1d1c; } QSplitter::handle:hover { background-color: #adb1b6; border: 1px solid #1d1d1c; } QSplitter::handle:horizontal { width: 1px; } QSplitter::handle:vertical { height: 1px; } QProgressBar { border: 1px solid #1d1d1c; border-radius: 0px; text-align: center; } QProgressBar::chunk { background-color: #3399cc; } QDateEdit { selection-background-color: #3399cc; selection-color: #1d1d1c; border: 1px solid #1d1d1c; border-radius: 0px; padding: 1px; min-width: 75px; } QDateEdit:on { padding-top: 3px; padding-left: 4px; } QDateEdit QAbstractItemView { background-color: #1d1d1c; border-radius: 0px; border: 1px solid #1d1d1c; selection-background-color: #3399cc; selection-color: #1d1d1c; } 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(:/org.blueberry.ui.qt/dark/down_arrow_disabled.png); } QDateEdit::down-arrow:on, QDateEdit::down-arrow:hover, QDateEdit::down-arrow:focus { image: url(:/org.blueberry.ui.qt/dark/down_arrow.png); } diff --git a/Plugins/org.blueberry.ui.qt/src/berryAbstractUICTKPlugin.cpp b/Plugins/org.blueberry.ui.qt/src/berryAbstractUICTKPlugin.cpp index 13d4c37888..c71efb0bcf 100644 --- a/Plugins/org.blueberry.ui.qt/src/berryAbstractUICTKPlugin.cpp +++ b/Plugins/org.blueberry.ui.qt/src/berryAbstractUICTKPlugin.cpp @@ -1,281 +1,309 @@ /*=================================================================== 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 "berryAbstractUICTKPlugin.h" #include "internal/berryBundleUtility.h" #include "berryWorkbenchPlugin.h" #include "berryPlatformUI.h" #include "berryIPreferencesService.h" #include "berryIPreferences.h" +#include #include #include +#include +#include namespace berry { const QString AbstractUICTKPlugin::FN_DIALOG_SETTINGS = "dialog_settings.xml"; AbstractUICTKPlugin::AbstractUICTKPlugin() : preferencesService(nullptr) { } // IDialogSettings getDialogSettings() { // if (dialogSettings == null) { // loadDialogSettings(); // } // return dialogSettings; // } // ImageRegistry getImageRegistry() { // if (imageRegistry == null) { // imageRegistry = createImageRegistry(); // initializeImageRegistry(imageRegistry); // } // return imageRegistry; // } IPreferencesService* AbstractUICTKPlugin::GetPreferencesService() const { // Create the preference store lazily. if (preferencesService == nullptr) { ctkServiceReference serviceRef = m_Context->getServiceReference(); if (!serviceRef) { BERRY_ERROR << "Preferences service not available"; } preferencesService = m_Context->getService(serviceRef); } return preferencesService; } SmartPointer AbstractUICTKPlugin::GetPreferences() const { IPreferencesService* prefService = this->GetPreferencesService(); if (prefService == nullptr) return IPreferences::Pointer(nullptr); return prefService->GetSystemPreferences(); } IWorkbench* AbstractUICTKPlugin::GetWorkbench() { return PlatformUI::GetWorkbench(); } // ImageRegistry createImageRegistry() // { // // //If we are in the UI Thread use that // if (Display.getCurrent() != null) // { // return new ImageRegistry(Display.getCurrent()); // } // // if (PlatformUI.isWorkbenchRunning()) // { // return new ImageRegistry(PlatformUI.getWorkbench().getDisplay()); // } // // //Invalid thread access if it is not the UI Thread // //and the workbench is not created. // throw new SWTError(SWT.ERROR_THREAD_INVALID_ACCESS); // } // void initializeImageRegistry(ImageRegistry reg) { // // spec'ed to do nothing // } // void loadDialogSettings() { // dialogSettings = new DialogSettings("Workbench"); //$NON-NLS-1$ // // // bug 69387: The instance area should not be created (in the call to // // #getStateLocation) if -data @none or -data @noDefault was used // IPath dataLocation = getStateLocationOrNull(); // if (dataLocation != null) { // // try r/w state area in the local file system // String readWritePath = dataLocation.append(FN_DIALOG_SETTINGS) // .toOSString(); // File settingsFile = new File(readWritePath); // if (settingsFile.exists()) { // try { // dialogSettings.load(readWritePath); // } catch (IOException e) { // // load failed so ensure we have an empty settings // dialogSettings = new DialogSettings("Workbench"); //$NON-NLS-1$ // } // // return; // } // } // // // otherwise look for bundle specific dialog settings // URL dsURL = BundleUtility.find(getBundle(), FN_DIALOG_SETTINGS); // if (dsURL == null) { // return; // } // // InputStream is = null; // try { // is = dsURL.openStream(); // BufferedReader reader = new BufferedReader( // new InputStreamReader(is, "utf-8")); //$NON-NLS-1$ // dialogSettings.load(reader); // } catch (IOException e) { // // load failed so ensure we have an empty settings // dialogSettings = new DialogSettings("Workbench"); //$NON-NLS-1$ // } finally { // try { // if (is != null) { // is.close(); // } // } catch (IOException e) { // // do nothing // } // } // } // void refreshPluginActions() { // // If the workbench is not started yet, or is no longer running, do nothing. // if (!PlatformUI.isWorkbenchRunning()) { // return; // } // // // startup() is not guaranteed to be called in the UI thread, // // but refreshPluginActions must run in the UI thread, // // so use asyncExec. See bug 6623 for more details. // Display.getDefault().asyncExec(new Runnable() { // public void run() { // WWinPluginAction.refreshActionList(); // } // }); // } // void saveDialogSettings() { // if (dialogSettings == null) { // return; // } // // try { // IPath path = getStateLocationOrNull(); // if(path == null) { // return; // } // String readWritePath = path // .append(FN_DIALOG_SETTINGS).toOSString(); // dialogSettings.save(readWritePath); // } catch (IOException e) { // // spec'ed to ignore problems // } catch (IllegalStateException e) { // // spec'ed to ignore problems // } // } void AbstractUICTKPlugin::start(ctkPluginContext* context) { Plugin::start(context); // Should only attempt refreshPluginActions() once the bundle // has been fully started. Otherwise, action delegates // can be created while in the process of creating // a triggering action delegate (if UI events are processed during startup). // Also, if the start throws an exception, the bundle will be shut down. // We don't want to have created any delegates if this happens. // See bug 63324 for more details. // bundleListener = new BundleListener() // { // public void bundleChanged(BundleEvent event) // { // if (event.getBundle() == getBundle()) // { // if (event.getType() == BundleEvent.STARTED) // { // // We're getting notified that the bundle has been started. // // Make sure it's still active. It may have been shut down between // // the time this event was queued and now. // if (getBundle().getState() == Bundle.ACTIVE) // { // refreshPluginActions(); // } // fc.removeBundleListener(this); // } // } // } // }; // context.addBundleListener(bundleListener); // bundleListener is removed in stop(BundleContext) } void AbstractUICTKPlugin::stop(ctkPluginContext* context) { Q_UNUSED(context) // try // { // if (bundleListener != null) // { // context.removeBundleListener(bundleListener); // } // saveDialogSettings(); // savePreferenceStore(); // preferenceStore = null; // if (imageRegistry != null) // imageRegistry.dispose(); // imageRegistry = null; //} Plugin::stop(context); } QIcon AbstractUICTKPlugin::ImageDescriptorFromPlugin( const QString& pluginId, const QString& imageFilePath) { if (pluginId.isEmpty() || imageFilePath.isEmpty()) { throw ctkInvalidArgumentException("argument cannot be empty"); } // if the plug-in is not ready then there is no image QSharedPointer plugin = BundleUtility::FindPlugin(pluginId); if (!BundleUtility::IsReady(plugin.data())) { return QIcon(); } QByteArray imgContent = plugin->getResource(imageFilePath); + + if (imageFilePath.endsWith(".svg", Qt::CaseInsensitive)) + imgContent = ApplyTheme(imgContent); + QImage image = QImage::fromData(imgContent); QPixmap pixmap = QPixmap::fromImage(image); return QIcon(pixmap); } QIcon AbstractUICTKPlugin::GetMissingIcon() { return QIcon(":/org.blueberry.ui.qt/icon_missing.png"); } +QByteArray AbstractUICTKPlugin::ApplyTheme(const QByteArray &originalSVG) +{ + auto styleSheet = qApp->styleSheet(); + + if (styleSheet.isEmpty()) + return originalSVG; + + QRegularExpression re; + re.setPattern(QStringLiteral("iconColor\\s*[=:]\\s*(#[0-9a-f]{6})")); + re.setPatternOptions(QRegularExpression::CaseInsensitiveOption); + auto match = re.match(styleSheet); + + auto iconColor = match.hasMatch() + ? match.captured(1) + : QStringLiteral("#000000"); + + auto themedSVG = QString(originalSVG).replace(QStringLiteral("#00ff00"), iconColor, Qt::CaseInsensitive); + + return themedSVG.toLatin1(); +} + } diff --git a/Plugins/org.blueberry.ui.qt/src/berryAbstractUICTKPlugin.h b/Plugins/org.blueberry.ui.qt/src/berryAbstractUICTKPlugin.h index 3e07ba3100..470688516e 100644 --- a/Plugins/org.blueberry.ui.qt/src/berryAbstractUICTKPlugin.h +++ b/Plugins/org.blueberry.ui.qt/src/berryAbstractUICTKPlugin.h @@ -1,294 +1,296 @@ /*=================================================================== 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. ===================================================================*/ #ifndef BERRYABSTRACTUICTKPLUGIN_H_ #define BERRYABSTRACTUICTKPLUGIN_H_ #include #include namespace berry { template class SmartPointer; struct IPreferences; struct IPreferencesService; struct IWorkbench; /** * \ingroup org_blueberry_ui_qt * * Abstract base class for plug-ins that integrate with the BlueBerry platform UI. *

* Subclasses obtain the following capabilities: *

*

* Preferences *

    *
  • The platform core runtime contains general support for plug-in * preferences (org.blueberry.core.runtime.Preferences). * This class provides appropriate conversion to the older JFace preference * API (org.blueberry.jface.preference.IPreferenceStore).
  • *
  • The method getPreferenceStore returns the JFace preference * store (cf. Plugin.getPluginPreferences which returns * a core runtime preferences object.
  • *
  • Subclasses may reimplement initializeDefaultPreferences * to set up any default values for preferences using JFace API. In this * case, initializeDefaultPluginPreferences should not be * overridden.
  • *
  • Subclasses may reimplement * initializeDefaultPluginPreferences to set up any default * values for preferences using core runtime API. In this * case, initializeDefaultPreferences should not be * overridden.
  • *
  • Preferences are also saved automatically on plug-in shutdown. * However, saving preferences immediately after changing them is * strongly recommended, since that ensures that preference settings * are not lost even in the event of a platform crash.
  • *
* Dialogs *
    *
  • The dialog store is read the first time getDialogSettings * is called.
  • *
  • The dialog store allows the plug-in to "record" important choices made * by the user in a wizard or dialog, so that the next time the * wizard/dialog is used the widgets can be defaulted to better values. A * wizard could also use it to record the last 5 values a user entered into * an editable combo - to show "recent values".
  • *
  • The dialog store is found in the file whose name is given by the * constant FN_DIALOG_STORE. A dialog store file is first * looked for in the plug-in's read/write state area; if not found there, * the plug-in's install directory is checked. * This allows a plug-in to ship with a read-only copy of a dialog store * file containing initial values for certain settings.
  • *
  • Plug-in code can call saveDialogSettings to cause settings to * be saved in the plug-in's read/write state area. A plug-in may opt to do * this each time a wizard or dialog is closed to ensure the latest * information is always safe on disk.
  • *
  • Dialog settings are also saved automatically on plug-in shutdown.
  • *
*

* For easy access to your plug-in object, use the singleton pattern. Declare a * static variable in your plug-in class for the singleton. Store the first * (and only) instance of the plug-in class in the singleton when it is created. * Then access the singleton when needed through a static getDefault * method. *

*

* See the description on {@link Plugin}. *

*/ class BERRY_UI_QT AbstractUICTKPlugin : public Plugin { Q_OBJECT private: /** * The name of the dialog settings file (value * "dialog_settings.xml"). */ static const QString FN_DIALOG_SETTINGS; /** * Storage for dialog and wizard data; null if not yet * initialized. */ //DialogSettings dialogSettings = null; /** * Storage for preferences. */ mutable IPreferencesService* preferencesService; /** * The bundle listener used for kicking off refreshPluginActions(). */ //BundleListener bundleListener; public: /** * Creates an abstract UI plug-in runtime object. *

* Plug-in runtime classes are ctkPluginActivators and so must * have an default constructor. This method is called by the runtime when * the associated bundle is being activated. */ AbstractUICTKPlugin(); /** * Returns the dialog settings for this UI plug-in. * The dialog settings is used to hold persistent state data for the various * wizards and dialogs of this plug-in in the context of a workbench. *

* If an error occurs reading the dialog store, an empty one is quietly created * and returned. *

*

* Subclasses may override this method but are not expected to. *

* * @return the dialog settings */ // IDialogSettings getDialogSettings(); /** * Returns the preferences service for this UI plug-in. * This preferences service is used to hold persistent settings for this plug-in in * the context of a workbench. Some of these settings will be user controlled, * whereas others may be internal setting that are never exposed to the user. *

* If an error occurs reading the preferences service, an empty preference service is * quietly created, initialized with defaults, and returned. *

* * @return the preferences service */ IPreferencesService* GetPreferencesService() const; SmartPointer GetPreferences() const; /** * Returns the Platform UI workbench. *

* This method exists as a convenience for plugin implementors. The * workbench can also be accessed by invoking PlatformUI.getWorkbench(). *

* @return IWorkbench the workbench for this plug-in */ IWorkbench* GetWorkbench(); protected: /** * Returns a new image registry for this plugin-in. The registry will be * used to manage images which are frequently used by the plugin-in. *

* The default implementation of this method creates an empty registry. * Subclasses may override this method if needed. *

* * @return ImageRegistry the resulting registry. * @see #getImageRegistry */ // ImageRegistry createImageRegistry(); /** * Initializes an image registry with images which are frequently used by the * plugin. *

* The image registry contains the images used by this plug-in that are very * frequently used and so need to be globally shared within the plug-in. Since * many OSs have a severe limit on the number of images that can be in memory * at any given time, each plug-in should only keep a small number of images in * its registry. *

* Implementors should create a JFace image descriptor for each frequently used * image. The descriptors describe how to create/find the image should it be needed. * The image described by the descriptor is not actually allocated until someone * retrieves it. *

* Subclasses may override this method to fill the image registry. *

* @param reg the registry to initalize * * @see #getImageRegistry */ // void initializeImageRegistry(ImageRegistry reg); /** * Loads the dialog settings for this plug-in. * The default implementation first looks for a standard named file in the * plug-in's read/write state area; if no such file exists, the plug-in's * install directory is checked to see if one was installed with some default * settings; if no file is found in either place, a new empty dialog settings * is created. If a problem occurs, an empty settings is silently used. *

* This framework method may be overridden, although this is typically * unnecessary. *

*/ // void loadDialogSettings(); /** * Refreshes the actions for the plugin. * This method is called from startup. *

* This framework method may be overridden, although this is typically * unnecessary. *

*/ // void refreshPluginActions(); /** * Saves this plug-in's dialog settings. * Any problems which arise are silently ignored. */ // void saveDialogSettings(); public: /** * The AbstractUIPlugin implementation of this Plugin * method refreshes the plug-in actions. Subclasses may extend this method, * but must send super first. */ void start(ctkPluginContext* context) override; /** * The AbstractUIPlugin implementation of this Plugin * method saves this plug-in's preference and dialog stores and shuts down * its image registry (if they are in use). Subclasses may extend this * method, but must send super last. A try-finally statement should * be used where necessary to ensure that super.shutdown() is * always done. */ void stop(ctkPluginContext* context) override; /** * Creates and returns a new image descriptor for an image file located * within the specified plug-in. *

* This is a convenience method that simply locates the image file in * within the plug-in (no image registries are involved). The path is * relative to the root of the plug-in, and takes into account files * coming from plug-in fragments. The path may include $arg$ elements. * However, the path must not have a leading "." or path separator. * Clients should use a path like "icons/mysample.gif" rather than * "./icons/mysample.gif" or "/icons/mysample.gif". *

* * @param pluginId the id of the plug-in containing the image file; * null is returned if the plug-in does not exist * @param imageFilePath the relative path of the image file, relative to the * root of the plug-in; the path must be legal * @return an image descriptor, or null if no image * could be found */ static QIcon ImageDescriptorFromPlugin( const QString& pluginId, const QString& imageFilePath); static QIcon GetMissingIcon(); + + static QByteArray ApplyTheme(const QByteArray &originalSVG); }; } // namespace berry #endif /*BERRYABSTRACTUICTKPLUGIN_H_*/ diff --git a/Plugins/org.mitk.gui.qt.cest/resources/icon.svg b/Plugins/org.mitk.gui.qt.cest/resources/icon.svg index 5deb6eceda..14c1f39330 100644 --- a/Plugins/org.mitk.gui.qt.cest/resources/icon.svg +++ b/Plugins/org.mitk.gui.qt.cest/resources/icon.svg @@ -1,85 +1,85 @@ image/svg+xml CEST diff --git a/Plugins/org.mitk.gui.qt.datamanager/resources/data-manager.svg b/Plugins/org.mitk.gui.qt.datamanager/resources/data-manager.svg index 8f4551995c..fc92b414ed 100644 --- a/Plugins/org.mitk.gui.qt.datamanager/resources/data-manager.svg +++ b/Plugins/org.mitk.gui.qt.datamanager/resources/data-manager.svg @@ -1,2 +1,54 @@ - - \ No newline at end of file + + + + + + image/svg+xml + + + + + + + + diff --git a/Plugins/org.mitk.gui.qt.igt.app.echotrack/resources/icon_US_calibration.svg b/Plugins/org.mitk.gui.qt.igt.app.echotrack/resources/icon_US_calibration.svg index a5d4c818d6..b5aef05426 100644 --- a/Plugins/org.mitk.gui.qt.igt.app.echotrack/resources/icon_US_calibration.svg +++ b/Plugins/org.mitk.gui.qt.igt.app.echotrack/resources/icon_US_calibration.svg @@ -1,158 +1,191 @@ image/svg+xml \ No newline at end of file + id="path44" + style="stroke:none;fill:#00ff00;fill-opacity:1" /> \ No newline at end of file diff --git a/Plugins/org.mitk.gui.qt.igtexamples/resources/icon_igt_simple_example.svg b/Plugins/org.mitk.gui.qt.igtexamples/resources/icon_igt_simple_example.svg index c71a015640..3c3da7859a 100644 --- a/Plugins/org.mitk.gui.qt.igtexamples/resources/icon_igt_simple_example.svg +++ b/Plugins/org.mitk.gui.qt.igtexamples/resources/icon_igt_simple_example.svg @@ -1,180 +1,244 @@ image/svg+xml \ No newline at end of file + d="M7.5,19.6c3.5,0,6.4,2.9,6.4,6.4c0,3.5-2.9,6.4-6.4,6.4c-3.5,0-6.4-2.9-6.4-6.4C1.1,22.5,4,19.6,7.5,19.6 M7.5,18.5 C3.4,18.5,0,21.9,0,26c0,4.1,3.4,7.5,7.5,7.5c4.1,0,7.5-3.4,7.5-7.5C15,21.9,11.6,18.5,7.5,18.5L7.5,18.5z" + style="fill:#00ff00;fill-opacity:1;stroke:none" /> \ No newline at end of file diff --git a/Plugins/org.mitk.gui.qt.igtexamples/resources/icon_igt_tracking_lab.svg b/Plugins/org.mitk.gui.qt.igtexamples/resources/icon_igt_tracking_lab.svg index dd7c6fe613..d8e1fc38b3 100644 --- a/Plugins/org.mitk.gui.qt.igtexamples/resources/icon_igt_tracking_lab.svg +++ b/Plugins/org.mitk.gui.qt.igtexamples/resources/icon_igt_tracking_lab.svg @@ -1,201 +1,281 @@ image/svg+xml \ No newline at end of file + class="st21" + style="fill:#00ff00;fill-opacity:1;stroke:none" /> \ No newline at end of file diff --git a/Plugins/org.mitk.gui.qt.igtexamples/resources/icon_openigtlink_client_example.svg b/Plugins/org.mitk.gui.qt.igtexamples/resources/icon_openigtlink_client_example.svg index b628a67e41..7a3e25ec88 100644 --- a/Plugins/org.mitk.gui.qt.igtexamples/resources/icon_openigtlink_client_example.svg +++ b/Plugins/org.mitk.gui.qt.igtexamples/resources/icon_openigtlink_client_example.svg @@ -1,127 +1,169 @@ image/svg+xml \ No newline at end of file + d="M36.4,35.3h-1.3v-1.2h1.3V35.3z" + style="fill:#00ff00;fill-opacity:1;stroke:none" /> \ No newline at end of file diff --git a/Plugins/org.mitk.gui.qt.igtexamples/resources/icon_openigtlink_extended_example.svg b/Plugins/org.mitk.gui.qt.igtexamples/resources/icon_openigtlink_extended_example.svg index bd3940f1f0..5472e725c4 100644 --- a/Plugins/org.mitk.gui.qt.igtexamples/resources/icon_openigtlink_extended_example.svg +++ b/Plugins/org.mitk.gui.qt.igtexamples/resources/icon_openigtlink_extended_example.svg @@ -1,130 +1,174 @@ image/svg+xml \ No newline at end of file + d="M40.5,37h-1.4v-1.3h1.4V37z" + style="fill:#00ff00;fill-opacity:1;stroke:none" /> \ No newline at end of file diff --git a/Plugins/org.mitk.gui.qt.igtexamples/resources/icon_openigtlink_provider_example.svg b/Plugins/org.mitk.gui.qt.igtexamples/resources/icon_openigtlink_provider_example.svg index a0ebc57f53..d6c46ace8a 100644 --- a/Plugins/org.mitk.gui.qt.igtexamples/resources/icon_openigtlink_provider_example.svg +++ b/Plugins/org.mitk.gui.qt.igtexamples/resources/icon_openigtlink_provider_example.svg @@ -1,127 +1,169 @@ image/svg+xml \ No newline at end of file + d="M1.3,34.5c0,0.1,0.1,0.2,0.2,0.2h3.1v6.5c0,0.1,0.1,0.2,0.2,0.2H13c0.1,0,0.2-0.1,0.2-0.2v-6.5h3.1c0.1,0,0.2-0.1,0.2-0.2 c0-0.1,0-0.2-0.1-0.3l-7.4-7.4c0,0-0.1-0.1-0.2-0.1c-0.1,0-0.1,0-0.2,0.1l-7.4,7.4C1.3,34.3,1.3,34.4,1.3,34.5z" + style="fill:#00ff00;fill-opacity:1;stroke:none" /> \ No newline at end of file diff --git a/Plugins/org.mitk.gui.qt.igttracking/resources/iconTrackingDataPlayer.svg b/Plugins/org.mitk.gui.qt.igttracking/resources/iconTrackingDataPlayer.svg index d2cdb28dea..5b1078c8f7 100644 --- a/Plugins/org.mitk.gui.qt.igttracking/resources/iconTrackingDataPlayer.svg +++ b/Plugins/org.mitk.gui.qt.igttracking/resources/iconTrackingDataPlayer.svg @@ -1,150 +1,228 @@ - + - - \ No newline at end of file diff --git a/Plugins/org.mitk.gui.qt.igttracking/resources/iconTrackingRegistration.svg b/Plugins/org.mitk.gui.qt.igttracking/resources/iconTrackingRegistration.svg index a2eb9d6b82..89fa8f772c 100644 --- a/Plugins/org.mitk.gui.qt.igttracking/resources/iconTrackingRegistration.svg +++ b/Plugins/org.mitk.gui.qt.igttracking/resources/iconTrackingRegistration.svg @@ -1,177 +1,263 @@ - + - - \ No newline at end of file diff --git a/Plugins/org.mitk.gui.qt.igttracking/resources/iconTrackingToolCalibration.svg b/Plugins/org.mitk.gui.qt.igttracking/resources/iconTrackingToolCalibration.svg index 0242b39bf5..fc06c8a7f8 100644 --- a/Plugins/org.mitk.gui.qt.igttracking/resources/iconTrackingToolCalibration.svg +++ b/Plugins/org.mitk.gui.qt.igttracking/resources/iconTrackingToolCalibration.svg @@ -1,274 +1,296 @@ image/svg+xml \ No newline at end of file + style="fill:#00ff00;fill-opacity:1;stroke:none" /> \ No newline at end of file diff --git a/Plugins/org.mitk.gui.qt.igttracking/resources/iconTrackingToolManager.svg b/Plugins/org.mitk.gui.qt.igttracking/resources/iconTrackingToolManager.svg index 24e7702487..a54017df85 100644 --- a/Plugins/org.mitk.gui.qt.igttracking/resources/iconTrackingToolManager.svg +++ b/Plugins/org.mitk.gui.qt.igttracking/resources/iconTrackingToolManager.svg @@ -1,152 +1,231 @@ - + - - \ No newline at end of file diff --git a/Plugins/org.mitk.gui.qt.igttracking/resources/iconTrackingToolbox.svg b/Plugins/org.mitk.gui.qt.igttracking/resources/iconTrackingToolbox.svg index 250cd8bf18..20b65f0aac 100644 --- a/Plugins/org.mitk.gui.qt.igttracking/resources/iconTrackingToolbox.svg +++ b/Plugins/org.mitk.gui.qt.igttracking/resources/iconTrackingToolbox.svg @@ -1,142 +1,218 @@ - + - - \ No newline at end of file diff --git a/Plugins/org.mitk.gui.qt.imagecropper/resources/crop.svg b/Plugins/org.mitk.gui.qt.imagecropper/resources/crop.svg index cd7b397a64..50a086ca35 100644 --- a/Plugins/org.mitk.gui.qt.imagecropper/resources/crop.svg +++ b/Plugins/org.mitk.gui.qt.imagecropper/resources/crop.svg @@ -1,2 +1,31 @@ - - \ No newline at end of file + + + + + + image/svg+xml + + + + + + + + diff --git a/Plugins/org.mitk.gui.qt.measurementtoolbox/resources/bar-chart.svg b/Plugins/org.mitk.gui.qt.measurementtoolbox/resources/bar-chart.svg index 9b0b9ffb1f..308bf09546 100644 --- a/Plugins/org.mitk.gui.qt.measurementtoolbox/resources/bar-chart.svg +++ b/Plugins/org.mitk.gui.qt.measurementtoolbox/resources/bar-chart.svg @@ -1,2 +1,54 @@ - - \ No newline at end of file + + + + + + image/svg+xml + + + + + + + + diff --git a/Plugins/org.mitk.gui.qt.moviemaker/resources/camera.svg b/Plugins/org.mitk.gui.qt.moviemaker/resources/camera.svg index 52e9af960e..2d02fb8175 100644 --- a/Plugins/org.mitk.gui.qt.moviemaker/resources/camera.svg +++ b/Plugins/org.mitk.gui.qt.moviemaker/resources/camera.svg @@ -1,2 +1,54 @@ - - \ No newline at end of file + + + + + + image/svg+xml + + + + + + + + diff --git a/Plugins/org.mitk.gui.qt.moviemaker/resources/video-camera.svg b/Plugins/org.mitk.gui.qt.moviemaker/resources/video-camera.svg index 8cb3a48fdf..2ea461af15 100644 --- a/Plugins/org.mitk.gui.qt.moviemaker/resources/video-camera.svg +++ b/Plugins/org.mitk.gui.qt.moviemaker/resources/video-camera.svg @@ -1,2 +1,54 @@ - - \ No newline at end of file + + + + + + image/svg+xml + + + + + + + + diff --git a/Plugins/org.mitk.gui.qt.openigtlink/resources/icon_openigtlink_manager.svg b/Plugins/org.mitk.gui.qt.openigtlink/resources/icon_openigtlink_manager.svg index 1a8e1e4562..d49cad2efc 100644 --- a/Plugins/org.mitk.gui.qt.openigtlink/resources/icon_openigtlink_manager.svg +++ b/Plugins/org.mitk.gui.qt.openigtlink/resources/icon_openigtlink_manager.svg @@ -1,158 +1,238 @@ - + - - \ No newline at end of file diff --git a/Plugins/org.mitk.gui.qt.photoacoustics.imageprocessing/resources/pai.svg b/Plugins/org.mitk.gui.qt.photoacoustics.imageprocessing/resources/pai.svg index 96fe24a43e..da31b05f86 100644 --- a/Plugins/org.mitk.gui.qt.photoacoustics.imageprocessing/resources/pai.svg +++ b/Plugins/org.mitk.gui.qt.photoacoustics.imageprocessing/resources/pai.svg @@ -1,24 +1,49 @@ image/svg+xml \ No newline at end of file + d="M 1725.825,706 1728,986 c -14.667,55.333 -44.833,100.833 -90.5,136.5 -45.667,35.667 -97.833,53.5 -156.5,53.5 l 0,32 c 0,9.333 -3,17 -9,23 -6,6 -13.667,9 -23,9 l -64,0 c -9.333,0 -17,-3 -23,-9 -6,-6 -9,-13.667 -9,-23 l 0,-576 c 0,-9.333 3,-17 9,-23 6,-6 13.667,-9 23,-9 l 64,0 c 9.333,0 17,3 23,9 6,6 9,13.667 9,23 l 0,32 c 47.333,0 90.667,11.833 130,35.5 l -75,60.5 c 0,0 -9.333,-221.667 -68,-309 -58.667,-87.333 -147.5,-157 -246.5,-209 -99,-52 -214.167,-78 -325.5,-78 -111.333,0 -226.5,26 -325.5,78 -99,52 -187.833,121.667 -246.5,209 -58.667,87.333 -68,309 -68,309 L 181,699.5 C 220.333,675.833 263.667,664 311,664 l 0,-32 c 0,-9.333 3,-17 9,-23 6,-6 13.667,-9 23,-9 l 64,0 c 9.333,0 17,3 23,9 6,6 9,13.667 9,23 l 0,576 c 0,9.333 -3,17 -9,23 -6,6 -13.667,9 -23,9 l -64,0 c -9.333,0 -17,-3 -23,-9 -6,-6 -9,-13.667 -9,-23 l 0,-32 c -58.667,0 -110.833,-17.833 -156.5,-53.5 C 108.833,1086.833 78.667,1041.333 64,986 L 64,760 C 64,659.333 86.333,562.333 131,469 175.667,375.667 235.333,294.833 310,226.5 384.667,158.167 473.333,103.667 576,63 678.667,22.333 785.333,2 896,2 c 110.667,0 217.333,20.333 320,61 102.667,40.667 191.333,95.167 266,163.5 74.667,68.333 134.333,149.167 179,242.5 44.667,93.333 67,190.333 67,291" + style="stroke:none;fill:#00ff00;fill-opacity:1" /> \ No newline at end of file diff --git a/Plugins/org.mitk.gui.qt.stdmultiwidgeteditor/resources/StdMultiWidgetEditor.svg b/Plugins/org.mitk.gui.qt.stdmultiwidgeteditor/resources/StdMultiWidgetEditor.svg index 9d13716906..31d6ae02ac 100644 --- a/Plugins/org.mitk.gui.qt.stdmultiwidgeteditor/resources/StdMultiWidgetEditor.svg +++ b/Plugins/org.mitk.gui.qt.stdmultiwidgeteditor/resources/StdMultiWidgetEditor.svg @@ -1,31 +1,55 @@ + id="svg2" + inkscape:version="0.91 r13725" + sodipodi:docname="StdMultiWidgetEditor.svg"> + image/svg+xml - + + style="fill:#00ff00;fill-opacity:1;stroke:none" /> diff --git a/Plugins/org.mitk.gui.qt.toftutorial/resources/icon_tof_tutorial.svg b/Plugins/org.mitk.gui.qt.toftutorial/resources/icon_tof_tutorial.svg index da09f69b0d..fe197af010 100644 --- a/Plugins/org.mitk.gui.qt.toftutorial/resources/icon_tof_tutorial.svg +++ b/Plugins/org.mitk.gui.qt.toftutorial/resources/icon_tof_tutorial.svg @@ -1,112 +1,162 @@ - + - - \ No newline at end of file diff --git a/Plugins/org.mitk.gui.qt.tofutil/resources/icon_tof_screenshot.svg b/Plugins/org.mitk.gui.qt.tofutil/resources/icon_tof_screenshot.svg index faa74123be..cee61c79aa 100644 --- a/Plugins/org.mitk.gui.qt.tofutil/resources/icon_tof_screenshot.svg +++ b/Plugins/org.mitk.gui.qt.tofutil/resources/icon_tof_screenshot.svg @@ -1,106 +1,187 @@ - + - - \ No newline at end of file diff --git a/Plugins/org.mitk.gui.qt.tofutil/resources/icon_tof_settings.svg b/Plugins/org.mitk.gui.qt.tofutil/resources/icon_tof_settings.svg index 3a8f838169..f999c4dd3a 100644 --- a/Plugins/org.mitk.gui.qt.tofutil/resources/icon_tof_settings.svg +++ b/Plugins/org.mitk.gui.qt.tofutil/resources/icon_tof_settings.svg @@ -1,111 +1,149 @@ - + - - \ No newline at end of file diff --git a/Plugins/org.mitk.gui.qt.tofutil/resources/icon_tof_util.svg b/Plugins/org.mitk.gui.qt.tofutil/resources/icon_tof_util.svg index 4b15fdec7a..90db883466 100644 --- a/Plugins/org.mitk.gui.qt.tofutil/resources/icon_tof_util.svg +++ b/Plugins/org.mitk.gui.qt.tofutil/resources/icon_tof_util.svg @@ -1,93 +1,140 @@ - + - - \ No newline at end of file diff --git a/Plugins/org.mitk.gui.qt.ultrasound/resources/icon_ultrasound.svg b/Plugins/org.mitk.gui.qt.ultrasound/resources/icon_ultrasound.svg index 42c064b761..87eaae02bb 100644 --- a/Plugins/org.mitk.gui.qt.ultrasound/resources/icon_ultrasound.svg +++ b/Plugins/org.mitk.gui.qt.ultrasound/resources/icon_ultrasound.svg @@ -1,96 +1,148 @@ - + - - \ No newline at end of file