diff --git a/Modules/IGTUI/Qmitk/QmitkFiducialRegistrationWidget.ui b/Modules/IGTUI/Qmitk/QmitkFiducialRegistrationWidget.ui index 61dee043e6..843344e01c 100755 --- a/Modules/IGTUI/Qmitk/QmitkFiducialRegistrationWidget.ui +++ b/Modules/IGTUI/Qmitk/QmitkFiducialRegistrationWidget.ui @@ -1,361 +1,279 @@ QmitkFiducialRegistrationWidget 0 0 - 568 - 388 + 569 + 402 0 0 Form - + Fiducial Registration method true Static true true Hybrid Continuous false - + + + + + + Move Image Points + + + + + + + + 0 + 40 + + + + <html><head/><body><p>Find fiducial correspondences (needs 6+ fiducial pairs)</p></body></html> + + + + Find fiducial + correspondences + + + + + + + 0 0 0 40 Register (object is moved) - + - + 0 0 Image / object / moving fiducials - - - 6 - - - 6 - - - 6 - - - 6 - - + + - + 0 0 - - - - - 0 - 0 - - + + 0 - 37 + 55 - - - 16777215 - 37 - - - - + + QFrame::NoFrame - - Qt::AlignCenter + + QFrame::Raised - - false - - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - + + 0 0 0 35 Add image fiducial - + 0 0 Tracker / fixed fiducials - - - 6 - - - 6 - - - 6 - - - 6 - - + + - + 0 0 - - - - - 0 - 0 - - + + 0 - 37 - - - - - 16777215 - 37 + 55 - - - - - Qt::AlignCenter + + QFrame::NoFrame - - false + + QFrame::Raised - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - + 0 0 0 35 &Add current -instrument position + instrument position - + 0 0 Status: Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop Qt::AlignCenter - - - - - - Move Image Points - - - - - - - - 0 - 40 - - - - <html><head/><body><p>Find fiducial correspondences (needs 6+ fiducial pairs)</p></body></html> - - - Find fiducial - correspondences - - - - - m_RegisterFiducialsBtn m_gbFiducialRegistration QmitkPointListWidget QListWidget
QmitkPointListWidget.h
diff --git a/Modules/QtWidgetsExt/include/QmitkPointListWidget.h b/Modules/QtWidgetsExt/include/QmitkPointListWidget.h index f8884e2e29..c667dcad51 100644 --- a/Modules/QtWidgetsExt/include/QmitkPointListWidget.h +++ b/Modules/QtWidgetsExt/include/QmitkPointListWidget.h @@ -1,154 +1,155 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) 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 QmitkPointListWidget_H #define QmitkPointListWidget_H #include "MitkQtWidgetsExtExports.h" #include #include #include #include #include #include #include +#include /*! * \brief Widget for regular operations on point sets * * Displays a list of point coordinates and a couple of * buttons which * * \li enable point set interaction * \li clear all points from a set * \li load points from file * \li save points to file * * The user/application module of this widget needs to * assign a mitk::PointSet object to this widget. The user * also has to decide whether it wants to put the point set * into (a) DataStorage. This widget will not add/remove * point sets to DataStorage. * * If the render window crosshair should be moved to the * currently selected point, the widget user has to provide * a QmitkStdMultiWidget object. */ class MITKQTWIDGETSEXT_EXPORT QmitkPointListWidget : public QWidget { Q_OBJECT public: QmitkPointListWidget(QWidget *parent = 0, int orientation = 0); ~QmitkPointListWidget() override; void SetupConnections(); /** * @brief Add a mitk::SliceNavigationController instance. * @param snc The mitk::SliceNavigationController instance. * * This method adds \c snc to the set of slice navigation controllers which are * used to navigate to the selected point. */ void AddSliceNavigationController(mitk::SliceNavigationController *snc); /** * @brief Remove a mitk::SliceNavigationController instance. * @param snc The mitk::SliceNavigationController instance. * * This method removes \c snc from the set of slice navigation controllers which are * used to navigate to the selected point. */ void RemoveSliceNavigationController(mitk::SliceNavigationController *snc); /** @brief assign a point set (contained in a node of DataStorage) for observation */ void SetPointSet(mitk::PointSet *newPs); mitk::PointSet *GetPointSet(); /** @brief assign a point set (contained in a node of DataStorage) for observation */ void SetPointSetNode(mitk::DataNode *newNode); mitk::DataNode *GetPointSetNode(); /** @brief assign a QmitkStdMultiWidget for updating render window crosshair */ void SetMultiWidget(QmitkStdMultiWidget *multiWidget); /** @brief itk observer for node "delete" events */ void OnNodeDeleted(const itk::EventObject &e); /** @brief Unselects the edit button if it is selected. */ void UnselectEditButton(); public slots: void DeactivateInteractor(bool deactivate); void EnableEditButton(bool enabled); signals: /** @brief signal to inform about the state of the EditPointSetButton, whether an interactor for setting points is * active or not */ void EditPointSets(bool active); /// signal to inform that the selection of a point in the pointset has changed void PointSelectionChanged(); /// signal to inform about cleared or loaded point sets void PointListChanged(); protected slots: void OnBtnSavePoints(); void OnBtnLoadPoints(); void RemoveSelectedPoint(); void MoveSelectedPointDown(); void MoveSelectedPointUp(); void OnBtnAddPoint(bool checked); void OnBtnAddPointManually(); /*! \brief pass through signal from PointListView that point selection has changed */ void OnPointSelectionChanged(); void OnListDoubleClick(); protected: void SetupUi(); - void updateTimeSlotStatus(); + void updateTimeStepStatus(); void ObserveNewNode(mitk::DataNode *node); QmitkPointListView *m_PointListView; mitk::DataNode::Pointer m_PointSetNode; int m_Orientation; QPushButton *m_MovePointUpBtn; QPushButton *m_MovePointDownBtn; QPushButton *m_RemovePointBtn; QPushButton *m_SavePointsBtn; QPushButton *m_LoadPointsBtn; QPushButton *m_ToggleAddPoint; QPushButton *m_AddPoint; - QLabel *m_TimeSlotDisplay; + QLabel *m_TimeStepDisplay; mitk::DataInteractor::Pointer m_DataInteractor; int m_TimeStep; bool m_EditAllowed; unsigned long m_NodeObserverTag; QmitkPointListModel *m_PointListModel; }; #endif diff --git a/Modules/QtWidgetsExt/src/QmitkPointListWidget.cpp b/Modules/QtWidgetsExt/src/QmitkPointListWidget.cpp index 61636268a7..d97c49f65e 100644 --- a/Modules/QtWidgetsExt/src/QmitkPointListWidget.cpp +++ b/Modules/QtWidgetsExt/src/QmitkPointListWidget.cpp @@ -1,493 +1,494 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) 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 "QmitkPointListWidget.h" #include "QmitkPointListView.h" #include "QmitkPointListModel.h" #include #include #include #include #include + #include #include #include QmitkPointListWidget::QmitkPointListWidget(QWidget *parent, int orientation) : QWidget(parent), m_PointListView(nullptr), m_PointSetNode(nullptr), m_Orientation(0), m_MovePointUpBtn(nullptr), m_MovePointDownBtn(nullptr), m_RemovePointBtn(nullptr), m_SavePointsBtn(nullptr), m_LoadPointsBtn(nullptr), m_ToggleAddPoint(nullptr), m_AddPoint(nullptr), m_DataInteractor(nullptr), m_TimeStep(0), m_EditAllowed(true), m_NodeObserverTag(0), - m_TimeSlotDisplay(nullptr) + m_TimeStepDisplay(nullptr) { m_PointListView = new QmitkPointListView(); if (orientation != 0) m_Orientation = orientation; SetupUi(); SetupConnections(); ObserveNewNode(nullptr); } QmitkPointListWidget::~QmitkPointListWidget() { m_DataInteractor = nullptr; if (m_PointSetNode && m_NodeObserverTag) { m_PointSetNode->RemoveObserver(m_NodeObserverTag); m_NodeObserverTag = 0; } delete m_PointListView; } void QmitkPointListWidget::SetupConnections() { connect(this->m_LoadPointsBtn, SIGNAL(clicked()), this, SLOT(OnBtnLoadPoints())); connect(this->m_SavePointsBtn, SIGNAL(clicked()), this, SLOT(OnBtnSavePoints())); connect(this->m_MovePointUpBtn, SIGNAL(clicked()), this, SLOT(MoveSelectedPointUp())); connect(this->m_MovePointDownBtn, SIGNAL(clicked()), this, SLOT(MoveSelectedPointDown())); connect(this->m_RemovePointBtn, SIGNAL(clicked()), this, SLOT(RemoveSelectedPoint())); connect(this->m_ToggleAddPoint, SIGNAL(toggled(bool)), this, SLOT(OnBtnAddPoint(bool))); connect(this->m_AddPoint, SIGNAL(clicked()), this, SLOT(OnBtnAddPointManually())); connect(this->m_PointListView, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(OnListDoubleClick())); connect(this->m_PointListView, SIGNAL(SignalPointSelectionChanged()), this, SLOT(OnPointSelectionChanged())); - connect(this->m_PointListView->m_TimeStepFaderLabel, SIGNAL(m_PointListView->wheelEvent(QWheelEvent)), this, SLOT(updateTimeSlotStatus())); + connect(this->m_PointListView->m_TimeStepFaderLabel, SIGNAL(m_PointListView->wheelEvent(QWheelEvent)), this, SLOT(updateTimeStepStatus())); } void QmitkPointListWidget::SetupUi() { // Setup the buttons m_ToggleAddPoint = new QPushButton(); m_ToggleAddPoint->setMaximumSize(25, 25); m_ToggleAddPoint->setCheckable(true); m_ToggleAddPoint->setToolTip("Toggle point editing (use SHIFT + Left Mouse Button to add Points)"); QIcon iconAdd(":/QtWidgetsExt/btnSetPoints.xpm"); m_ToggleAddPoint->setIcon(iconAdd); m_AddPoint = new QPushButton(); m_AddPoint->setMaximumSize(25, 25); m_AddPoint->setToolTip("Manually add point"); QIcon iconAddManually(":/QtWidgetsExt/btnSetPointsManually.xpm"); m_AddPoint->setIcon(iconAddManually); m_RemovePointBtn = new QPushButton(); m_RemovePointBtn->setMaximumSize(25, 25); const QIcon iconDel(":/QtWidgetsExt/btnClear.xpm"); m_RemovePointBtn->setIcon(iconDel); m_RemovePointBtn->setToolTip("Erase one point from list (Hotkey: DEL)"); m_MovePointUpBtn = new QPushButton(); m_MovePointUpBtn->setMaximumSize(25, 25); const QIcon iconUp(":/QtWidgetsExt/btnUp.xpm"); m_MovePointUpBtn->setIcon(iconUp); m_MovePointUpBtn->setToolTip("Swap selected point upwards (Hotkey: F2)"); m_MovePointDownBtn = new QPushButton(); m_MovePointDownBtn->setMaximumSize(25, 25); const QIcon iconDown(":/QtWidgetsExt/btnDown.xpm"); m_MovePointDownBtn->setIcon(iconDown); m_MovePointDownBtn->setToolTip("Swap selected point downwards (Hotkey: F3)"); m_SavePointsBtn = new QPushButton(); m_SavePointsBtn->setMaximumSize(25, 25); QIcon iconSave(":/QtWidgetsExt/btnSave.xpm"); m_SavePointsBtn->setIcon(iconSave); m_SavePointsBtn->setToolTip("Save points to file"); m_LoadPointsBtn = new QPushButton(); m_LoadPointsBtn->setMaximumSize(25, 25); QIcon iconLoad(":/QtWidgetsExt/btnLoad.xpm"); m_LoadPointsBtn->setIcon(iconLoad); m_LoadPointsBtn->setToolTip("Load list of points from file (REPLACES current content)"); int i; QBoxLayout *lay1; QBoxLayout *lay2; QBoxLayout *lay3; switch (m_Orientation) { case 0: lay1 = new QVBoxLayout(this); lay2 = new QHBoxLayout(); i = 0; break; case 1: lay1 = new QHBoxLayout(this); lay2 = new QVBoxLayout(); i = -1; break; case 2: lay1 = new QHBoxLayout(this); lay2 = new QVBoxLayout(); i = 0; break; default: lay1 = new QVBoxLayout(this); lay2 = new QHBoxLayout(); i = -1; break; } // setup Layouts this->setLayout(lay1); lay2->stretch(true); lay2->addWidget(m_ToggleAddPoint); lay2->addWidget(m_AddPoint); lay2->addWidget(m_RemovePointBtn); lay2->addWidget(m_MovePointUpBtn); lay2->addWidget(m_MovePointDownBtn); lay2->addWidget(m_SavePointsBtn); lay2->addWidget(m_LoadPointsBtn); // setup Labels - m_TimeSlotDisplay = new QLabel(); + m_TimeStepDisplay = new QLabel(); lay3 = new QHBoxLayout(); - m_TimeSlotDisplay->setMaximumSize(50, 15); + m_TimeStepDisplay->setMaximumSize(50, 15); m_PointListView->m_TimeStepFaderLabel->setMaximumSize(10, 15); lay3->stretch(true); lay3->setAlignment(Qt::AlignLeft); - lay3->addWidget(m_TimeSlotDisplay); + lay3->addWidget(m_TimeStepDisplay); lay3->addWidget(m_PointListView->m_TimeStepFaderLabel); - m_TimeSlotDisplay->setText("Time Step: "); + m_TimeStepDisplay->setText("Time Step: "); m_PointListModel = new QmitkPointListModel; m_PointListView->m_TimeStepFaderLabel->setText(QString("%1").arg((this->m_PointListModel)->GetTimeStep())); //Add Layouts lay1->insertWidget(i, m_PointListView); this->setLayout(lay1); lay1->addLayout(lay2); lay1->addLayout(lay3); } -void QmitkPointListWidget::updateTimeSlotStatus() +void QmitkPointListWidget::updateTimeStepStatus() { m_PointListView->m_TimeStepFaderLabel = new QLabel(this); m_PointListView->m_TimeStepFaderLabel->setVisible(true); } void QmitkPointListWidget::SetPointSet(mitk::PointSet *newPs) { if (newPs == nullptr) return; this->m_PointSetNode->SetData(newPs); dynamic_cast(this->m_PointListView->model())->SetPointSetNode(m_PointSetNode); ObserveNewNode(m_PointSetNode); } void QmitkPointListWidget::SetPointSetNode(mitk::DataNode *newNode) { if (m_DataInteractor.IsNotNull()) m_DataInteractor->SetDataNode(newNode); ObserveNewNode(newNode); dynamic_cast(this->m_PointListView->model())->SetPointSetNode(newNode); } void QmitkPointListWidget::OnBtnSavePoints() { if ((dynamic_cast(m_PointSetNode->GetData())) == nullptr) return; // don't write empty point sets. If application logic requires something else then do something else. if ((dynamic_cast(m_PointSetNode->GetData()))->GetSize() == 0) return; // take the previously defined name of node as proposal for filename std::string nodeName = m_PointSetNode->GetName(); nodeName = "/" + nodeName + ".mps"; QString fileNameProposal = QString(); fileNameProposal.append(nodeName.c_str()); QString aFilename = QFileDialog::getSaveFileName( nullptr, "Save point set", QDir::currentPath() + fileNameProposal, "MITK Pointset (*.mps)"); if (aFilename.isEmpty()) return; try { mitk::IOUtil::Save(m_PointSetNode->GetData(), aFilename.toStdString()); } catch (...) { QMessageBox::warning(this, "Save point set", QString("File writer reported problems writing %1\n\n" "PLEASE CHECK output file!") .arg(aFilename)); } } void QmitkPointListWidget::OnBtnLoadPoints() { // get the name of the file to load QString filename = QFileDialog::getOpenFileName(nullptr, "Open MITK Pointset", "", "MITK Point Sets (*.mps)"); if (filename.isEmpty()) return; // attempt to load file try { mitk::PointSet::Pointer pointSet = dynamic_cast(mitk::IOUtil::Load(filename.toStdString())[0].GetPointer()); if (pointSet.IsNull()) { QMessageBox::warning(this, "Load point set", QString("File reader could not read %1").arg(filename)); return; } // loading successful this->SetPointSet(pointSet); } catch (...) { QMessageBox::warning(this, "Load point set", QString("File reader collapsed while reading %1").arg(filename)); } emit PointListChanged(); mitk::RenderingManager::GetInstance()->RequestUpdateAll(); } mitk::PointSet *QmitkPointListWidget::GetPointSet() { return dynamic_cast(m_PointSetNode->GetData()); } mitk::DataNode *QmitkPointListWidget::GetPointSetNode() { return m_PointSetNode; } void QmitkPointListWidget::SetMultiWidget(QmitkStdMultiWidget *multiWidget) { m_PointListView->SetMultiWidget(multiWidget); } void QmitkPointListWidget::RemoveSelectedPoint() { if (!m_PointSetNode) return; mitk::PointSet *pointSet = dynamic_cast(m_PointSetNode->GetData()); if (!pointSet) return; if (pointSet->GetSize() == 0) return; QmitkPointListModel *pointListModel = dynamic_cast(m_PointListView->model()); pointListModel->RemoveSelectedPoint(); emit PointListChanged(); } void QmitkPointListWidget::MoveSelectedPointDown() { if (!m_PointSetNode) return; mitk::PointSet *pointSet = dynamic_cast(m_PointSetNode->GetData()); if (!pointSet) return; if (pointSet->GetSize() == 0) return; QmitkPointListModel *pointListModel = dynamic_cast(m_PointListView->model()); pointListModel->MoveSelectedPointDown(); emit PointListChanged(); } void QmitkPointListWidget::MoveSelectedPointUp() { if (!m_PointSetNode) return; mitk::PointSet *pointSet = dynamic_cast(m_PointSetNode->GetData()); if (!pointSet) return; if (pointSet->GetSize() == 0) return; QmitkPointListModel *pointListModel = dynamic_cast(m_PointListView->model()); pointListModel->MoveSelectedPointUp(); emit PointListChanged(); } void QmitkPointListWidget::OnBtnAddPoint(bool checked) { if (m_PointSetNode.IsNotNull()) { if (checked) { m_DataInteractor = m_PointSetNode->GetDataInteractor(); // If no data Interactor is present create a new one if (m_DataInteractor.IsNull()) { // Create PointSetData Interactor m_DataInteractor = mitk::PointSetDataInteractor::New(); // Load the according state machine for regular point set interaction m_DataInteractor->LoadStateMachine("PointSet.xml"); // Set the configuration file that defines the triggers for the transitions m_DataInteractor->SetEventConfig("PointSetConfig.xml"); // set the DataNode (which already is added to the DataStorage m_DataInteractor->SetDataNode(m_PointSetNode); } } else { m_PointSetNode->SetDataInteractor(nullptr); m_DataInteractor = nullptr; } emit EditPointSets(checked); } } void QmitkPointListWidget::OnBtnAddPointManually() { mitk::PointSet *pointSet = this->GetPointSet(); QmitkEditPointDialog editPointDialog(this); if (this->GetPointSet()->IsEmpty()) { editPointDialog.SetPoint(pointSet, 0, m_TimeStep); } else { mitk::PointSet::PointsIterator maxIt = pointSet->GetMaxId(); mitk::PointSet::PointIdentifier maxId = maxIt->Index(); editPointDialog.SetPoint(pointSet, maxId + 1, m_TimeStep); } editPointDialog.exec(); } void QmitkPointListWidget::OnListDoubleClick() { } void QmitkPointListWidget::OnPointSelectionChanged() { emit this->PointSelectionChanged(); } void QmitkPointListWidget::DeactivateInteractor(bool) { } void QmitkPointListWidget::EnableEditButton(bool enabled) { m_EditAllowed = enabled; if (enabled == false) m_ToggleAddPoint->setEnabled(false); else m_ToggleAddPoint->setEnabled(true); OnBtnAddPoint(enabled); } void QmitkPointListWidget::ObserveNewNode(mitk::DataNode *node) { if (m_DataInteractor.IsNotNull()) m_DataInteractor->SetDataNode(node); // remove old observer if (m_PointSetNode) { if (m_DataInteractor) { m_DataInteractor = nullptr; m_ToggleAddPoint->setChecked(false); } m_PointSetNode->RemoveObserver(m_NodeObserverTag); m_NodeObserverTag = 0; } m_PointSetNode = node; // add new observer if necessary if (m_PointSetNode) { itk::ReceptorMemberCommand::Pointer command = itk::ReceptorMemberCommand::New(); command->SetCallbackFunction(this, &QmitkPointListWidget::OnNodeDeleted); m_NodeObserverTag = m_PointSetNode->AddObserver(itk::DeleteEvent(), command); } else { m_NodeObserverTag = 0; } if (m_EditAllowed == true) m_ToggleAddPoint->setEnabled(m_PointSetNode); else m_ToggleAddPoint->setEnabled(false); m_RemovePointBtn->setEnabled(m_PointSetNode); m_LoadPointsBtn->setEnabled(m_PointSetNode); m_SavePointsBtn->setEnabled(m_PointSetNode); m_AddPoint->setEnabled(m_PointSetNode); } void QmitkPointListWidget::OnNodeDeleted(const itk::EventObject &) { if (m_PointSetNode.IsNotNull() && !m_NodeObserverTag) m_PointSetNode->RemoveObserver(m_NodeObserverTag); m_NodeObserverTag = 0; m_PointSetNode = nullptr; m_PointListView->SetPointSetNode(nullptr); m_ToggleAddPoint->setEnabled(false); m_RemovePointBtn->setEnabled(false); m_LoadPointsBtn->setEnabled(false); m_SavePointsBtn->setEnabled(false); m_AddPoint->setEnabled(false); } void QmitkPointListWidget::AddSliceNavigationController(mitk::SliceNavigationController *snc) { m_PointListView->AddSliceNavigationController(snc); } void QmitkPointListWidget::RemoveSliceNavigationController(mitk::SliceNavigationController *snc) { m_PointListView->RemoveSliceNavigationController(snc); } void QmitkPointListWidget::UnselectEditButton() { m_ToggleAddPoint->setChecked(false); } diff --git a/Plugins/org.blueberry.ui.qt/resources/darkstyle.qss b/Plugins/org.blueberry.ui.qt/resources/darkstyle.qss index 21790818a2..7f45a09348 100644 --- a/Plugins/org.blueberry.ui.qt/resources/darkstyle.qss +++ b/Plugins/org.blueberry.ui.qt/resources/darkstyle.qss @@ -1,1475 +1,1475 @@ /*=================================================================== 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 iconAccentColor = #db7039 <- 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: 1px; 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::down-arrow:horizontal { background: none; } 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::down-arrow:vertical { background: none; } 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: #3399cc; border: 1px solid #3399cc; min-width: 30px; min-height: 30px; margin: 0px; padding: 0px; } QToolButton#qt_toolbar_ext_button, QToolBarExtension { qproperty-icon: url(:/org.blueberry.ui.qt/dark/right_arrows.svg); min-width: 10px; } 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; 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: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:#ffffff; border: 0px solid #1d1d1c; background: #7c7c7a; padding: 2px; min-width: 150px; 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: #ffffff ; 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: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::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::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 { color: #3399cc; border: 1px solid #3399cc; padding: 0px; } /* the subcontrol below is used only in the InstantPopup or DelayedPopup mode */ 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: #ffffff; background-color: #323231; border: 1px solid #1d1d1c; border-bottom: 1px solid #1d1d1c; border-top-left-radius: 0px; border-top-right-radius: 0px; } QToolBox::tab:selected { font-weight: bold; background-color: #7c7c7a; } 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); }