diff --git a/cMake/FreeCAD_Helpers/SetGlobalCompilerAndLinkerSettings.cmake b/cMake/FreeCAD_Helpers/SetGlobalCompilerAndLinkerSettings.cmake index dc97e691f0..13eb953dd1 100644 --- a/cMake/FreeCAD_Helpers/SetGlobalCompilerAndLinkerSettings.cmake +++ b/cMake/FreeCAD_Helpers/SetGlobalCompilerAndLinkerSettings.cmake @@ -21,6 +21,7 @@ macro(SetGlobalCompilerAndLinkerSettings) if(MSVC) # set default compiler settings + add_definitions(-D_DISABLE_CONSTEXPR_MUTEX_CONSTRUCTOR) set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Zm150 /bigobj") set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DFC_DEBUG /Zm150 /bigobj") # set default libs diff --git a/src/App/PropertyStandard.cpp b/src/App/PropertyStandard.cpp index cd8f4f62c3..09c8c489d0 100644 --- a/src/App/PropertyStandard.cpp +++ b/src/App/PropertyStandard.cpp @@ -2651,6 +2651,18 @@ PropertyMaterialList::~PropertyMaterialList() = default; //************************************************************************** // Base class implementer +void PropertyMaterialList::setValues(const std::vector& newValues) +{ + if (!newValues.empty()) { + PropertyListsT::setValues(newValues); + } + else { + aboutToSetValue(); + setSize(1); + hasSetValue(); + } +} + PyObject* PropertyMaterialList::getPyObject() { Py::Tuple tuple(getSize()); @@ -3233,7 +3245,6 @@ void PropertyMaterialList::readString(Base::InputStream& str, std::string& value str >> uCt; std::vector temp(uCt); - str.read(temp.data(), uCt); value.assign(temp.data(), temp.size()); } diff --git a/src/App/PropertyStandard.h b/src/App/PropertyStandard.h index d013400a33..4c2161a30f 100644 --- a/src/App/PropertyStandard.h +++ b/src/App/PropertyStandard.h @@ -1118,6 +1118,7 @@ public: { PropertyListsT::setValue(materials); } + void setValues(const std::vector& newValues = std::vector()) override; void setValue(const Material& mat); void setValue(int index, const Material& mat); diff --git a/src/Gui/CommandView.cpp b/src/Gui/CommandView.cpp index 1355ef7c2a..b41695ac8e 100644 --- a/src/Gui/CommandView.cpp +++ b/src/Gui/CommandView.cpp @@ -926,7 +926,7 @@ void StdCmdToggleTransparency::activated(int iMsg) if (!obj) continue; - bool isGroup = dynamic_cast(obj) + bool isGroup = dynamic_cast(obj) || dynamic_cast(obj) || dynamic_cast(obj); @@ -2605,9 +2605,9 @@ private: bool prevSelectionEn; public: - // Creates a selection handler used to implement the common behaviour of BoxZoom, BoxSelection and BoxElementSelection. + // Creates a selection handler used to implement the common behaviour of BoxZoom, BoxSelection and BoxElementSelection. // Takes the viewer, a selection mode, a cursor, a function pointer to be called on success and a void pointer for user data to be passed to the given function. - // The selection handler class stores all necessary previous states, registers a event callback and starts the selection in the given mode. + // The selection handler class stores all necessary previous states, registers a event callback and starts the selection in the given mode. // If there is still a selection handler active, this call will generate a message and returns. static void Create(View3DInventorViewer* viewer, View3DInventorViewer::SelectionMode selectionMode, const QCursor& cursor, FnCb doFunction= nullptr, void* ud=nullptr) @@ -2637,8 +2637,8 @@ public: return userData; } - // Implements the event handler. In the normal case the provided function is called. - // Also supports aborting the selection mode by pressing (releasing) the Escape key. + // Implements the event handler. In the normal case the provided function is called. + // Also supports aborting the selection mode by pressing (releasing) the Escape key. static void selectionCallback(void * ud, SoEventCallback * n) { auto selectionHandler = static_cast(ud); @@ -3543,7 +3543,7 @@ StdTreePreSelection::StdTreePreSelection() { sGroup = "TreeView"; sMenuText = QT_TR_NOOP("Pre-selection"); - sToolTipText = QT_TR_NOOP("Preselect the object in 3D view when mouse over the tree item"); + sToolTipText = QT_TR_NOOP("Preselect the object in 3D view when hovering the cursor over the tree item"); sStatusTip = sToolTipText; sWhatsThis = "Std_TreePreSelection"; sPixmap = "tree-pre-sel"; @@ -3708,7 +3708,7 @@ StdCmdDockOverlayAll::StdCmdDockOverlayAll() void StdCmdDockOverlayAll::activated(int iMsg) { - Q_UNUSED(iMsg); + Q_UNUSED(iMsg); OverlayManager::instance()->setOverlayMode(OverlayManager::OverlayMode::ToggleAll); } @@ -3733,7 +3733,7 @@ StdCmdDockOverlayTransparentAll::StdCmdDockOverlayTransparentAll() void StdCmdDockOverlayTransparentAll::activated(int iMsg) { - Q_UNUSED(iMsg); + Q_UNUSED(iMsg); OverlayManager::instance()->setOverlayMode(OverlayManager::OverlayMode::ToggleTransparentAll); } @@ -3757,7 +3757,7 @@ StdCmdDockOverlayToggle::StdCmdDockOverlayToggle() void StdCmdDockOverlayToggle::activated(int iMsg) { - Q_UNUSED(iMsg); + Q_UNUSED(iMsg); OverlayManager::instance()->setOverlayMode(OverlayManager::OverlayMode::ToggleActive); } @@ -3782,7 +3782,7 @@ StdCmdDockOverlayToggleTransparent::StdCmdDockOverlayToggleTransparent() void StdCmdDockOverlayToggleTransparent::activated(int iMsg) { - Q_UNUSED(iMsg); + Q_UNUSED(iMsg); OverlayManager::instance()->setOverlayMode(OverlayManager::OverlayMode::ToggleTransparent); } @@ -3801,13 +3801,13 @@ StdCmdDockOverlayToggleLeft::StdCmdDockOverlayToggleLeft() sWhatsThis = "Std_DockOverlayToggleLeft"; sStatusTip = sToolTipText; sAccel = "Ctrl+Left"; - sPixmap = "qss:overlay/close.svg"; + sPixmap = "qss:overlay/icons/close.svg"; eType = 0; } void StdCmdDockOverlayToggleLeft::activated(int iMsg) { - Q_UNUSED(iMsg); + Q_UNUSED(iMsg); OverlayManager::instance()->setOverlayMode(OverlayManager::OverlayMode::ToggleLeft); } @@ -3826,13 +3826,13 @@ StdCmdDockOverlayToggleRight::StdCmdDockOverlayToggleRight() sWhatsThis = "Std_DockOverlayToggleRight"; sStatusTip = sToolTipText; sAccel = "Ctrl+Right"; - sPixmap = "qss:overlay/close.svg"; + sPixmap = "qss:overlay/icons/close.svg"; eType = 0; } void StdCmdDockOverlayToggleRight::activated(int iMsg) { - Q_UNUSED(iMsg); + Q_UNUSED(iMsg); OverlayManager::instance()->setOverlayMode(OverlayManager::OverlayMode::ToggleRight); } @@ -3851,13 +3851,13 @@ StdCmdDockOverlayToggleTop::StdCmdDockOverlayToggleTop() sWhatsThis = "Std_DockOverlayToggleTop"; sStatusTip = sToolTipText; sAccel = "Ctrl+Up"; - sPixmap = "qss:overlay/close.svg"; + sPixmap = "qss:overlay/icons/close.svg"; eType = 0; } void StdCmdDockOverlayToggleTop::activated(int iMsg) { - Q_UNUSED(iMsg); + Q_UNUSED(iMsg); OverlayManager::instance()->setOverlayMode(OverlayManager::OverlayMode::ToggleTop); } @@ -3876,13 +3876,13 @@ StdCmdDockOverlayToggleBottom::StdCmdDockOverlayToggleBottom() sWhatsThis = "Std_DockOverlayToggleBottom"; sStatusTip = sToolTipText; sAccel = "Ctrl+Down"; - sPixmap = "qss:overlay/close.svg"; + sPixmap = "qss:overlay/icons/close.svg"; eType = 0; } void StdCmdDockOverlayToggleBottom::activated(int iMsg) { - Q_UNUSED(iMsg); + Q_UNUSED(iMsg); OverlayManager::instance()->setOverlayMode(OverlayManager::OverlayMode::ToggleBottom); } diff --git a/src/Gui/DlgExpressionInput.cpp b/src/Gui/DlgExpressionInput.cpp index 37a08305d2..632f1a29df 100644 --- a/src/Gui/DlgExpressionInput.cpp +++ b/src/Gui/DlgExpressionInput.cpp @@ -732,7 +732,7 @@ void DlgExpressionInput::updateVarSetInfo(bool checkExpr) checkExpression(ui->expression->text()); ui->okBtn->setEnabled(true); } - catch (Base::Exception& e) { + catch (Base::Exception&) { ui->okBtn->setDisabled(true); } } diff --git a/src/Gui/Icons/TreeItemInvisible.svg b/src/Gui/Icons/TreeItemInvisible.svg index 69b78db09a..fc8c703321 100644 --- a/src/Gui/Icons/TreeItemInvisible.svg +++ b/src/Gui/Icons/TreeItemInvisible.svg @@ -2,20 +2,20 @@ + inkscape:version="1.3.2 (091e20ef0f, 2023-11-25, custom)" + sodipodi:docname="TreeItemInvisible.svg" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + inkscape:snap-global="true" + inkscape:showpageshadow="2" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#d1d1d1"> + snapvisiblegridlinesonly="true" + originx="0" + originy="0" + spacingy="1" + spacingx="1" + units="px" /> @@ -587,7 +595,7 @@ style="opacity:0.8479996;fill:#ffffff;stroke:none;stroke-width:0.18025407;stroke-opacity:1" /> GetBool("ShowVersionInTitle", true); diff --git a/src/Gui/OverlayManager.cpp b/src/Gui/OverlayManager.cpp index d5294315c0..051519ce0c 100644 --- a/src/Gui/OverlayManager.cpp +++ b/src/Gui/OverlayManager.cpp @@ -78,7 +78,7 @@ static inline OverlayTabWidget *findTabWidget(QWidget *widget=nullptr, bool filt widget = qApp->focusWidget(); for(auto w=widget; w; w=w->parentWidget()) { auto tabWidget = qobject_cast(w); - if(tabWidget) + if(tabWidget) return tabWidget; auto proxy = qobject_cast(w); if(proxy) @@ -95,7 +95,7 @@ public: OverlayStyleSheet() { handle = App::GetApplication().GetParameterGroupByPath( "User parameter:BaseApp/Preferences/MainWindow"); - + update(); handle->Attach(this); @@ -146,18 +146,18 @@ private: if (overlayStyleSheet.isEmpty()) { // User did not choose any stylesheet, we need to choose one based on main stylesheet if (mainStyleSheet.contains(QStringLiteral("light"), Qt::CaseInsensitive)) { - overlayStyleSheet = QStringLiteral("overlay:Light-Outline.qss"); + overlayStyleSheet = QStringLiteral("overlay:Light Theme + Dark Background.qss"); } else { // by default FreeCAD uses somewhat dark background for 3D View. // if user has not explicitly selected light theme, the "Dark Outline" looks best - overlayStyleSheet = QStringLiteral("overlay:Dark-Outline.qss"); + overlayStyleSheet = QStringLiteral("overlay:Dark Theme + Dark Background.qss"); } } else if (!overlayStyleSheet.isEmpty() && !QFile::exists(overlayStyleSheet)) { // User did choose one of predefined stylesheets, we need to qualify it with namespace - overlayStyleSheet = QStringLiteral("overlay:%1").arg(overlayStyleSheet); - } + overlayStyleSheet = QStringLiteral("overlay:%1").arg(overlayStyleSheet); + } return overlayStyleSheet; } @@ -177,70 +177,7 @@ private: static const QString _default; }; -const QString OverlayStyleSheet::_default = QStringLiteral( - "* {alternate-background-color: rgba(250,250,250,120)}" - - "QComboBox, QComboBox:editable, QComboBox:!editable, QLineEdit," - "QTextEdit, QPlainTextEdit, QAbstractSpinBox, QDateEdit, QDateTimeEdit," - "Gui--PropertyEditor--PropertyEditor QLabel " - "{background : palette(base);}" - - "QScrollBar { background: rgba(0,0,0,10);}" - "QTabWidget::pane { background-color: transparent; border: transparent }" - "Gui--OverlayTabWidget { qproperty-effectColor: rgba(0,0,0,0) }" - "Gui--OverlayTabWidget::pane { background-color: rgba(250,250,250,80) }" - - "QTabBar {border : none;}" - "QTabBar::tab {color: palette(text);" - "background-color: rgba(100,100,100,50);" - "padding: 5px}" - "QTabBar::tab:selected {background-color: rgba(250,250,250,80);}" - "QTabBar::tab:hover {background-color: rgba(250,250,250,200);}" - - "QHeaderView { background:transparent }" - "QHeaderView::section {color: palette(text);" - "background-color: rgba(250,250,250,50);" - "border: 1px solid palette(dark);" - "padding: 2px}" - - "QTreeView, QListView, QTableView {" - "background: rgb(250,250,250);" - "border: transparent;" - "selection-background-color: rgba(94, 144, 250, 0.7);}" - "QListView::item:selected, QTreeView::item:selected {" - "background-color: rgba(94, 144, 250, 0.7);}" - - "Gui--PropertyEditor--PropertyEditor {" - "border: 1px solid palette(dark);" - "qproperty-groupTextColor: rgb(100, 100, 100);" - "qproperty-groupBackground: rgba(180, 180, 180, 0.7);}" - - "QToolTip {background-color: rgba(250,250,250,180);}" - - "Gui--TreeWidget QHeaderView:section {" - "height: 0px;" - "background-color: transparent;" - "padding: 0px;" - "border: transparent;}" - - "Gui--CallTipsList::item { background-color: rgba(200,200,200,200);}" - "Gui--CallTipsList::item::selected { background-color: palette(highlight);}" - - "QPushButton { background: rgba(250,250,250,80);padding: 2px 4px;}" - "QPushButton::hover { background: rgba(250,250,250,200);}" - "QPushButton::focus { background: rgba(250,250,250,255);}" - "QPushButton::pressed { background-color: #5e90fa;" - "border: 1px inset palette(dark) }" - "QPushButton::checked { background: rgba(100,100,100,100);" - "border: 1px inset palette(dark) }" - "QPushButton::checked:hover { background: rgba(150,150,150,200);" - "border: 1px inset palette(dark) }" - "Gui--OverlayToolButton { background: transparent; padding: 0px; border: none }" - "Gui--OverlayTitleBar," - "Gui--OverlaySplitterHandle { background-color: rgba(200, 200, 200, 150); }" - "QWidget#ClippingScrollAreaContents, " - "QScrollArea#ClippingScrollArea { border: none; background-color: #a0e6e6e6; }" - "Gui--PropertyEditor--PropertyEditor > QWidget > QPushButton {text-align:left;padding-left:2px;}" +const QString OverlayStyleSheet::_default = QStringLiteral("overlay:Light Theme + Dark Background.qss" ); // ----------------------------------------------------------- @@ -270,7 +207,7 @@ struct OverlayInfo { if (hGrp == Param && Name && !tabWidget->isSaving()) { // This will prevent saving settings which will mess up the // just restored ones - tabWidget->restore(nullptr); + tabWidget->restore(nullptr); OverlayManager::instance()->reload(); } }); @@ -411,7 +348,7 @@ public: ,_overlayInfos({&_left,&_right,&_top,&_bottom}) ,_actions({&_actOverlay,&_actFloat,&_actClose}) { - _Overlays = {OverlayTabWidget::_LeftOverlay, + _Overlays = {OverlayTabWidget::_LeftOverlay, OverlayTabWidget::_RightOverlay, OverlayTabWidget::_TopOverlay, OverlayTabWidget::_BottomOverlay}; @@ -465,9 +402,9 @@ public: void refreshIcons() { - _actFloat.setIcon(BitmapFactory().pixmap("qss:overlay/float.svg")); - _actOverlay.setIcon(BitmapFactory().pixmap("qss:overlay/overlay.svg")); - _actClose.setIcon(BitmapFactory().pixmap("qss:overlay/close.svg")); + _actFloat.setIcon(BitmapFactory().pixmap("qss:overlay/icons/float.svg")); + _actOverlay.setIcon(BitmapFactory().pixmap("qss:overlay/icons/overlay.svg")); + _actClose.setIcon(BitmapFactory().pixmap("qss:overlay/icons/close.svg")); for (OverlayTabWidget *tabWidget : _Overlays) { tabWidget->refreshIcons(); for (auto handle : tabWidget->findChildren()) @@ -610,7 +547,7 @@ public: updateFocus = true; else if(o->tabWidget == active) updateActive = true; - else + else o->tabWidget->setOverlayMode(true); } if(!o->tabWidget->getRevealTime().isNull()) { @@ -628,12 +565,12 @@ public: focus->raise(); if(reveal == focus) reveal = nullptr; - } else + } else focus->updateSplitterHandles(); } if(active) { - if(active != focus && (active->isOverlaid(OverlayTabWidget::QueryOption::TransparencyChanged) || updateActive)) + if(active != focus && (active->isOverlaid(OverlayTabWidget::QueryOption::TransparencyChanged) || updateActive)) active->setOverlayMode(false); active->raise(); if(reveal == active) @@ -646,7 +583,7 @@ public: } for(auto o : _overlayInfos) { - if(o->tabWidget != focus + if(o->tabWidget != focus && o->tabWidget != active && o->tabWidget != reveal && o->tabWidget->count() @@ -703,7 +640,7 @@ public: _bottom.tabWidget->setRect(QRect(ofs.width(),h-rect.height(),bw,rect.height())); if (_bottom.tabWidget->count() - && _bottom.tabWidget->isVisible() + && _bottom.tabWidget->isVisible() && _bottom.tabWidget->getState() <= OverlayTabWidget::State::Normal) rectBottom = _bottom.tabWidget->getRect(); @@ -722,7 +659,7 @@ public: _left.tabWidget->setRect(QRect(ofs.height(),ofs.width(),rect.width(),lh)); if (_left.tabWidget->count() - && _left.tabWidget->isVisible() + && _left.tabWidget->isVisible() && _left.tabWidget->getState() <= OverlayTabWidget::State::Normal) rectLeft = _left.tabWidget->getRect(); @@ -742,7 +679,7 @@ public: _right.tabWidget->setRect(QRect(w-rect.width(),ofs.width(),rect.width(),rh)); if (_right.tabWidget->count() - && _right.tabWidget->isVisible() + && _right.tabWidget->isVisible() && _right.tabWidget->getState() <= OverlayTabWidget::State::Normal) rectRight = _right.tabWidget->getRect(); @@ -1030,7 +967,7 @@ public: dock->show(); dock->setFloating(true); refresh(); - } else + } else dock->setFloating(!dock->isFloating()); } return; @@ -1220,7 +1157,7 @@ public: resizeOffset = -1; ++i; } - else + else rect.setHeight(size/2); } else if (pos.x() > pt.x() + size/2) { @@ -1480,7 +1417,7 @@ public: void unregisterDockWidget(const QString &name, OverlayTabWidget *widget) { auto it = _dockWidgetNameMap.find(name); - if (it != _dockWidgetNameMap.end() && it->second == widget) + if (it != _dockWidgetNameMap.end() && it->second == widget) _dockWidgetNameMap.erase(it); } @@ -2024,7 +1961,7 @@ void OverlayManager::Private::interceptEvent(QWidget *widget, QEvent *ev) case QEvent::ContextMenu: { auto ce = static_cast(ev); lastIntercept = getChildAt(widget, ce->globalPos()); - QContextMenuEvent contextMenuEvent(ce->reason(), + QContextMenuEvent contextMenuEvent(ce->reason(), lastIntercept->mapFromGlobal(ce->globalPos()), ce->globalPos()); QApplication::sendEvent(lastIntercept, &contextMenuEvent); diff --git a/src/Gui/OverlayWidgets.cpp b/src/Gui/OverlayWidgets.cpp index 600a17976d..9bfe867238 100644 --- a/src/Gui/OverlayWidgets.cpp +++ b/src/Gui/OverlayWidgets.cpp @@ -440,13 +440,13 @@ OverlayTabWidget::OverlayTabWidget(QWidget *parent, Qt::DockWidgetArea pos) void OverlayTabWidget::refreshIcons() { - actOverlay.setIcon(BitmapFactory().pixmap("qss:overlay/overlay.svg")); - actNoAutoMode.setIcon(BitmapFactory().pixmap("qss:overlay/mode.svg")); - actTaskShow.setIcon(BitmapFactory().pixmap("qss:overlay/taskshow.svg")); - actEditShow.setIcon(BitmapFactory().pixmap("qss:overlay/editshow.svg")); - actEditHide.setIcon(BitmapFactory().pixmap("qss:overlay/edithide.svg")); - actTransparent.setIcon(BitmapFactory().pixmap("qss:overlay/transparent.svg")); - QPixmap pxAutoHide = BitmapFactory().pixmap("qss:overlay/autohide.svg"); + actOverlay.setIcon(BitmapFactory().pixmap("qss:overlay/icons/overlay.svg")); + actNoAutoMode.setIcon(BitmapFactory().pixmap("qss:overlay/icons/mode.svg")); + actTaskShow.setIcon(BitmapFactory().pixmap("qss:overlay/icons/taskshow.svg")); + actEditShow.setIcon(BitmapFactory().pixmap("qss:overlay/icons/editshow.svg")); + actEditHide.setIcon(BitmapFactory().pixmap("qss:overlay/icons/edithide.svg")); + actTransparent.setIcon(BitmapFactory().pixmap("qss:overlay/icons/transparent.svg")); + QPixmap pxAutoHide = BitmapFactory().pixmap("qss:overlay/icons/autohide.svg"); switch(dockArea) { case Qt::LeftDockWidgetArea: actAutoHide.setIcon(pxAutoHide); @@ -2103,7 +2103,7 @@ OverlaySplitterHandle::OverlaySplitterHandle(Qt::Orientation orientation, QSplit void OverlaySplitterHandle::refreshIcons() { - actFloat.setIcon(BitmapFactory().pixmap("qss:overlay/float.svg")); + actFloat.setIcon(BitmapFactory().pixmap("qss:overlay/icons/float.svg")); } void OverlaySplitterHandle::onTimer() diff --git a/src/Gui/PreferencePacks/CMakeLists.txt b/src/Gui/PreferencePacks/CMakeLists.txt index eaceafddc2..04c66d9343 100644 --- a/src/Gui/PreferencePacks/CMakeLists.txt +++ b/src/Gui/PreferencePacks/CMakeLists.txt @@ -5,14 +5,9 @@ SET(PreferencePacks_Files SET(PreferencePacks_Directories "Classic" -"Dark" -"Darker" -"Dark modern" "Dark behave" -"Dark contrast" -"ProDark" -"Light" -"Light modern" +"Light theme" +"Dark theme" ) ADD_CUSTOM_TARGET(PreferencePacks_data ALL diff --git a/src/Gui/PreferencePacks/Dark contrast/Dark contrast.cfg b/src/Gui/PreferencePacks/Dark contrast/Dark contrast.cfg deleted file mode 100644 index a2d1a2e130..0000000000 --- a/src/Gui/PreferencePacks/Dark contrast/Dark contrast.cfg +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - #9b4de6 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Dark-contrast.qss - - - - - diff --git a/src/Gui/PreferencePacks/Dark modern/Dark modern.cfg b/src/Gui/PreferencePacks/Dark modern/Dark modern.cfg deleted file mode 100644 index 1d87608220..0000000000 --- a/src/Gui/PreferencePacks/Dark modern/Dark modern.cfg +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - #9b4de6 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Dark-modern.qss - Dark-Modern_overlay.qss - - - - - diff --git a/src/Gui/PreferencePacks/Dark theme/Dark theme.cfg b/src/Gui/PreferencePacks/Dark theme/Dark theme.cfg new file mode 100644 index 0000000000..7c3bddd51f --- /dev/null +++ b/src/Gui/PreferencePacks/Dark theme/Dark theme.cfg @@ -0,0 +1,188 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #1864ab + #f8f9fa + #f8f9fa + #f8f9fa + + + + + + + + + + + + + + + + + + + Dark theme.qss + Dark Theme + Dark Background.qss + + + + + + diff --git a/src/Gui/PreferencePacks/Dark/Dark.cfg b/src/Gui/PreferencePacks/Dark/Dark.cfg deleted file mode 100644 index 5acf039b29..0000000000 --- a/src/Gui/PreferencePacks/Dark/Dark.cfg +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - #9b4de6 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Dark.qss - Dark_overlay.qss - - - - - diff --git a/src/Gui/PreferencePacks/Darker/Darker.cfg b/src/Gui/PreferencePacks/Darker/Darker.cfg deleted file mode 100644 index f2ab0a5a50..0000000000 --- a/src/Gui/PreferencePacks/Darker/Darker.cfg +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - #9b4de6 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Darker.qss - Darker_overlay.qss - - - - - diff --git a/src/Gui/PreferencePacks/Light modern/Light modern.cfg b/src/Gui/PreferencePacks/Light modern/Light modern.cfg deleted file mode 100644 index 9c9bb37f39..0000000000 --- a/src/Gui/PreferencePacks/Light modern/Light modern.cfg +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - - #feff9e - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Light-modern.qss - Light-Modern_overlay.qss - - - - - - diff --git a/src/Gui/PreferencePacks/Light theme/Light theme.cfg b/src/Gui/PreferencePacks/Light theme/Light theme.cfg new file mode 100644 index 0000000000..d3c344ed15 --- /dev/null +++ b/src/Gui/PreferencePacks/Light theme/Light theme.cfg @@ -0,0 +1,217 @@ + + + + + + + + + + + + + + + StartWorkbench + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #bac8ff + #212529 + #212529 + #212529 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Light theme.qss + Light Theme + Light Background.qss + + + + + diff --git a/src/Gui/PreferencePacks/Light/Light.cfg b/src/Gui/PreferencePacks/Light/Light.cfg deleted file mode 100644 index f2e2a589e7..0000000000 --- a/src/Gui/PreferencePacks/Light/Light.cfg +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - - #feff9e - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Light.qss - Light_overlay.qss - - - - - - diff --git a/src/Gui/PreferencePacks/ProDark/ProDark.cfg b/src/Gui/PreferencePacks/ProDark/ProDark.cfg deleted file mode 100644 index 783cfe8cdc..0000000000 --- a/src/Gui/PreferencePacks/ProDark/ProDark.cfg +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - #9b4de6 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ProDark.qss - - - - - diff --git a/src/Gui/PreferencePacks/package.xml b/src/Gui/PreferencePacks/package.xml index 7fe115c499..6975c08b89 100644 --- a/src/Gui/PreferencePacks/package.xml +++ b/src/Gui/PreferencePacks/package.xml @@ -18,49 +18,23 @@ no stylesheet classic theme - - Dark + + Light theme Theme - Applies a dark background and a darker stylesheet. - 0.5.0 + Applies a basic light theme. + 0.1.0 built-in - dark background - stylesheet - theme + light - - Darker + + Dark theme Theme - Applies a dark background and a darker stylesheet. - 0.5.0 + Applies a basic dark theme. + 1.0.0 built-in - dark background - stylesheet - theme - - - Dark modern - Theme - Applies a dark background and a darker stylesheet. - 0.5.0 - built-in - dark - background - stylesheet - theme - - - ProDark - Theme - Applies a dark background and a darker stylesheet. - 0.5.0 - built-in - dark - background - stylesheet - theme + dark Dark behave @@ -71,40 +45,6 @@ dark background stylesheet - theme - - - Dark contrast - Theme - Dark theme with high contrasts. - 0.5.0 - built-in - dark - background - stylesheet - theme - - - Light - Theme - Applies a light background and a light stylesheet. - 0.5.0 - built-in - light - background - stylesheet - theme - - - Light modern - Theme - Applies a light background and a light stylesheet. - 0.5.0 - built-in - light - background - stylesheet - theme diff --git a/src/Gui/PreferencePages/DlgSettingsSelection.ui b/src/Gui/PreferencePages/DlgSettingsSelection.ui index fe81b0549f..647db4a651 100644 --- a/src/Gui/PreferencePages/DlgSettingsSelection.ui +++ b/src/Gui/PreferencePages/DlgSettingsSelection.ui @@ -202,7 +202,7 @@ Larger value eases to pick things, but can make small features impossible to sel - Preselect the object in 3D view when mouse over the tree item + Preselect the object in 3D view when hovering the cursor over the tree item PreSelection diff --git a/src/Gui/PythonWrapper.cpp b/src/Gui/PythonWrapper.cpp index 40261e6cc2..41699f71c1 100644 --- a/src/Gui/PythonWrapper.cpp +++ b/src/Gui/PythonWrapper.cpp @@ -583,39 +583,59 @@ QObject* PythonWrapper::toQObject(const Py::Object& pyobject) return qt_getCppType(pyobject.ptr()); } +qsizetype PythonWrapper::tryEnum(PyObject* pyPtr) +{ + if (PyObject* number = PyNumber_Long(pyPtr)) { + Py::Long longObj(number, true); + return longObj.as_long(); + } + + // if PyNumber_Long failed then an exception is set + PyErr_Clear(); + + Py::Object object(pyPtr); + if (object.hasAttr(std::string("value"))) { + Py::Long longObj(object.getAttr(std::string("value"))); + return longObj.as_long(); + } + + return 0; +} + qsizetype PythonWrapper::toEnum(PyObject* pyPtr) { -#if defined (HAVE_SHIBOKEN) && defined(HAVE_PYSIDE) - if (PyLong_Check(pyPtr)) { - return PyLong_AsLong(pyPtr); + try { + return tryEnum(pyPtr); + } + catch (Py::Exception&) { + Base::PyException e; + e.ReportException(); + return 0; } - return Shiboken::Enum::getValue(pyPtr); -#else - return toEnum(Py::Object(pyPtr)); -#endif } qsizetype PythonWrapper::toEnum(const Py::Object& pyobject) { -#if defined (HAVE_SHIBOKEN) && defined(HAVE_PYSIDE) return toEnum(pyobject.ptr()); -#else +} + +Py::Object PythonWrapper::tryToStandardButton(qsizetype value) +{ + std::stringstream cmd; + cmd << "from PySide import QtWidgets\n"; + cmd << "btn = QtWidgets.QDialogButtonBox.StandardButton(" << value << ")"; + return Py::asObject(Base::Interpreter().getValue(cmd.str().c_str(), "btn")); +} + +Py::Object PythonWrapper::toStandardButton(qsizetype value) +{ try { - qsizetype ret {}; - if (pyobject.hasAttr(std::string("value"))) { - ret = Py::Int(pyobject.getAttr(std::string("value"))); - } - else { - ret = Py::Int(pyobject); - } - return ret; + return tryToStandardButton(value); } - catch (Py::Exception&) { - Base::PyException e; // extract the Python error text - e.ReportException(); - return 0; + catch (Py::Exception& e) { + e.clear(); + return Py::Long(value); } -#endif } QGraphicsItem* PythonWrapper::toQGraphicsItem(PyObject* pyPtr) diff --git a/src/Gui/PythonWrapper.h b/src/Gui/PythonWrapper.h index 94c2f7fc50..f0011c0f7d 100644 --- a/src/Gui/PythonWrapper.h +++ b/src/Gui/PythonWrapper.h @@ -56,6 +56,7 @@ public: QObject* toQObject(const Py::Object&); qsizetype toEnum(PyObject* pyPtr); qsizetype toEnum(const Py::Object& pyobject); + Py::Object toStandardButton(qsizetype); QGraphicsItem* toQGraphicsItem(PyObject* ptr); QGraphicsItem* toQGraphicsItem(const Py::Object& pyObject); QGraphicsObject* toQGraphicsObject(PyObject* pyPtr); @@ -79,6 +80,10 @@ public: QDir* toQDir(PyObject* pyobj); static void createChildrenNameAttributes(PyObject* root, QObject* object); static void setParent(PyObject* pyWdg, QObject* parent); + +private: + qsizetype tryEnum(PyObject* pyPtr); + Py::Object tryToStandardButton(qsizetype value); }; } // namespace Gui diff --git a/src/Gui/SelectionView.cpp b/src/Gui/SelectionView.cpp index df5e17b018..05956cc156 100644 --- a/src/Gui/SelectionView.cpp +++ b/src/Gui/SelectionView.cpp @@ -119,12 +119,16 @@ void SelectionView::leaveEvent(QEvent *) } /// @cond DOXERR -void SelectionView::onSelectionChanged(const SelectionChanges &Reason) +void SelectionView::onSelectionChanged(const SelectionChanges& Reason) { - ParameterGrp::handle hGrp = App::GetApplication().GetUserParameter().GetGroup("BaseApp") - ->GetGroup("Preferences")->GetGroup("Selection"); + ParameterGrp::handle hGrp = App::GetApplication() + .GetUserParameter() + .GetGroup("BaseApp") + ->GetGroup("Preferences") + ->GetGroup("Selection"); bool autoShow = hGrp->GetBool("AutoShowSelectionView", false); - hGrp->SetBool("AutoShowSelectionView", autoShow); // Remove this line once the preferences window item is implemented + hGrp->SetBool("AutoShowSelectionView", + autoShow); // Remove this line once the preferences window item is implemented if (autoShow) { if (!parentWidget()->isVisible() && Selection().hasSelection()) { @@ -139,90 +143,93 @@ void SelectionView::onSelectionChanged(const SelectionChanges &Reason) QString selObject; QTextStream str(&selObject); + + auto getSelectionName = [](QTextStream& str, + const char* docName, + const char* objName, + const char* subName, + App::DocumentObject* obj) { + str << docName; + str << "#"; + str << objName; + if (subName != 0 && subName[0] != 0) { + str << "."; + /* Original code doesn't take account of histories in subelement names and displays + * them inadvertently. Let's not do that. + str << subName; + */ + /* Remove the history from the displayed subelement name */ + std::pair elementName; + App::GeoFeature::resolveElement(obj, subName, elementName); + str << elementName.second.c_str(); // Use the shortened element name not the full one. + /* Mark it visually if there was a history as a "tell" for if a given selection has TNP + * fixes in it. */ + if (elementName.first.size() > 0) { + str << " []"; + } + auto subObj = obj->getSubObject(subName); + if (subObj) { + obj = subObj; + } + } + str << " ("; + str << QString::fromUtf8(obj->Label.getValue()); + str << ")"; + }; + if (Reason.Type == SelectionChanges::AddSelection) { // save as user data QStringList list; list << QString::fromLatin1(Reason.pDocName); list << QString::fromLatin1(Reason.pObjectName); - - // insert the selection as item - str << Reason.pDocName; - str << "#"; - str << Reason.pObjectName; App::Document* doc = App::GetApplication().getDocument(Reason.pDocName); App::DocumentObject* obj = doc->getObject(Reason.pObjectName); - if (Reason.pSubName[0] != 0 ) { - str << "."; - str << Reason.pSubName; - auto subObj = obj->getSubObject(Reason.pSubName); - if(subObj) - obj = subObj; - } - str << " ("; - str << QString::fromUtf8(obj->Label.getValue()); - str << ")"; + getSelectionName(str, Reason.pDocName, Reason.pObjectName, Reason.pSubName, obj); + // insert the selection as item QListWidgetItem* item = new QListWidgetItem(selObject, selectionView); item->setData(Qt::UserRole, list); } else if (Reason.Type == SelectionChanges::ClrSelection) { - if(!Reason.pDocName[0]) { + if (!Reason.pDocName[0]) { // remove all items selectionView->clear(); - }else{ + } + else { // build name str << Reason.pDocName; str << "#"; // remove all items - const auto items = selectionView->findItems(selObject,Qt::MatchStartsWith); - for(auto item : items) + const auto items = selectionView->findItems(selObject, Qt::MatchStartsWith); + for (auto item : items) { delete item; + } } } else if (Reason.Type == SelectionChanges::RmvSelection) { - // build name - str << Reason.pDocName; - str << "#"; - str << Reason.pObjectName; - if (Reason.pSubName[0] != 0) { - str << "."; - str << Reason.pSubName; - } - str << " ("; - + App::Document* doc = App::GetApplication().getDocument(Reason.pDocName); + App::DocumentObject* obj = doc->getObject(Reason.pObjectName); + getSelectionName(str, Reason.pDocName, Reason.pObjectName, Reason.pSubName, obj); // remove all items - QList l = selectionView->findItems(selObject,Qt::MatchStartsWith); - if (l.size() == 1) + QList l = selectionView->findItems(selObject, Qt::MatchStartsWith); + if (l.size() == 1) { delete l[0]; - + } } else if (Reason.Type == SelectionChanges::SetSelection) { // remove all items selectionView->clear(); - std::vector objs = Gui::Selection().getSelection(Reason.pDocName, ResolveMode::NoResolve); - for (const auto & it : objs) { + std::vector objs = + Gui::Selection().getSelection(Reason.pDocName, ResolveMode::NoResolve); + for (const auto& it : objs) { // save as user data QStringList list; list << QString::fromLatin1(it.DocName); list << QString::fromLatin1(it.FeatName); - // build name - str << it.DocName; - str << "#"; - str << it.FeatName; App::Document* doc = App::GetApplication().getDocument(it.DocName); App::DocumentObject* obj = doc->getObject(it.FeatName); - if (it.SubName && it.SubName[0] != '\0') { - str << "."; - str << it.SubName; - auto subObj = obj->getSubObject(Reason.pSubName); - if(subObj) - obj = subObj; - } - str << " ("; - str << QString::fromUtf8(obj->Label.getValue()); - str << ")"; - + getSelectionName(str, it.DocName, it.FeatName, it.SubName, obj); QListWidgetItem* item = new QListWidgetItem(selObject, selectionView); item->setData(Qt::UserRole, list); selObject.clear(); @@ -233,29 +240,21 @@ void SelectionView::onSelectionChanged(const SelectionChanges &Reason) enablePickList->setChecked(picking); pickList->setVisible(picking); pickList->clear(); - if(picking) { - const auto &sels = Selection().getPickedList(Reason.pDocName); - for(const auto &sel : sels) { + if (picking) { + const auto& sels = Selection().getPickedList(Reason.pDocName); + for (const auto& sel : sels) { App::Document* doc = App::GetApplication().getDocument(sel.DocName); - if(!doc) continue; + if (!doc) { + continue; + } App::DocumentObject* obj = doc->getObject(sel.FeatName); - if(!obj) continue; + if (!obj) { + continue; + } QString selObject; QTextStream str(&selObject); - str << sel.DocName; - str << "#"; - str << sel.FeatName; - if (sel.SubName[0] != 0 ) { - str << "."; - str << sel.SubName; - auto subObj = obj->getSubObject(sel.SubName); - if(subObj) - obj = subObj; - } - str << " ("; - str << QString::fromUtf8(obj->Label.getValue()); - str << ")"; + getSelectionName(str, sel.DocName, sel.FeatName, sel.SubName, obj); this->x = sel.x; this->y = sel.y; diff --git a/src/Gui/SoDatumLabel.cpp b/src/Gui/SoDatumLabel.cpp index 256e9d14cd..b0fb49f666 100644 --- a/src/Gui/SoDatumLabel.cpp +++ b/src/Gui/SoDatumLabel.cpp @@ -1496,7 +1496,7 @@ void SoDatumLabel::drawArcLength(const SbVec3f* points, float& angle, SbVec3f& t float startangle = atan2f(vc1[1], vc1[0]); float endangle = atan2f(vc2[1], vc2[0]); if (endangle < startangle) { - endangle += 2. * M_PI; + endangle += 2. * (float)M_PI; } float radius = vc1.length(); diff --git a/src/Gui/SoFCUnifiedSelection.cpp b/src/Gui/SoFCUnifiedSelection.cpp index 39cabeabca..46d1848265 100644 --- a/src/Gui/SoFCUnifiedSelection.cpp +++ b/src/Gui/SoFCUnifiedSelection.cpp @@ -71,6 +71,7 @@ #endif #include +#include #include #include #include @@ -396,8 +397,14 @@ void SoFCUnifiedSelection::doAction(SoAction *action) if (vp && (useNewSelection.getValue()||vp->useNewSelectionModel()) && vp->isSelectable()) { SoDetail *detail = nullptr; detailPath->truncate(0); + auto subName = selaction->SelChange.pSubName; +#ifdef FC_USE_TNP_FIX + std::pair elementName; + App::GeoFeature::resolveElement(obj,subName,elementName); + subName = elementName.second.c_str(); // Use the shortened element name not the full one. +#endif if(!selaction->SelChange.pSubName || !selaction->SelChange.pSubName[0] || - vp->getDetailPath(selaction->SelChange.pSubName,detailPath,true,detail)) + vp->getDetailPath(subName,detailPath,true,detail)) { SoSelectionElementAction::Type type = SoSelectionElementAction::None; if (selaction->SelChange.Type == SelectionChanges::AddSelection) { diff --git a/src/Gui/Stylesheets/CMakeLists.txt b/src/Gui/Stylesheets/CMakeLists.txt index ae76a66a6e..1682ef7cc8 100644 --- a/src/Gui/Stylesheets/CMakeLists.txt +++ b/src/Gui/Stylesheets/CMakeLists.txt @@ -1,66 +1,45 @@ SET(Stylesheets_Files "Behave-dark.qss" - "Dark.qss" - "Darker.qss" - "Light.qss" - "Dark-contrast.qss" - "ProDark.qss" - "Dark-modern.qss" - "Light-modern.qss" + "Dark theme.qss" + "Light theme.qss" ) SET(Overlay_Stylesheets_Files - "overlay/Dark.qss" - "overlay/Default_Dark-theme_dark-background.qss" - "overlay/Default_Dark-theme_Light-background.qss" - "overlay/Default_Light-theme_dark-background.qss" - "overlay/Default_Light-theme_light-background.qss" - "overlay/Light.qss" - "overlay/Dark-Outline.qss" - "overlay/Light-Outline.qss" - "overlay/Darker_overlay.qss" - "overlay/Dark_overlay.qss" - "overlay/Dark-Modern_overlay.qss" - "overlay/Light-Modern_overlay.qss" - "overlay/Light_overlay.qss" - "overlay/close.svg" - "overlay/overlay.svg" - "overlay/float.svg" - "overlay/autohide.svg" - "overlay/editshow.svg" - "overlay/taskshow.svg" - "overlay/edithide.svg" - "overlay/mode.svg" - "overlay/transparent.svg" - "overlay/taskshow_light.svg" - "overlay/mode_lighter.svg" - "overlay/overlay_lighter.svg" - "overlay/close_lighter.svg" - "overlay/close_light.svg" - "overlay/float_lighter.svg" - "overlay/overlay_light.svg" - "overlay/mode_light.svg" - "overlay/transparent_light.svg" - "overlay/float_light.svg" - "overlay/transparent_lighter.svg" - "overlay/close_red.svg" + "overlay/Dark Theme + Dark Background.qss" + "overlay/Dark Theme + Light Background.qss" + "overlay/Light Theme + Dark Background.qss" + "overlay/Light Theme + Light Background.qss" + "overlay/DarkBehave_overlay.qss" ) # Find all the image files FILE(GLOB Images_Files RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/images_dark-light/*.svg") -SOURCE_GROUP("images_dark-light" FILES ${Images_Files}) +SOURCE_GROUP("Images_dark-light" FILES ${Images_Files}) + +FILE(GLOB Images_Files2 RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" + "${CMAKE_CURRENT_SOURCE_DIR}/images_classic/*.png") + +SOURCE_GROUP("images_classic" FILES ${Images_Files2}) + +FILE(GLOB Overlay_icons RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" + "${CMAKE_CURRENT_SOURCE_DIR}/overlay/icons/*.svg") + +SOURCE_GROUP("overlay_icons" FILES ${Overlay_icons}) + ADD_CUSTOM_TARGET(Stylesheets_data ALL - SOURCES ${Stylesheets_Files} ${Images_Files} ${Overlay_Stylesheets_Files} + SOURCES ${Stylesheets_Files} ${Images_Files} ${Images_Files2} ${Overlay_Stylesheets_Files} ${Overlay_icons} ) fc_copy_sources(Stylesheets_data "${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_DATADIR}/Gui/Stylesheets" ${Stylesheets_Files} ${Images_Files} - ${Overlay_Stylesheets_Files}) + ${Images_Files2} + ${Overlay_Stylesheets_Files} + ${Overlay_icons}) INSTALL( FILES @@ -74,9 +53,21 @@ INSTALL( DESTINATION ${CMAKE_INSTALL_DATADIR}/Gui/Stylesheets/overlay ) +INSTALL( + FILES + ${Overlay_icons} + DESTINATION + ${CMAKE_INSTALL_DATADIR}/Gui/Stylesheets/overlay/icons +) INSTALL( FILES ${Images_Files} DESTINATION ${CMAKE_INSTALL_DATADIR}/Gui/Stylesheets/images_dark-light ) +INSTALL( + FILES + ${Images_Files2} + DESTINATION + ${CMAKE_INSTALL_DATADIR}/Gui/Stylesheets/images_classic +) diff --git a/src/Gui/Stylesheets/Darker.qss b/src/Gui/Stylesheets/Dark theme.qss similarity index 68% rename from src/Gui/Stylesheets/Darker.qss rename to src/Gui/Stylesheets/Dark theme.qss index e52180029d..dc47f994e1 100644 --- a/src/Gui/Stylesheets/Darker.qss +++ b/src/Gui/Stylesheets/Dark theme.qss @@ -19,6 +19,7 @@ INSTALLATION WHEN NECESSARY FOLLOWING CODES ARE CHANGED IN THE SETTINGS: @ThemeAccentColor1 @ThemeAccentColor2 + @ThemeAccentColor3 See Qt documentation: - https://doc.qt.io/qt-5/stylesheet.html @@ -101,36 +102,36 @@ QMainWindow, QDialog, QDockWidget, QToolBar { - background-color: #444444; /* main background color */ + background-color: #333333; /* main background color */ } QMdiArea { - background-image: url(qss:images_dark-light/background_freecad_dark.svg); + /* background-image: url(qss:images_classic/background_freecad_light.png); background-position: center center; - background-repeat: no-repeat; + background-repeat: no-repeat; */ } /*navgation src/Mod/Tux/NavigationIndicatorGui.py */ Gui--NavigationIndicatorGui--BlenderNavigationStyle { /*QAction#a4 {*/ qproperty-icon: url(:/icons/icons/NavigationBlender_light.svg); } -/*===== + /* QWidget ---------------------------------------------------------------- --------------------------------------------------------------------------- */ QWidget { - background-color: #444444; - border: 0px solid #696968; + /* background-color: #444444; */ + border: 0px solid #020202; padding: 0px; color: White; - selection-background-color: @ThemeAccentColor1; + selection-background-color: transparent; selection-color: White; } QWidget:disabled { - color: #c2c7cb; + color: #adadad; selection-background-color: @ThemeAccentColor1; - selection-color: #c2c7cb; + selection-color: #cccccc; } QWidget::item:selected { @@ -150,35 +151,37 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmainwindow --------------------------------------------------------------------------- */ QMainWindow::separator { /*background-color: #3c3c3c;*/ - border: 0px solid #696968; + border: 0px solid #020202; spacing: 0px; padding: 1px; } QMainWindow::separator:vertical:hover { - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0.2 transparent,stop:0.5 @ThemeAccentColor1, stop:0.8 transparent); + /* background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0.2 transparent,stop:0.5 @ThemeAccentColor1, stop:0.8 transparent); */ /*background-color: @ThemeAccentColor1;*/ - image: url(qss:images_dark-light/splitter_vertical_light.svg); + /* width: 2px;*/ + image: url(qss:images_classic/splitter_vertical-lightgray.png); } QMainWindow::separator:horizontal:hover { - background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0.2 transparent,stop:0.5 @ThemeAccentColor1, stop:0.8 transparent); + /* height: 2px; */ + /* background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0.2 transparent,stop:0.5 @ThemeAccentColor1, stop:0.8 transparent); */ /*background-color: @ThemeAccentColor1;*/ - image: url(qss:images_dark-light/splitter_horizontal_light.svg); + image: url(qss:images_classic/splitter_horizontal-lightgray.png); } QMainWindow::separator:horizontal { width: 4px; margin-top: 0.1px; margin-bottom: 0.1px; - /* image: url(qss:images_dark-light/splitter_horizontal_dark.svg);*/ + /* image: url(qss:images_classic/splitter_horizontal-dark.png);*/ } QMainWindow::separator:vertical { height: 4px; margin-left: 0.1px; margin-right: 0.1px; - /* image: url(qss:images_dark-light/splitter_vertical_dark.svg);*/ + /* image: url(qss:images_classic/splitter_vertical_dark.png);*/ } /* QToolTip --------------------------------------------------------------- @@ -187,13 +190,21 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtooltip --------------------------------------------------------------------------- */ QToolTip { - background-color: #1c1b22; - color: White; + background-color: #ffffff; + color: black; /* If you remove the border property, background stops working on Windows */ border: none; + font-weight:bolder; + border-top-width: 0.5px; + border-left-width: 0.5px; + border-right-width: 1.5px; + border-bottom-width: 1.5px; + border-style: solid; + border-color: #202020; /* Remove padding, for fix combo box tooltip */ padding: 0px; /* Remove opacity, fix #174 - may need to use RGBA */ + /* border-radius: 4px; */ } /* QStatusBar ------------------------------------------------------------- @@ -204,7 +215,7 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qstatusbar QStatusBar { border: 0px solid #3c3c3c; /* Fixes Spyder #9120, #9121 */ - background: #444444; + background: #333333; /* Fixes #205, white vertical borders separating items */ } @@ -213,9 +224,9 @@ QStatusBar::item { } QStatusBar QToolTip { - color: #1e1e1e; - background-color: #7d7f81; - border: 1px solid #696968; + background-color: #333333; + border: 1px solid #020202; + color: #ffffff; /* Remove padding, for fix combo box tooltip */ padding: 0px; /* Reducing transparency to read better */ @@ -241,40 +252,40 @@ QCheckBox { } QCheckBox:focus { - border: 1px solid @ThemeAccentColor2; + border: 0.5px solid @ThemeAccentColor2; } QCheckBox QWidget:disabled { - color: #c2c7cb; + color: #adadad; } QCheckBox::indicator { color: white; - background-color: #1c1b22; + background-color: #252525; width: 12px; height: 12px; - image:url(qss:images_dark-light/checkbox_unchecked_light.svg); + image:url(qss:images_classic/checkbox-Empty-white.png); } QCheckBox::indicator:unchecked { - background-color: #1c1b22; - image:url(qss:images_dark-light/checkbox_unchecked_light.svg); + background-color: #252525; + image:url(qss:images_classic/checkbox-Empty-white.png); } QCheckBox::indicator:unchecked:hover, QCheckBox::indicator:unchecked:focus, QCheckBox::indicator:unchecked:pressed { background-color: @ThemeAccentColor1; - image:url(qss:images_dark-light/checkbox_unchecked_light.svg); + image:url(qss:images_classic/checkbox-Empty-white.png); } QCheckBox::indicator:unchecked:disabled { background-color: #444444; - image:url(qss:images_dark-light/checkbox_unchecked_disabled.svg); + image:url(qss:images_classic/checkbox-Empty-lightgray.png); } QCheckBox::indicator:checked { - background-color: #1c1b22; - /*border: 1px solid #696968; /* QRadioButton has the same color */ - image:url(qss:images_dark-light/checkbox_light.svg); + background-color: #252525; + /*border: 1px solid #020202; /* QRadioButton has the same color */ + image:url(qss:images_classic/checkbox-checked-white.png); } QCheckBox::indicator:checked:hover, QCheckBox::indicator:checked:pressed { @@ -283,18 +294,18 @@ QCheckBox::indicator:checked:hover, QCheckBox::indicator:checked:pressed { QCheckBox::indicator:checked:disabled { background-color: #444444; - image: url(qss:images_dark-light/checkbox_checked_disabled.svg); + image: url(qss:images_classic/checkbox-checked-lightgray.png); } QCheckBox::indicator:indeterminate { - background-color: #1c1b22; - border: 1px solid #696968; - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); + background-color: #252525; + border: 1px solid #020202; + image: url(qss:images_classic/checkbox-indeterminate-white.png); } QCheckBox::indicator:indeterminate:disabled { background-color: #444444; - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); + image: url(qss:images_classic/checkbox-indeterminate-white.png); } QCheckBox::indicator:indeterminate:hover, QCheckBox::indicator:indeterminate:pressed { @@ -307,36 +318,30 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qgroupbox --------------------------------------------------------------------------- */ QGroupBox { - font-weight: bold; - border: 1px solid #696968; - border-radius: 1.9px; - padding: 2px; - margin-top: 10px; - margin-bottom: 4px; + background-color: #3c3c3c; + border: 1px solid #444444; + border-radius: 2px; + margin-top: 3ex; /* leave space at the top for the title */ } QGroupBox::title { - subcontrol-origin: margin; - subcontrol-position: top left; - left: 4px; - padding-left: 2px; - padding-right: 4px; - padding-top: 6px; + top: -18px; + left: 0px; } QGroupBox::indicator { color: white; background-color: #3c3c3c; - border: 1px solid #696968; + border: 1px solid #020202; width: 12px; height: 12px; border-radius:1px; } QGroupBox::indicator:unchecked { - background-color: #696968; - border: 1px solid #696968; - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); + background-color: #020202; + border: 1px solid #020202; + image: url(qss:images_classic/checkbox-indeterminate-white.png); } QGroupBox::indicator:unchecked:hover, QGroupBox::indicator:unchecked:focus, QGroupBox::indicator:unchecked:pressed { @@ -344,13 +349,13 @@ QGroupBox::indicator:unchecked:hover, QGroupBox::indicator:unchecked:focus, QGro } QGroupBox::indicator:unchecked:disabled { - background-color: #1c1b22; - border: 1px solid #696968; + background-color: #444444; + border: 1px solid #020202; } QGroupBox::indicator:checked { border: none; - image:url(qss:images_dark-light/checkbox_light.svg); + image:url(qss:images_classic/checkbox-checked-white.png); } QGroupBox::indicator:checked:hover, QGroupBox::indicator:checked:focus, QGroupBox::indicator:checked:pressed { @@ -377,12 +382,12 @@ QRadioButton { } QRadioButton:focus { - border: 1px solid @ThemeAccentColor2; + border: 0.5px solid @ThemeAccentColor2; } QRadioButton:disabled { - background-color: #696968; - color: #353535; + background-color: #444444; + /* color: #444444; */ } QRadioButton QWidget { @@ -395,44 +400,43 @@ QRadioButton QWidget { } QRadioButton::indicator { - background-color: #3c3c3c; - border: 1px solid #696968; - border-radius: 6px; - margin-left: 0px; - height: 11px; - width: 11px; + height: 13px; + width: 13px; + border-image:url(qss:images_classic/Radio-unchecked-white.png); } QRadioButton::indicator:unchecked { - /*image:url(qss:images_dark-light/radiobutton_light.svg);*/ + /*image:url(qss:images_classic/Radio-checked-white.png);*/ } QRadioButton::indicator:unchecked:hover, QRadioButton::indicator:unchecked:pressed { - background-color: @ThemeAccentColor1; + /* background-color: @ThemeAccentColor1; border: 1px solid @ThemeAccentColor1; - border-radius: 6px; + border-radius: 6px; */ } QRadioButton::indicator:unchecked:disabled { - /*image:url(qss:images_dark-light/radiobutton_dark.svg);*/ - border: 1px solid #696968; + /*image:url(qss:images_classic/Radio-checked-lightgray.png);*/ + border: 1px solid #444444; } QRadioButton::indicator:checked { - image:url(qss:images_dark-light/radiobutton_light.svg); + height: 13px; + width: 13px; + border-image:url(qss:images_classic/Radio-checked-white.png); } QRadioButton::indicator:checked:hover, QRadioButton::indicator:checked:pressed { - background-color: @ThemeAccentColor1; + /* background-color: @ThemeAccentColor1; border: 1px solid @ThemeAccentColor1; border-radius: 6px; - image:url(qss:images_dark-light/radiobutton_light.svg); + image:url(qss:images_classic/Radio-checked-white.png); */ } QRadioButton::indicator:checked:disabled { outline: none; - background-color: #696968; - image:url(qss:images_dark-light/radiobutton_dark.svg); + background-color: #444444; + image:url(qss:images_classic/Radio-checked-lightgray.png); } /* QMenuBar --------------------------------------------------------------- @@ -441,7 +445,7 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenubar --------------------------------------------------------------------------- */ QMenuBar { - background-color: #161616; + background-color: #252525; /*padding: 1px; border: 0px solid rgba(0,0,0,140);*/ color: White; @@ -449,7 +453,7 @@ QMenuBar { } QMenuBar:focus { - border: 1px solid @ThemeAccentColor2; + border: 0.5px solid @ThemeAccentColor2; } QMenuBar::item { @@ -462,7 +466,7 @@ QMenuBar::item { QMenuBar::item:selected { background: transparent; - border: 0px solid #696968; + border: 0px solid #020202; background-color: @ThemeAccentColor1; } @@ -470,7 +474,7 @@ QMenuBar::item:pressed { /*padding: 2px; padding-left: 10px; padding-right: 10px;*/ - border: 0px solid #696968; + border: 0px solid #020202; background-color: @ThemeAccentColor1; color: White; /*margin-bottom: 0px; @@ -487,22 +491,25 @@ QMenu { border-right: 2px rgba(0,0,0,140); color: White; margin: 0px; - background-color: #161616; + background-color: #252525; selection-background-color: @ThemeAccentColor1; } QMenu::separator { height: 2px; background-color: #3c3c3c; - margin-left: 30%; - margin-right: 30%; + margin-left: 10%; + margin-right: 10%; } QMenu::item { background-color: transparent; - padding: 2px 2px; /* make room for icon at left */ + padding-left: 5px; + padding-top: 4px; + padding-bottom: 4px; + padding-right: 50px; /* Reserve space for selection border */ - border: 0px transparent #696968; + border: 0px transparent #020202; } QMenu::item:selected { @@ -538,7 +545,7 @@ QMenu::icon:checked { /* appearance of a 'checked' icon */ border-radius: 0px; } QMenu::indicator:non-exclusive:unchecked { - image: url(qss:images_dark-light/checkbox_unchecked_light.svg); + image: url(qss:images_classic/checkbox-Empty-white.png); } QMenu::indicator:non-exclusive:unchecked:hover, QMenu::indicator:non-exclusive:unchecked:focus, QMenu::indicator:non-exclusive:unchecked:pressed { @@ -547,11 +554,11 @@ QMenu::indicator:non-exclusive:unchecked:hover, QMenu::indicator:non-exclusive:u } QMenu::indicator:non-exclusive:unchecked:disabled { - image: url(qss:images_dark-light/checkbox_unchecked_disabled.svg); + image: url(qss:images_classic/checkbox-Empty-lightgray.png); } QMenu::indicator:non-exclusive:checked { - image:url(qss:images_dark-light/checkbox_light.svg); + image:url(qss:images_classic/checkbox-checked-white.png); } QMenu::indicator:non-exclusive:checked:hover, QMenu::indicator:non-exclusive:checked:focus, QMenu::indicator:non-exclusive:checked:pressed { @@ -560,60 +567,60 @@ QMenu::indicator:non-exclusive:checked:hover, QMenu::indicator:non-exclusive:che } QMenu::indicator:non-exclusive:checked:disabled { -image:url(qss:images_dark-light/checkbox_checked_disabled.svg); +image:url(qss:images_classic/checkbox-checked-lightgray.png); } QMenu::indicator:non-exclusive:indeterminate { - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); + image: url(qss:images_classic/checkbox-indeterminate-white.png); } QMenu::indicator:non-exclusive:indeterminate:disabled { - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); + image: url(qss:images_classic/checkbox-indeterminate-white.png); } QMenu::indicator:non-exclusive:indeterminate:focus, QMenu::indicator:non-exclusive:indeterminate:hover, QMenu::indicator:non-exclusive:indeterminate:pressed { - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); + image: url(qss:images_classic/checkbox-indeterminate-white.png); } QMenu::indicator:exclusive:unchecked { - image: url(qss:images_dark-light/transparent.svg); + image: url(qss:images_classic/transparent.png); } QMenu::indicator:exclusive:unchecked:hover, QMenu::indicator:exclusive:unchecked:focus, QMenu::indicator:exclusive:unchecked:pressed { border: none; outline: none; background: @ThemeAccentColor1; - image: url(qss:images_dark-light/checkbox_unchecked_light.svg); + image: url(qss:images_classic/checkbox-Empty-white.png); } QMenu::indicator:exclusive:unchecked:disabled { - image: url(qss:images_dark-light/checkbox_unchecked_light.svg); + image: url(qss:images_classic/checkbox-Empty-white.png); } QMenu::indicator:exclusive:checked { border: none; outline: none; - image: url(qss:images_dark-light/radiobutton_light.svg); + image: url(qss:images_classic/Radio-checked-white.png); } QMenu::indicator:exclusive:checked:hover, QMenu::indicator:exclusive:checked:focus, QMenu::indicator:exclusive:checked:pressed { border: none; outline: none; background: @ThemeAccentColor1; - image: url(qss:images_dark-light/checkbox_unchecked_light.svg); + image: url(qss:images_classic/checkbox-Empty-white.png); } QMenu::indicator:exclusive:checked:disabled { outline: none; - image: url(qss:images_dark-light/radiobutton_light.svg); + image: url(qss:images_classic/Radio-checked-white.png); } QMenu::right-arrow { margin: 5px; padding-left: 12px; - image:url(qss:images_dark-light/right_arrow_lighter.svg); - height: 12px; - width: 12px; + image:url(qss:images_classic/Arrow-right-white.png); + height: 8px; + width: 8px; background-color: transparent; } @@ -625,7 +632,7 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox QAbstractItemView { alternate-background-color: #5b5b5b; color: White; - border: 1px solid #696968; + border: 1px solid #020202; border-radius: 2px; } @@ -640,7 +647,7 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea --------------------------------------------------------------------------- */ QAbstractScrollArea { background-color: transparent; - border: 0px solid #696968; + border: 0px solid #020202; border-radius: 0px; /* fix #159 */ padding: 0px; @@ -649,7 +656,7 @@ QAbstractScrollArea { } QAbstractScrollArea:disabled { - color: #353535; + color: #adadad; } /* QScrollArea ------------------------------------------------------------ @@ -657,7 +664,7 @@ QAbstractScrollArea:disabled { --------------------------------------------------------------------------- text input field disabled!!!!*/ QScrollArea QWidget:disabled { - background-color: #444444; + background-color: transparent } /* QScrollBar ------------------------------------------------------------- @@ -665,140 +672,161 @@ QScrollArea QWidget:disabled { https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qscrollbar --------------------------------------------------------------------------- */ + QScrollBar:horizontal { - height: 16px; - margin: 2px 8px 2px 8px; - border: 0px solid #696968; - border-radius: 4px; - background-color: #444444; + height: 14px; + border-right: 14px solid qlineargradient(x1:0, y1:0, x2:1, y2:0, stop:0 #020202, stop:0.1 #303030, stop:0.9 #353535, stop:1 #020202); + border-left: 14px solid qlineargradient(x1:1, y1:0, x2:0, y2:0, stop:0 #020202, stop:0.1 #303030, stop:0.9 #353535, stop:1 #020202); + border-top: 0.5px solid #020202; + border-bottom: 0.5px solid #020202; + background-color: #202020; } QScrollBar:vertical { - background-color: #444444; - width: 16px; - margin: 8px 2px 8px 2px; - border: 0px solid #696968; - border-radius: 4px; + background-color: #222222; + width: 14px; + border-top: 14px solid qlineargradient(x1:0, y1:1, x2:0, y2:0, stop:0 #020202, stop:0.1 #303030, stop:0.9 #353535, stop:1 #020202); + border-bottom: 14px solid qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #020202, stop:0.1 #303030, stop:0.9 #353535, stop:1 #020202); + border-left: 0.5px solid #020202; + border-right: 0.5px solid #020202; + background-color: #202020; } QScrollBar::handle:horizontal { - background-color: #696969; - border: 1px solid #444444; - border-radius: 4px; - min-width: 8px; + border-left: 1px solid #020202; + border-right: 1px solid #020202; + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #333333, stop:1 #444444); } QScrollBar::handle:horizontal:hover { - background-color: @ThemeAccentColor1; - border: #696968; - border-radius: 4px; - min-width: 8px; + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #444444, stop:1 #696969); + /* border: 1px #202020; */ } QScrollBar::handle:horizontal:focus { - border: 1px solid @ThemeAccentColor2; + border: 0.5px solid @ThemeAccentColor2; } QScrollBar::handle:vertical { - background-color: #696969; - border: 1px solid #696968; + border-top: 1px solid #020202; + border-bottom: 1px solid #020202; min-height: 8px; - border-radius: 4px; + border-radius: 0px; + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0, stop:0 #333333, stop:1 #444444); } QScrollBar::handle:vertical:hover { - background-color: @ThemeAccentColor1; - border: #696968; - border-radius: 4px; + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0, stop:0 #444444, stop:1 #696969); + /* border: solid 1px #202020; */ + border-radius: 0px; min-height: 8px; } QScrollBar::handle:vertical:focus { - border: 1px solid @ThemeAccentColor2; + border: 0.5px solid @ThemeAccentColor2; } QScrollBar::add-line:horizontal { - border-image: url(qss:images_dark-light/right_arrow_light.svg); - height: 9px; - width: 5px; + margin: 6px 6px; + image: url(qss:images_classic/Arrow-right-lightgray.png); + height: 8px; + width: 4px; subcontrol-position: right; subcontrol-origin: margin; } QScrollBar::add-line:horizontal:hover, QScrollBar::add-line:horizontal:on { - border-image: url(qss:images_dark-light/right_arrow_lighter.svg); - height: 9px; - width: 5px; + image: url(qss:images_classic/Arrow-right-white.png); + height: 8px; + width: 4px; subcontrol-position: right; subcontrol-origin: margin; } QScrollBar::add-line:vertical { - border-image: url(qss:images_dark-light/down_arrow_light.svg); - height: 5px; - width: 9px; + margin: 6px 6px; + image: url(qss:images_classic/Arrow-down-lightgray.png); + height: 4px; + width: 8px; subcontrol-position: bottom; subcontrol-origin: margin; } QScrollBar::add-line:vertical:hover, QScrollBar::add-line:vertical:on { - border-image: url(qss:images_dark-light/down_arrow_lighter.svg); - height: 5px; - width: 9px; + image: url(qss:images_classic/Arrow-down-white.png); + height: 4px; + width: 8px; subcontrol-position: bottom; subcontrol-origin: margin; } QScrollBar::sub-line:horizontal { - margin: 0px 0px 0px 0px; - border-image: url(qss:images_dark-light/left_arrow_light.svg); - height: 9px; - width: 5px; + margin: 6px 6px; + image: url(qss:images_classic/Arrow-left-lightgray.png); + height: 8px; + width: 4px; subcontrol-position: left; subcontrol-origin: margin; } QScrollBar::sub-line:horizontal:hover, QScrollBar::sub-line:horizontal:on { - border-image: url(qss:images_dark-light/left_arrow_lighter.svg); - height: 9px; - width: 5px; + image: url(qss:images_classic/Arrow-left-white.png); + height: 8px; + width: 4px; subcontrol-position: left; subcontrol-origin: margin; } QScrollBar::sub-line:vertical { - margin: 0px 0px 0px 0px; - border-image: url(qss:images_dark-light/up_arrow_light.svg); - height: 5px; - width: 9px; + margin: 6px 6px; + image: url(qss:images_classic/Arrow-up-lightgray.png); + height: 4px; + width: 8px; subcontrol-position: top; subcontrol-origin: margin; } QScrollBar::sub-line:vertical:hover, QScrollBar::sub-line:vertical:on { - background-color: @ThemeAccentColor1; - border-image: url(qss:images_dark-light/up_arrow_lighter.svg); - height: 5px; - width: 9px; + image: url(qss:images_classic/Arrow-up-white.png); + height: 4px; + width: 8px; subcontrol-position: top; subcontrol-origin: margin; } -QScrollBar::up-arrow:horizontal, QScrollBar::down-arrow:horizontal { +/* QScrollBar::up-arrow:horizontal, QScrollBar::down-arrow:horizontal { + background: none; + border: 1px solid #8800ff; +} */ + +/* QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical { + background: none; + border: 1px solid #00ff6a; +} */ + +/* QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal { + background: none; + border: 1px solid #00ff95; */ + /* border: 1px solid #020202; */ +/* } */ + +/* QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { + background: none; + border: 1px solid #0400ff;*/ + /* border: 1px solid #020202; */ +/*} */ + +/* QScrollBar::add-line { + border: 1px solid #ff0000; background: none; } -QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical { +QScrollBar::sub-line { + border: 1px solid #00ff44; background: none; -} +} */ -QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal { - background: none; -} -QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { - background: none; -} /* QTextEdit -------------------------------------------------------------- @@ -810,12 +838,12 @@ report view QTextEdit { background-color: #444444; color: White; - border-radius: 1.9px; - border: 0px solid #696968; + border-radius: 2px; + border: 0px solid #020202; } QTextEdit:focus { - border: 1px solid @ThemeAccentColor2; + border: 0.5px solid @ThemeAccentColor2; } QTextEdit:selected { @@ -830,11 +858,11 @@ QPlainTextEdit { background-color: #3c3c3c; color: White; border-radius: 1.9px; - border: 0px solid #696968; + border: 0px solid #020202; } QPlainTextEdit:focus { - border: 1px solid @ThemeAccentColor2; + border: 0.5px solid @ThemeAccentColor2; } QPlainTextEdit:selected { @@ -851,7 +879,7 @@ QSizeGrip { background: transparent; width: 12px; height: 12px; - image:url(qss:images_dark-light/sizegrip_light.svg); + image:url(qss:images_classic/sizegrip-lightgray.png); } /* QStackedWidget --------------------------------------------------------- @@ -859,7 +887,7 @@ QSizeGrip { --------------------------------------------------------------------------- */ QStackedWidget { padding: 0px; - border: 0px solid #696968; + border: 0px solid #020202; } /* QToolBar --------------------------------------------------------------- @@ -868,64 +896,79 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbar --------------------------------------------------------------------------- */ QToolBar { - background-color: #444444; - border-bottom: 0px solid rgba(0,0,0,120); - padding: 1px; - font-weight: bold; - spacing: 1px; + background-color: #333333; + /* border: 1px solid #020202; */ + /* font-weight: bold; */ +} + +QToolBar:horizontal { + /* border-top: 1px solid #020202; */ + border-bottom: 0.5px solid #020202; + /* spacing: 2px; */ + padding-top: 3px; + padding-left: 5px; +} + +QToolBar:vertical { + border-left: 0.5px solid #020202; + border-right: 0.5px solid #020202; + /* spacing: 1px; */ + padding-top: 3px; + padding-left: 2px; } QToolBar:disabled { /* Fixes #272 */ - background-color: #444444; + /* background-color: #444444; */ } QToolBar::handle:horizontal { width: 8px; - margin: 3px 3px; - background-position: top right; - background-repeat: repeat-y; - background-image: url(qss:images_dark-light/Hmovetoolbar_light.svg); + /* margin: 3px 3px; */ + image: url(qss:images_classic/Hmovetoolbar-lightgray.png); } QToolBar::handle:vertical { height: 8px; - margin: 3px 3px; - background-position: left bottom; - background-repeat: repeat-x; - background-image: url(qss:images_dark-light/Vmovetoolbar_light.svg); + /* margin: 3px 3px; */ + image: url(qss:images_classic/Vmovetoolbar-lightgray.png); } +QToolBar::handle:horizontal:hover { + width: 8px; + image: url(qss:images_classic/Hmovetoolbar-white.png); +} + +QToolBar::handle:vertical:hover { + height: 8px; + image: url(qss:images_classic/Vmovetoolbar-white.png); +} + + QToolBar::separator:horizontal { width: 2px; - margin: 4px 4px; - background-color: transparent; + image: url(qss:images_classic/Hsepartoolbar-Darkgray.png); } QToolBar::separator:vertical { height: 2px; - margin: 4px 4px; - background-color: transparent; + image: url(qss:images_classic/Vsepartoolbar-Darkgray.png); } /*The "show more" button (it can also be stylable with "QToolBarExtension" icon is not working Qproperty works but breaks when you move the toolbar see also */ QToolButton#qt_toolbar_ext_button { margin: 0px; padding: 0px; -background-color: #696969; -/*background-image: url(qss:images_dark-light/more_light.svg);*/ background-repeat: none; background-position: center center; } QToolButton#qt_toolbar_ext_button:hover { -/*background-image: url(qss:images_dark-light/more_light.svg);*/ background-color: @ThemeAccentColor1; } QToolButton#qt_toolbar_ext_button:on { -/*background-image: url(qss:images_dark-light/more_light.svg);*/ -border-color: #696968; +border-color: #020202; background-color: @ThemeAccentColor1; } @@ -935,76 +978,75 @@ background-color: @ThemeAccentColor1; --------------------------------------------------------------------------- */ QAbstractSpinBox, QSpinBox { - background-color: #1c1b22; - border: 1px solid transparent; + background-color: #252525; + border: 1px solid #020202; color: White; - /* This fixes 103, 111 */ - /* padding-top: 0px; - /* This fixes 103, 111 */ - /*padding-bottom: 0px; - /*padding-left: 4px; - /*padding-right: 4px; - border-radius: 1.9px;*/ + border-radius: 2px; min-height: 1.7em; - /* min-width: 5px; removed to fix 109 */ } QAbstractSpinBox:up-button { - background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #333333, stop:1 #2a2a2a); + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #333333, stop:1 #252525); subcontrol-origin: border; subcontrol-position: top right; - border: 1px solid transparent; - border-top-left-radius: 0; - border-bottom-left-radius: 0; - /*margin: 1px;*/ - /*width: 12px; - /*margin-bottom: -1px;*/ + border-top: 1px solid transparent; + border-right: 1px solid transparent; + border-top-right-radius: 2px; + border-bottom-left-radius: 2px; + margin-top: 1px; + margin-right: 1px; + } QAbstractSpinBox::up-arrow, QAbstractSpinBox::up-arrow:disabled, QAbstractSpinBox::up-arrow:off { - image: url(qss:images_dark-light/up_arrow_disabled_light.svg); - /* height: 8px; - width: 8px;*/ + image: url(qss:images_classic/Arrow-up-lightgray.png); + height: 8px; + width: 8px; } QAbstractSpinBox::up-arrow:hover { - image: url(qss:images_dark-light/up_arrow_lighter.svg); + image: url(qss:images_classic/Arrow-up-white.png); + height: 8px; + width: 8px; } QAbstractSpinBox:down-button { - background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #333333, stop:1 #2a2a2a); + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #252525, stop:1 #333333); subcontrol-origin: border; subcontrol-position: bottom right; - border: 1px solid transparent; - border-top-left-radius: 0; - border-bottom-left-radius: 0; - /*margin: 1px;*/ + border-bottom: 1px solid transparent; + border-right: 1px solid transparent; + border-top-left-radius: 2px; + border-bottom-left-radius: 2px; + margin-bottom: 1px; + margin-right: 1px; + /* margin: 1px; */ /*width: 12px; /*margin-top: -1px;*/ } QAbstractSpinBox::down-arrow, QAbstractSpinBox::down-arrow:disabled, QAbstractSpinBox::down-arrow:off { - image: url(qss:images_dark-light/down_arrow_disabled_light.svg); - /*height: 8px; - width: 8px;*/ + image: url(qss:images_classic/Arrow-down-lightgray.png); + height: 8px; + width: 8px; } QAbstractSpinBox::down-arrow:hover { - image: url(qss:images_dark-light/down_arrow_lighter.svg); + image: url(qss:images_classic/Arrow-down-white.png); + height: 8px; + width: 8px; } QAbstractSpinBox:hover { - /*border: 1px solid @ThemeAccentColor1; - color: White;*/ + } QAbstractSpinBox:focus { - border: 1px solid @ThemeAccentColor2; + border: 0.5px solid @ThemeAccentColor2; } QAbstractSpinBox:selected { background: @ThemeAccentColor2; - /*color: White;*/ } /* ------------------------------------------------------------------------ */ @@ -1017,7 +1059,7 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe --------------------------------------------------------------------------- */ QLabel { background-color: transparent; - border: 0px solid #696968; + border: 0px solid #020202; padding: 2px; margin: 0px; color: White; @@ -1025,8 +1067,8 @@ QLabel { QLabel:disabled { background-color: transparent; - border: 0px solid #696968; - color: #c2c7cb; + border: 0px solid #020202; + color: #adadad; } QLabel[haslink="true"] { @@ -1040,21 +1082,21 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea --------------------------------------------------------------------------- */ QTextBrowser { - background-color: #1c1b22; - border: 1px solid #696968; + background-color: #252525; + border: 1px solid #020202; color: White; border-radius: 1.9px; } QTextBrowser:disabled { background-color: #444444; - border: 1px solid #696968; - color: #c2c7cb; + border: 1px solid #020202; + color: #adadad; border-radius: 1.9px; } QTextBrowser:hover, QTextBrowser:!hover, QTextBrowser:selected, QTextBrowser:pressed { - border: 1px solid @ThemeAccentColor1; + /* border: 1px solid @ThemeAccentColor1; */ } /* QGraphicsView ---------------------------------------------------------- @@ -1068,9 +1110,9 @@ QGraphicsView { } QGraphicsView:disabled { - background-color: #1c1b22; - border: 0px solid #696968; - color: #c2c7cb; + background-color: #252525; + border: 0px solid #020202; + color: #adadad; border-radius: 0px; } @@ -1082,13 +1124,13 @@ QGraphicsView:hover, QGraphicsView:!hover, QGraphicsView:selected, QGraphicsView --------------------------------------------------------------------------- */ QCalendarWidget { - border: 1px solid #696968; + border: 1px solid #020202; border-radius: 1.9px; } QCalendarWidget:disabled { - background-color: #353535; - color: #c2c7cb; + background-color: #333333; + color: #adadad; } /* QLCDNumber ------------------------------------------------------------- @@ -1101,7 +1143,7 @@ QLCDNumber { QLCDNumber:disabled { background-color: #444444; - color: #c2c7cb; + color: #adadad; } /* QProgressBar ----------------------------------------------------------- @@ -1110,16 +1152,16 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qprogressbar --------------------------------------------------------------------------- */ QProgressBar { - background-color: #c2c7cb; - border: 1px solid #696968; + background-color: #cccccc; + border: 1px solid #020202; color: White; border-radius: 1.9px; text-align: center; } QProgressBar:disabled { - background-color: #161616; - border: 1px solid #696968; + background-color: #444444; + border: 1px solid #020202; color: #696969; border-radius: 1.9px; text-align: center; @@ -1132,8 +1174,8 @@ QProgressBar::chunk { } QProgressBar::chunk:disabled { - background-color: #161616; - color: #696968; + background-color: #444444; + color: #020202; border-radius: 1.9px; } @@ -1146,46 +1188,47 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qpushbutton --------------------------------------------------------------------------- */ QPushButton { - background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #333333, stop:1 #2a2a2a); + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #333333, stop:1 #252525); color: White; - border: 1px solid #2a2a2a; - border-bottom-color: #1e1e1e; /* simulates shadow under the button */ - border-radius: 4px; - padding: 2px; + border: 1px solid #020202; + /* border-bottom-color: #1e1e1e; simulates shadow under the button */ + border-radius: 3px; + padding: 4px 0px; + min-width: 80px; } QPushButton:disabled { background-color: #444444; - color: #c2c7cb; - + color: #adadad; + border: 1px solid #020202; } QPushButton:checked { - background-color: @ThemeAccentColor1; + border: 1px solid @ThemeAccentColor1; outline: none; } QPushButton:checked:disabled { - background-color: @ThemeAccentColor1; - color: #3c3c3c; + border: 1px solid @ThemeAccentColor1; + color: #adadad; outline: none; } QPushButton:checked:selected { - background: @ThemeAccentColor1; + border: 1px solid @ThemeAccentColor1; } QPushButton:hover { - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #444444, stop:1 #333333); color: White; } QPushButton:pressed { - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); + border: 1px solid @ThemeAccentColor1; } QPushButton:selected { - background: @ThemeAccentColor2; + border: 1px solid @ThemeAccentColor1; color: White; } @@ -1208,44 +1251,41 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbutton QToolButton { background-color: transparent; color: White; - border-radius: 1px; - padding: 0px; + /* border-radius: 1px; */ + padding: 2px; outline: none; border: none; + border-radius: 3px; /* The subcontrols below are used only in the DelayedPopup mode */ /* The subcontrols below are used only in the MenuButtonPopup mode */ /* The subcontrol below is used only in the InstantPopup or DelayedPopup mode */ } QToolButton:disabled { - background-color: rgba(0, 0, 0, 0.065); - color: #c2c7cb; - border-radius: 1px; - padding: 0px; + /* background-color: rgba(0, 0, 0, 0.065); */ + color: #adadad; } QToolButton:checked { - background-color: @ThemeAccentColor1; - border-radius: 1.9px; - padding: 0px; - outline: none; + background-color: @ThemeAccentColor2; + border-radius: 2px; } QToolButton:checked:disabled { - background-color: #b65555; - color: #c2c7cb; - border-radius: 1.9px; + background-color: @ThemeAccentColor1; + color: #adadad; + border-radius: 2px; padding: 0px; outline: none; } QToolButton:checked:hover { background-color: @ThemeAccentColor1; - color: White; + border: 1px solid #020202; } QToolButton:checked:pressed { - background-color: @ThemeAccentColor1; + border: 1px solid @ThemeAccentColor2; } QToolButton:checked:selected { @@ -1254,16 +1294,15 @@ QToolButton:checked:selected { } QToolButton:hover { - background-color: @ThemeAccentColor1; color: White; + border: 1px solid #020202; } QToolButton:pressed { - background-color: @ThemeAccentColor2; } QToolButton:selected { - background: @ThemeAccentColor1; + border: 1px solid @ThemeAccentColor1; color: White; } @@ -1276,14 +1315,15 @@ QToolButton[popupMode="1"] { /* Only for MenuButtonPopup */ padding-right: 20px; } + QToolButton[popupMode="0"]::menu-button { border: none; } QToolButton[popupMode="0"]::menu-button:hover { border: none; - border-left: 2px solid #fe0000; - border-radius: 0px; + border-left: 2px solid #202020; + border-radius: 3px; } QToolButton[popupMode="1"]::menu-button { border: none; @@ -1291,57 +1331,63 @@ QToolButton[popupMode="1"]::menu-button { QToolButton[popupMode="1"]::menu-button:hover { border: none; - border-left: 2px solid #e5ff00; - border-radius: 0px; + border-left: 2px solid #202020; + border-radius: 3px; } QToolButton[popupMode="2"] { /* Only for InstantPopup */ padding-right: 20px; } +QToolBar > QToolButton#qt_toolbutton_menubutton { + padding-right: 15px; /* Hack to add more width to buttons with menu */ + border-radius: 3px; +} QToolButton::menu-button { - border-bottom: 0px solid #ffffff; - border-radius: 2px; + border: 1px solid transparent; /* 16px width + 4px for border = 20px allocated above */ + border-radius: 3px; width: 1.6ex; - padding: 2px; - border-radius: 2px; - border: 0px #000000; } QToolButton::menu-button:hover { - /* background: rgba(0, 0, 0, 0.5);*/ + border: 1px solid transparent; } +QToolButton::menu-button:pressed { + border: 1px solid transparent; +} + QToolButton::menu-button:checked:hover { - /* background: rgba(0, 0, 0, 0.5);*/ + border: 1px solid #020202; + background: @ThemeAccentColor2; } QToolButton::menu-indicator { /* Exclude a shift for better image */ - subcontrol-position: right bottom; + subcontrol-position: center center; /* Shift it a bit */ } QToolButton::menu-arrow { - image: url(qss:images_dark-light/more_arrow_light.svg); - width: 1.5ex; - height: 1.5ex; - subcontrol-position: right bottom; + image: url(qss:images_classic/Arrow-down-lightgray.png); + width: 1.3ex; + height: 1.3ex; + subcontrol-position: center center; background: transparent; } QToolButton::menu-arrow:open { - subcontrol-position: right bottom; - image: url(qss:images_dark-light/more_arrow_light.svg); - width: 1.7ex; - height: 1.7ex; + subcontrol-position: center center; + image: url(qss:images_classic/Arrow-Down-white.png); + width: 1.3ex; + height: 1.3ex; } QToolButton::menu-arrow:hover { - image: url(qss:images_dark-light/more_arrow_light.svg); - width: 1.7ex; - height: 1.7ex; + image: url(qss:images_classic/Arrow-Down-white.png); + width: 1.3ex; + height: 1.3ex; } /* QCommandLinkButton ----------------------------------------------------- @@ -1349,7 +1395,7 @@ QToolButton::menu-arrow:hover { --------------------------------------------------------------------------- */ QCommandLinkButton { background-color: transparent; - border: 1px solid #696968; + border: 1px solid #020202; color: White; border-radius: 1.9px; padding: 0px; @@ -1358,7 +1404,7 @@ QCommandLinkButton { QCommandLinkButton:disabled { background-color: transparent; - color: #c2c7cb; + color: #adadad; } /* ------------------------------------------------------------------------ */ @@ -1370,34 +1416,34 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox --------------------------------------------------------------------------- */ QComboBox { - border: 1px solid transparent; - background: #1c1b22; + border: 1px solid #020202; border-radius: 2px; + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #333333, stop:1 #252525); selection-background-color: @ThemeAccentColor1; - padding-left: 2px; + padding-left: 4px; padding-right: 2px; /* padding-right = 36; 4 + 16*2 See scrollbar size */ /* changed to 4px to fix #239 */ /* Fixes #103, #111 */ min-height: 1.5em; - margin: 0px -1px 0px 0px; /* hack for Mac... try it on Windows and Linux */ + /*margin: 0px -1px 0px 0px; hack for Mac... try it on Windows and Linux */ /* padding-top: 2px; removed to fix #132 */ /* padding-bottom: 2px; removed to fix #132 */ /* min-width: 75px; removed to fix #109 */ /* Needed to remove indicator - fix #132 */ } QComboBox:editable { - background: #1c1b22; + background: #252525; } QComboBox QAbstractItemView { - border: 0px solid #696968; - border-radius: 0px; - background-color: #1c1b22; + border: 1px solid #020202; + border-radius: 2px; + background-color: #252525; selection-background-color: @ThemeAccentColor1; } QComboBox QAbstractItemView:hover { - background-color:#1c1b22; + background-color:#252525; color: White; } @@ -1407,7 +1453,7 @@ QComboBox QAbstractItemView:selected { } QComboBox QAbstractItemView:alternate { - background: #1c1b22; + background: #252525; } QComboBox:checked { @@ -1416,16 +1462,18 @@ QComboBox:checked { QComboBox:disabled { background-color: #444444; - color: #353535; + color: #adadad; } QComboBox:hover { - /*background-color: @ThemeAccentColor1;*/ - border: 1px solid @ThemeAccentColor1; + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #444444, stop:1 #333333); + /* border: 1px solid @ThemeAccentColor1; */ } QComboBox:focus { - border: 1px solid @ThemeAccentColor2; + border: 1px solid #020202; + border-radius: 2px; + /* border: 1px solid @ThemeAccentColor2; */ } QComboBox:on { @@ -1438,9 +1486,9 @@ QComboBox::indicator { } QComboBox::indicator:checked { - width: 12px; - height: 12px; - image: url(qss:images_dark-light/check_light.svg); + width: 10px; + height: 10px; + image: url(qss:images_classic/Check-Checked-white.png); } QComboBox::item { @@ -1462,29 +1510,31 @@ QComboBox::item:alternate { } /* Color of the selected list item. */ QComboBox::item:selected { - border: 1px solid @ThemeAccentColor2; + border: 1px solid #020202; background: @ThemeAccentColor2; } QComboBox::drop-down { subcontrol-origin: padding; - background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #333333, stop:1 #2a2a2a); + /* background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #333333, stop:1 #020202); */ subcontrol-position: top right; - width: 14px; - border-left: 1px solid transparent; + width: 20px; + border-right: 1px solid transparent; + padding-right: 2px; + /* border-radius: 2px; */ } QComboBox::drop-down:hover { - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); + /* background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); */ } QComboBox::down-arrow { - image: url(qss:images_dark-light/down_arrow_disabled_light.svg); - height: 10px; - width: 10px; + image: url(qss:images_classic/Arrow-down-lightgray.png); + /* height: 10px; */ + width: 8px; } QComboBox::down-arrow:on, QComboBox::down-arrow:hover, QComboBox::down-arrow:focus { - image: url(qss:images_dark-light/down_arrow_lighter.svg); + image: url(qss:images_classic/Arrow-down-white.png); } @@ -1494,14 +1544,12 @@ Tasks panel (custom FreeCAD class) Gui--PropertyEditor--PropertyEditor { qproperty-groupTextColor: white; qproperty-groupBackground: #3c3c3c; - border: 0px solid #696968; - + border: 0px solid #333365; } /* Action group */ QFrame[class="panel"] { -background-color: transparent; /* temporal (transparent background) */ - +background-color: rgba(60, 60, 60, 0.50); } QSint--ActionGroup { @@ -1509,32 +1557,46 @@ padding: 0px; /* if not reset, it might create problems with QPushButtons and ot margin: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ } +QSint--ActionGroup QGroupBox { + border: 1px solid #696969; + background-color: transparent; + padding-bottom: 3px; +} + +QSint--ActionGroup QGroupBox::title { + top: -8px; + left: 13px; +} + /* Separator line */ QSint--ActionGroup QFrame[height="1"], -QSint--ActionGroup QFrame[height="2"], -QSint--ActionGroup QFrame[height="3"], +QSint--ActionGroup QFrame[height="1"], +QSint--ActionGroup QFrame[height="1"], QSint--ActionGroup QFrame[width="1"], -QSint--ActionGroup QFrame[width="2"], -QSint--ActionGroup QFrame[width="3"] { +QSint--ActionGroup QFrame[width="1"], +QSint--ActionGroup QFrame[width="1"] { border-color: rgba(0,0,0,60); } /* Panel header */ QSint--ActionGroup QFrame[class="header"] { -border-top: 1px solid #696968; -border-left: 1px solid #696968; -border-right: 1px solid #696968; -background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #333333, stop:1 #2a2a2a); +border-top: 1px solid #020202; +border-left: 1px solid #020202; +border-right: 1px solid #020202; +/*background-color: #d4d4d4; /* Task Panel Header background color */ +background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0 #000000 stop:1 #171d2e); border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; margin: 0px; padding: 0px; +color: #cdf5ff; } QSint--ActionGroup QFrame[class="header"]:hover { -background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); + /* background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0 #000000 stop:1 #313d61); */ + color: #51cdf3; } QSint--ActionGroup QToolButton[class="header"] { @@ -1546,41 +1608,29 @@ margin: 0px; padding: 0px; } -QSint--ActionGroup QFrame[class="header"] QLabel { -background-color: transparent; -background-image: url(qss:images_dark-light/down_arrow_light.svg); -background-repeat: none; -background-position: center center; -padding: 0px; -margin: 0px; +QSint--ActionGroup QFrame[class="header"] QLabel[fold="false"] { + background-image: url(qss:images_classic/Qsint_header_Unfold_Blue-dark.png); } -QSint--ActionGroup QFrame[class="header"] QLabel:hover { -background-color: transparent; -background-image: url(qss:images_dark-light/down_arrow_lighter.svg); +QSint--ActionGroup QFrame[class="header"] QLabel:hover[fold="false"] { + background-image: url(qss:images_classic/Qsint_header_UnfoldOver_Blue-dark.png); } QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"] { -background-color: transparent; -background-image: url(qss:images_dark-light/up_arrow_light.svg); -background-repeat: none; -background-position: center center; -padding: 0px; -margin: 0px; + background-image: url(qss:images_classic/Qsint_header_Fold_Blue-dark.png); } QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"]:hover { -background-color: transparent; -background-image: url(qss:images_dark-light/up_arrow_lighter.svg); + background-image: url(qss:images_classic/Qsint_header_FoldOver_Blue-dark.png) ; } QSint--ActionGroup QFrame[class="content"] { -background-color: transparent; /* Task Panel background color */ +background-color: #171d2e; /* Task Panel background color */ margin: 0px; padding: 0px; -border-bottom: 1px solid #696968; -border-left: 1px solid #696968; -border-right: 1px solid #696968; +border-bottom: 1px solid #020202; +border-left: 1px solid #020202; +border-right: 1px solid #020202; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-left-radius: 3px; @@ -1588,7 +1638,7 @@ border-bottom-right-radius: 3px; } QSint--ActionGroup QFrame[class="content"] > QWidget { -background-color: #444444; /* Task Panel background color */ +background-color: #171d2e; /* Task Panel background color */ } /* Fixs for tabs inside Task Panel */ @@ -1612,6 +1662,7 @@ border-left-color: @ThemeAccentColor1; /* same as Task Panel background color */ QSint--ActionGroup QFrame[class="content"] > QWidget > QPushButton { padding: 2px; /* bigger padding crops text and icons... */ margin: 0px; +border-radius: 3px; } /* Fix for lists inside task panels */ /* sketcher constraints list */ @@ -1619,7 +1670,7 @@ QSint--ActionGroup QFrame[class="content"] QTreeView, QSint--ActionGroup QFrame[class="content"] QListView, QSint--ActionGroup QFrame[class="content"] QTableView { color: white; -background-color: #1c1b22; +background-color: #252525; } @@ -1627,17 +1678,42 @@ background-color: #1c1b22; QSint--ActionGroup QFrame[class="content"] QToolButton { color: white; text-align: center; - background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #333333, stop:1 #2a2a2a); - border: 0px solid #adadad; + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #333333, stop:1 #252525); + border: 1px solid #000000; padding: 1px 1px; /* different than regular QPushButton */ margin: 0px; /* different than regular QPushButton */ min-height: 16px; /* same as QTabBar QPushButton min-width */ - border-radius: 1px; + border-radius: 3px; } -QSint--ActionGroup QFrame[class="content"] QToolButton:hover{ - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); +/* QToolButtons with a menu found in Sketcher task panel*/ +QSint--ActionGroup QToolButton::menu-button { + border-left: 1px solid #000000; + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; + padding: 0px; + width: 19px; /* 16px width + 4px for border = 20px allocated above */ + outline: none; + background-color: transparent; + /* margin: 10px; */ +} +QSint--ActionGroup QToolButton#settingsButton, +QSint--ActionGroup QToolButton#filterButton, +QSint--ActionGroup QToolButton#manualUpdate { + padding-right: 20px; /* make way for the popup button */ +} + +/* to give widget inside the menu same look as regular menu */ +QSint--ActionGroup QToolButton#filterButton QListWidget { + color: #ffffff; + background: #252525; + border: 1px solid #000000; +} + + +QSint--ActionGroup QFrame[class="content"] QToolButton:hover{ + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #444444, stop:1 #333333); } QSint--ActionGroup QFrame[class="content"] QToolButton:focus { border: 1px solid @ThemeAccentColor2; @@ -1645,13 +1721,12 @@ QSint--ActionGroup QFrame[class="content"] QToolButton:focus { QSint--ActionGroup QFrame[class="content"] QToolButton:disabled, QSint--ActionGroup QFrame[class="content"] QToolButton:disabled:checked { - color: #696969; - background-color: #1c1b22; + color: #adadad; + /* background-color: #252525; */ } QSint--ActionGroup QFrame[class="content"] QToolButton:pressed { - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); - + border: 1px solid @ThemeAccentColor1; } /* QSlider ---------------------------------------------------------------- @@ -1669,7 +1744,7 @@ QSlider:focus { QSlider::groove:horizontal { background: #444444; - border: 1px solid #696968; + border: 1px solid #020202; height: 4px; margin: 0px; border-radius: 1.9px; @@ -1677,7 +1752,7 @@ QSlider::groove:horizontal { QSlider::groove:vertical { background: @ThemeAccentColor1; - border: 1px solid #696968; + border: 1px solid #020202; width: 4px; margin: 0px; border-radius: 1.9px; @@ -1685,19 +1760,19 @@ QSlider::groove:vertical { QSlider::add-page:vertical { background: @ThemeAccentColor1; - border: 1px solid #696968; + border: 1px solid #020202; width: 4px; margin: 0px; border-radius: 1.9px; } QSlider::add-page:vertical :disabled { - background: #696968; + background: #444444; } QSlider::sub-page:horizontal { background: @ThemeAccentColor1; - border: 1px solid #696968; + border: 1px solid #020202; height: 4px; margin: 0px; border-radius: 1.9px; @@ -1708,8 +1783,8 @@ QSlider::sub-page:horizontal:disabled { } QSlider::handle:horizontal { - background: #353535; - border: 1px solid #696968; + background: #333333; + border: 1px solid #020202; width: 10px; height: 8px; margin: -4px 0px; @@ -1718,17 +1793,17 @@ QSlider::handle:horizontal { QSlider::handle:horizontal:hover { background: @ThemeAccentColor1; - border: 1px solid #696968; + border: 1px solid #020202; } QSlider::handle:horizontal:focus { background: @ThemeAccentColor2; - border: 1px solid @ThemeAccentColor2; + border: 0.5px solid @ThemeAccentColor2; } QSlider::handle:vertical { - background: #353535; - border: 1px solid #696968; + background: #333333; + border: 1px solid #020202; width: 10px; height: 8px; margin: 0px -4px; @@ -1737,11 +1812,11 @@ QSlider::handle:vertical { QSlider::handle:vertical:hover { background: @ThemeAccentColor1; - border: 1px solid #696968; + border: 1px solid #020202; } QSlider::handle:vertical:focus { - border: 1px solid @ThemeAccentColor2; + border: 0.5px solid @ThemeAccentColor2; } /* QLineEdit -------------------------------------------------------------- @@ -1750,7 +1825,7 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlineedit --------------------------------------------------------------------------- */ QLineEdit { - background-color: #1c1b22; + background-color: #252525; padding-top: 2px; /* This QLineEdit fix 103, 111 */ padding-bottom: 2px; @@ -1758,18 +1833,18 @@ QLineEdit { padding-left: 4px; padding-right: 4px; border-style: solid; - border: 1px solid #696968; + border: 1px solid #020202; border-radius: 2px; color: White; } QLineEdit:disabled { background-color: #444444; - color: #c2c7cb; + color: #adadad; } QLineEdit:hover { - border: 1px solid @ThemeAccentColor1; + /* border: 1px solid @ThemeAccentColor1; */ color: White; } @@ -1801,12 +1876,12 @@ QTabWidget::pane { margin: 0px; /* Fixes double border inside pane with pyqt5 */ padding: 0px; - background-color: #696968; + background-color: rgba(27, 27, 27, 0.549); } QTabWidget::pane:selected { background-color: @ThemeAccentColor1; - border: 1px solid #346792; + border: 1px solid #252525; } QTabWidget::pane:selected { @@ -1816,22 +1891,22 @@ QTabWidget::pane:selected { QTabWidget::pane:top { top: -1px; - border-top: 1px solid #696969; + border-top: 1px solid #252525; } QTabWidget::pane:bottom { bottom: -1px; - border-bottom: 1px solid #696969; + border-bottom: 1px solid #252525; } QTabWidget::pane:left { right: -1px; - border-right: 1px solid #696969; + border-right: 1px solid #252525; } QTabWidget::pane:right { left: -1px; - border-left: 1px solid #696969; + border-left: 1px solid #252525; } /* QTabBar ---------------------------------------------------------------- @@ -1840,31 +1915,34 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabb --------------------------------------------------------------------------- */ QTabBar, QDockWidget QTabBar { qproperty-drawBase: 0; + background-color: #333333; /* left: 5px; move to the right by 5px - removed for fix */ } QTabBar::close-button, QDockWidget QTabBar::close-button { border: 0; - margin: 0; - padding: 1px; - image: url(qss:images_dark-light/close_light.svg); + margin: 3px; + padding: 0px; + image: url(qss:images_classic/Close-lightgray.png); } QTabBar::close-button:hover, QDockWidget QTabBar::close-button:hover { - image: url(qss:images_dark-light/close_red.svg); + image: url(qss:images_classic/close-red.png); /*background-color: rgba(255, 0, 0, 0.3);*/ } QTabBar::close-button:pressed, QDockWidget QTabBar::close-button:pressed { - image: url(qss:images_dark-light/close_.svg); + image: url(qss:images_classic/close-DarkRed.png); } QTabBar::tab, QDockWidget QTabBar::tab { /* !selected and disabled ----------------------------------------- */ /* selected ------------------------------------------------------- */ padding: 4px; -} + background-color: #333333; +} +/* QTabBar::tab:top:selected:disabled, QDockWidget QTabBar::tab:top:selected:disabled { color: #adadad; } @@ -1913,114 +1991,129 @@ QTabBar::tab:left:!selected, QDockWidget QTabBar::tab:left:!selected { QTabBar::tab:right:!selected, QDockWidget QTabBar::tab:right:!selected { color: #adadad; -} +} */ QTabBar::tab:top, QDockWidget QTabBar::tab:top { - color: #696969; - margin-left: 0px; - padding-left: 4px; - padding-right: 4px; - padding-top: 2px; - padding-bottom: 2px; + color: white; + padding-left: 9px; min-width: 5px; - border-bottom: 1px solid #696969; /* same as tab content background color */ - border-radius: 0px; + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #333333, stop:0.6 #252525, stop:1 #252525); + margin-top: 3px; + border-top: 1px solid #202020; /* selection color */ + border-bottom: 1px solid #202020; + border-left: 1px solid #202020; + border-right: 1px solid #202020; + border-top-left-radius: 2px; + border-top-right-radius: 2px; } QTabBar::tab:top:selected, QDockWidget QTabBar::tab:top:selected { + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #444444, stop:0.6 #444444, stop:1 #333333); color: white; - border-top: 4px solid @ThemeAccentColor1; /* selection color */ - border-bottom: 1px solid transparent; /* same as tab content background color */ - border-left: 1px solid #696969; - border-right: 1px solid #696969; - } + border-top: 1px solid #202020; /* selection color */ + border-bottom: 1px solid #333333; + border-left: 1px solid #202020; + border-right: 1px solid #202020; + margin-top: 0px; + border-top-left-radius: 2px; + border-top-right-radius: 2px; +} QTabBar::tab:top:!selected:hover, QDockWidget QTabBar::tab:top:!selected:hover { - /*border: 1px solid @ThemeAccentColor1;*/ - border: 0px solid @ThemeAccentColor1; - background-color: @ThemeAccentColor1; - /* Fixes spyder-ide/spyder#9766 and #243 */ - padding-left: 3px; - padding-right: 3px; + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #333333, stop:1 #444444); + margin-top: 0px; } QTabBar::tab:bottom, QDockWidget QTabBar::tab:bottom { - color: #adadad; - margin-left: 0px; - padding-left: 4px; - padding-right: 4px; - padding-top: 2px; - padding-bottom: 2px; + color: white; + padding-left: 9px; min-width: 5px; - border-top: 1px solid #696969; /* same as tab content background color */ - border-radius: 0px; + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #333333, stop:0.6 #252525, stop:1 #252525); + margin-bottom: 3px; + border-bottom: 1px solid #202020; /* selection color */ + border-top: 1px solid #202020; + border-left: 1px solid #202020; + border-right: 1px solid #202020; + border-bottom-left-radius: 2px; + border-bottom-right-radius: 2px; } QTabBar::tab:bottom:selected, QDockWidget QTabBar::tab:bottom:selected { + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #444444, stop:0.6 #444444, stop:1 #333333); color: white; - border-bottom: 4px solid @ThemeAccentColor1; /* selection color */ - border-top: 1px solid transparent; /* same as tab content background color */ - border-left: 1px solid #696969; - border-right: 1px solid #696969; - + border-bottom: 1px solid #202020; /* selection color */ + border-top: 1px solid #333333; + border-left: 1px solid #202020; + border-right: 1px solid #202020; + margin-bottom: 0px; + border-bottom-left-radius: 2px; + border-bottom-right-radius: 2px; } QTabBar::tab:bottom:!selected:hover, QDockWidget QTabBar::tab:bottom:!selected:hover { -/*border: 1px solid @ThemeAccentColor1;*/ - border: 0px solid @ThemeAccentColor1; - background-color: @ThemeAccentColor1; - /* Fixes spyder-ide/spyder#9766 and #243 */ - padding-left: 3px; - padding-right: 3px; + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #444444, stop:1 #333333); } QTabBar::tab:left, QDockWidget QTabBar::tab:left { - background-color: #444444; - margin-top: 2px; - margin-left:10px; - padding-left: 2px; - padding-right: 2px; - padding-top: 4px; - padding-bottom: 4px; - border-radius: 4px; + color: white; + padding-bottom: 9px; min-height: 5px; + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0, stop:0 #333333, stop:0.6 #252525, stop:1 #252525); + margin-right: 3px; + border-bottom: 1px solid #202020; /* selection color */ + border-right: 1px solid #202020; + border-left: 1px solid #202020; + border-top: 1px solid #202020; + border-top-left-radius: 2px; + border-bottom-left-radius: 2px; } QTabBar::tab:left:selected, QDockWidget QTabBar::tab:left:selected { - background-color: #444444; - border: 0px solid @ThemeAccentColor2; + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0, stop:0 #444444, stop:0.6 #444444, stop:1 #333333); + color: white; + border-bottom: 1px solid #202020; /* selection color */ + border-right: 1px solid #333333; + border-left: 1px solid #202020; + border-top: 1px solid #202020; + margin-right: 0px; + border-top-left-radius: 2px; + border-bottom-left-radius: 2px; } QTabBar::tab:left:!selected:hover, QDockWidget QTabBar::tab:left:!selected:hover { - border: 0px solid @ThemeAccentColor1; - background-color: @ThemeAccentColor1; - /* Fixes different behavior #271 */ - margin-right: 0px; - padding-right: -1px; + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0, stop:0 #444444, stop:1 #333333); + } QTabBar::tab:right, QDockWidget QTabBar::tab:right { - background-color: #444444; - margin-top: 2px; - padding-left: 2px; - padding-right: 2px; - padding-top: 4px; - padding-bottom: 4px; + color: white; + padding-bottom: 9px; min-height: 5px; - border: 10px; + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0, stop:0 #333333, stop:0.6 #252525, stop:1 #252525); + margin-right: 3px; + border-bottom: 1px solid #202020; /* selection color */ + border-left: 1px solid #202020; + border-right: 1px solid #202020; + border-top: 1px solid #202020; + border-top-right-radius: 2px; + border-bottom-right-radius: 2px; } QTabBar::tab:right:selected, QDockWidget QTabBar::tab:right:selected { - background-color: #444444; - border: 0px solid @ThemeAccentColor2; + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0, stop:0 #444444, stop:0.6 #444444, stop:1 #333333); + color: white; + border-bottom: 1px solid #202020; /* selection color */ + border-left: 1px solid #333333; + border-left: 1px solid #202020; + border-top: 1px solid #202020; + margin-right: 0px; + border-top-right-radius: 2px; + border-bottom-right-radius: 2px; } QTabBar::tab:right:!selected:hover, QDockWidget QTabBar::tab:right:!selected:hover { - border: 0px solid @ThemeAccentColor1; - background-color: @ThemeAccentColor1; - /* Fixes different behavior #271 */ - margin-left: 0px; - padding-left: 0px; + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0, stop:0 #333333, stop:1 #444444); + } QTabBar QToolButton, QDockWidget QTabBar QToolButton { @@ -2041,30 +2134,30 @@ QTabBar QToolButton:pressed:hover, QDockWidget QTabBar QToolButton:pressed:hover } QTabBar QToolButton::left-arrow:enabled, QDockWidget QTabBar QToolButton::left-arrow:enabled { - image: url(qss:images_dark-light/left_arrow_lighter.svg); + image: url(qss:images_classic/Arrow-left-white.png); } QTabBar QToolButton::left-arrow:disabled, QDockWidget QTabBar QToolButton::left-arrow:disabled { - image: url(qss:images_dark-light/left_arrow_disabled_light.svg); + image: url(qss:images_classic/Arrow-left-lightgray.png); } QTabBar QToolButton::right-arrow:enabled, QDockWidget QTabBar QToolButton::right-arrow:enabled { - image: url(qss:images_dark-light/right_arrow_lighter.svg); + image: url(qss:images_classic/Arrow-right-white.png); } QTabBar QToolButton::right-arrow:disabled, QDockWidget QTabBar QToolButton::right-arrow:disabled { - image: url(qss:images_dark-light/right_arrow_disabled_light.svg); + image: url(qss:images_classic/Arrow-right-lightgray.png); } /* QDockWiget ------------------------------------------------------------- --------------------------------------------------------------------------- */ QDockWidget { - background-color: #444444; - border: 1px solid #2a2a2a; + background-color: #333333; + border: 1px solid #020202; border-radius: 1.9px; - titlebar-close-icon: url(qss:images_dark-light/transparent.svg); - titlebar-normal-icon: url(qss:images_dark-light/transparent.svg); + titlebar-close-icon: url(qss:images_classic/transparent.png); + titlebar-normal-icon: url(qss:images_classic/transparent.png); } QDockWidget::title { @@ -2072,7 +2165,7 @@ QDockWidget::title { padding: 3px; spacing: 4px; border: none; - background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #333333, stop:1 #2a2a2a); + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #333333, stop:1 #252525); text-align: center; font-weight: bold; } @@ -2085,15 +2178,15 @@ QDockWidget::close-button { border: 0; margin: 0; padding: 0; - image: url(qss:images_dark-light/close_light.svg); + image: url(qss:images_classic/close-white.png); } QDockWidget::close-button:hover { - image: url(qss:images_dark-light/close_red.svg); + image: url(qss:images_classic/close-red.png); } QDockWidget::close-button:pressed { - image: url(qss:images_dark-light/close_light.svg); + image: url(qss:images_classic/close-white.png); } QDockWidget::float-button { @@ -2104,16 +2197,16 @@ QDockWidget::float-button { border: 0; margin: 0; padding: 0; - image: url(qss:images_dark-light/undock_light.svg); + image: url(qss:images_classic/undock-white.png); } QDockWidget::float-button:hover { /*background-color: @ThemeAccentColor1;*/ - image: url(qss:images_dark-light/undock_blue.svg); + image: url(qss:images_classic/undock-blue.png); } QDockWidget::float-button:pressed { - image: url(qss:images_dark-light/undock_light.svg); + image: url(qss:images_classic/undock-white.png); } /* QTreeView QListView QTableView ----------------------------------------- @@ -2128,38 +2221,58 @@ QTreeView::branch { } QTreeView::branch:has-siblings:!adjoins-item { - border-image: url(qss:images_dark-light/branch_vline_light.svg) 0; + /* border-image: url(qss:images_classic/branch_vline_white.png) 0; */ + /* border-image: url(qss:images_classic/Arrow-right-white.png) 0; */ } QTreeView::branch:has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_more_light.svg) 0; + /* border-image: url(qss:images_classic/Arrow-right-blue.png) 0; */ + /* border-image: url(qss:images_classic/branch_more_white.png) 0; */ } QTreeView::branch:!has-children:!has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_end_light.svg) 0; + /* border-image: url(qss:images_classic/Arrow-right-lightgray.png) 0; */ + /* border-image: url(qss:images_classic/branch_end_white.png) 0; */ } QTreeView::branch:closed:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_closed_light.svg) 0; + margin-top: 5px; + margin-bottom: 5px; + border-image: none; + image: url(qss:images_classic/Arrow-right-white.png) 0; + /* border-image: url(qss:images_classic/branch_more_closed_white.png) 0; */ } QTreeView::branch:has-children:!has-siblings:closed { - border-image: url(qss:images_dark-light/branch_end_closed_light.svg) 0; + margin-top: 5px; + margin-bottom: 5px; + border-image: none; + image: url(qss:images_classic/Arrow-right-white.png) 0; + /* border-image: url(qss:images_classic/Arrow-right-whitey.png) 0; */ + /* border-image: url(qss:images_classic/branch_end_closed_white.png) 0; */ } QTreeView::branch:open:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_open_light.svg) 0; + margin-left: 6px; + margin-right: 6px; + border-image: none; + image: url(qss:images_classic/Arrow-down-white.png) 0; + /* border-image: url(qss:images_classic/branch_more_open_white.png) 0; */ } QTreeView::branch:open:has-children:!has-siblings { - border-image: url(qss:images_dark-light/branch_end_open_light.svg) 0; + margin-left: 6px; + margin-right: 6px; + border-image: none; + image: url(qss:images_classic/Arrow-down-white.png) 0; + /* border-image: url(qss:images_classic/branch_end_open_white.png) 0; */ } QTreeView::indicator:checked, QListView::indicator:checked, QTableView::indicator:checked, QColumnView::indicator:checked { - image: url(qss:images_dark-light/checkbox_light.svg); + image: url(qss:images_classic/checkbox-checked-white.png); } QTreeView::indicator:checked:hover, QTreeView::indicator:checked:focus, QTreeView::indicator:checked:pressed, @@ -2172,14 +2285,14 @@ QTableView::indicator:checked:pressed, QColumnView::indicator:checked:hover, QColumnView::indicator:checked:focus, QColumnView::indicator:checked:pressed { - image: url(qss:images_dark-light/checkbox_light_hover.svg); + image: url(qss:images_classic/checkbox-checked-blue.png); } QTreeView::indicator:unchecked, QListView::indicator:unchecked, QTableView::indicator:unchecked, QColumnView::indicator:unchecked { - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); + image: url(qss:images_classic/checkbox-Empty-white.png); } QTreeView::indicator:unchecked:hover, QTreeView::indicator:unchecked:focus, QTreeView::indicator:unchecked:pressed, @@ -2192,14 +2305,14 @@ QTableView::indicator:unchecked:pressed, QColumnView::indicator:unchecked:hover, QColumnView::indicator:unchecked:focus, QColumnView::indicator:unchecked:pressed { - image: url(qss:images_dark-light/checkbox_unchecked_hover_light.svg); + image: url(qss:images_classic/checkbox-Empty-blue.png); } QTreeView::indicator:indeterminate, QListView::indicator:indeterminate, QTableView::indicator:indeterminate, QColumnView::indicator:indeterminate { - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); + image: url(qss:images_classic/checkbox-indeterminate-white.png); } QTreeView::indicator:indeterminate:hover, QTreeView::indicator:indeterminate:focus, QTreeView::indicator:indeterminate:pressed, @@ -2212,23 +2325,23 @@ QTableView::indicator:indeterminate:pressed, QColumnView::indicator:indeterminate:hover, QColumnView::indicator:indeterminate:focus, QColumnView::indicator:indeterminate:pressed { - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); + image: url(qss:images_classic/checkbox-indeterminate-white.png); } QTreeView, QListView, QTableView, QColumnView { - background-color: #444444; /* background of a lot of stuff including spreadsheets.*/ - border: 0px solid #696968; + background-color: #252525; /* background of a lot of stuff including spreadsheets.*/ + /* border: 1px solid #ef0000; */ color: White; - gridline-color: #696968; + gridline-color: #020202; border-radius: 0px; } QTableView, QListView { - background-color: rgba(31, 31, 31, 0.85); /* background of a lot of stuff including spreadsheets.*/ + background-color: #252525; /* background of a lot of stuff including spreadsheets.*/ } @@ -2236,15 +2349,15 @@ QTreeView:disabled, QListView:disabled, QTableView:disabled, QColumnView:disabled { - background-color: #1c1b22; - color: #c2c7cb; + background-color: #444444; + color: #adadad; } QTreeView:selected, QListView:selected, QTableView:selected, QColumnView:selected { - background-color: @ThemeAccentColor1; + background-color: #333333; color: White; } @@ -2252,7 +2365,7 @@ QTreeView:focus, QListView:focus, QTableView:focus, QColumnView:focus { - border: 1px solid @ThemeAccentColor2; + /* border: 1px solid #020202; */ } QTreeView::item:pressed, @@ -2266,15 +2379,15 @@ QTreeView::item:selected:active, QListView::item:selected:active, QTableView::item:selected:active, QColumnView::item:selected:active { - background-color: @ThemeAccentColor1; + background-color: #333333; } QTreeView::item:selected:!active, QListView::item:selected:!active, QTableView::item:selected:!active, QColumnView::item:selected:!active { - color: White; - background-color: @ThemeAccentColor1; + /* color: White; */ + background-color: #333333; } QTreeView::item:!selected:hover, @@ -2288,7 +2401,7 @@ QColumnView::item:!selected:hover { QTableCornerButton::section { background-color: #444444; - border: 1px transparent #696968; + border: 1px transparent #020202; border-radius: 0px; } @@ -2307,51 +2420,52 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qheaderview --------------------------------------------------------------------------- */ QHeaderView { background-color: transparent; - text-align: center; + /* text-align: bottom; */ } QHeaderView:disabled { - background-color: #444444; - color: rgb(174, 174, 174); + /* background-color: #444444; */ + color: #adadad; } QHeaderView::section { - background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #333333, stop:1 #2a2a2a); + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #333333, stop:1 #252525); color: White; - border: 1px solid #2a2a2a; - font-size: 13px; - font-weight: bold; + border-bottom: 1px solid #020202; + border-right: 1px solid #020202; + border-top: 1px solid #020202; + border-left: 1px solid transparent; } QHeaderView::section::horizontal { - padding-top: 1px; + /* padding-top: 1px; padding-bottom: 1px; padding-left: 5px; - padding-right: 0px; + padding-right: 0px; */ } QHeaderView::section::horizontal::first, QHeaderView::section::horizontal::only-one { - border-left: 0px solid #696968; + /* border-left: 0px solid #020202; */ } QHeaderView::section::horizontal:disabled { - color: #353535; + color: #adadad; } QHeaderView::section::vertical { - padding-top: 1px; + /* padding-top: 1px; padding-bottom: 0; padding-left: 1px; - padding-right: 0px; - border-top: 0px solid #2a2a2a; + padding-right: 0px; */ + border-top: 0.5px solid #020202; } QHeaderView::section::vertical::first, QHeaderView::section::vertical::only-one { - border-top: 2px solid #2a2a2a; + border-top: 2px solid #020202; } QHeaderView::section::vertical:disabled { - border-top: 2px solid #2a2a2a; + border-top: 2px solid #020202; } QHeaderView::down-arrow { @@ -2363,7 +2477,7 @@ QHeaderView::down-arrow { width: 12px; padding-left: 2px; padding-right: 2px; - image: url(qss:images_dark-light/down_arrow_light.svg); + image: url(qss:images_classic/Arrow-down-lightgray.png); } QHeaderView::up-arrow { @@ -2373,7 +2487,7 @@ QHeaderView::up-arrow { width: 12px; padding-left: 2px; padding-right: 2px; - image: url(qss:images_dark-light/up_arrow_light.svg); + image: url(qss:images_classic/Arrow-up-lightgray.png); } /* QToolBox -------------------------------------------------------------- @@ -2398,18 +2512,18 @@ QToolBox::tab { background-color: transparent; border: 0px solid #696969; color: white; - background-image: url(qss:images_dark-light/down_arrow_lighter.svg); + background-image: url(qss:images_classic/Arrow-down-white.png); background-repeat: none; background-position: center left; } QToolBox::tab:disabled { - color: #696969; + color: #adadad; } QToolBox::tab:selected { background-color: #696969; - background-image: url(qss:images_dark-light/transparent.svg); + background-image: url(qss:images_classic/transparent.png); padding-right: 5px; background-repeat: none; } @@ -2417,7 +2531,7 @@ QToolBox::tab:selected { QToolBox::tab:selected:disabled { background-color: #696969; border-bottom: 0px solid #cccccc; - color: white; + color: #adadad; } QToolBox::tab:!selected { @@ -2449,8 +2563,8 @@ https://stackoverflow.com/questions/14581498/qt-stylesheet-for-hline-vline-color /* (dot) .QFrame fix #141, #126, #123 */ .QFrame { border-radius: 0px; - border: 0px solid #696968; - background-color: #696969; + border: 0px solid #020202; + background-color: #333333; /* No frame */ /* HLine */ /* HLine */ @@ -2458,19 +2572,19 @@ https://stackoverflow.com/questions/14581498/qt-stylesheet-for-hline-vline-color .QFrame[frameShape="0"] { border-radius: 1.9px; - border: 1px solid #696968; + border: 1px solid #020202; } .QFrame[frameShape="4"] { max-height: 1px; border: none; - background-color: #696968; + background-color: #020202; } .QFrame[frameShape="5"] { max-width: 1px; border: none; - background-color: #444444; + background-color: #333333; } /* QSplitter -------------------------------------------------------------- @@ -2503,17 +2617,11 @@ QSplitter::handle:vertical { height: 1px; } QSplitter::handle:vertical:hover { - background-image: url(qss:images_dark-light/splitter_horizontal_light.svg); - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0.2 transparent,stop:0.5 @ThemeAccentColor1, stop:0.8 transparent); - background-position: center center; - background-repeat: none; - } + image: url(qss:images_classic/splitter_horizontal-lightgray.png); +} -QSplitter::handle:vertical:hover { - background-image: url(qss:images_dark-light/splitter_horizontal_light.svg); - background-position: center center; - background-repeat: none; - background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0.2 transparent,stop:0.5 @ThemeAccentColor1, stop:0.8 transparent); +QSplitter::handle:horizontal:hover { + image: url(qss:images_classic/splitter_vertical-lightgray.png); } /* QDateEdit, QDateTimeEdit ----------------------------------------------- @@ -2522,7 +2630,7 @@ QSplitter::handle:vertical:hover { QDateEdit, QDateTimeEdit { selection-background-color: @ThemeAccentColor1; border-style: solid; - border: 1px solid #696968; + border: 1px solid #020202; border-radius: 1.9px; /* This fixes 103, 111 */ padding-top: 2px; @@ -2541,23 +2649,23 @@ QDateEdit::drop-down, QDateTimeEdit::drop-down { subcontrol-origin: padding; subcontrol-position: top right; width: 12px; - border-left: 1px solid #696968; + border-left: 1px solid #020202; } QDateEdit::down-arrow, QDateTimeEdit::down-arrow { - image: url(qss:images_dark-light/down_arrow_disabled_light.svg); + image: url(qss:images_classic/Arrow-down-lightgray.png); height: 8px; width: 8px; } QDateEdit::down-arrow:on, QDateEdit::down-arrow:hover, QDateEdit::down-arrow:focus, QDateTimeEdit::down-arrow:on, QDateTimeEdit::down-arrow:hover, QDateTimeEdit::down-arrow:focus { - image: url(qss:images_dark-light/down_arrow_lighter.svg); + image: url(qss:images_classic/Arrow-down-white.png); } QDateEdit QAbstractItemView, QDateTimeEdit QAbstractItemView { - background-color: #444444; + background-color: #333333; border-radius: 2px; - border: 1px solid #696968; + border: 1px solid #020202; selection-background-color: @ThemeAccentColor1; } @@ -2580,6 +2688,7 @@ QAbstractView:selected { PlotWidget { /* Fix cut labels in plots #134 */ padding: 0px; + color: rgba(2, 2, 2, 0.614); } /*================================================================================================== @@ -2618,19 +2727,18 @@ Gui--UrlLabel { } Gui--NotificationLabel { - background-color: #444444; - border: 1px solid #696968; + background-color: #333333; + border: 1px solid #020202; border-radius: 2px; } + Gui--OverlayToolButton:!hover{ background-color: transparent; - border: 0px solid transparent; image: url(qss:overlay/close_light.svg); } Gui--OverlayToolButton:hover { - image: url(qss:overlay/close_red.svg); } @@ -2694,7 +2802,7 @@ QMdiSubWindow { } QMdiSubWindow:hover { - border:2px solid #696968; + border:2px solid #020202; } QMdiSubWindow:active { @@ -2706,21 +2814,52 @@ Settings menu #groupsTreeView: ==================================================================================================*/ QTreeView::branch#groupsTreeView:closed:has-children:has-siblings { - border-image: none 0; + margin-top: 15px; + margin-bottom: 15px; + border-image: none; + image: url(qss:images_classic/Arrow-right-white.png) 0; } QTreeView::branch#groupsTreeView:open:has-children:has-siblings { - border-image: none 0; + margin-left: 6px; + margin-right: 6px; + border-image: none; + image: url(qss:images_classic/Arrow-down-white.png) 0; } QTreeView::branch#groupsTreeView:open:has-children:!has-siblings { - border-image: none 0; + margin-left: 6px; + margin-right: 6px; + border-image: none; + image: url(qss:images_classic/Arrow-down-white.png) 0; } QTreeView::branch#groupsTreeView:has-children:!has-siblings:closed { - border-image: none 0; + margin-top: 15px; + margin-bottom: 15px; + border-image: none; + image: url(qss:images_classic/Arrow-right-white.png) 0; } QTreeView::branch#groupsTreeView:has-siblings:!adjoins-item { - border-image: none 0; + border-image: none; } + +/*================================================================================================== +Start page +==================================================================================================*/ +QWidget#thumbnailWidget { + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #333333, stop:1 #252525); + border-radius: 8px; + margin-bottom: 3px; + margin-right: 7px; + border: 1px solid #020202; +} + +QWidget#thumbnailWidget[state="hovered"] { + border: 0.5px solid @ThemeAccentColor2; +} + +QWidget#thumbnailWidget[state="pressed"] { + border: 1px solid @ThemeAccentColor1; +} \ No newline at end of file diff --git a/src/Gui/Stylesheets/Dark-contrast.qss b/src/Gui/Stylesheets/Dark-contrast.qss deleted file mode 100644 index 239863971e..0000000000 --- a/src/Gui/Stylesheets/Dark-contrast.qss +++ /dev/null @@ -1,2369 +0,0 @@ -/* -ABOUT -============================================================================================================ -version 2.22 -Qt theme (stylesheet) specially developed for FreeCAD (https://www.freecad.org/). -It might work with other software that uses Qt styling. - - -LICENSE -============================================================================================================ -Copyright (c) 2019 Pablo Gil Fernández - -This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. -To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/. - - -INSTALLATION -============================================================================================================ -1) Place the .qss files and /images/ folder in the path that fits your OS: - OSX = /Users/[YOUR_USER_NAME]/Library/Preferences/FreeCAD/Gui/Stylesheets/ - WINDOWS = C:/[INSTALLATION_PATH]/FreeCAD/data/Gui/Stylesheets/ - LINUX = /home/[YOUR_USER_NAME]/.FreeCAD/Gui/Stylesheets/ - - -CUSTOMIZATION -============================================================================================================ -If you would like to change the overall look/style of the theme, just find and replace following colors in the whole file: - BACKGROUND (darker to lighter) - black - #1e1e1e - #2a2a2a = background - #333333 - #424242 - #3c3c3c - #444444 = main background color - #545454 = secondary - #787878 - #a0a0a0 - #b4b4b4 - #bebebe - #c8c8c8 - #d2d2d2 - #e0e0e0 - #f5f5f5 - white - - SELECTION (darker to lighter) - @ThemeAccentColor3 - @ThemeAccentColor1 - @ThemeAccentColor3 - @ThemeAccentColor2 = main selection color - #6f9efa = used to build QSpinBox up and down buttons, it's used as color in the middle - #7cabf9 - #adc5ed - #cbd8e6 - - -KNOWN BUGS and TO DO -============================================================================================================ -Please, follow the link to get updated information: https://forum.freecad.org/viewtopic.php?f=10&t=12417 - -*/ - - -/*================================================================================================== -Reset elements -==================================================================================================*/ -/* Resetting everything helps to unify styles across different operating systems */ -* { - padding: 0px; - margin: 0px; - border: 0px; - border-style: none; - border-image: none; - outline: 0; - color: #fafafa; /* Default color for labels and different text elements that usually use dark colors */ -} - -/* specific reset for elements inside QToolBar */ -QToolBar * { - margin: 0px; - padding: 0px; -} - - -/*================================================================================================== -Main window -==================================================================================================*/ -QMainWindow, -QDialog, -QDockWidget, -QToolBar { - background-color: #444444; /* main background color */ -} - -QMdiArea { - background-image: url(qss:images_dark-light/background_freecad_dark.svg); - background-position: center center; - background-repeat: no-repeat; -} - - -/*================================================================================================== -Sub windows -==================================================================================================*/ -QMdiSubWindow { - border:1px solid #333333; - margin-top: 30px; - margin-left: 4px; - margin-right: 4px; - margin-bottom:4px; -} - - -/*================================================================================================== -MENUS -==================================================================================================*/ -QMenuBar, -QMenuBar::item { - color: #fafafa; - background-color: #444444; /* main background color */ -} - -QMenu, -QMenu::item { - color: #fefefe; - background-color: #111111; - text-decoration: none; -} - -QMenuBar::item:selected, -QMenuBar::item:pressed, -QMenu::item:selected, -QMenu::item:pressed { - color: #ffffff; - background-color: @ThemeAccentColor1; -} - -QMenu::right-arrow { - width: 10px; - height: 10px; - image:url(qss:images_dark-light/right_arrow_dark.svg); - margin-right: 2px; -} - -QMenu::right-arrow:selected { - image:url(qss:images_dark-light/right_arrow_lighter.svg); -} - -QMenu::item { - padding: 2px 4px; /* make room for icon at left */ - border: 1px solid transparent; /* reserve space for selection border */ -} - -QMenu::icon { - margin-left: 1px; - margin-right: 1px; -} - -QMenu::icon:checked { /* appearance of a 'checked' icon */ - background: @ThemeAccentColor1; - border: 2px @ThemeAccentColor1; - position: absolute; - border-radius: 2px; -} - -QMenu::separator { - height: 1px; - background-color: rgba(255,255,255,30); - margin: 6px 4px; -} - -QMenu::indicator:non-exclusive:checked { - color: white; -} - -/* Fix for elements inside a drop-down menu */ -QMenu QRadioButton, -QMenu QCheckBox, -QMenu QPushButton, -QMenu QToolButton { - color: white; /* same as regular QRadioButton and QCheckBox */ -} - -QMenu QRadioButton:hover, -QMenu QCheckBox:hover, -QMenu QPushButton:hover, -QMenu QToolButton:hover, -QMenu QPushButton:pressed, -QMenu QToolButton:pressed, -QMenu QPushButton:selected, -QMenu QToolButton:selected { - color: white; - background-color: @ThemeAccentColor1; /* same as QMenu::item:selected and QMenu::item:pressed */ -} - -QMenu QRadioButton:disabled, -QMenu QCheckBox:disabled { - color: #fafafa; -} - -QMenu QRadioButton::indicator:disabled, -QMenu QCheckBox::indicator:disabled { - color: #fafafa; - background-color: transparent; - border: 1px solid #fafafa; -} - - -/*================================================================================================== -Tool bar -==================================================================================================*/ -QToolBar { - padding: 2px; -} - -QToolBar::handle:top, -QToolBar::handle:bottom, -QToolBar::handle:horizontal { - background-image: url(qss:images_dark-light/Hmovetoolbar_light.svg); - width: 10px; - margin: 4px 2px; - background-position: top right; - background-repeat: repeat-y; -} - -QToolBar::handle:left, -QToolBar::handle:right, -QToolBar::handle:vertical { - background-image: url(qss:images_dark-light/Vmovetoolbar_light.svg); - height: 10px; - margin: 2px 4px; - background-position: left bottom; - background-repeat: repeat-x; -} - -QToolBar::separator:top, -QToolBar::separator:bottom, -QToolBar::separator:horizontal { - width: 1px; - margin: 6px 4px; - background-color: rgba(0,0,0,30); -} - -QToolBar::separator:left, -QToolBar::separator:right, -QToolBar::separator:vertical { - height: 1px; - margin: 4px 6px; - background-color: rgba(0,0,0,30); -} - - -/*================================================================================================== -Group box -==================================================================================================*/ -QGroupBox { - color: rgba(255,255,255,120); - border:1px solid rgba(255,255,255,20); /* lighter than its own border-color */; - border-radius: 3px; - margin-top: 10px; - padding: 6px; - background-color: rgba(255,255,255,0); -} - -QGroupBox:title { - top: -8px; - left: 12px; -} - -/* NOTE: QGroupBox checkboxes are styles with regular ones so that the all get the same style */ -/* QGroupBox::indicator { - width: 13px; - height: 13px; -} - -QGroupBox::indicator:unchecked { - image: url(:/images/checkbox_unchecked.png); -} */ - - -/*================================================================================================== -Tooltip -==================================================================================================*/ -QToolTip { - color: #ffffff; - background-color: #1e1e1e; - /*opacity: 90%; doesn't correctly work */ - padding: 4px; - border-radius: 3px; /* has no effect */ -} - - -/*================================================================================================== -Dock widget -==================================================================================================*/ -QDockWidget { - color: #a0a0a0; - titlebar-close-icon: url(qss:images_dark-light/close_light.svg); - titlebar-normal-icon: url(qss:images_dark-light/undock_light.svg); -} - -QDockWidget::title { - text-align: center; - background-color: rgba(0,0,0,40); - border: 4px solid #444444; /* fix to simulate margin between this :title and tabs */ /* same as main background color */ - border-radius: 6px; /* bigger than normal due to previous border fix */ - padding: 4px 0px; /* also needed because of previous border fix */ -} - -QDockWidget::close-button, -QDockWidget::float-button { - border: none; - background: transparent; - border-radius: 3px; - subcontrol-origin: padding; - subcontrol-position: right center; -} - -QDockWidget::close-button { - right: 4px; -} - -QDockWidget::float-button { - right: 22px; -} - -QDockWidget::close-button:hover, -QDockWidget::float-button:hover { - background-color: rgba(0,0,0,60); -} - -QDockWidget::close-button:pressed, -QDockWidget::float-button:pressed { - background-color: rgba(0,0,0,120); -} - -/* fix for Python Console (probably there is a smarter way to arrive to it) */ -QDockWidget > QFrame { - background-color: black; - border: 1px solid #333333; -} - - -/*================================================================================================== -Progress bar -==================================================================================================*/ -QProgressBar, -QProgressBar:horizontal { - color: white; - background-color: rgba(0,0,0,70); - text-align: center; - border: 1px solid rgba(0,0,0,140); - padding: 1px; - border-radius: 3px; -} -QProgressBar::chunk, -QProgressBar::chunk:horizontal { - background-color: qlineargradient(spread:pad, x1:1, y1:0.545, x2:1, y2:0, stop:0 @ThemeAccentColor3, stop:1 @ThemeAccentColor2); - border-radius: 3px; -} - - -/*================================================================================================== -Scroll -==================================================================================================*/ -QAbstractScrollArea { - border-radius: 2px; - background-color: transparent; -} - -QAbstractScrollArea::corner { - border: none; - background-color: transparent; -} - -QScrollBar:horizontal { - background-color: transparent; - height: 15px; - margin: 0px; -} - -QScrollBar::handle:vertical, -QScrollBar::handle:horizontal { - background-color: rgba(255,255,255,80); -} - -QScrollBar::handle:vertical:hover, -QScrollBar::handle:horizontal:hover { - background-color: rgba(255,255,255,100); -} - -QScrollBar::handle:horizontal { - min-width: 5px; - border-radius: 3px; - margin: 4px 15px; -} - -QScrollBar::sub-line:horizontal { - margin: 1px 3px 0px 3px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images_dark-light/left_arrow_light.svg); - width: 6px; - height: 10px; - subcontrol-position: left; - subcontrol-origin: margin; -} - -QScrollBar::add-line:horizontal { - margin: 1px 3px 0px 3px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images_dark-light/right_arrow_light.svg); - width: 6px; - height: 10px; - subcontrol-position: right; - subcontrol-origin: margin; -} - -QScrollBar::sub-line:horizontal:hover, -QScrollBar::sub-line:horizontal:on { - border-image: url(qss:images_dark-light/left_arrow_lighter.svg); -} - -QScrollBar::add-line:horizontal:hover, -QScrollBar::add-line:horizontal:on { - border-image: url(qss:images_dark-light/right_arrow_lighter.svg); -} - -QScrollBar::up-arrow:horizontal, -QScrollBar::down-arrow:horizontal { - background-color: none; -} - -QScrollBar::add-page:horizontal, -QScrollBar::sub-page:horizontal { - background-color: transparent; -} - -QScrollBar:vertical { - background-color: transparent; - width: 15px; - margin: 0px; -} - -QScrollBar::handle:vertical { - min-height: 5px; - border-radius: 3px; - margin: 15px 4px; -} - -QScrollBar::sub-line:vertical { - margin: 3px 0px 3px 1px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images_dark-light/up_arrow_light.svg); - height: 6px; - width: 10px; - subcontrol-position: top; - subcontrol-origin: margin; -} - -QScrollBar::add-line:vertical { - margin: 3px 0px 3px 1px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images_dark-light/down_arrow_light.svg); - height: 6px; - width: 10px; - subcontrol-position: bottom; - subcontrol-origin: margin; -} - -QScrollBar::sub-line:vertical:hover, -QScrollBar::sub-line:vertical:on { - border-image: url(qss:images_dark-light/up_arrow_lighter.svg); -} - -QScrollBar::add-line:vertical:hover, -QScrollBar::add-line:vertical:on { - border-image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -QScrollBar::up-arrow:vertical, -QScrollBar::down-arrow:vertical { - background-color: none; -} - -QScrollBar::add-page:vertical, -QScrollBar::sub-page:vertical { - background-color: transparent; -} - - -/*================================================================================================== -Tab bar -==================================================================================================*/ -QTabWidget::pane { - background-color: transparent; /* temporal (transparent background) */ /* tab content background color */ - position: absolute; -} - -QTabWidget::pane:top { - top: -1px; - border-top: 1px solid #787878; -} - -QTabWidget::pane:bottom { - bottom: -1px; - border-bottom: 1px solid #787878; -} - -QTabWidget::pane:left { - right: -1px; - border-right: 1px solid #787878; -} - -QTabWidget::pane:right { - left: -1px; - border-left: 1px solid #787878; -} - -QTabWidget::tab-bar:top, -QTabWidget::tab-bar:bottom { - left: 10px; -} - -QTabWidget::tab-bar:left, -QTabWidget::tab-bar:right { - top: 10px; -} - -QTabBar { - qproperty-drawBase: 0; /* important */ - background-color: transparent; -} - -/* Workaround for QTabBars created from docked QDockWidgets which don't draw the border if not set and reset as follows: */ -QTabBar { - border-top: 1px solid #787878; /* set color for all QTabBars */ -} -QDockWidget QTabBar { - border-color: transparent; /* set color for all QTabBars but ones created from QDockWidget */ -} -QDialog QTabBar { - border-color: transparent; /* set color for QTabBars inside Preferences dialog */ -} -/* end fix */ - -QTabBar::tab { - background-color: transparent; - border: 1px solid transparent; - padding: 3px; -} - -QTabBar::tab:top, -QTabBar::tab:bottom { - border-top-width: 4px; /* same as selected tab colored border in order to center close-button */ - border-bottom-width: 4px; /* same as selected tab colored border in order to center close-button */ - min-width: 11ex; - margin-left: 2px; - margin-right: 2px; -} - -QTabBar::tab:left, -QTabBar::tab:right { - border-left-width: 4px; /* same as selected tab colored border in order to center close-button */ - border-right-width: 4px; /* same as selected tab colored border in order to center close-button */ - min-height: 14ex; - margin-top: 2px; - margin-bottom: 2px; -} - -QTabBar::tab:selected { - color: #fafafa; - background-color: #444444; /* same as tab content background color */ - border-color: #787878; -} - -QTabBar::tab:top:selected { - border-top: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor2, stop:1 @ThemeAccentColor3); /* selection color */ - border-bottom-color: #444444; /* same as tab content background color */ -} - -QTabBar::tab:bottom:selected { - border-bottom: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor2, stop:1 @ThemeAccentColor3); /* selection color */ - border-top-color: #444444; /* same as tab content background color */ -} - -QTabBar::tab:right:selected { - border-left: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 @ThemeAccentColor2, stop:1 @ThemeAccentColor3); /* selection color */ - border-right-color: #444444; /* same as tab content background color */ -} - -QTabBar::tab:left:selected { - border-right: 4px solid qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 @ThemeAccentColor2, stop:1 @ThemeAccentColor3); /* selection color */ - border-left-color: #444444; /* same as tab content background color */ -} - -QTabBar::tab:!selected { - color: rgba(255,255,255,120); -} - -QTabBar::tab:!selected:hover { - color: rgba(255,255,255,180); - background-color: rgba(255,255,255,20); -} - -QTabBar::tab:first:selected { - margin-left: 0; /* the first selected tab has nothing to overlap with on the left */ -} - -QTabBar::tab:last:selected { - margin-right: 0; /* the last selected tab has nothing to overlap with on the right */ -} - -QTabBar::tab:only-one { - margin: 0; /* if there is only one tab, we don't want overlapping margins */ -} - -/* hack to access Preference TabBar background */ -QDialog#Gui__Dialog__DlgPreferences > QFrame QFrame { - background-color: transparent; /* main background color (in Windows is #444444) */ -} - -/* fix for previous hack that broke QTabWidget background on Windows */ -QDialog#Gui__Dialog__DlgPreferences QTabWidget::pane { - background-color: transparent; /* temporal (transparent background) */ -} - -/* hack to correctly align Preferences icon list on OSX */ -QDialog#Gui__Dialog__DlgPreferences > QListView { - min-width: 130px; -} - -/* unique styles for sections inside Preferences */ -QDialog#Gui__Dialog__DlgPreferences > QListView::item { - border-radius: 4px; -} - -QDialog#Gui__Dialog__DlgPreferences > QListView::item:hover { - background-color: #787878; -} - -QDialog#Gui__Dialog__DlgPreferences > QListView::item:selected { - color: white; - background-color: @ThemeAccentColor1; -} - - -/*================================================================================================== -Tab bar buttons -==================================================================================================*/ -/* Close button */ -QTabBar::close-button { - subcontrol-origin: margin; - subcontrol-position: center right; /* only works for Qt 4.6 and newer */; - border-radius: 2px; - background-image: url(qss:images_dark-light/close_dark.svg); - background-position: center center; - background-repeat: none; -} - -QTabBar::close-button:hover { - background-color: rgba(255,255,255,20); -} - -QTabBar::close-button:pressed { - background-color: rgba(255,255,255,30); -} - -/* Fix for lists inside Model tab */ -QDockWidget QTreeView, -QDockWidget QListView, -QDockWidget QTableView { - margin: 6px; - border: 1px solid #333333; /* same as regular QTreeView, QListView and QTableView */ - min-height: 40px; /* necessary in some areas of FreeCAD */ -} - -/* Buttons to scroll tabs if there is not space to show all of them: */ -QTabBar::scroller { - width: 20px; /* the width of the scroll buttons */ -} - -QTabBar QToolButton, -QTabBar QToolButton:hover { - background-color: #444444; /* same as main background color */ -} - -QTabBar QToolButton::right-arrow:enabled { - image: url(qss:images_dark-light/right_arrow_dark.svg); -} - -QTabBar QToolButton::right-arrow:disabled, -QTabBar QToolButton::right-arrow:off { - image: url(qss:images_dark-light/right_arrow_disabled_dark.svg); -} - -QTabBar QToolButton::right-arrow:hover { - image: url(qss:images_dark-light/right_arrow_darker.svg); -} - - QTabBar QToolButton::left-arrow:enabled { - image: url(qss:images_dark-light/left_arrow_dark.svg); -} - - QTabBar QToolButton::left-arrow:disabled, - QTabBar QToolButton::left-arrow:off { - image: url(qss:images_dark-light/left_arrow_disabled_dark.svg); -} - - QTabBar QToolButton::left-arrow:hover { - image: url(qss:images_dark-light/left_arrow_darker.svg); -} - - QTabBar QToolButton::up-arrow:enabled { - image: url(qss:images_dark-light/up_arrow_dark.svg); -} - - QTabBar QToolButton::up-arrow:disabled, - QTabBar QToolButton::up-arrow:off { - image: url(qss:images_dark-light/up_arrow_disabled_dark.svg); -} - - QTabBar QToolButton::up-arrow:hover { - image: url(qss:images_dark-light/up_arrow_darker.svg); -} - - QTabBar QToolButton::down-arrow:enabled { - image: url(qss:images_dark-light/down_arrow_dark.svg); -} - - QTabBar QToolButton::down-arrow:disabled, - QTabBar QToolButton::down-arrow:off { - image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); -} - - QTabBar QToolButton::down-arrow:hover { - image: url(qss:images_dark-light/down_arrow_darker.svg); -} - -QTabBar::tear { - /* default OS tear better */ -} - - -/*================================================================================================== -Tree and list views -==================================================================================================*/ -QTreeView, -QListView, -QTableView { - color: #ffffff; - background-color: #0f0f0f; - alternate-background-color: #1f1f1f; /* related with QListView background */ - border: 1px solid #333333; - selection-color: #ffffff; - selection-background-color: @ThemeAccentColor1; /* should be similar to QListView::item selected background-color */ - show-decoration-selected: 1; /* make the selection span the entire width of the view */ - border-radius: 3px; -} - -QListView::item:hover, -QTreeView::item:hover { - background-color: transparent; /* fix to homogenize it on all OSs */ -} - -QListView::item:selected, -QTreeView::item:selected { - color: #ffffff; /* should be similar to QListView selection-color */ - background-color: @ThemeAccentColor1; /* should be similar to QListView selection-background-color */ - show-decoration-selected: 1; /* make the selection span the entire width of the view */ -} - -/* Property Editor QTreeView (FreeCAD custom widget) */ -Gui--PropertyEditor--PropertyEditor { - gridline-color: #444444; /* same as Group header background */ -} - -/* fix for column items background when a link is present */ -Gui--PropertyEditor--PropertyEditor > QWidget > QFrame:focus { - background-color: @ThemeAccentColor1; /* same as focused background color */ -} - -/* hack to hide weird redundant information inside the value of a Placement cell */ -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel, -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel:disabled { - color: transparent; - background-color: transparent; - border: none; - border-radius: 0px; - margin: 0px; - padding: 0px; -} - -/* hack to hide non editable cells inside Property values */ -Gui--PropertyEditor--PropertyEditor QLineEdit:read-only, -Gui--PropertyEditor--PropertyEditor QLineEdit:disabled, -Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:read-only, -Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:disabled { - color: transparent; - border-color: transparent; - background-color: transparent; - selection-color: transparent; - selection-background-color: transparent; -} - -/* hack to hide weird redundant information inside cells with links and no editable data (but editable via "..." button) */ -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel { - color: #ffffff; - background-color: #0f0f0f; /* same as focused background color */ -} - -/* hack to disable margin inside Property values to following elements */ -Gui--PropertyEditor--PropertyEditor QSpinBox, -Gui--PropertyEditor--PropertyEditor QDoubleSpinBox, -Gui--PropertyEditor--PropertyEditor QAbstractSpinBox, -Gui--PropertyEditor--PropertyEditor QLineEdit, -Gui--PropertyEditor--PropertyEditor QComboBox { - margin-left: 0px; - margin-right: 0px; - padding-top: 0px; - padding-bottom: 0px; -} - -/* reset min-height to 0px inside list views */ -QTreeView > QWidget > QComboBox, -QTreeView > QWidget > QAbstractSpinBox, -QTreeView > QWidget > QSpinBox, -QTreeView > QWidget > QDoubleSpinBox, -QTreeView > QWidget > QLineEdit, -QTreeView > QWidget > QTextEdit, -QTreeView > QWidget > QTimeEdit, -QTreeView > QWidget > QDateEdit, -QTreeView > QWidget > QDateTimeEdit, -QTreeView > QWidget > Gui--ColorButton { - min-height: 0px; -} - -/* set border-radius to 0px inside list views */ -QTreeView > QWidget > QComboBox, -QTreeView > QWidget > QAbstractSpinBox, -QTreeView > QWidget > QSpinBox, -QTreeView > QWidget > QDoubleSpinBox, -QTreeView > QWidget > QLineEdit, -QTreeView > QWidget > QTextEdit, -QTreeView > QWidget > QTimeEdit, -QTreeView > QWidget > QDateEdit, -QTreeView > QWidget > QDateTimeEdit, -QTreeView > QWidget > QComboBox:drop-down, -QTreeView > QWidget > QAbstractSpinBox:up-button, -QTreeView > QWidget > QSpinBox:up-button, -QTreeView > QWidget > QDoubleSpinBox:up-button, -QTreeView > QWidget > QTimeEdit:up-button, -QTreeView > QWidget > QDateEdit:up-button, -QTreeView > QWidget > QDateTimeEdit:up-button, -QTreeView > QWidget > QAbstractSpinBox:down-button, -QTreeView > QWidget > QSpinBox:down-button, -QTreeView > QWidget > QDoubleSpinBox:down-button, -QTreeView > QWidget > QTimeEdit:down-button, -QTreeView > QWidget > QDateEdit:down-button, -QTreeView > QWidget > QDateTimeEdit:down-button, -QTreeView > QWidget > Gui--ColorButton { - border-radius: 0px; -} - -/* set focus colors to best viewing the editable fields */ -QTreeView > QWidget > QComboBox:focus, -QTreeView > QWidget > QAbstractSpinBox:focus, -QTreeView > QWidget > QSpinBox:focus, -QTreeView > QWidget > QDoubleSpinBox:focus, -QTreeView > QWidget > QLineEdit:focus, -QTreeView > QWidget > QTextEdit:focus, -QTreeView > QWidget > QTimeEdit:focus, -QTreeView > QWidget > QDateEdit:focus, -QTreeView > QWidget > QDateTimeEdit:focus { - border-color: black; /* same as focused background color */ - border-bottom-color: #1e1e1e; /* same as focused border color */ -} - -QTreeView > QWidget > QAbstractSpinBox:read-only, -QTreeView > QWidget > QSpinBox:read-only, -QTreeView > QWidget > QDoubleSpinBox:read-only, -QTreeView > QWidget > QLineEdit:read-only, -QTreeView > QWidget > QTextEdit:read-only, -QTreeView > QWidget > QTimeEdit:read-only, -QTreeView > QWidget > QDateEdit:read-only, -QTreeView > QWidget > QDateTimeEdit:read-only { - color: transparent; - background-color: transparent; - border-color: transparent; -} - -/* Fix to correctly (not totally) draw QTextEdit on OSX at Page properties: "Page result", "Template" and "Editable Texts" */ -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QWidget { - min-height: 14px; - border-radius: 0px; /* reset */ -} - - -/*================================================================================================== -Header of tree and list views -==================================================================================================*/ -QHeaderView { - color: #ffffff; - background-color: #222222; - border-top-left-radius: 2px; /* 1px less than its container */ - border-top-right-radius: 2px; /* 1px less than its container */ - border-bottom-left-radius: 0px; - border-bottom-right-radius: 0px; -} - -QHeaderView::section { - border:none; - padding: 4px 6px; - background-color: black; -} - -QHeaderView::section:horizontal { - padding: 4px 6px; /* left and right value similar to QHeaderView::section */ - border-right: 1px solid rgba(255,255,255,30); -} - -QHeaderView::section:vertical { - border-bottom: 1px solid rgba(255,255,255,30); -} - -QTableCornerButton::section { - background-color: black; - border-top: none; - border-left: none; - border-right: 1px solid rgba(255,255,255,30); - border-bottom: 1px solid rgba(255,255,255,30); -} - -QHeaderView::section:last { - border-right: none; -} - -QHeaderView::up-arrow { - image: url(qss:images_dark-light/up_arrow_light.svg); -} - -QHeaderView::up-arrow:hover { - image: url(qss:images_dark-light/up_arrow_lighter.svg); -} - -QHeaderView::down-arrow { - image: url(qss:images_dark-light/down_arrow_light.svg); -} - -QHeaderView::down-arrow:hover { - image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -/* Group header inside Property Editor (FreeCAD custom widget) */ -Gui--PropertyEditor--PropertyEditor { - qproperty-groupTextColor: #bebebe; - qproperty-groupBackground: black; -} - - -/*================================================================================================== -Branch system for QTreeViews -==================================================================================================*/ -QTreeView::branch { - background: transparent; -} - -QTreeView::branch:has-siblings:!adjoins-item { - border-image: url(qss:images_dark-light/branch_vline_light.svg) 0; -} - -QTreeView::branch:has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_more_light.svg) 0; -} - -QTreeView::branch:!has-children:!has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_end_light.svg) 0; -} - -QTreeView::branch:closed:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_closed_light.svg) 0; -} - -QTreeView::branch:has-children:!has-siblings:closed { - border-image: url(qss:images_dark-light/branch_end_closed_light.svg) 0; -} - -QTreeView::branch:open:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_open_light.svg) 0; -} - -QTreeView::branch:open:has-children:!has-siblings { - border-image: url(qss:images_dark-light/branch_end_open_light.svg) 0; -} - - -/*================================================================================================== -Splitter and windows separator -==================================================================================================*/ -QSplitter::handle { - margin: 0px 11px; - padding: 0px; -} - -QSplitter::handle:horizontal { - background-image: url(qss:images_dark-light/splitter_vertical_dark.svg); - background-position: center center; - background-repeat: none; - margin: 4px 2px 4px 2px; - width: 2px; -} - -QSplitter::handle:vertical { - background-image: url(qss:images_dark-light/splitter_horizontal_dark.svg); - background-position: center center; - background-repeat: none; - margin: 2px 4px 2px 4px; - height: 2px; -} - -/* Similar to the splitter is the following window separator (but horizontal/vertical is on the opposite way) */ -QMainWindow::separator { - background-position: center center; - background-repeat: none; -} - -QMainWindow::separator:horizontal { - height: 2px; - background-image: url(qss:images_dark-light/splitter_horizontal_dark.svg); - margin: 4px 2px 4px 2px; -} - -QMainWindow::separator:vertical { - width: 2px; - background-image: url(qss:images_dark-light/splitter_vertical_dark.svg); - margin: 2px 4px 2px 4px; -} - - -/*================================================================================================== -Text/Python editor (macros, etc...) -==================================================================================================*/ -QPlainTextEdit, -QPlainTextEdit:focus { - background-color: black; - selection-color: #cbd8e6; - selection-background-color: @ThemeAccentColor1; - border: 1px solid #333333; - border-radius: 3px; - margin: 4px; -} - - -/*================================================================================================== -Tasks panel (custom FreeCAD class) -==================================================================================================*/ -/* Action group */ -QFrame[class="panel"] { - background-color: transparent; /* temporal (transparent background) */ -} - -QSint--ActionGroup { - padding: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ - margin: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ -} - -/* Separator line */ -QSint--ActionGroup QFrame[height="1"], -QSint--ActionGroup QFrame[height="2"], -QSint--ActionGroup QFrame[height="3"], -QSint--ActionGroup QFrame[width="1"], -QSint--ActionGroup QFrame[width="2"], -QSint--ActionGroup QFrame[width="3"] { - border-color: rgba(0,0,0,60); -} - -/* Panel header */ -QSint--ActionGroup QFrame[class="header"] { - border: none; - background-color: #0a0a0a; /* Task Panel Header background color */ - border-top-left-radius: 3px; - border-top-right-radius: 3px; - border-bottom-left-radius: 0px; - border-bottom-right-radius: 0px; - margin: 0px; - padding: 0px; -} - -QSint--ActionGroup QFrame[class="header"]:hover { - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor3, stop:1 @ThemeAccentColor3); -} - -QSint--ActionGroup QToolButton[class="header"] { - color: #fafafa; /* Task Panel Header text color */ - text-align: left; - font-weight: bold; - border: none; - margin: 0px; - padding: 0px; -} - -QSint--ActionGroup QFrame[class="header"] QLabel { - background-color: transparent; - background-image: url(qss:images_dark-light/down_arrow_light.svg); - background-repeat: none; - background-position: center center; - padding: 0px; - margin: 0px; -} - -QSint--ActionGroup QFrame[class="header"] QLabel:hover { - background-color: transparent; - background-image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"] { - background-color: transparent; - background-image: url(qss:images_dark-light/up_arrow_light.svg); - background-repeat: none; - background-position: center center; - padding: 0px; - margin: 0px; -} - -QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"]:hover { - background-color: transparent; - background-image: url(qss:images_dark-light/up_arrow_lighter.svg); -} - -QSint--ActionGroup QFrame[class="content"] { - background-color: #545454; /* Task Panel background color */ - margin: 0px; - padding: 0px; - border: none; - border-top-left-radius: 0px; - border-top-right-radius: 0px; - border-bottom-left-radius: 3px; - border-bottom-right-radius: 3px; -} - -QSint--ActionGroup QFrame[class="content"] > QWidget { - background-color: #545454; /* Task Panel background color */ -} - -/* Fixs for tabs inside Task Panel */ -QSint--ActionGroup QFrame[class="content"] QTabBar::tab:top:selected { - border-bottom-color: #545454; /* same as Task Panel background color */ -} - -QSint--ActionGroup QFrame[class="content"] QTabBar::tab:bottom:selected { - border-top-color: #545454; /* same as Task Panel background color */ -} - -QSint--ActionGroup QFrame[class="content"] QTabBar::tab:right:selected { - border-right-color: #545454; /* same as Task Panel background color */ -} - -QSint--ActionGroup QFrame[class="content"] QTabBar::tab:left:selected { - border-left-color: #545454; /* same as Task Panel background color */ -} - -/* Fix for buttons with icons that showed cropped (still not happy with result) */ -QSint--ActionGroup QFrame[class="content"] > QWidget > QPushButton { - padding: 2px; /* bigger padding crops text and icons... */ - margin: 0px; -} - -/* Fix for lists inside task panels */ -QSint--ActionGroup QFrame[class="content"] QTreeView, -QSint--ActionGroup QFrame[class="content"] QListView, -QSint--ActionGroup QFrame[class="content"] QTableView { - color: #fafafa; - background-color: #787878; -} - - -/*================================================================================================== -Buttons -==================================================================================================*/ -/* Common */ -QComboBox, -QAbstractSpinBox, -QSpinBox, -QDoubleSpinBox, -QLineEdit, -QTextEdit, -QTimeEdit, -QDateEdit, -QDateTimeEdit { - color: #bebebe; - background-color: black; - selection-color: white; - selection-background-color: @ThemeAccentColor3 ; - border: 1px solid black; - border-radius: 3px; - min-width: 50px; /* it ensures the default value is correctly displayed */ - min-height: 20px; /* important to be a pair number in order to up/down buttons to be divisible by two (if not set could create a blank line in Ubuntu. Its downside is that it's needed to reset it (min-width: 0px) on following elements that can't have it such as fields inside QToolBar and inside QTreeView (Property editor) */ - padding: 1px 2px; /* temporal: could don't be compatible with elements inside Tree/List view */ -} - -/* more contrast for QTextEdits */ -QTextEdit { - color: black; -} - -/* shifts text/number editable field to the left to make space for the up/down or drop-down buttons */ -QComboBox, -QAbstractSpinBox, -QSpinBox, -QDoubleSpinBox, -QTimeEdit, -QDateEdit, -QDateTimeEdit { - padding-right: 20px; -} - -/* when QTextEdit are no editable (like Report view)*/ -QTextEdit:!editable, -QTextEdit:!editable:focus { - background-color: black; - border: 1px solid #424242; -} - -QComboBox:focus, -QAbstractSpinBox:focus, -QSpinBox:focus, -QDoubleSpinBox:focus, -QLineEdit:focus, -QTextEdit:focus, -QTimeEdit:focus, -QDateEdit:focus, -QDateTimeEdit:focus { - color: #fafafa; - border-color: @ThemeAccentColor3; - border-right-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 @ThemeAccentColor3, stop:1 @ThemeAccentColor3); /* same as up/down or drop-down button color */ - background-color: @ThemeAccentColor1; -} - -QComboBox:disabled, -QAbstractSpinBox:disabled, -QSpinBox:disabled, -QDoubleSpinBox:disabled, -QLineEdit:disabled, -QTextEdit:disabled, -QTimeEdit:disabled, -QDateEdit:disabled, -QDateTimeEdit:disabled { - color: #545454; - background-color: black; /* same as enabled color */ - border-color: black; /* same as enabled color */ -} - -QAbstractSpinBox:up-button, -QSpinBox:up-button, -QDoubleSpinBox:up-button, -QTimeEdit:up-button, -QDateEdit:up-button, -QDateTimeEdit:up-button, -QAbstractSpinBox:down-button, -QSpinBox:down-button, -QDoubleSpinBox:down-button, -QTimeEdit:down-button, -QDateEdit:down-button, -QDateTimeEdit:down-button { - background-color: black; /* same color for QComboBox background-color */ - subcontrol-origin: border; /* important */ - width: 20px; /* same as QComboBox ... QDateTimeEdit padding-right */ -} - -QAbstractSpinBox:up-button, -QSpinBox:up-button, -QDoubleSpinBox:up-button, -QTimeEdit:up-button, -QDateEdit:up-button, -QDateTimeEdit:up-button { - subcontrol-position: top right; - border-top-right-radius: 3px; -} - -QAbstractSpinBox:down-button, -QSpinBox:down-button, -QDoubleSpinBox:down-button, -QTimeEdit:down-button, -QDateEdit:down-button, -QDateTimeEdit:down-button { - subcontrol-position: bottom right; - border-bottom-right-radius: 3px; -} - -QAbstractSpinBox:up-button:focus, -QSpinBox:up-button:focus, -QDoubleSpinBox:up-button:focus, -QTimeEdit:up-button:focus, -QDateEdit:up-button:focus, -QDateTimeEdit:up-button:focus { - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 @ThemeAccentColor3, stop:1 @ThemeAccentColor3); -} - -QAbstractSpinBox:down-button:focus, -QSpinBox:down-button:focus, -QDoubleSpinBox:down-button:focus, -QTimeEdit:down-button:focus, -QDateEdit:down-button:focus, -QDateTimeEdit:down-button:focus { - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 @ThemeAccentColor3, stop:1 @ThemeAccentColor3); -} - -QAbstractSpinBox:up-button:disabled, -QSpinBox:up-button:disabled, -QDoubleSpinBox:up-button:disabled, -QTimeEdit:up-button:disabled, -QDateEdit:up-button:disabled, -QDateTimeEdit:up-button:disabled, -QAbstractSpinBox:down-button:disabled, -QSpinBox:down-button:disabled, -QDoubleSpinBox:down-button:disabled, -QTimeEdit:down-button:disabled, -QDateEdit:down-button:disabled, -QDateTimeEdit:down-button:disabled { - background-color: transparent; -} - -QAbstractSpinBox::up-arrow, -QSpinBox::up-arrow, -QDoubleSpinBox::up-arrow, -QTimeEdit::up-arrow, -QDateEdit::up-arrow, -QDateTimeEdit::up-arrow { - image: url(qss:images_dark-light/up_arrow_light.svg); - top: 2px; /* fix symmetry between up and down images */ -} - -QAbstractSpinBox::up-arrow:focus, -QSpinBox::up-arrow:focus, -QDoubleSpinBox::up-arrow:focus, -QTimeEdit::up-arrow:focus, -QDateEdit::up-arrow:focus, -QDateTimeEdit::up-arrow:focus { - image: url(qss:images_dark-light/up_arrow_lighter.svg); -} - -QAbstractSpinBox::up-arrow:off, -QSpinBox::up-arrow:off, -QDoubleSpinBox::up-arrow:off, -QTimeEdit::up-arrow:off, -QDateEdit::up-arrow:off, -QDateTimeEdit::up-arrow:off { - image: url(qss:images_dark-light/up_arrow_disabled_dark.svg); -} - -QAbstractSpinBox::up-arrow:disabled, -QSpinBox::up-arrow:disabled, -QDoubleSpinBox::up-arrow:disabled, -QTimeEdit::up-arrow:disabled, -QDateEdit::up-arrow:disabled, -QDateTimeEdit::up-arrow:disabled { - image: url(qss:images_dark-light/up_arrow_disabled_dark.svg); -} - -QAbstractSpinBox::down-arrow, -QSpinBox::down-arrow, -QDoubleSpinBox::down-arrow, -QTimeEdit::down-arrow, -QDateEdit::down-arrow, -QDateTimeEdit::down-arrow { - image: url(qss:images_dark-light/down_arrow_light.svg); - bottom: 0px; /* fix simetry between up and down images */ -} - -QAbstractSpinBox::down-arrow:focus, -QSpinBox::down-arrow:focus, -QDoubleSpinBox::down-arrow:focus, -QTimeEdit::down-arrow:focus, -QDateEdit::down-arrow:focus, -QDateTimeEdit::down-arrow:focus { - image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -QAbstractSpinBox::down-arrow:off, -QSpinBox::down-arrow:off, -QDoubleSpinBox::down-arrow:off, -QTimeEdit::down-arrow:off, -QDateEdit::down-arrow:off, -QDateTimeEdit::down-arrow:off { - image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); -} - -QAbstractSpinBox::down-arrow:disabled, -QSpinBox::down-arrow:disabled, -QDoubleSpinBox::down-arrow:disabled, -QTimeEdit::down-arrow:disabled, -QDateEdit::down-arrow:disabled, -QDateTimeEdit::down-arrow:disabled { - image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); -} - -/* ComboBox */ - -QComboBox::drop-down { - background-color: #333333; /* same color as up/down QSpinBox ... QDateTimeView background-color */ - subcontrol-origin: border; /* important */ - subcontrol-position: top right; - width: 20px; - border-top-right-radius: 3px; - border-bottom-right-radius: 3px; -} - -QComboBox::drop-down:on, -QComboBox::drop-down:focus { - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 @ThemeAccentColor3, stop:1 @ThemeAccentColor3); -} - -QComboBox::down-arrow { - image: url(qss:images_dark-light/down_arrow_light.svg); -} - -QComboBox::down-arrow:on, -QComboBox::down-arrow:focus { - image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -QComboBox::down-arrow:off, -QComboBox::down-arrow:disabled { - image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); -} - -/* ComboBox menu */ -QComboBox { - selection-color: #fafafa; - selection-background-color: @ThemeAccentColor1; -} - -QComboBox QAbstractItemView { - color: #bebebe; /* same as regular QComboBox color */ - background-color: transparent; - selection-color: #fafafa; - selection-background-color: @ThemeAccentColor1; - border-width: 5px 0px 5px 0px; - border-style: solid; - border-color: transparent; - margin: 0px -1px 0px 0px; /* hack for Mac... try it on Windows and Linux */ -} - - -/*================================================================================================== -Push button -==================================================================================================*/ -QPushButton { - color: #e0e0e0; - text-align: center; - background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #333333, stop:1 black); - border: 1px solid black; - border-bottom-color: #1e1e1e; /* simulates shadow under the button */ - padding: 4px 22px; - margin: 4px 4px; - min-height: 16px; /* same as QTabBar QPushButton min-width */ - border-radius: 4px; -} - -QPushButton:hover, -QPushButton:focus { - color: #cbd8e6; - border-color: @ThemeAccentColor3; - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); -} - -QPushButton:disabled, -QPushButton:disabled:checked { - color: black; - background-color: #3c3c3c; /* same as enabled color */ - border-color: #3c3c3c; /* same as enabled color */ -} - -QPushButton:pressed { - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor3, stop:1 @ThemeAccentColor1); -} - -QPushButton:checked { - background-color: @ThemeAccentColor1; - border-color: @ThemeAccentColor3; -} - -/* Color Buttons */ -Gui--ColorButton, -Gui--ColorButton:disabled { - padding: 0px; /* reset */ - margin: 0px; /* reset */ -} - -Gui--ColorButton { - background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 black, stop:1 #1e1e1e); - border: 1px solid #1e1e1e; - border-bottom-color: black; /* simulates shadow under the button */ -} - -Gui--ColorButton:disabled { - border-color: transparent; - background-color: rgba(0,0,0,10); -} - -Gui--ColorButton:hover, -Gui--ColorButton:focus { - border-color: @ThemeAccentColor3; - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); -} - -Gui--ColorButton:pressed { - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor3, stop:1 @ThemeAccentColor1); -} - -/* Pushbutton style for "..." inside Placement cell which launches Placement tool */ -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QPushButton, -Gui--PropertyEditor--PropertyEditor > QWidget > QPushButton { - background-color: black; - border: 1px solid #1e1e1e; - min-width: 16px; /* reset it due to larger value on regular QPushButton, same or bigger value as regular QPushButton min-height */ - border-radius: 0px; - margin: 0px; /* reset */ - padding: 0px; /* reset */ -} - -Gui--PropertyEditor--PropertyEditor > QWidget > QPushButton { - text-align:left; - padding-left: 2px; -} - -/* Fix for Expressions description QFrame that is "broken" with initial reset */ -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QWidget > QWidget > QFrame { - background-color: #444444; /* main background color */ - border: 1px solid #444444; - border-radius: 2px; - padding: 2px 6px; -} - -QPushButton:checked { - background-color: @ThemeAccentColor1; - border-color: @ThemeAccentColor1; -} - -/*================================================================================================== -Tool button Icon fix in save dialogs -==================================================================================================*/ -/* found under Tools -> Save Picture */ /* Draft -> ShapeString -> Font file */ - -QFileDialog#QFileDialog QToolButton { - background-color: transparent; - padding: 1px; - border: 1px; - margin: 0px; -} - - -/*================================================================================================== -Tool button inside QDialogs that works as QPushButtons -==================================================================================================*/ -/* found under Tools -> Customize -> Macros -> Pixmap "..." button */ -QDialog QToolButton { - color: #e0e0e0; - text-align: center; - background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 black, stop:1 #1e1e1e); - border: 1px solid #1e1e1e; - border-bottom-color: black; /* simulates shadow under the button */ - padding: 0px; /* different than regular QPushButton */ - margin: 2px; /* different than regular QPushButton */ - min-height: 16px; /* same as QTabBar QPushButton min-width */ - border-radius: 4px; -} - -QDialog QToolButton:hover, -QDialog QToolButton:focus { - color: #cbd8e6; - border-color: @ThemeAccentColor3; - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); -} - -QDialog QToolButton:disabled, -QDialog QToolButton:disabled:checked { - color: #444444; - border-color: #424242; - background-color: #424242; -} - -QDialog QToolButton:pressed { - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor3, stop:1 @ThemeAccentColor1); -} - - -/*================================================================================================== -Tool button inside Task Panel content that works as QPushButtons -==================================================================================================*/ -/* found inside Part Design Workbench and "make a draft on a face" Task panel options */ -QSint--ActionGroup QFrame[class="content"] QToolButton { - color: #e0e0e0; - text-align: center; - background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 black, stop:1 #1e1e1e); - border: 1px solid #1e1e1e; - border-bottom-color: black; /* simulates shadow under the button */ - padding: 2px 6px; /* different than regular QPushButton */ - margin: 2px; /* different than regular QPushButton */ - min-height: 16px; /* same as QTabBar QPushButton min-width */ - border-radius: 4px; -} - -QSint--ActionGroup QFrame[class="content"] QToolButton:hover, -QSint--ActionGroup QFrame[class="content"] QToolButton:focus { - color: white; - border-color: @ThemeAccentColor3; - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); -} - -QSint--ActionGroup QFrame[class="content"] QToolButton:disabled, -QSint--ActionGroup QFrame[class="content"] QToolButton:disabled:checked { - color: #444444; - border-color: #424242; - background-color: #424242; -} - -QSint--ActionGroup QFrame[class="content"] QToolButton:pressed { - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor3, stop:1 @ThemeAccentColor1); -} - -/* QToolButtons with a menu found in Sketcher task panel*/ -QSint--ActionGroup QToolButton::menu-button { - border: none; - border-top-right-radius: 4px; - border-bottom-right-radius: 4px; - padding: 2px; - width: 16px; /* 16px width + 4px for border = 20px allocated above */ - outline: none; - background-color: transparent; -} - -QSint--ActionGroup QToolButton#settingsButton, -QSint--ActionGroup QToolButton#filterButton, -QSint--ActionGroup QToolButton#manualUpdate { - padding-right: 20px; /* make way for the popup button */ -} - -/* to give widget inside the menu same look as regular menu */ -QSint--ActionGroup QToolButton#filterButton QListWidget { - color: #fefefe; - background-color: #111111; - padding: 0px; - margin: 0px; -} - - -/*================================================================================================== -QComboBox inside Task Panel content -==================================================================================================*/ -/* Fix for QComboBox inside Task Panel due to not correctly styling it with regular */ -/* found inside TechDraw Workbench and "insert multiple views" from toolbar */ -/* TODO: external border not working, in the rest of GUI works setting up Qmenu background color but inside Task Panel it doesn't... */ -QSint--ActionGroup QFrame[class="content"] QMenu, -QSint--ActionGroup QFrame[class="content"] QMenu::item { - background-color: black; -} - -QSint--ActionGroup QFrame[class="content"] QComboBox QAbstractItemView { - background-color: black; -} - - -/*================================================================================================== -Radio button -==================================================================================================*/ -QRadioButton::indicator:unchecked{ - color: black; - background-color: rgba(0,0,0,40); - border: 1px solid #787878; -} - -QRadioButton::indicator:checked { - background-color: @ThemeAccentColor1; /* QCheckBox has the same color */ - border: 1px solid @ThemeAccentColor1; /* QCheckBox has the same color */ - image:url(qss:images_dark-light/radiobutton_light.svg); -} - -QRadioButton, -QRadioButton:disabled { - color: #fafafa; - padding: 3px; - outline: none; - background-color: transparent; -} - -QRadioButton:disabled { - color: rgba(255,255,255,40); -} - -QRadioButton::indicator { - width: 11px; - height: 11px; - border-radius: 6px; -} - -QRadioButton::indicator:pressed { - border-color: #cbd8e6; -} - -QRadioButton::indicator:disabled { - color: #424242; - background-color: transparent; - border: 1px solid #424242; - image:url(qss:images_dark-light/radiobutton_dark.svg); -} - -QRadioButton:focus { - border: none; -} - - -/*================================================================================================== -Checkbox -==================================================================================================*/ -QCheckBox, -QCheckBox:disabled { - color: #fafafa; - padding: 3px; - outline: none; - background-color: transparent; -} - -QCheckBox::indicator, -QGroupBox::indicator { - color: black; - background-color: rgba(0,0,0,40); - border: 1px solid #787878; - width: 11px; - height: 11px; - border-radius:2px; -} - -QCheckBox::indicator:pressed, -QCheckBox::indicator:non-exclusive:checked:pressed, -QCheckBox::indicator:indeterminate:pressed, -QCheckBox::indicator:checked:pressed, -QGroupBox::indicator:pressed, -QGroupBox::indicator:non-exclusive:checked:pressed, -QGroupBox::indicator:indeterminate:pressed, -QGroupBox::indicator:checked:pressed { - border-color: #cbd8e6; -} - -QCheckBox::indicator:checked, -QGroupBox::indicator:checked { - background-color: @ThemeAccentColor1; /* QRadioButton has the same color */ - border: 1px solid @ThemeAccentColor1; /* QRadioButton has the same color */ - image:url(qss:images_dark-light/checkbox_light.svg); -} - -QCheckBox:disabled { - color: rgba(255,255,255,40); - background-color: transparent; -} - -QCheckBox::indicator:disabled, -QGroupBox::indicator:disabled { - background-color: rgba(0,0,0,0); - border: 1px solid rgba(0,0,0,20); -} - -QCheckBox::indicator:indeterminate, -QGroupBox::indicator:indeterminate { - background-color: @ThemeAccentColor1; - border: 1px solid @ThemeAccentColor1; - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); -} - -QCheckBox:focus { - border: none; -} - - -/*================================================================================================== -Checkboxes inside QListWidget and QTreeView -==================================================================================================*/ -QListWidget::indicator, -QTreeView::indicator { - color: #c8c8c8; - background-color: rgba(255,255,255,20); - border: 1px solid #424242; - width: 11px; - height: 11px; - border-radius:2px; -} - -/* fix for QTreeView::indicator losing its margin */ -QTreeView::indicator { - margin: 3px; -} - -QListWidget::indicator:selected, -QTreeView::indicator:selected { - background-color: #e6e6e6; -} - -QListWidget::indicator:checked:selected, -QListWidget::indicator:indeterminate:selected, -QTreeView::indicator:checked:selected, -QTreeView::indicator:indeterminate:selected { - background-color: @ThemeAccentColor1; /* slightly lighter than default */ - border-color: @ThemeAccentColor1; /* slightly darker than default */ -} - -QListWidget::indicator:pressed, -QListWidget::indicator:non-exclusive:checked:pressed, -QListWidget::indicator:indeterminate:pressed, -QListWidget::indicator:checked:pressed, -QTreeView::indicator:pressed, -QTreeView::indicator:non-exclusive:checked:pressed, -QTreeView::indicator:indeterminate:pressed, -QTreeView::indicator:checked:pressed { - border-color: #cbd8e6; -} - -QListWidget::indicator:checked, -QTreeView::indicator:checked { - background-color: @ThemeAccentColor1; /* QRadioButton has the same color */ - border: 1px solid @ThemeAccentColor1; /* QRadioButton has the same color */ - image:url(qss:images_dark-light/checkbox_light.svg); -} - -QListWidget::indicator:disabled, -QTreeView::indicator:disabled { - background-color: rgba(255,255,255,20); - border: 1px solid rgba(255,255,255,20); -} - -QListWidget::indicator:indeterminate, -QTreeView::indicator:indeterminate { - background-color: @ThemeAccentColor1; - border: 1px solid @ThemeAccentColor1; - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); -} - - -/*================================================================================================== -Slider -==================================================================================================*/ -QSlider, -QSlider:active, -QSlider:!active { - border: none; - background-color: transparent; -} - -QSlider:horizontal { - padding: 0px 10px; -} - -QSlider:vertical { - padding: 10px 0px; -} - -QSlider::groove { - background-color: rgba(255,255,255,30); - border: 1px solid rgba(255,255,255,40); - border-radius: 5px; - margin: 4px 0px; -} - -QSlider::groove:horizontal { - height: 8px; -} - -QSlider::groove:vertical { - width: 8px; -} - -QSlider::groove:horizontal:disabled, -QSlider::groove:vertical:disabled { - border-color: #424242; - background-color: #424242; -} - -QSlider::handle:horizontal, -QSlider::handle:vertical { - background-color: black; - border: 1px solid black; - width: 14px; - height: 14px; - border-radius: 8px; -} - -QSlider::handle:horizontal { - margin: -4px 0; -} - -QSlider::handle:vertical { - margin: 0 -4px; -} - -QSlider::handle:horizontal:hover, -QSlider::handle:vertical:hover, -QSlider::handle:horizontal:pressed, -QSlider::handle:vertical:pressed { - border-color: #adc5ed; - background-color: @ThemeAccentColor1; -} - -QSlider::handle:horizontal:disabled, -QSlider::handle:vertical:disabled { - border-color: #424242; - background-color: #424242; -} - - -/*================================================================================================== -Toolbar buttons -==================================================================================================*/ -/*QToolBar > QComboBox, disabled because creates different margins for body and drop-down button */ -QToolBar > QAbstractSpinBox, -QToolBar > QSpinBox, -QToolBar > QDoubleSpinBox, -QToolBar > QLineEdit, -QToolBar > QTextEdit, -QToolBar > QTimeEdit, -QToolBar > QDateEdit, -QToolBar > QDateTimeEdit { - margin: 0px 2px; - padding: 0px; - min-width: 70px; /* necessary to show its content */ -} - -QToolBar > QComboBox, -QToolBar > QAbstractSpinBox, -QToolBar > QSpinBox, -QToolBar > QDoubleSpinBox, -QToolBar > QLineEdit, -QToolBar > QTextEdit, -QToolBar > QTimeEdit, -QToolBar > QDateEdit, -QToolBar > QDateTimeEdit { - min-height: 0px; /* reset it inside Tool Bar due to the user ability to set the "size of toolbar icons" inside Preferences */ -} - -QToolBar > QPushButton { - padding: 0px; - margin: 1px; /* doesn't work with :left, :right:, :top or :bottom sub-controls */ - min-width: 16px; /* could not be larger due to switchable Preferences "Size of toolbar icons" */ - min-height: 16px; /* could not be larger due to switchable Preferences "Size of toolbar icons" */ - border-radius: 4px; /* same as regular QPushButton */ -} - -QToolBar > QPushButton:checked { - border: 1px solid #7cabf9; - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor1); -} - -QToolBar > QPushButton:!checked { - background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #444444, stop:1 #3c3c3c); - border: 1px solid #424242; - border-bottom-color: #333333; /* simulates shadow under the button */ - text-align: left; /* bug fix #4559 */ -} - -QToolBar > QPushButton:checked:hover { - border-color: #6f9efa; -} - -QToolBar > QPushButton:!checked:hover { - color: #cbd8e6; - border-color: #333333; -} - -QToolBar > QPushButton:checked:pressed { - background-color: @ThemeAccentColor1; -} - -QToolBar > QPushButton:!checked:pressed { - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #424242, stop:1 #444444); -} - -QToolBar > QPushButton:checked:disabled, -QToolBar > QPushButton:!checked:disabled { - border: none; - background-color: transparent; -} - -QToolBar > QToolButton { - margin: 2px; - padding: 2px; - border-radius: 3px; -} - -QToolBar > QToolButton:hover { - background-color: rgba(255,255,255,20); -} - -QToolBar > QToolButton:pressed { - background-color: rgba(255,255,255,30); -} - -/* ToolBar menu buttons (buttons with drop-down menu) */ -QToolBar > QToolButton#qt_toolbutton_menubutton { - padding-right: 20px; /* Hack to add more width to buttons with menu */ - border: 1px solid transparent; - border-radius: 3px; -} - -QToolBar > QToolButton#qt_toolbutton_menubutton:hover, -QToolBar > QToolButton#qt_toolbutton_menubutton:pressed, -QToolBar > QToolButton#qt_toolbutton_menubutton:open { - border: 1px solid #7cabf9; -} - -QToolBar QToolButton::menu-button, -QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button { - border: none; - border-top-right-radius: 3px; - border-bottom-right-radius: 3px; - width: 16px; /* 16px width + 4px for border = 20px allocated above */ - outline: none; - background-color: transparent; -} - -QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:hover, -QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:pressed, -QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:open { - background-color: qlineargradient(spread:pad, x1:1, y1:0.8, x2:1, y2:0, stop:0 @ThemeAccentColor1, stop:1 #7cabf9); -} - -QToolBar > QToolButton::menu-arrow { - background-image: url(qss:images_dark-light/down_arrow_dark.svg); - background-position: center center; - background-repeat: none; - subcontrol-origin: padding; - subcontrol-position: bottom right; - height: 10px; /* same as arrow image */ -} - -QToolBar > QToolButton::menu-arrow:hover { - background-image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -QToolBar > QToolButton::menu-arrow:open { - background-image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -/* when QToolButton is checked: */ -QToolBar > QToolButton:checked { - border: 1px solid #7cabf9; - background-color: rgba(124,171,249,60); /* transparency for #7cabf9 color */ -} - -QToolBar > QToolButton:checked:hover { - border: 1px solid #7cabf9; - background-color: rgba(124,171,249,80); /* transparency for #7cabf9 color */ -} - -/*The "show more" button (it can also be stylable with "QToolBarExtension" */ -QToolBar QToolButton#qt_toolbar_ext_button { - margin: 0px; - padding: 0px; - /*background-image: url(qss:images_dark-light/more_dark.svg);*/ - image: transparent; - background-repeat: none; - background-position: center left; -} - -QToolBar QToolButton#qt_toolbar_ext_button:hover { - /*background-image: url(qss:images_dark-light/more_light.svg);*/ - border-color: #424242; - background-color: #424242; -} - -QToolBar QToolButton#qt_toolbar_ext_button:on { - /*background-image: url(qss:images_dark-light/more_light.svg);*/ - border-color: #424242; - background-color: #424242; -} - - -/*================================================================================================== -Tables (spreadsheets) -==================================================================================================*/ -QTableView { - gridline-color: #a0a0a0; - selection-color: @ThemeAccentColor3; - selection-background-color: #adc5ed; -} - -QTableView::item:hover { - background-color: rgba(0,0,0,10); /* temporal: is it displayed in Linux or Windows? on OSX it isn't */ -} - -QTableView::item:disabled { - color: #333333; -} - -QTableView::item:selected { - color: @ThemeAccentColor3; - border-color: #cbd8e6; /* same as focused background color */ - border-bottom-color: #7cabf9; /* same as focused border color */ -} - -/* fix for elements inside the cells */ -QTableView > QWidget > QComboBox, -QTableView > QWidget > QAbstractSpinBox, -QTableView > QWidget > QSpinBox, -QTableView > QWidget > QDoubleSpinBox, -QTableView > QWidget > QLineEdit, -QTableView > QWidget > QTextEdit, -QTableView > QWidget > QTimeEdit, -QTableView > QWidget > QDateEdit, -QTableView > QWidget > QDateTimeEdit, -QTableView > QWidget > QComboBox:drop-down, -QTableView > QWidget > QAbstractSpinBox:up-button, -QTableView > QWidget > QSpinBox:up-button, -QTableView > QWidget > QDoubleSpinBox:up-button, -QTableView > QWidget > QTimeEdit:up-button, -QTableView > QWidget > QDateEdit:up-button, -QTableView > QWidget > QDateTimeEdit:up-button, -QTableView > QWidget > QAbstractSpinBox:down-button, -QTableView > QWidget > QSpinBox:down-button, -QTableView > QWidget > QDoubleSpinBox:down-button, -QTableView > QWidget > QTimeEdit:down-button, -QTableView > QWidget > QDateEdit:down-button, -QTableView > QWidget > QDateTimeEdit:down-button, -QTableView > QWidget > Gui--ColorButton { - border-radius: 0px; -} - -QTableView > QWidget > QComboBox, -QTableView > QWidget > QAbstractSpinBox, -QTableView > QWidget > QSpinBox, -QTableView > QWidget > QDoubleSpinBox, -QTableView > QWidget > QLineEdit, -QTableView > QWidget > QTextEdit, -QTableView > QWidget > QTimeEdit, -QTableView > QWidget > QDateEdit, -QTableView > QWidget > QDateTimeEdit { - color: black; - background-color: transparent; - border-color: transparent; -} - -QTableView > QWidget > QComboBox:drop-down, -QTableView > QWidget > QAbstractSpinBox:up-button, -QTableView > QWidget > QSpinBox:up-button, -QTableView > QWidget > QDoubleSpinBox:up-button, -QTableView > QWidget > QTimeEdit:up-button, -QTableView > QWidget > QDateEdit:up-button, -QTableView > QWidget > QDateTimeEdit:up-button, -QTableView > QWidget > QAbstractSpinBox:down-button, -QTableView > QWidget > QSpinBox:down-button, -QTableView > QWidget > QDoubleSpinBox:down-button, -QTableView > QWidget > QTimeEdit:down-button, -QTableView > QWidget > QDateEdit:down-button, -QTableView > QWidget > QDateTimeEdit:down-button, -QTableView > QWidget > Gui--ColorButton { - background-color: rgba(0,0,0,30); -} - -QTableView > QWidget > QComboBox:focus, -QTableView > QWidget > QAbstractSpinBox:focus, -QTableView > QWidget > QSpinBox:focus, -QTableView > QWidget > QDoubleSpinBox:focus, -QTableView > QWidget > QLineEdit:focus, -QTableView > QWidget > QTextEdit:focus, -QTableView > QWidget > QTimeEdit:focus, -QTableView > QWidget > QDateEdit:focus, -QTableView > QWidget > QDateTimeEdit:focus { - color: @ThemeAccentColor3; - selection-color: white; - selection-background-color: @ThemeAccentColor1; - border-color: #cbd8e6; - background-color: #cbd8e6; -} - -QTableView > QWidget > QComboBox:disabled, -QTableView > QWidget > QAbstractSpinBox:disabled, -QTableView > QWidget > QSpinBox:disabled, -QTableView > QWidget > QDoubleSpinBox:disabled, -QTableView > QWidget > QLineEdit:disabled, -QTableView > QWidget > QTextEdit:disabled, -QTableView > QWidget > QTimeEdit:disabled, -QTableView > QWidget > QDateEdit:disabled, -QTableView > QWidget > QDateTimeEdit:disabled { - color: rgba(0,0,0,120); - background-color: transparent; - border-color: transparent; -} - -QTableView > QWidget > QComboBox:read-only, -QTableView > QWidget > QAbstractSpinBox:read-only, -QTableView > QWidget > QSpinBox:read-only, -QTableView > QWidget > QDoubleSpinBox:read-only, -QTableView > QWidget > QLineEdit:read-only, -QTableView > QWidget > QTextEdit:read-only, -QTableView > QWidget > QTimeEdit:read-only, -QTableView > QWidget > QDateEdit:read-only, -QTableView > QWidget > QDateTimeEdit:read-only { - color: black; - background-color: transparent; - border-color: transparent; -} - - -/*================================================================================================== -SELECTORTOOLBAR widget (3rd party plugin) -==================================================================================================*/ -QToolBar:horizontal#Selector, -QToolBar:vertical#Selector { - background-color: rgba(0,0,0,120); - margin: 0px; - padding: 0px; -} - -QToolBar::handle:top#Selector, -QToolBar::handle:bottom#Selector, -QToolBar::handle:horizontal#Selector { - alignment: bottom left; -} - -QToolBar::handle:left#Selector, -QToolBar::handle:right#Selector, -QToolBar::handle:vertical#Selector { - width: 100%; - alignment: center left; -} - -QToolBar:top#Selector QToolButton, -QToolBar:bottom#Selector QToolButton, -QToolBar:horizontal#Selector QToolButton { - alignment: bottom left; -} - -QToolBar:left#Selector QToolButton, -QToolBar:right#Selector QToolButton, -QToolBar:vertical#Selector QToolButton { - alignment: center left; -} - -QToolButton[toolbar_orientation="horizontal"] { - /* nothing, when Horizontal there's no need to add special parameters */ -} - -QToolButton[toolbar_orientation="vertical"] { - /* nothing, when Horizontal there's no need to add special parameters */ -} - -QToolBar#Selector QToolButton { - border: none; - margin: 0px; - padding: 2px 6px; - border-radius: 0px; -} - -/* Active tab */ -QToolBar#Selector QToolButton:checked { - color: white; - background-color: #444444; -} - -/* Unactive tabs */ -QToolBar#Selector QToolButton:!checked { - color: rgba(255,255,255,160); - background-color: transparent; - margin: 0px; -} - -/* Unactive tabs (hover) */ -QToolBar#Selector QToolButton:!checked:hover { - color: rgba(255,255,255,255); - background-color: rgba(255,255,255,20); -} - -/* Unactive tabs (pressed) */ -QToolBar#Selector QToolButton:!checked:pressed { - background-color: rgba(255,255,255,40); -} - - -/*================================================================================================== -TABBAR widget (3rd party plugin) -==================================================================================================*/ -QTabWidget#TabBar > QTabBar { - border-top: 0; -} - -QTabWidget#TabBar > QTabBar::tab:top, -QTabWidget#TabBar > QTabBar::tab:bottom { - min-width: -1; -} - -QTabWidget#TabBar > QTabBar::tab:left, -QTabWidget#TabBar > QTabBar::tab:right { - min-height: -1; -} - - -/*================================================================================================== -EXPERIMENTAL -==================================================================================================*/ - -/* Fix for preventing elements in different rows to accidentally overlap */ -QDialog QGroupBox QFrame { - margin: 2px 0px; -} - -*[mandatoryField="true"] { background-color: cyan } - -/* Hack to avoid QPushButton text partially hidden under menu-indicator */ -QPushButton#NavigationIndicator::menu-indicator { - image: none; - width: 0px; -} - -QToolBar QToolButton[popupMode="1"] { - width: 100px; - background: red; -} - -/*================================================================================================== -SKETCHER -==================================================================================================*/ - -Gui--StatefulLabel[state="empty_sketch"] { - color : rgba(255,255,255,127); /* 50% opacity white */ -} -Gui--StatefulLabel[state="under_constrained"] { - color : rgba(255,255,255,255); /* White */ -} -Gui--StatefulLabel[state="conflicting_constraints"] { - color : rgba(255,0,0,255); /* Red */ -} -Gui--StatefulLabel[state="malformed_constraints"] { - color : rgba(255,0,0,255); /* Red */ -} -Gui--StatefulLabel[state="redundant_constraints"] { - color : rgba(255,69,0,255); /* Orange red */ -} -Gui--StatefulLabel[state="partially_redundant_constraints"] { - color : rgba(65,105,225,255); /* Royal blue */ -} -Gui--StatefulLabel[state="solver_failed"] { - color : rgba(255,0,0,255); /* Red */ - font-weight: bold; -} -Gui--StatefulLabel[state="fully_constrained"] { - color : rgba(0,255,0,255); /* Green */ - font-weight: bold; -} -Gui--UrlLabel { - color : rgba(0,91,255,255); /* Deep sky blue */ - text-decoration : underline; -} - -/*================================================================================================== -Settings menu #groupsTreeView: -==================================================================================================*/ - -QTreeView::branch#groupsTreeView:closed:has-children:has-siblings { - border-image: none 0; - } - - QTreeView::branch#groupsTreeView:open:has-children:has-siblings { - border-image: none 0; - } - - QTreeView::branch#groupsTreeView:open:has-children:!has-siblings { - border-image: none 0; - } - - QTreeView::branch#groupsTreeView:has-children:!has-siblings:closed { - border-image: none 0; - } - - QTreeView::branch#groupsTreeView:has-siblings:!adjoins-item { - border-image: none 0; - } diff --git a/src/Gui/Stylesheets/Dark-modern.qss b/src/Gui/Stylesheets/Dark-modern.qss deleted file mode 100644 index bce7169a28..0000000000 --- a/src/Gui/Stylesheets/Dark-modern.qss +++ /dev/null @@ -1,2742 +0,0 @@ -/* -ABOUT -============================================================================================================ -Revised stylesheet based on the original from Pablo Gil Fernández made by MisterMaker - -KNOWN BUGS and TO DO -============================================================================================================ -Please, follow the link to get updated information: -https://forum.freecad.org/viewtopic.php?t=78431 - -INSTALLATION WHEN NECESSARY -============================================================================================================ -1) Place the .qss files and /images/ folder in the path that fits your OS: - OSX = /Users/[YOUR_USER_NAME]/Library/Preferences/FreeCAD/Gui/Stylesheets/ - WINDOWS = C:/[INSTALLATION_PATH]/FreeCAD/data/Gui/Stylesheets/ - LINUX = /home/[YOUR_USER_NAME]/.FreeCAD/Gui/Stylesheets/ - -============================================================================================================ -FOLLOWING CODES ARE CHANGED IN THE SETTINGS: - @ThemeAccentColor1 - @ThemeAccentColor2 -See Qt documentation: - - - https://doc.qt.io/qt-5/stylesheet.html - - https://doc.qt.io/qt-5/stylesheet-reference.html - - https://doc.qt.io/qt-5/stylesheet-examples.html - ---------------------------------------------------------------------------- */ - - -/* Reset elements ------------------------------------------------------------ - -Resetting everything helps to unify styles across different operating systems - ---------------------------------------------------------------------------- */ -* { - padding: 0px; - margin: 0px; - border: 0px; - border-style: none; - border-image: none; - outline: 0; -} - -/* specific reset for elements inside QToolBar */ -QToolBar * { - margin: 0px; - padding: 0px; -} - -/*hacks */ -Gui--PropertyEditor--PropertyEditor QLineEdit:read-only, -Gui--PropertyEditor--PropertyEditor QLineEdit:disabled, -Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:read-only, -Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:disabled { - color: transparent; - border-color: transparent; - background-color: transparent; - selection-color: transparent; - selection-background-color: transparent; - -} -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel, -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel:disabled { - color: transparent; - background-color: transparent; - border: none; - border-radius: 0px; - margin: 0px; - padding: 0px; -} - -Gui--PropertyEditor--PropertyEditor QSpinBox, -Gui--PropertyEditor--PropertyEditor QDoubleSpinBox, -Gui--PropertyEditor--PropertyEditor QAbstractSpinBox, -Gui--PropertyEditor--PropertyEditor QLineEdit, -Gui--PropertyEditor--PropertyEditor QComboBox { - margin-left: 0px; - margin-right: 0px; - padding-top: 0px; - padding-bottom: 0px; - -} - -/* fix for column items background when a link is present */ -Gui--PropertyEditor--PropertyEditor > QWidget > QFrame:focus { - background-color: @ThemeAccentColor1; /* same as focused background color */ -} - -/* hack to hide weird redundant information inside cells with links and no editable data (but editable via "..." button) */ -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel { - color: #ffffff; - background-color: #ACC8E5; /* same as focused background color */ -} - -/*================================================================================================== -Main window -==================================================================================================*/ -QMainWindow, -QDialog, -QDockWidget, -QToolBar { - background-color: #2b2b2b; /* main background color */ -} - -QMdiArea { - background-image: url(qss:images_dark-light/background_freecad_dark.svg); - background-position: center center; - background-repeat: no-repeat; -} -/*navgation src/Mod/Tux/NavigationIndicatorGui.py */ -Gui--NavigationIndicatorGui--BlenderNavigationStyle { -/*QAction#a4 {*/ - qproperty-icon: url(:/icons/icons/NavigationBlender_light.svg); -} -/*===== -/* QWidget ---------------------------------------------------------------- - ---------------------------------------------------------------------------- */ -QWidget { - background-color: #2b2b2b; - border: 0px solid #696968; - padding: 0px; - color: White; - selection-background-color: @ThemeAccentColor1; - selection-color: White; -} - -QWidget:disabled { - color: #c2c7cb; - selection-background-color: @ThemeAccentColor1; - selection-color: #c2c7cb; -} - -QWidget::item:selected { - background-color: @ThemeAccentColor1; -} - - /* Causes issue with colorselector. - QWidget::item:hover:!selected { - background-color: @ThemeAccentColor1; - }*/ - -/* QMainWindow ------------------------------------------------------------ - -This adjusts the splitter in the dock widget, not qsplitter -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmainwindow - ---------------------------------------------------------------------------- */ -QMainWindow::separator { - /*background-color: #3c3c3c;*/ - border: 0px solid #696968; - spacing: 0px; - padding: 1px; -} - -QMainWindow::separator:vertical:hover { - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0.2 transparent,stop:0.5 @ThemeAccentColor1, stop:0.8 transparent); - /*background-color: @ThemeAccentColor1;*/ - image: url(qss:images_dark-light/splitter_vertical_light.svg); -} - -QMainWindow::separator:horizontal:hover { - background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0.2 transparent,stop:0.5 @ThemeAccentColor1, stop:0.8 transparent); - /*background-color: @ThemeAccentColor1;*/ - image: url(qss:images_dark-light/splitter_horizontal_light.svg); -} - -QMainWindow::separator:horizontal { - width: 4px; - margin-top: 0.1px; - margin-bottom: 0.1px; - /* image: url(qss:images_dark-light/splitter_horizontal_dark.svg);*/ -} - -QMainWindow::separator:vertical { - height: 4px; - margin-left: 0.1px; - margin-right: 0.1px; - /* image: url(qss:images_dark-light/splitter_vertical_dark.svg);*/ -} - -/* QToolTip --------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtooltip - ---------------------------------------------------------------------------- */ -QToolTip { - background-color: #1c1b22; - color: White; - /* If you remove the border property, background stops working on Windows */ - border: none; - /* Remove padding, for fix combo box tooltip */ - padding: 0px; - /* Remove opacity, fix #174 - may need to use RGBA */ -} - -/* QStatusBar ------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qstatusbar - ---------------------------------------------------------------------------- */ -QStatusBar { - border: 0px solid #3c3c3c; - /* Fixes Spyder #9120, #9121 */ - background: #2b2b2b; - /* Fixes #205, white vertical borders separating items */ -} - -QStatusBar::item { - border: none; -} - -QStatusBar QToolTip { - color: #1e1e1e; - background-color: #7d7f81; - border: 1px solid #696968; - /* Remove padding, for fix combo box tooltip */ - padding: 0px; - /* Reducing transparency to read better */ - opacity: 230; -} - -QStatusBar QLabel { - /* Fixes Spyder #9120, #9121 */ - background: transparent; -} - -/* QCheckBox -------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcheckbox - ---------------------------------------------------------------------------- */ -QCheckBox { - color: white; - padding: 0px; - outline: none; - border: 1px solid transparent; - background-color: transparent; -} - -QCheckBox:focus { - border: 1px solid @ThemeAccentColor2; -} - -QCheckBox QWidget:disabled { - color: #c2c7cb; -} - -QCheckBox::indicator { - color: white; - background-color: #1c1b22; - width: 12px; - height: 12px; - image:url(qss:images_dark-light/checkbox_unchecked_light.svg); -} - -QCheckBox::indicator:unchecked { - background-color: #1c1b22; - image:url(qss:images_dark-light/checkbox_unchecked_light.svg); -} - -QCheckBox::indicator:unchecked:hover, QCheckBox::indicator:unchecked:focus, QCheckBox::indicator:unchecked:pressed { - background-color: @ThemeAccentColor1; - image:url(qss:images_dark-light/checkbox_unchecked_light.svg); -} - -QCheckBox::indicator:unchecked:disabled { - background-color: #2b2b2b; - image:url(qss:images_dark-light/checkbox_unchecked_disabled.svg); -} - -QCheckBox::indicator:checked { - background-color: #1c1b22; - /*border: 1px solid #696968; /* QRadioButton has the same color */ - image:url(qss:images_dark-light/checkbox_light.svg); -} - -QCheckBox::indicator:checked:hover, QCheckBox::indicator:checked:pressed { - background-color: @ThemeAccentColor1; -} - -QCheckBox::indicator:checked:disabled { - background-color: #2b2b2b; - image: url(qss:images_dark-light/checkbox_checked_disabled.svg); -} - -QCheckBox::indicator:indeterminate { - background-color: #1c1b22; - border: 1px solid #696968; - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); -} - -QCheckBox::indicator:indeterminate:disabled { - background-color: #2b2b2b; - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); -} - -QCheckBox::indicator:indeterminate:hover, QCheckBox::indicator:indeterminate:pressed { - background-color: @ThemeAccentColor1; /* QRadioButton has the same color */ -} - -/* QGroupBox -------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qgroupbox - ---------------------------------------------------------------------------- */ -QGroupBox { - font-weight: bold; - border: 1px solid #696968; - border-radius: 1.9px; - padding: 2px; - margin-top: 10px; - margin-bottom: 4px; -} - -QGroupBox::title { - subcontrol-origin: margin; - subcontrol-position: top left; - left: 4px; - padding-left: 2px; - padding-right: 4px; - padding-top: 6px; -} - -QGroupBox::indicator { - color: white; - background-color: #3c3c3c; - border: 1px solid #696968; - width: 12px; - height: 12px; - border-radius:1px; -} - -QGroupBox::indicator:unchecked { - background-color: #696968; - border: 1px solid #696968; - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); -} - -QGroupBox::indicator:unchecked:hover, QGroupBox::indicator:unchecked:focus, QGroupBox::indicator:unchecked:pressed { - background-color: @ThemeAccentColor1; -} - -QGroupBox::indicator:unchecked:disabled { - background-color: #1c1b22; - border: 1px solid #696968; -} - -QGroupBox::indicator:checked { - border: none; - image:url(qss:images_dark-light/checkbox_light.svg); -} - -QGroupBox::indicator:checked:hover, QGroupBox::indicator:checked:focus, QGroupBox::indicator:checked:pressed { - background-color: @ThemeAccentColor1; -} - -QGroupBox::indicator:checked:disabled { - background-color: @ThemeAccentColor1; -} - -/* QRadioButton ----------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qradiobutton - ---------------------------------------------------------------------------- */ -QRadioButton { - background-color: transparent; - color: White; - border: none; - spacing: 4px; - padding-top: 4px; - padding-bottom: 4px; - outline: none; -} - -QRadioButton:focus { - border: 1px solid @ThemeAccentColor2; -} - -QRadioButton:disabled { - background-color: #696968; - color: #353535; -} - -QRadioButton QWidget { - background-color: transparent; - color: White; - spacing: 0px; - padding: 0px; - outline: none; - border: none; -} - -QRadioButton::indicator { - background-color: #3c3c3c; - border: 1px solid #696968; - border-radius: 6px; - margin-left: 0px; - height: 11px; - width: 11px; -} - -QRadioButton::indicator:unchecked { - /*image:url(qss:images_dark-light/radiobutton_light.svg);*/ -} - -QRadioButton::indicator:unchecked:hover, QRadioButton::indicator:unchecked:pressed { - background-color: @ThemeAccentColor1; - border: 1px solid @ThemeAccentColor1; - border-radius: 6px; -} - -QRadioButton::indicator:unchecked:disabled { - /*image:url(qss:images_dark-light/radiobutton_dark.svg);*/ - border: 1px solid #696968; -} - -QRadioButton::indicator:checked { - image:url(qss:images_dark-light/radiobutton_light.svg); -} - -QRadioButton::indicator:checked:hover, QRadioButton::indicator:checked:pressed { - background-color: @ThemeAccentColor1; - border: 1px solid @ThemeAccentColor1; - border-radius: 6px; - image:url(qss:images_dark-light/radiobutton_light.svg); -} - -QRadioButton::indicator:checked:disabled { - outline: none; - background-color: #696968; - image:url(qss:images_dark-light/radiobutton_dark.svg); -} - -/* QMenuBar --------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenubar - ---------------------------------------------------------------------------- */ -QMenuBar { - background-color: #161616; - /*padding: 1px; - border: 0px solid rgba(0,0,0,140);*/ - color: White; - selection-background-color: @ThemeAccentColor1; -} - -QMenuBar:focus { - border: 1px solid @ThemeAccentColor2; -} - -QMenuBar::item { - background: transparent; - /*padding-left:5px; - padding-right: 5px; - padding-bottom: 1px; - padding-top: 1px;*/ -} - -QMenuBar::item:selected { - background: transparent; - border: 0px solid #696968; - background-color: @ThemeAccentColor1; -} - -QMenuBar::item:pressed { - /*padding: 2px; - padding-left: 10px; - padding-right: 10px;*/ - border: 0px solid #696968; - background-color: @ThemeAccentColor1; - color: White; - /*margin-bottom: 0px; - padding-bottom: 0px;*/ -} - -/* QMenu ------------------------------------------------------------------ - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenu - ---------------------------------------------------------------------------- */ -QMenu { - border-bottom: 2px rgba(0,0,0,140); - border-right: 2px rgba(0,0,0,140); - color: White; - margin: 0px; - background-color: #161616; - selection-background-color: @ThemeAccentColor1; -} - -QMenu::separator { - height: 2px; - background-color: #3c3c3c; - margin-left: 30%; - margin-right: 30%; -} - -QMenu::item { - background-color: transparent; - padding: 2px 2px; /* make room for icon at left */ - /* Reserve space for selection border */ - border: 0px transparent #696968; -} - -QMenu::item:selected { - color: White; - background-color: @ThemeAccentColor1; -} - -QMenu::item:pressed { - background-color: @ThemeAccentColor1; -} - -QMenu::icon { - margin-left: 5px; - width: 14px; - height: 14px; -} - -QMenu::indicator { - margin-left: 2px; - margin-right: 2px; - padding: 0px; - width: 12px; - height: 12px; - /* non-exclusive indicator = check box style indicator (see QActionGroup::setExclusive) */ - /* exclusive indicator = radio button style indicator (see QActionGroup::setExclusive) */ -} - -QMenu::icon:checked { /* appearance of a 'checked' icon */ - background: @ThemeAccentColor2; - margin-left: -5px; - border: 5px solid @ThemeAccentColor2; - position: absolute; - border-radius: 0px; -} -QMenu::indicator:non-exclusive:unchecked { - image: url(qss:images_dark-light/checkbox_unchecked_light.svg); -} - -QMenu::indicator:non-exclusive:unchecked:hover, QMenu::indicator:non-exclusive:unchecked:focus, QMenu::indicator:non-exclusive:unchecked:pressed { - border: none; - background: @ThemeAccentColor1; -} - -QMenu::indicator:non-exclusive:unchecked:disabled { - image: url(qss:images_dark-light/checkbox_unchecked_disabled.svg); -} - -QMenu::indicator:non-exclusive:checked { - image:url(qss:images_dark-light/checkbox_light.svg); -} - -QMenu::indicator:non-exclusive:checked:hover, QMenu::indicator:non-exclusive:checked:focus, QMenu::indicator:non-exclusive:checked:pressed { - border: none; - background: @ThemeAccentColor1; -} - -QMenu::indicator:non-exclusive:checked:disabled { - image:url(qss:images_dark-light/checkbox_checked_disabled.svg); -} - -QMenu::indicator:non-exclusive:indeterminate { - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); -} - -QMenu::indicator:non-exclusive:indeterminate:disabled { - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); -} - -QMenu::indicator:non-exclusive:indeterminate:focus, QMenu::indicator:non-exclusive:indeterminate:hover, QMenu::indicator:non-exclusive:indeterminate:pressed { - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); -} - -QMenu::indicator:exclusive:unchecked { - image: url(qss:images_dark-light/transparent.svg); -} - -QMenu::indicator:exclusive:unchecked:hover, QMenu::indicator:exclusive:unchecked:focus, QMenu::indicator:exclusive:unchecked:pressed { - border: none; - outline: none; - background: @ThemeAccentColor1; - image: url(qss:images_dark-light/checkbox_unchecked_light.svg); -} - -QMenu::indicator:exclusive:unchecked:disabled { - image: url(qss:images_dark-light/checkbox_unchecked_light.svg); -} - -QMenu::indicator:exclusive:checked { - border: none; - outline: none; - image: url(qss:images_dark-light/radiobutton_light.svg); -} - -QMenu::indicator:exclusive:checked:hover, QMenu::indicator:exclusive:checked:focus, QMenu::indicator:exclusive:checked:pressed { - border: none; - outline: none; - background: @ThemeAccentColor1; - image: url(qss:images_dark-light/checkbox_unchecked_light.svg); -} - -QMenu::indicator:exclusive:checked:disabled { - outline: none; - image: url(qss:images_dark-light/radiobutton_light.svg); -} - -QMenu::right-arrow { - margin: 5px; - padding-left: 12px; - image:url(qss:images_dark-light/right_arrow_lighter.svg); - height: 12px; - width: 12px; - background-color: transparent; -} - -/* QAbstractItemView ------------------------------------------------------ - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox - ---------------------------------------------------------------------------- */ -QAbstractItemView { - alternate-background-color: #5b5b5b; - color: White; - border: 1px solid #696968; - border-radius: 2px; -} - -QAbstractItemView QLineEdit { - padding: 2px; -} - -/* QAbstractScrollArea ---------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea - ---------------------------------------------------------------------------- */ -QAbstractScrollArea { - background-color: transparent; - border: 0px solid #696968; - border-radius: 0px; - /* fix #159 */ - padding: 0px; - /* remove min-height to fix #244 */ - color: White; -} - -QAbstractScrollArea:disabled { - color: #353535; -} - -/* QScrollArea ------------------------------------------------------------ - ---------------------------------------------------------------------------- -text input field disabled!!!!*/ -QScrollArea QWidget:disabled { - background-color: #2b2b2b; -} - -/* QScrollBar ------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qscrollbar - ---------------------------------------------------------------------------- */ -QScrollBar:horizontal { - height: 16px; - margin: 2px 16px 2px 16px; - border: 0px solid #696968; - border-radius: 1.9px; - background-color: #2b2b2b; -} - -QScrollBar:vertical { - background-color: #2b2b2b; - width: 16px; - margin: 16px 2px 16px 2px; - border: 0px solid #696968; - border-radius: 1.9px; -} - -QScrollBar::handle:horizontal { - background-color: #696969; - border: 1px solid #2b2b2b; - border-radius: 1.9px; - min-width: 8px; -} - -QScrollBar::handle:horizontal:hover { - background-color: @ThemeAccentColor1; - border: #696968; - border-radius: 1.9px; - min-width: 8px; -} - -QScrollBar::handle:horizontal:focus { - border: 1px solid @ThemeAccentColor2; -} - -QScrollBar::handle:vertical { - background-color: #696969; - border: 1px solid #696968; - min-height: 8px; - border-radius: 1.9px; -} - -QScrollBar::handle:vertical:hover { - background-color: @ThemeAccentColor1; - border: #696968; - border-radius: 1.9px; - min-height: 8px; -} - -QScrollBar::handle:vertical:focus { - border: 1px solid @ThemeAccentColor2; -} - -QScrollBar::add-line:horizontal { - border-image: url(qss:images_dark-light/right_arrow_light.svg); - height: 9px; - width: 5px; - subcontrol-position: right; - subcontrol-origin: margin; -} - -QScrollBar::add-line:horizontal:hover, QScrollBar::add-line:horizontal:on { - border-image: url(qss:images_dark-light/right_arrow_lighter.svg); - - height: 9px; - width: 5px; - subcontrol-position: right; - subcontrol-origin: margin; -} - -QScrollBar::add-line:vertical { - border-image: url(qss:images_dark-light/down_arrow_light.svg); - height: 5px; - width: 9px; - subcontrol-position: bottom; - subcontrol-origin: margin; -} - -QScrollBar::add-line:vertical:hover, QScrollBar::add-line:vertical:on { - border-image: url(qss:images_dark-light/down_arrow_lighter.svg); - height: 5px; - width: 9px; - subcontrol-position: bottom; - subcontrol-origin: margin; -} - -QScrollBar::sub-line:horizontal { - margin: 0px 0px 0px 0px; - border-image: url(qss:images_dark-light/left_arrow_light.svg); - height: 9px; - width: 5px; - subcontrol-position: left; - subcontrol-origin: margin; -} - -QScrollBar::sub-line:horizontal:hover, QScrollBar::sub-line:horizontal:on { - border-image: url(qss:images_dark-light/left_arrow_lighter.svg); - height: 9px; - width: 5px; - subcontrol-position: left; - subcontrol-origin: margin; -} - -QScrollBar::sub-line:vertical { - margin: 0px 0px 0px 0px; - border-image: url(qss:images_dark-light/up_arrow_light.svg); - height: 5px; - width: 9px; - subcontrol-position: top; - subcontrol-origin: margin; -} - -QScrollBar::sub-line:vertical:hover, QScrollBar::sub-line:vertical:on { - border-image: url(qss:images_dark-light/up_arrow_lighter.svg); - height: 5px; - width: 9px; - subcontrol-position: top; - subcontrol-origin: margin; -} - -QScrollBar::up-arrow:horizontal, QScrollBar::down-arrow:horizontal { - background: none; -} - -QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical { - background: none; -} - -QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal { - background: none; -} - -QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { - background: none; -} - -/* QTextEdit -------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-specific-widgets - - -report view ---------------------------------------------------------------------------- */ -QTextEdit { - background-color: #2b2b2b; - color: White; - border-radius: 1.9px; - border: 0px solid #696968; -} - -QTextEdit:focus { - border: 1px solid @ThemeAccentColor2; -} - -QTextEdit:selected { - background: #346792; - color: white; -} - -/* QPlainTextEdit --------------------------------------------------------- -Python ---------------------------------------------------------------------------- */ -QPlainTextEdit { - background-color: #3c3c3c; - color: White; - border-radius: 1.9px; - border: 0px solid #696968; -} - -QPlainTextEdit:focus { - border: 1px solid @ThemeAccentColor2; -} - -QPlainTextEdit:selected { - background: @ThemeAccentColor1; - color: White; -} - -/* QSizeGrip -------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsizegrip - ---------------------------------------------------------------------------- */ -QSizeGrip { - background: transparent; - width: 12px; - height: 12px; - image:url(qss:images_dark-light/sizegrip_light.svg); -} - -/* QStackedWidget --------------------------------------------------------- - ---------------------------------------------------------------------------- */ -QStackedWidget { - padding: 0px; - border: 0px solid #696968; -} - -/* QToolBar --------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbar - ---------------------------------------------------------------------------- */ -QToolBar { - background-color: #2b2b2b; - border-bottom: 0px solid rgba(0,0,0,120); - padding: 1px; - font-weight: bold; - spacing: 1px; -} - -QToolBar:disabled { - /* Fixes #272 */ - background-color: #2b2b2b; -} - -QToolBar::handle:horizontal { - width: 8px; - margin: 3px 3px; - background-position: top right; - background-repeat: repeat-y; - background-image: url(qss:images_dark-light/Hmovetoolbar_light.svg); -} - -QToolBar::handle:vertical { - height: 8px; - margin: 3px 3px; - background-position: left bottom; - background-repeat: repeat-x; - background-image: url(qss:images_dark-light/Vmovetoolbar_light.svg); -} - -QToolBar::separator:horizontal { - width: 2px; - margin: 4px 4px; - background-color: transparent; -} - -QToolBar::separator:vertical { - height: 2px; - margin: 4px 4px; - background-color: transparent; -} - -/*The "show more" button (it can also be stylable with "QToolBarExtension" icon is not working Qproperty works but breaks when you move the toolbar see also */ -QToolButton#qt_toolbar_ext_button { -margin: 0px; -padding: 0px; -background-color: #696969; -/*background-image: url(qss:images_dark-light/more_light.svg);*/ -background-repeat: none; -background-position: center center; -} - -QToolButton#qt_toolbar_ext_button:hover { -/*background-image: url(qss:images_dark-light/more_light.svg);*/ -background-color: @ThemeAccentColor1; -} - -QToolButton#qt_toolbar_ext_button:on { -/*background-image: url(qss:images_dark-light/more_light.svg);*/ -border-color: #696968; -background-color: @ThemeAccentColor1; -} - - -/* QAbstractSpinBox ------------------------------------------------------- - ---------------------------------------------------------------------------- */ -QAbstractSpinBox, -QSpinBox { - background-color: #1c1b22; - border: 1px solid transparent; - color: White; - /* This fixes 103, 111 */ - /* padding-top: 0px; - /* This fixes 103, 111 */ - /*padding-bottom: 0px; - /*padding-left: 4px; - /*padding-right: 4px; - border-radius: 1.9px;*/ - min-height: 1.7em; - /* min-width: 5px; removed to fix 109 */ -} - -QAbstractSpinBox:up-button { - background-color: #696968; - subcontrol-origin: border; - subcontrol-position: top right; - border-left: 1px solid transparent; - border-bottom: 1px solid #1c1b22; - border-top-left-radius: 0; - border-bottom-left-radius: 0; - /*margin: 1px;*/ - /*width: 12px; - /*margin-bottom: -1px;*/ -} - -QAbstractSpinBox::up-arrow, QAbstractSpinBox::up-arrow:disabled, QAbstractSpinBox::up-arrow:off { - image: url(qss:images_dark-light/up_arrow_disabled_light.svg); - /* height: 8px; - width: 8px;*/ -} - -QAbstractSpinBox::up-arrow:hover { - /*background-color: @ThemeAccentColor1;*/ - image: url(qss:images_dark-light/up_arrow_lighter.svg); -} - -QAbstractSpinBox:down-button { - background-color: #696968; - subcontrol-origin: border; - subcontrol-position: bottom right; - border-left: 1px solid #696968; - border-top: 1px solid #696968; - border-top-left-radius: 0; - border-bottom-left-radius: 0; - /*margin: 1px;*/ - /*width: 12px; - /*margin-top: -1px;*/ -} - -QAbstractSpinBox::down-arrow, QAbstractSpinBox::down-arrow:disabled, QAbstractSpinBox::down-arrow:off { - image: url(qss:images_dark-light/down_arrow_disabled_light.svg); - /*height: 8px; - width: 8px;*/ -} - -QAbstractSpinBox::down-arrow:hover { - image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -QAbstractSpinBox:hover { - /*border: 1px solid @ThemeAccentColor1; - color: White;*/ -} - -QAbstractSpinBox:focus { - border: 1px solid @ThemeAccentColor2; -} - -QAbstractSpinBox:selected { - background: @ThemeAccentColor2; - /*color: White;*/ -} - -/* ------------------------------------------------------------------------ */ -/* DISPLAYS --------------------------------------------------------------- */ -/* ------------------------------------------------------------------------ */ -/* QLabel ----------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe - ---------------------------------------------------------------------------- */ -QLabel { - background-color: transparent; - border: 0px solid #696968; - padding: 2px; - margin: 0px; - color: White; -} - -QLabel:disabled { - background-color: transparent; - border: 0px solid #696968; - color: #c2c7cb; -} - -QLabel[haslink="true"] { - color: orange; -} - - -/* QTextBrowser ----------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea - ---------------------------------------------------------------------------- */ -QTextBrowser { - background-color: #1c1b22; - border: 1px solid #696968; - color: White; - border-radius: 1.9px; -} - -QTextBrowser:disabled { - background-color: #2b2b2b; - border: 1px solid #696968; - color: #c2c7cb; - border-radius: 1.9px; -} - -QTextBrowser:hover, QTextBrowser:!hover, QTextBrowser:selected, QTextBrowser:pressed { - border: 1px solid @ThemeAccentColor1; -} - -/* QGraphicsView ---------------------------------------------------------- - ---------------------------------------------------------------------------- */ -QGraphicsView { - background-color: transparent; - border: 0px solid @ThemeAccentColor1; - color: White; - border-radius: 0px; -} - -QGraphicsView:disabled { - background-color: #1c1b22; - border: 0px solid #696968; - color: #c2c7cb; - border-radius: 0px; -} - -QGraphicsView:hover, QGraphicsView:!hover, QGraphicsView:selected, QGraphicsView:pressed { - border: 0px solid #ff00f7; -} - -/* QCalendarWidget -------------------------------------------------------- - ---------------------------------------------------------------------------- */ -QCalendarWidget { - border: 1px solid #696968; - border-radius: 1.9px; -} - -QCalendarWidget:disabled { - background-color: #353535; - color: #c2c7cb; -} - -/* QLCDNumber ------------------------------------------------------------- - ---------------------------------------------------------------------------- */ -QLCDNumber { - background-color: #1aff00; - color: White; -} - -QLCDNumber:disabled { - background-color: #2b2b2b; - color: #c2c7cb; -} - -/* QProgressBar ----------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qprogressbar - ---------------------------------------------------------------------------- */ -QProgressBar { - background-color: #c2c7cb; - border: 1px solid #696968; - color: White; - border-radius: 1.9px; - text-align: center; -} - -QProgressBar:disabled { - background-color: #161616; - border: 1px solid #696968; - color: #696969; - border-radius: 1.9px; - text-align: center; -} - -QProgressBar::chunk { - background-color: @ThemeAccentColor1; - color: #2b2b2b; - border-radius: 1.9px; -} - -QProgressBar::chunk:disabled { - background-color: #161616; - color: #696968; - border-radius: 1.9px; -} - -/* ------------------------------------------------------------------------ */ -/* BUTTONS ---------------------------------------------------------------- */ -/* ------------------------------------------------------------------------ */ -/* QPushButton ------------------------------------------------------------ - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qpushbutton - ---------------------------------------------------------------------------- */ -QPushButton { - background-color: #696969; - color: White; - border-radius: 2px; - padding: 2px; - outline: none; - border: none; -} - -QPushButton:disabled { - background-color: #2b2b2b; - color: #c2c7cb; - border-radius: 2px; - padding: 2px; -} - -QPushButton:checked { - background-color: @ThemeAccentColor1; - border-radius: 2px; - padding: 2px; - outline: none; -} - -QPushButton:checked:disabled { - background-color: @ThemeAccentColor1; - color: #3c3c3c; - border-radius: 2px; - padding: 2px; - outline: none; -} - -QPushButton:checked:selected { - background: @ThemeAccentColor1; -} - -QPushButton:hover { - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); - color: White; -} - -QPushButton:pressed { - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); -} - -QPushButton:selected { - background: @ThemeAccentColor2; - color: White; -} - -QPushButton::menu-indicator { - subcontrol-origin: padding; - subcontrol-position: bottom right; - bottom: 4px; -} - -QDialogButtonBox QPushButton { - /* Issue # 194 # 248 - Special case of QPushButton inside dialogs, for better UI */ - min-width: 80px; -} - -/* QToolButton ------------------------------------------------------------ - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbutton - ---------------------------------------------------------------------------- */ -QToolButton { - background-color: transparent; - color: White; - border-radius: 1px; - padding: 0px; - outline: none; - border: none; - /* The subcontrols below are used only in the DelayedPopup mode */ - /* The subcontrols below are used only in the MenuButtonPopup mode */ - /* The subcontrol below is used only in the InstantPopup or DelayedPopup mode */ -} - -QToolButton:disabled { - background-color: rgba(0, 0, 0, 0.065); - color: transparent; - border-radius: 1px; - padding: 0px; - opacity: 1.0; -} - -QToolButton:checked { - background-color: @ThemeAccentColor1; - border-radius: 1.9px; - padding: 0px; - outline: none; -} - -QToolButton:checked:disabled { - background-color: #b65555; - color: #c2c7cb; - border-radius: 1.9px; - padding: 0px; - outline: none; -} - -QToolButton:checked:hover { - background-color: @ThemeAccentColor1; - color: White; -} - -QToolButton:checked:pressed { - background-color: @ThemeAccentColor1; -} - -QToolButton:checked:selected { - background: @ThemeAccentColor2; - color: White; -} - -QToolButton:hover { - background-color: @ThemeAccentColor1; - color: White; -} - -QToolButton:pressed { - background-color: @ThemeAccentColor2; -} - -QToolButton:selected { - background: @ThemeAccentColor1; - color: White; -} - -QToolButton[popupMode="0"] { - /* Only for DelayedPopup */ - padding-right: 20px; -} - -QToolButton[popupMode="1"] { - /* Only for MenuButtonPopup */ - padding-right: 20px; -} -QToolButton[popupMode="0"]::menu-button { - border: none; -} - -QToolButton[popupMode="0"]::menu-button:hover { - border: none; - border-left: 2px solid #fe0000; - border-radius: 0px; -} -QToolButton[popupMode="1"]::menu-button { - border: none; -} - -QToolButton[popupMode="1"]::menu-button:hover { - border: none; - border-left: 2px solid #e5ff00; - border-radius: 0px; -} - -QToolButton[popupMode="2"] { - /* Only for InstantPopup */ - padding-right: 20px; -} - -QToolButton::menu-button { - border-bottom: 0px solid #ffffff; - border-radius: 2px; - /* 16px width + 4px for border = 20px allocated above */ - width: 1.6ex; - padding: 2px; - border-radius: 2px; - border: 0px #000000; -} - -QToolButton::menu-button:hover { - /* background: rgba(0, 0, 0, 0.5);*/ - -} - -QToolButton::menu-button:checked:hover { - /* background: rgba(0, 0, 0, 0.5);*/ -} - -QToolButton::menu-indicator { - /* Exclude a shift for better image */ - subcontrol-position: right bottom; - /* Shift it a bit */ -} - -QToolButton::menu-arrow { - image: url(qss:images_dark-light/more_arrow_light.svg); - width: 1.5ex; - height: 1.5ex; - subcontrol-position: right bottom; - background: transparent; -} -QToolButton::menu-arrow:open { - subcontrol-position: right bottom; - image: url(qss:images_dark-light/more_arrow_light.svg); - width: 1.7ex; - height: 1.7ex; -} -QToolButton::menu-arrow:hover { - image: url(qss:images_dark-light/more_arrow_light.svg); - width: 1.7ex; - height: 1.7ex; -} - -/* QCommandLinkButton ----------------------------------------------------- - ---------------------------------------------------------------------------- */ -QCommandLinkButton { - background-color: transparent; - border: 1px solid #696968; - color: White; - border-radius: 1.9px; - padding: 0px; - margin: 0px; -} - -QCommandLinkButton:disabled { - background-color: transparent; - color: #c2c7cb; -} - -/* ------------------------------------------------------------------------ */ -/* INPUTS - NO FIELDS ----------------------------------------------------- */ -/* ------------------------------------------------------------------------ */ -/* QComboBox -------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox - ---------------------------------------------------------------------------- */ -QComboBox { - border: 1px solid transparent; - background: #1c1b22; - border-radius: 2px; - selection-background-color: @ThemeAccentColor1; - padding-left: 2px; - padding-right: 2px; - /* padding-right = 36; 4 + 16*2 See scrollbar size */ - /* changed to 4px to fix #239 */ - /* Fixes #103, #111 */ - min-height: 1.5em; - /* padding-top: 2px; removed to fix #132 */ - /* padding-bottom: 2px; removed to fix #132 */ - /* min-width: 75px; removed to fix #109 */ - /* Needed to remove indicator - fix #132 */ -} -QComboBox:editable { - background: #1c1b22; -} -QComboBox QAbstractItemView { - border: 0px solid #696968; - border-radius: 0px; - background-color: #1c1b22; - selection-background-color: @ThemeAccentColor1; -} - -QComboBox QAbstractItemView:hover { - background-color:Black; - color: White; -} - -QComboBox QAbstractItemView:selected { - background: @ThemeAccentColor1; - color: White; -} - -QComboBox QAbstractItemView:alternate { - background: #3c3c3c; -} - -QComboBox:checked { - color: #ffffff; -} - -QComboBox:disabled { - background-color: #2b2b2b; - color: #353535; -} - -QComboBox:hover { - /*background-color: @ThemeAccentColor1;*/ - border: 1px solid @ThemeAccentColor1; -} - -QComboBox:focus { - border: 1px solid @ThemeAccentColor2; -} - -QComboBox:on { - selection-background-color: @ThemeAccentColor2; -} - -QComboBox::indicator { - padding-left: 8px; - background-color: transparent; -} - -QComboBox::indicator:checked { - width: 12px; - height: 12px; - image: url(qss:images_dark-light/check_light.svg); -} - -QComboBox::item { - /* Remove to fix #282, #285 and MR #288*/ - /*&:checked { - font-weight: bold; - } - - &:selected { - border: 0px solid transparent; - } - */ -} -/* Background color of popup-list.*/ - -/* Needed to complete the rule set. */ -QComboBox::item:alternate { - background: #3c3c3c; -} -/* Color of the selected list item. */ -QComboBox::item:selected { - border: 1px solid @ThemeAccentColor2; - background: @ThemeAccentColor2; -} - -QComboBox::drop-down { - subcontrol-origin: padding; - background-color: #696969; - subcontrol-position: top right; - width: 14px; - border-left: 1px solid #696968; -} -QComboBox::drop-down:hover { - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); -} - -QComboBox::down-arrow { - image: url(qss:images_dark-light/down_arrow_disabled_light.svg); - height: 10px; - width: 10px; -} - -QComboBox::down-arrow:on, QComboBox::down-arrow:hover, QComboBox::down-arrow:focus { - image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - - -/*================================================================================================== -Tasks panel (custom FreeCAD class) -==================================================================================================*/ -Gui--PropertyEditor--PropertyEditor { - qproperty-groupTextColor: white; - qproperty-groupBackground: #3c3c3c; - border: 0px solid #696968; - -} - -/* Action group */ -QFrame[class="panel"] { -background-color: transparent; /* temporal (transparent background) */ - -} - -QSint--ActionGroup { -padding: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ -margin: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ -} - -/* Separator line */ -QSint--ActionGroup QFrame[height="1"], -QSint--ActionGroup QFrame[height="2"], -QSint--ActionGroup QFrame[height="3"], -QSint--ActionGroup QFrame[width="1"], -QSint--ActionGroup QFrame[width="2"], -QSint--ActionGroup QFrame[width="3"] { -border-color: rgba(0,0,0,60); -} - -/* Panel header */ -QSint--ActionGroup QFrame[class="header"] { -border-top: 1px solid #696968; -border-left: 1px solid #696968; -border-right: 1px solid #696968; -background-color: #696969; /* Task Panel Header background color */ -border-top-left-radius: 3px; -border-top-right-radius: 3px; -border-bottom-left-radius: 0px; -border-bottom-right-radius: 0px; -margin: 0px; -padding: 0px; -} - -QSint--ActionGroup QFrame[class="header"]:hover { -background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); -} - -QSint--ActionGroup QToolButton[class="header"] { -color: white; /* Task Panel Header text color */ -text-align: left; -font-weight: bold; -border: none; -margin: 0px; -padding: 0px; -} - -QSint--ActionGroup QFrame[class="header"] QLabel { -background-color: transparent; -background-image: url(qss:images_dark-light/down_arrow_light.svg); -background-repeat: none; -background-position: center center; -padding: 0px; -margin: 0px; -} - -QSint--ActionGroup QFrame[class="header"] QLabel:hover { -background-color: transparent; -background-image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"] { -background-color: transparent; -background-image: url(qss:images_dark-light/up_arrow_light.svg); -background-repeat: none; -background-position: center center; -padding: 0px; -margin: 0px; -} - -QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"]:hover { -background-color: transparent; -background-image: url(qss:images_dark-light/up_arrow_lighter.svg); -} - -QSint--ActionGroup QFrame[class="content"] { -background-color: transparent; /* Task Panel background color */ -margin: 0px; -padding: 0px; -border-bottom: 1px solid #696968; -border-left: 1px solid #696968; -border-right: 1px solid #696968; -border-top-left-radius: 0px; -border-top-right-radius: 0px; -border-bottom-left-radius: 3px; -border-bottom-right-radius: 3px; -} - -QSint--ActionGroup QFrame[class="content"] > QWidget { -background-color: #2b2b2b; /* Task Panel background color */ -} - -/* Fixs for tabs inside Task Panel */ -QSint--ActionGroup QFrame[class="content"] QTabBar::tab:top:selected { -border-bottom-color: @ThemeAccentColor1; /* same as Task Panel background color */ -} - -QSint--ActionGroup QFrame[class="content"] QTabBar::tab:bottom:selected { -border-top-color: @ThemeAccentColor1; /* same as Task Panel background color */ -} - -QSint--ActionGroup QFrame[class="content"] QTabBar::tab:right:selected { -border-right-color: @ThemeAccentColor1; /* same as Task Panel background color */ -} - -QSint--ActionGroup QFrame[class="content"] QTabBar::tab:left:selected { -border-left-color: @ThemeAccentColor1; /* same as Task Panel background color */ -} - -/* Fix for buttons with icons that showed cropped (still not happy with result) */ -QSint--ActionGroup QFrame[class="content"] > QWidget > QPushButton { -padding: 2px; /* bigger padding crops text and icons... */ -margin: 0px; -} - -/* Fix for lists inside task panels */ /* sketcher constraints list */ -QSint--ActionGroup QFrame[class="content"] QTreeView, -QSint--ActionGroup QFrame[class="content"] QListView, -QSint--ActionGroup QFrame[class="content"] QTableView { -color: white; -background-color: black; -} - - -/* found inside Part Design Workbench and "make a draft on a face" Task panel options */ -QSint--ActionGroup QFrame[class="content"] QToolButton { - color: white; - text-align: center; - background-color: #696969; - border: 0px solid #adadad; - padding: 1px 1px; /* different than regular QPushButton */ - margin: 0px; /* different than regular QPushButton */ - min-height: 16px; /* same as QTabBar QPushButton min-width */ - border-radius: 1px; -} - -QSint--ActionGroup QFrame[class="content"] QToolButton:hover{ - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); - -} -QSint--ActionGroup QFrame[class="content"] QToolButton:focus { - border: 1px solid @ThemeAccentColor2; -} - -QSint--ActionGroup QFrame[class="content"] QToolButton:disabled, -QSint--ActionGroup QFrame[class="content"] QToolButton:disabled:checked { - color: #696969; - background-color: #1c1b22; -} - -QSint--ActionGroup QFrame[class="content"] QToolButton:pressed { - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); - -} - -/* QSlider ---------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qslider - ---------------------------------------------------------------------------- */ -QSlider:disabled { - background: #2b2b2b; -} - -QSlider:focus { - /*border: 1px solid @ThemeAccentColor2;*/ -} - -QSlider::groove:horizontal { - background: #2b2b2b; - border: 1px solid #696968; - height: 4px; - margin: 0px; - border-radius: 1.9px; -} - -QSlider::groove:vertical { - background: @ThemeAccentColor1; - border: 1px solid #696968; - width: 4px; - margin: 0px; - border-radius: 1.9px; -} - -QSlider::add-page:vertical { - background: @ThemeAccentColor1; - border: 1px solid #696968; - width: 4px; - margin: 0px; - border-radius: 1.9px; -} - -QSlider::add-page:vertical :disabled { - background: #696968; -} - -QSlider::sub-page:horizontal { - background: @ThemeAccentColor1; - border: 1px solid #696968; - height: 4px; - margin: 0px; - border-radius: 1.9px; -} - -QSlider::sub-page:horizontal:disabled { - background: @ThemeAccentColor1; -} - -QSlider::handle:horizontal { - background: #696968; - border: 1px solid #696968; - width: 10px; - height: 8px; - margin: -4px 0px; - border-radius: 6px; -} - -QSlider::handle:horizontal:hover { - background: @ThemeAccentColor1; - border: 1px solid #696968; -} - -QSlider::handle:horizontal:focus { - background: @ThemeAccentColor2; - border: 1px solid @ThemeAccentColor2; -} - -QSlider::handle:vertical { - background: #696968; - border: 1px solid #696968; - width: 10px; - height: 8px; - margin: 0px -4px; - border-radius: 6px; -} - -QSlider::handle:vertical:hover { - background: @ThemeAccentColor1; - border: 1px solid #696968; -} - -QSlider::handle:vertical:focus { - border: 1px solid @ThemeAccentColor2; -} - -/* QLineEdit -------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlineedit - ---------------------------------------------------------------------------- */ -QLineEdit { - background-color: #1c1b22; - padding-top: 2px; - /* This QLineEdit fix 103, 111 */ - padding-bottom: 2px; - /* This QLineEdit fix 103, 111 */ - padding-left: 4px; - padding-right: 4px; - border-style: solid; - border: 1px solid #696968; - border-radius: 2px; - color: White; -} - -QLineEdit:disabled { - background-color: #2b2b2b; - color: #c2c7cb; -} - -QLineEdit:hover { - border: 1px solid @ThemeAccentColor1; - color: White; -} - -QLineEdit:focus { - border: 2px solid @ThemeAccentColor2; -} - -QLineEdit:selected { - background-color: @ThemeAccentColor1; - color: white; -} - -/* QTabWiget -------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar - ---------------------------------------------------------------------------- */ -QTabWidget { - padding: 2px; - selection-background-color: @ThemeAccentColor1; -} - -QTabWidget QWidget { - /* Fixes #189 */ - border-radius: 0px; -} - -QTabWidget::pane { - border: 0px solid #8c00ffa1; - border-radius: 1.9px; - margin: 0px; - /* Fixes double border inside pane with pyqt5 */ - padding: 0px; - background-color: #2b2b2b; -} - -QTabWidget::pane:selected { - background-color: @ThemeAccentColor1; - border: 1px solid #346792; -} -/* QTabBar ---------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar - ---------------------------------------------------------------------------- */ -QTabBar, QDockWidget QTabBar { - qproperty-drawBase: 0; - border-radius: 2px; - margin: 0px; - padding: 2px; - border: 0; - alignment: center; - /* left: 5px; move to the right by 5px - removed for fix */ -} - -QTabBar::close-button, QDockWidget QTabBar::close-button { - border: 0; - margin: 0; - padding: 1px; - image: url(qss:images_dark-light/close_light.svg); -} - -QTabBar::close-button:hover, QDockWidget QTabBar::close-button:hover { - image: url(qss:images_dark-light/close_red.svg); - /*background-color: rgba(255, 0, 0, 0.3);*/ -} - -QTabBar::close-button:pressed, QDockWidget QTabBar::close-button:pressed { - image: url(qss:images_dark-light/close_.svg); -} - -QTabBar::tab, QDockWidget QTabBar::tab { - /* !selected and disabled ----------------------------------------- */ - /* selected ------------------------------------------------------- */ -} - -QTabBar::tab:top:selected:disabled, QDockWidget QTabBar::tab:top:selected:disabled { - border-bottom: 3px solid #696969; - color: #515151; - background-color: #696969; -} - -QTabBar::tab:bottom:selected:disabled, QDockWidget QTabBar::tab:bottom:selected:disabled { - border-top: 3px solid #696969; - color: #515151; - background-color: #696969; -} - -QTabBar::tab:left:selected:disabled, QDockWidget QTabBar::tab:left:selected:disabled { - border-right: 3px solid #696969; - color: #515151; - background-color: #696969; -} - -QTabBar::tab:right:selected:disabled, QDockWidget QTabBar::tab:right:selected:disabled { - border-left: 3px solid #696969; - color: #515151; - background-color: #696969; -} - -QTabBar::tab:top:!selected:disabled, QDockWidget QTabBar::tab:top:!selected:disabled { - border-bottom: 3px solid #696969; - color: #515151; - background-color: #696969; -} - -QTabBar::tab:bottom:!selected:disabled, QDockWidget QTabBar::tab:bottom:!selected:disabled { - border-top: 3px solid #696969; - color: #515151; - background-color: #696969; -} - -QTabBar::tab:left:!selected:disabled, QDockWidget QTabBar::tab:left:!selected:disabled { - border-right: 3px solid #696969; - color: #515151; - background-color: #696969; -} - -QTabBar::tab:right:!selected:disabled, QDockWidget QTabBar::tab:right:!selected:disabled { - border-left: 3px solid #696969; - color: #515151; - background-color: #696969; -} - -QTabBar::tab:top:!selected, QDockWidget QTabBar::tab:top:!selected { - border-bottom: 2px solid #696969; - margin-top: 2px; -} - -QTabBar::tab:bottom:!selected, QDockWidget QTabBar::tab:bottom:!selected { - border-top: 2px solid #696969; - margin-bottom: 2px; -} - -QTabBar::tab:left:!selected, QDockWidget QTabBar::tab:left:!selected { - border-left: 2px solid #696969; - margin-right: 2px; -} - -QTabBar::tab:right:!selected, QDockWidget QTabBar::tab:right:!selected { - border-right: 2px solid #696969; - margin-left: 2px; -} - -QTabBar::tab:top, QDockWidget QTabBar::tab:top { - background-color: #2b2b2b; - margin-left: 3px; - padding-left: 4px; - padding-right: 4px; - padding-top: 2px; - padding-bottom: 2px; - min-width: 5px; - border: 1px solid #696969; - border-radius: 4px; -} - -QTabBar::tab:top:selected, QDockWidget QTabBar::tab:top:selected { - background-color: #696969; - /*border: 1px solid @ThemeAccentColor2; - border-radius: 4px; - margin-left: 4px; - margin-right: 4px; - padding-left: 3px; - padding-right: 3px;*/ -} - -QTabBar::tab:top:!selected:hover, QDockWidget QTabBar::tab:top:!selected:hover { - /*border: 1px solid @ThemeAccentColor1;*/ - border: 0px solid @ThemeAccentColor1; - background-color: @ThemeAccentColor1; - /* Fixes spyder-ide/spyder#9766 and #243 */ - padding-left: 3px; - padding-right: 3px; -} - -QTabBar::tab:bottom, QDockWidget QTabBar::tab:bottom { - border: 1px solid #696969; - background-color: #2b2b2b; - margin-left: 3px; - padding-left: 4px; - padding-right: 4px; - padding-top: 2px; - padding-bottom: 2px; - border-radius: 4px; - min-width: 5px; -} - -QTabBar::tab:bottom:selected, QDockWidget QTabBar::tab:bottom:selected { - background-color: #696969; - /*border: 1px solid @ThemeAccentColor2; - border-radius: 4px; - margin-left: 4px; - margin-right: 4px; - padding-left: 3px; - padding-right: 3px;*/ -} - -QTabBar::tab:bottom:!selected:hover, QDockWidget QTabBar::tab:bottom:!selected:hover { -/*border: 1px solid @ThemeAccentColor1;*/ - border: 0px solid @ThemeAccentColor1; - background-color: @ThemeAccentColor1; - /* Fixes spyder-ide/spyder#9766 and #243 */ - padding-left: 3px; - padding-right: 3px; -} - -QTabBar::tab:left, QDockWidget QTabBar::tab:left { - background-color: #2b2b2b; - margin-top: 2px; - padding-left: 2px; - padding-right: 2px; - padding-top: 4px; - padding-bottom: 4px; - border-radius: 4px; - min-height: 5px; -} - -QTabBar::tab:left:selected, QDockWidget QTabBar::tab:left:selected { - background-color: #2b2b2b; - border: 0px solid @ThemeAccentColor2; -} - -QTabBar::tab:left:!selected:hover, QDockWidget QTabBar::tab:left:!selected:hover { - border: 0px solid @ThemeAccentColor1; - background-color: @ThemeAccentColor1; - /* Fixes different behavior #271 */ - margin-right: 0px; - padding-right: -1px; -} - -QTabBar::tab:right, QDockWidget QTabBar::tab:right { - background-color: #2b2b2b; - margin-top: 2px; - padding-left: 2px; - padding-right: 2px; - padding-top: 4px; - padding-bottom: 4px; - min-height: 5px; - border: 10px; -} - -QTabBar::tab:right:selected, QDockWidget QTabBar::tab:right:selected { - background-color: #2b2b2b; - border: 0px solid @ThemeAccentColor2; -} - -QTabBar::tab:right:!selected:hover, QDockWidget QTabBar::tab:right:!selected:hover { - border: 0px solid @ThemeAccentColor1; - background-color: @ThemeAccentColor1; - /* Fixes different behavior #271 */ - margin-left: 0px; - padding-left: 0px; -} - -QTabBar QToolButton, QDockWidget QTabBar QToolButton { - /* Fixes #136 */ - background-color: #2b2b2b; - height: 12px; - width: 12px; -} - -QTabBar QToolButton:pressed, QDockWidget QTabBar QToolButton:pressed { - border: 0px solid @ThemeAccentColor1; - background-color: @ThemeAccentColor1; -} - -QTabBar QToolButton:pressed:hover, QDockWidget QTabBar QToolButton:pressed:hover { - border: 0px solid @ThemeAccentColor1; - background-color: @ThemeAccentColor1; -} - -QTabBar QToolButton::left-arrow:enabled, QDockWidget QTabBar QToolButton::left-arrow:enabled { - image: url(qss:images_dark-light/left_arrow_lighter.svg); -} - -QTabBar QToolButton::left-arrow:disabled, QDockWidget QTabBar QToolButton::left-arrow:disabled { - image: url(qss:images_dark-light/left_arrow_disabled_light.svg); -} - -QTabBar QToolButton::right-arrow:enabled, QDockWidget QTabBar QToolButton::right-arrow:enabled { - image: url(qss:images_dark-light/right_arrow_lighter.svg); -} - -QTabBar QToolButton::right-arrow:disabled, QDockWidget QTabBar QToolButton::right-arrow:disabled { - image: url(qss:images_dark-light/right_arrow_disabled_light.svg); -} - -/* QDockWiget ------------------------------------------------------------- - ---------------------------------------------------------------------------- */ -QDockWidget { - background-color: #2b2b2b; - border: 1px solid #696968; - border-radius: 1.9px; - titlebar-close-icon: url(qss:images_dark-light/transparent.svg); - titlebar-normal-icon: url(qss:images_dark-light/transparent.svg); -} - -QDockWidget::title { - /* Better size for title bar */ - padding: 3px; - spacing: 4px; - border: none; - background-color: #2b2b2b; - text-align: center; - font-weight: bold; -} - -QDockWidget::close-button { - icon-size: 10px; - border: none; - background: transparent; - background-image: transparent; - border: 0; - margin: 0; - padding: 0; - image: url(qss:images_dark-light/close_light.svg); -} - -QDockWidget::close-button:hover { - image: url(qss:images_dark-light/close_red.svg); -} - -QDockWidget::close-button:pressed { - image: url(qss:images_dark-light/close_light.svg); -} - -QDockWidget::float-button { - icon-size: 12px; - border: none; - background: transparent; - background-image: transparent; - border: 0; - margin: 0; - padding: 0; - image: url(qss:images_dark-light/undock_light.svg); -} - -QDockWidget::float-button:hover { - /*background-color: @ThemeAccentColor1;*/ - image: url(qss:images_dark-light/undock_blue.svg); -} - -QDockWidget::float-button:pressed { - image: url(qss:images_dark-light/undock_light.svg); -} - -/* QTreeView QListView QTableView ----------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtreeview -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlistview -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtableview - ---------------------------------------------------------------------------- */ -QTreeView::branch { - background: transparent; -} - -QTreeView::branch:has-siblings:!adjoins-item { - border-image: url(qss:images_dark-light/branch_vline_light.svg) 0; -} - -QTreeView::branch:has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_more_light.svg) 0; -} - -QTreeView::branch:!has-children:!has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_end_light.svg) 0; -} - -QTreeView::branch:closed:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_closed_light.svg) 0; -} - -QTreeView::branch:has-children:!has-siblings:closed { - border-image: url(qss:images_dark-light/branch_end_closed_light.svg) 0; -} - -QTreeView::branch:open:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_open_light.svg) 0; -} - -QTreeView::branch:open:has-children:!has-siblings { - border-image: url(qss:images_dark-light/branch_end_open_light.svg) 0; -} - -QTreeView::indicator:checked, -QListView::indicator:checked, -QTableView::indicator:checked, -QColumnView::indicator:checked { - image: url(qss:images_dark-light/checkbox_light.svg); -} - -QTreeView::indicator:checked:hover, QTreeView::indicator:checked:focus, QTreeView::indicator:checked:pressed, -QListView::indicator:checked:hover, -QListView::indicator:checked:focus, -QListView::indicator:checked:pressed, -QTableView::indicator:checked:hover, -QTableView::indicator:checked:focus, -QTableView::indicator:checked:pressed, -QColumnView::indicator:checked:hover, -QColumnView::indicator:checked:focus, -QColumnView::indicator:checked:pressed { - image: url(qss:images_dark-light/checkbox_light_hover.svg); -} - -QTreeView::indicator:unchecked, -QListView::indicator:unchecked, -QTableView::indicator:unchecked, -QColumnView::indicator:unchecked { - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); -} - -QTreeView::indicator:unchecked:hover, QTreeView::indicator:unchecked:focus, QTreeView::indicator:unchecked:pressed, -QListView::indicator:unchecked:hover, -QListView::indicator:unchecked:focus, -QListView::indicator:unchecked:pressed, -QTableView::indicator:unchecked:hover, -QTableView::indicator:unchecked:focus, -QTableView::indicator:unchecked:pressed, -QColumnView::indicator:unchecked:hover, -QColumnView::indicator:unchecked:focus, -QColumnView::indicator:unchecked:pressed { - image: url(qss:images_dark-light/checkbox_unchecked_hover_light.svg); -} - -QTreeView::indicator:indeterminate, -QListView::indicator:indeterminate, -QTableView::indicator:indeterminate, -QColumnView::indicator:indeterminate { - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); -} - -QTreeView::indicator:indeterminate:hover, QTreeView::indicator:indeterminate:focus, QTreeView::indicator:indeterminate:pressed, -QListView::indicator:indeterminate:hover, -QListView::indicator:indeterminate:focus, -QListView::indicator:indeterminate:pressed, -QTableView::indicator:indeterminate:hover, -QTableView::indicator:indeterminate:focus, -QTableView::indicator:indeterminate:pressed, -QColumnView::indicator:indeterminate:hover, -QColumnView::indicator:indeterminate:focus, -QColumnView::indicator:indeterminate:pressed { - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); -} - -QTreeView, -QListView, -QTableView, -QColumnView { - background-color: #2b2b2b; /* background of a lot of stuff including spreadsheets.*/ - border: 0px solid #696968; - color: White; - gridline-color: #696968; - border-radius: 0px; -} - -QTableView, -QListView { - background-color: rgba(31, 31, 31, 0.85); /* background of a lot of stuff including spreadsheets.*/ -} - - -QTreeView:disabled, -QListView:disabled, -QTableView:disabled, -QColumnView:disabled { - background-color: #1c1b22; - color: #c2c7cb; -} - -QTreeView:selected, -QListView:selected, -QTableView:selected, -QColumnView:selected { - background-color: @ThemeAccentColor1; - color: White; -} - -QTreeView:focus, -QListView:focus, -QTableView:focus, -QColumnView:focus { - border: 1px solid @ThemeAccentColor2; -} - -QTreeView::item:pressed, -QListView::item:pressed, -QTableView::item:pressed, -QColumnView::item:pressed { - background-color: @ThemeAccentColor1; -} - -QTreeView::item:selected:active, -QListView::item:selected:active, -QTableView::item:selected:active, -QColumnView::item:selected:active { - background-color: @ThemeAccentColor1; -} - -QTreeView::item:selected:!active, -QListView::item:selected:!active, -QTableView::item:selected:!active, -QColumnView::item:selected:!active { - color: White; - background-color: @ThemeAccentColor1; -} - -QTreeView::item:!selected:hover, -QListView::item:!selected:hover, -QTableView::item:!selected:hover, -QColumnView::item:!selected:hover { - outline: 0; - color: White; - background-color: @ThemeAccentColor1; -} - -QTableCornerButton::section { - background-color: #2b2b2b; - border: 1px transparent #696968; - border-radius: 0px; -} - -QTableView::item { - color: white; -} -QTableView { - /*qproperty-AliasedCellBackgroundColor: #f700ff;*/ - /*qproperty-aliasBgColor: #f700ff;*/ -} - -/* QHeaderView ------------------------------------------------------------ - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qheaderview - ---------------------------------------------------------------------------- */ -QHeaderView { - background-color: #2b2b2b; - border: 1px solid #696968; - padding: 0; - margin: 0; - border-radius: 0px; - text-align: center; -} - -QHeaderView:disabled { - background-color: #2b2b2b; - border: 1px solid #696968; - color: rgb(174, 174, 174); -} - -QHeaderView::section { - background-color: #3c3c3c; - color: White; - border-radius: 0px; - font-size: 13px; - font-weight: bold; - text-align: center; -} - -QHeaderView::section::horizontal { - padding-top: 0; - padding-bottom: 0; - padding-left: 10px; - padding-right: 10px; - border-left: 1px solid #696968; -} - -QHeaderView::section::horizontal::first, QHeaderView::section::horizontal::only-one { - border-left: 1px solid #696968; - padding-left: 15px; -} - -QHeaderView::section::horizontal:disabled { - color: #353535; -} - -QHeaderView::section::vertical { - padding-top: 0; - padding-bottom: 0; - padding-left: 1px; - padding-right: 1px; - border-top: 1px solid #696968; -} - -QHeaderView::section::vertical::first, QHeaderView::section::vertical::only-one { - border-top: 1px solid #696968; -} - -QHeaderView::section::vertical:disabled { - color: #7a7a7a; -} - -QHeaderView::down-arrow { - /* Those settings (border/width/height/background-color) solve bug */ - /* transparent arrow background and size */ - background-color: #696969; - border: none; - height: 12px; - width: 12px; - padding-left: 2px; - padding-right: 2px; - image: url(qss:images_dark-light/down_arrow_light.svg); -} - -QHeaderView::up-arrow { - background-color: #696969; - border: none; - height: 12px; - width: 12px; - padding-left: 2px; - padding-right: 2px; - image: url(qss:images_dark-light/up_arrow_light.svg); -} - -/* QToolBox -------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbox -used in PATH - ---------------------------------------------------------------------------- */ -QToolBox { - padding: 0px; - border: 1px solid #696969; - border-radius: 4px; - background-color: transparent; -} - -QToolBox:selected { - padding: 0px; - border: 0px solid @ThemeAccentColor1; -} - -QToolBox::tab { - background-color: #696969; - border: 0px solid #696969; - color: white; - background-image: url(qss:images_dark-light/down_arrow_lighter.svg); - background-repeat: none; - background-position: center left; -} - -QToolBox::tab:disabled { - color: #696969; -} - -QToolBox::tab:selected { - background-color: #696969; - background-image: url(qss:images_dark-light/transparent.svg); - padding-right: 5px; - background-repeat: none; -} - -QToolBox::tab:selected:disabled { - background-color: #696969; - border-bottom: 0px solid #cccccc; - color: white; -} - -QToolBox::tab:!selected { - -} - -QToolBox::tab:!selected:disabled { - background-color: #2b2b2b; -} - -QToolBox::tab:hover { - background-color: @ThemeAccentColor1; - } - -QToolBox QScrollArea QWidget QWidget { - padding: 0px; - border: 0px; - background-color: transparent; -} - -/* QFrame ----------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe -https://doc.qt.io/qt-5/qframe.html#-prop -https://doc.qt.io/qt-5/qframe.html#details -https://stackoverflow.com/questions/14581498/qt-stylesheet-for-hline-vline-color - ---------------------------------------------------------------------------- */ -/* (dot) .QFrame fix #141, #126, #123 */ -.QFrame { - border-radius: 0px; - border: 0px solid #696968; - background-color: #696969; - /* No frame */ - /* HLine */ - /* HLine */ -} - -.QFrame[frameShape="0"] { - border-radius: 1.9px; - border: 1px solid #696968; -} - -.QFrame[frameShape="4"] { - max-height: 1px; - border: none; - background-color: #696968; -} - -.QFrame[frameShape="5"] { - max-width: 1px; - border: none; - background-color: #2b2b2b; -} - -/* QSplitter -------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsplitter - ----------------------------------------------------------------------------*/ -QSplitterHandle:hover { /* to fix bug about hovering on splitters https://bugreports.qt.io/browse/QTBUG-13768 */ - -} - -QSplitter::handle { - margin: 0px 0px; - padding: 0px; -} - -QSplitter::handle:horizontal { - background-image: none; - background-position: center center; - background-repeat: none; - margin: 2px 2px 2px 2px; - width: 1px; -} - -QSplitter::handle:vertical { - background-image: none; - background-position: center center; - background-repeat: none; - margin: 2px 2px 2px 2px; - height: 1px; -} -QSplitter::handle:vertical:hover { - background-image: url(qss:images_dark-light/splitter_horizontal_light.svg); - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0.2 transparent,stop:0.5 @ThemeAccentColor1, stop:0.8 transparent); - background-position: center center; - background-repeat: none; - } - -QSplitter::handle:vertical:hover { - background-image: url(qss:images_dark-light/splitter_horizontal_light.svg); - background-position: center center; - background-repeat: none; - background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0.2 transparent,stop:0.5 @ThemeAccentColor1, stop:0.8 transparent); -} - -/* QDateEdit, QDateTimeEdit ----------------------------------------------- - ---------------------------------------------------------------------------- */ -QDateEdit, QDateTimeEdit { - selection-background-color: @ThemeAccentColor1; - border-style: solid; - border: 1px solid #696968; - border-radius: 1.9px; - /* This fixes 103, 111 */ - padding-top: 2px; - /* This fixes 103, 111 */ - padding-bottom: 2px; - padding-left: 4px; - padding-right: 4px; - min-width: 10px; -} - -QDateEdit:on, QDateTimeEdit:on { - selection-background-color: @ThemeAccentColor1; -} - -QDateEdit::drop-down, QDateTimeEdit::drop-down { - subcontrol-origin: padding; - subcontrol-position: top right; - width: 12px; - border-left: 1px solid #696968; -} - -QDateEdit::down-arrow, QDateTimeEdit::down-arrow { - image: url(qss:images_dark-light/down_arrow_disabled_light.svg); - height: 8px; - width: 8px; -} - -QDateEdit::down-arrow:on, QDateEdit::down-arrow:hover, QDateEdit::down-arrow:focus, QDateTimeEdit::down-arrow:on, QDateTimeEdit::down-arrow:hover, QDateTimeEdit::down-arrow:focus { - image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -QDateEdit QAbstractItemView, QDateTimeEdit QAbstractItemView { - background-color: #2b2b2b; - border-radius: 2px; - border: 1px solid #696968; - selection-background-color: @ThemeAccentColor1; -} - -/* QAbstractView ---------------------------------------------------------- - ---------------------------------------------------------------------------- */ -QAbstractView:hover { - border: 1px solid @ThemeAccentColor1; - color: White; -} - -QAbstractView:selected { - background: @ThemeAccentColor1; - color: White; -} - -/* PlotWidget ------------------------------------------------------------- - ---------------------------------------------------------------------------- */ -PlotWidget { - /* Fix cut labels in plots #134 */ - padding: 0px; -} - -/*================================================================================================== -SKETCHER -==================================================================================================*/ - -Gui--StatefulLabel[state="empty_sketch"] { - color : rgba(255,255,255,127); /* 50% opacity white */ -} -Gui--StatefulLabel[state="under_constrained"] { - color : rgba(255,255,255,255); /* White */ -} -Gui--StatefulLabel[state="conflicting_constraints"] { - color : rgba(255,0,0,255); /* Red */ -} -Gui--StatefulLabel[state="malformed_constraints"] { - color : rgba(255,0,0,255); /* Red */ -} -Gui--StatefulLabel[state="redundant_constraints"] { - color : rgba(255,69,0,255); /* Orange red */ -} -Gui--StatefulLabel[state="partially_redundant_constraints"] { - color : rgba(65,105,225,255); /* Royal blue */ -} -Gui--StatefulLabel[state="solver_failed"] { - color : rgba(255,0,0,255); /* Red */ - font-weight: bold; -} -Gui--StatefulLabel[state="fully_constrained"] { - color : rgba(0,255,0,255); /* Green */ - font-weight: bold; -} -Gui--UrlLabel { - color : rgba(0,91,255,255); /* Deep sky blue */ - text-decoration : underline; -} - -Gui--NotificationLabel { - background-color: #444444; - border: 1px solid #696968; - border-radius: 2px; -} - -Gui--OverlayToolButton:!hover{ - background-color: transparent; - border: 0px solid transparent; - image: url(qss:overlay/close_light.svg); -} - -Gui--OverlayToolButton:hover { - - image: url(qss:overlay/close_red.svg); -} - -Gui--OverlayToolButton[objectName="OBTN Transparent"]:!checked { - image: url(qss:overlay/transparent_light.svg); -} - -Gui--OverlayToolButton[objectName="OBTN Transparent"]:hover { - image: url(qss:overlay/transparent_lighter.svg); -} - -Gui--OverlayToolButton[objectName="OBTN Transparent"]:checked { - image: url(qss:overlay/transparent_lighter.svg); -} - -Gui--OverlayToolButton[objectName="OBTN Overlay"]:!checked{ - image: url(qss:overlay/overlay_light.svg); -} - -Gui--OverlayToolButton[objectName="OBTN Overlay"]:hover { - image: url(qss:overlay/overlay_lighter.svg); -} - -Gui--OverlayToolButton[objectName="OBTN Overlay"]:checked { - image: url(qss:overlay/overlay_lighter.svg); -} - -Gui--OverlayToolButton[objectName="OBTN AutoMode"]:!checked { - image: url(qss:overlay/mode_light.svg); -} - -Gui--OverlayToolButton[objectName="OBTN AutoMode"]:hover { - image: url(qss:overlay/mode_lighter.svg); -} - -Gui--OverlayToolButton[objectName="OBTN AutoMode"]:checked { - image: url(qss:overlay/mode_lighter.svg); -} - -Gui--OverlayToolButton[objectName="OBTN Float"]:!checked { - image: url(qss:overlay/float_light.svg); -} - -Gui--OverlayToolButton[objectName="OBTN Float"]:hover { - image: url(qss:overlay/float_lighter.svg); -} - -Gui--OverlayToolButton[objectName="OBTN Float"]:checked { - image: url(qss:overlay/float_lighter.svg); -} - -/*================================================================================================== -Forming windows below are the border settings. See also https://forum.freecad.org/viewtopic.php?p=439797#p439797 -==================================================================================================*/ -QMdiSubWindow { - border:2px solid #333333; - border-radius: 2px; - border-top-right-radius: 7px; - border-top-left-radius: 7px; - background-color: #333333; -} - -QMdiSubWindow:hover { - border:2px solid #696968; -} - -QMdiSubWindow:active { - border:2px solid @ThemeAccentColor1; -} - -/*================================================================================================== -Settings menu #groupsTreeView: -==================================================================================================*/ - -QTreeView::branch#groupsTreeView:closed:has-children:has-siblings { - border-image: none 0; -} - -QTreeView::branch#groupsTreeView:open:has-children:has-siblings { - border-image: none 0; -} - -QTreeView::branch#groupsTreeView:open:has-children:!has-siblings { - border-image: none 0; -} - -QTreeView::branch#groupsTreeView:has-children:!has-siblings:closed { - border-image: none 0; -} - -QTreeView::branch#groupsTreeView:has-siblings:!adjoins-item { - border-image: none 0; -} diff --git a/src/Gui/Stylesheets/Dark.qss b/src/Gui/Stylesheets/Light theme.qss similarity index 66% rename from src/Gui/Stylesheets/Dark.qss rename to src/Gui/Stylesheets/Light theme.qss index 640270b305..fe807e71ba 100644 --- a/src/Gui/Stylesheets/Dark.qss +++ b/src/Gui/Stylesheets/Light theme.qss @@ -19,6 +19,7 @@ INSTALLATION WHEN NECESSARY FOLLOWING CODES ARE CHANGED IN THE SETTINGS: @ThemeAccentColor1 @ThemeAccentColor2 + @ThemeAccentColor3 See Qt documentation: - https://doc.qt.io/qt-5/stylesheet.html @@ -90,7 +91,7 @@ Gui--PropertyEditor--PropertyEditor > QWidget > QFrame:focus { /* hack to hide weird redundant information inside cells with links and no editable data (but editable via "..." button) */ Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel { - color: #ffffff; + color: #000000; background-color: #ACC8E5; /* same as focused background color */ } @@ -101,46 +102,42 @@ QMainWindow, QDialog, QDockWidget, QToolBar { - background-color: #7F7F7F; /* main background color */ + background-color: #f0f0f0; /* main background color */ } QMdiArea { - background-image: url(qss:images_dark-light/background_freecad_dark.svg); + /* background-image: url(qss:images_classic/background_freecad_light.png); background-position: center center; - background-repeat: no-repeat; + background-repeat: no-repeat; */ } /*navgation src/Mod/Tux/NavigationIndicatorGui.py */ Gui--NavigationIndicatorGui--BlenderNavigationStyle { /*QAction#a4 {*/ - qproperty-icon: url(:/icons/icons/NavigationBlender_light.svg); + qproperty-icon: url(:/icons/icons/NavigationBlender_dark.svg); } -/*===== + /* QWidget ---------------------------------------------------------------- --------------------------------------------------------------------------- */ QWidget { - background-color: #7F7F7F; - border: 0px solid #696968; + /* background-color: #d8d8d8; */ + border: 0px solid #ababab; padding: 0px; - color: White; - selection-background-color: @ThemeAccentColor1; - selection-color: White; + /* color: black; */ + selection-background-color: transparent; + selection-color: black; } QWidget:disabled { - color: #c2c7cb; + color: #adadad; selection-background-color: @ThemeAccentColor1; - selection-color: #c2c7cb; + selection-color: #cccccc; } QWidget::item:selected { background-color: @ThemeAccentColor1; } - /* Causes issue with colorselector. - QWidget::item:hover:!selected { - background-color: @ThemeAccentColor1; - }*/ /* QMainWindow ------------------------------------------------------------ @@ -149,36 +146,29 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmainwindow --------------------------------------------------------------------------- */ QMainWindow::separator { - /*background-color: #3c3c3c;*/ - border: 0px solid #696968; + border: 0px solid #ababab; spacing: 0px; padding: 1px; } QMainWindow::separator:vertical:hover { - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0.2 transparent,stop:0.5 @ThemeAccentColor1, stop:0.8 transparent); - /*background-color: @ThemeAccentColor1;*/ - image: url(qss:images_dark-light/splitter_vertical_light.svg); + image: url(qss:images_classic/splitter_vertical-lightgray.png); } QMainWindow::separator:horizontal:hover { - background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0.2 transparent,stop:0.5 @ThemeAccentColor1, stop:0.8 transparent); - /*background-color: @ThemeAccentColor1;*/ - image: url(qss:images_dark-light/splitter_horizontal_light.svg); + image: url(qss:images_classic/splitter_horizontal-lightgray.png); } QMainWindow::separator:horizontal { width: 4px; margin-top: 0.1px; margin-bottom: 0.1px; - /* image: url(qss:images_dark-light/splitter_horizontal_dark.svg);*/ } QMainWindow::separator:vertical { height: 4px; margin-left: 0.1px; margin-right: 0.1px; - /* image: url(qss:images_dark-light/splitter_vertical_dark.svg);*/ } /* QToolTip --------------------------------------------------------------- @@ -187,13 +177,21 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtooltip --------------------------------------------------------------------------- */ QToolTip { - background-color: #505050; - color: White; + background-color: #FFFFE1; + color: black; /* If you remove the border property, background stops working on Windows */ border: none; + font-weight:bolder; + border-top-width: 0.5px; + border-left-width: 0.5px; + border-right-width: 1.5px; + border-bottom-width: 1.5px; + border-style: solid; + border-color: #e6e6e6; /* Remove padding, for fix combo box tooltip */ padding: 0px; /* Remove opacity, fix #174 - may need to use RGBA */ + /* border-radius: 4px; */ } /* QStatusBar ------------------------------------------------------------- @@ -202,9 +200,9 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qstatusbar --------------------------------------------------------------------------- */ QStatusBar { - border: 0px solid #3c3c3c; + border: 0px solid #ededed; /* Fixes Spyder #9120, #9121 */ - background: #7F7F7F; + background: #f0f0f0; /* Fixes #205, white vertical borders separating items */ } @@ -213,9 +211,9 @@ QStatusBar::item { } QStatusBar QToolTip { - color: #1e1e1e; - background-color: #7d7f81; - border: 1px solid #696968; + background-color: #f0f0f0; + border: 1px solid #ababab; + color: #000000; /* Remove padding, for fix combo box tooltip */ padding: 0px; /* Reducing transparency to read better */ @@ -233,7 +231,7 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcheckbox --------------------------------------------------------------------------- */ QCheckBox { - color: white; + color: black; padding: 0px; outline: none; border: 1px solid transparent; @@ -241,40 +239,39 @@ QCheckBox { } QCheckBox:focus { - border: 1px solid @ThemeAccentColor2; + border: 0.5px solid @ThemeAccentColor2; } QCheckBox QWidget:disabled { - color: #c2c7cb; + color: #adadad; } QCheckBox::indicator { - color: white; - background-color: #505050; + color: black; + background-color: #f0f0f0; width: 12px; height: 12px; - image:url(qss:images_dark-light/checkbox_unchecked_light.svg); + image:url(qss:images_classic/checkbox-Empty-black.png); } QCheckBox::indicator:unchecked { - background-color: #505050; - image:url(qss:images_dark-light/checkbox_unchecked_light.svg); + background-color: #fdfdfd; + image:url(qss:images_classic/checkbox-Empty-black.png); } QCheckBox::indicator:unchecked:hover, QCheckBox::indicator:unchecked:focus, QCheckBox::indicator:unchecked:pressed { background-color: @ThemeAccentColor1; - image:url(qss:images_dark-light/checkbox_unchecked_light.svg); + image:url(qss:images_classic/checkbox-Empty-black.png); } QCheckBox::indicator:unchecked:disabled { - background-color: #7F7F7F; - image:url(qss:images_dark-light/checkbox_unchecked_disabled.svg); + background-color: #d8d8d8; + image:url(qss:images_classic/checkbox-Empty-lightgray.png); } QCheckBox::indicator:checked { - background-color: #505050; - /*border: 1px solid #696968; /* QRadioButton has the same color */ - image:url(qss:images_dark-light/checkbox_light.svg); + background-color: #f0f0f0; + image:url(qss:images_classic/checkbox-checked-black.png); } QCheckBox::indicator:checked:hover, QCheckBox::indicator:checked:pressed { @@ -282,19 +279,19 @@ QCheckBox::indicator:checked:hover, QCheckBox::indicator:checked:pressed { } QCheckBox::indicator:checked:disabled { - background-color: #7F7F7F; - image: url(qss:images_dark-light/checkbox_checked_disabled.svg); + background-color: #d8d8d8; + image: url(qss:images_classic/checkbox-checked-lightgray.png); } QCheckBox::indicator:indeterminate { - background-color: #505050; - border: 1px solid #696968; - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); + background-color: #f0f0f0; + border: 1px solid #ababab; + image: url(qss:images_classic/checkbox-indeterminate-black.png); } QCheckBox::indicator:indeterminate:disabled { - background-color: #7F7F7F; - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); + background-color: #d8d8d8; + image: url(qss:images_classic/checkbox-indeterminate-black.png); } QCheckBox::indicator:indeterminate:hover, QCheckBox::indicator:indeterminate:pressed { @@ -307,36 +304,30 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qgroupbox --------------------------------------------------------------------------- */ QGroupBox { - font-weight: bold; - border: 1px solid #696968; - border-radius: 1.9px; - padding: 2px; - margin-top: 10px; - margin-bottom: 4px; + background-color: #ededed; + border: 1px solid #d8d8d8; + border-radius: 2px; + margin-top: 3ex; /* leave space at the top for the title */ } QGroupBox::title { - subcontrol-origin: margin; - subcontrol-position: top left; - left: 4px; - padding-left: 2px; - padding-right: 4px; - padding-top: 6px; + top: -18px; + left: 0px; } QGroupBox::indicator { - color: white; - background-color: #3c3c3c; - border: 1px solid #696968; + color: black; + background-color: #ededed; + border: 1px solid #ababab; width: 12px; height: 12px; border-radius:1px; } QGroupBox::indicator:unchecked { - background-color: #696968; - border: 1px solid #696968; - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); + background-color: #ababab; + border: 1px solid #ababab; + image: url(qss:images_classic/checkbox-indeterminate-black.png); } QGroupBox::indicator:unchecked:hover, QGroupBox::indicator:unchecked:focus, QGroupBox::indicator:unchecked:pressed { @@ -344,13 +335,13 @@ QGroupBox::indicator:unchecked:hover, QGroupBox::indicator:unchecked:focus, QGro } QGroupBox::indicator:unchecked:disabled { - background-color: #505050; - border: 1px solid #696968; + background-color: #d8d8d8; + border: 1px solid #ababab; } QGroupBox::indicator:checked { border: none; - image:url(qss:images_dark-light/checkbox_light.svg); + image:url(qss:images_classic/checkbox-checked-black.png); } QGroupBox::indicator:checked:hover, QGroupBox::indicator:checked:focus, QGroupBox::indicator:checked:pressed { @@ -368,7 +359,7 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qradiobutton --------------------------------------------------------------------------- */ QRadioButton { background-color: transparent; - color: White; + color: black; border: none; spacing: 4px; padding-top: 4px; @@ -377,17 +368,16 @@ QRadioButton { } QRadioButton:focus { - border: 1px solid @ThemeAccentColor2; + border: 0.5px solid @ThemeAccentColor2; } QRadioButton:disabled { - background-color: #696968; - color: #353535; + background-color: #d8d8d8; } QRadioButton QWidget { background-color: transparent; - color: White; + color: black; spacing: 0px; padding: 0px; outline: none; @@ -395,44 +385,36 @@ QRadioButton QWidget { } QRadioButton::indicator { - background-color: #3c3c3c; - border: 1px solid #696968; - border-radius: 6px; - margin-left: 0px; - height: 11px; - width: 11px; + height: 13px; + width: 13px; + border-image:url(qss:images_classic/Radio-unchecked-black.png); } QRadioButton::indicator:unchecked { - /*image:url(qss:images_dark-light/radiobutton_light.svg);*/ } QRadioButton::indicator:unchecked:hover, QRadioButton::indicator:unchecked:pressed { - background-color: @ThemeAccentColor1; - border: 1px solid @ThemeAccentColor1; - border-radius: 6px; + } QRadioButton::indicator:unchecked:disabled { - /*image:url(qss:images_dark-light/radiobutton_dark.svg);*/ - border: 1px solid #696968; + border: 1px solid #d8d8d8; } QRadioButton::indicator:checked { - image:url(qss:images_dark-light/radiobutton_light.svg); + height: 13px; + width: 13px; + border-image:url(qss:images_classic/Radio-checked-black.png); } QRadioButton::indicator:checked:hover, QRadioButton::indicator:checked:pressed { - background-color: @ThemeAccentColor1; - border: 1px solid @ThemeAccentColor1; - border-radius: 6px; - image:url(qss:images_dark-light/radiobutton_light.svg); + } QRadioButton::indicator:checked:disabled { outline: none; - background-color: #696968; - image:url(qss:images_dark-light/radiobutton_dark.svg); + background-color: #d8d8d8; + image:url(qss:images_classic/Radio-checked-lightgray.png); } /* QMenuBar --------------------------------------------------------------- @@ -441,40 +423,29 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenubar --------------------------------------------------------------------------- */ QMenuBar { - background-color: #505050; - /*padding: 1px; - border: 0px solid rgba(0,0,0,140);*/ - color: White; + background-color: #f0f0f0; + color: black; selection-background-color: @ThemeAccentColor1; } QMenuBar:focus { - border: 1px solid @ThemeAccentColor2; + border: 0.5px solid @ThemeAccentColor2; } QMenuBar::item { background: transparent; - /*padding-left:5px; - padding-right: 5px; - padding-bottom: 1px; - padding-top: 1px;*/ } QMenuBar::item:selected { background: transparent; - border: 0px solid #696968; + border: 0px solid #ababab; background-color: @ThemeAccentColor1; } QMenuBar::item:pressed { - /*padding: 2px; - padding-left: 10px; - padding-right: 10px;*/ - border: 0px solid #696968; + border: 0px solid #ababab; background-color: @ThemeAccentColor1; - color: White; - /*margin-bottom: 0px; - padding-bottom: 0px;*/ + color: black; } /* QMenu ------------------------------------------------------------------ @@ -485,28 +456,31 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenu QMenu { border-bottom: 2px rgba(0,0,0,140); border-right: 2px rgba(0,0,0,140); - color: White; + color: black; margin: 0px; - background-color: #505050; + background-color: #f0f0f0; selection-background-color: @ThemeAccentColor1; } QMenu::separator { height: 2px; - background-color: #3c3c3c; - margin-left: 30%; - margin-right: 30%; + background-color: #ededed; + margin-left: 10%; + margin-right: 10%; } QMenu::item { background-color: transparent; - padding: 2px 2px; /* make room for icon at left */ + padding-left: 5px; + padding-top: 4px; + padding-bottom: 4px; + padding-right: 50px; /* Reserve space for selection border */ - border: 0px transparent #696968; + border: 0px transparent #ababab; } QMenu::item:selected { - color: White; + color: black; background-color: @ThemeAccentColor1; } @@ -538,7 +512,7 @@ QMenu::icon:checked { /* appearance of a 'checked' icon */ border-radius: 0px; } QMenu::indicator:non-exclusive:unchecked { - image: url(qss:images_dark-light/checkbox_unchecked_light.svg); + image: url(qss:images_classic/checkbox-Empty-black.png); } QMenu::indicator:non-exclusive:unchecked:hover, QMenu::indicator:non-exclusive:unchecked:focus, QMenu::indicator:non-exclusive:unchecked:pressed { @@ -547,11 +521,11 @@ QMenu::indicator:non-exclusive:unchecked:hover, QMenu::indicator:non-exclusive:u } QMenu::indicator:non-exclusive:unchecked:disabled { - image: url(qss:images_dark-light/checkbox_unchecked_disabled.svg); + image: url(qss:images_classic/checkbox-Empty-lightgray.png); } QMenu::indicator:non-exclusive:checked { - image:url(qss:images_dark-light/checkbox_light.svg); + image:url(qss:images_classic/checkbox-checked-black.png); } QMenu::indicator:non-exclusive:checked:hover, QMenu::indicator:non-exclusive:checked:focus, QMenu::indicator:non-exclusive:checked:pressed { @@ -560,60 +534,60 @@ QMenu::indicator:non-exclusive:checked:hover, QMenu::indicator:non-exclusive:che } QMenu::indicator:non-exclusive:checked:disabled { -image:url(qss:images_dark-light/checkbox_checked_disabled.svg); +image:url(qss:images_classic/checkbox-checked-lightgray.png); } QMenu::indicator:non-exclusive:indeterminate { - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); + image: url(qss:images_classic/checkbox-indeterminate-black.png); } QMenu::indicator:non-exclusive:indeterminate:disabled { - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); + image: url(qss:images_classic/checkbox-indeterminate-black.png); } QMenu::indicator:non-exclusive:indeterminate:focus, QMenu::indicator:non-exclusive:indeterminate:hover, QMenu::indicator:non-exclusive:indeterminate:pressed { - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); + image: url(qss:images_classic/checkbox-indeterminate-black.png); } QMenu::indicator:exclusive:unchecked { - image: url(qss:images_dark-light/transparent.svg); + image: url(qss:images_classic/transparent.png); } QMenu::indicator:exclusive:unchecked:hover, QMenu::indicator:exclusive:unchecked:focus, QMenu::indicator:exclusive:unchecked:pressed { border: none; outline: none; background: @ThemeAccentColor1; - image: url(qss:images_dark-light/checkbox_unchecked_light.svg); + image: url(qss:images_classic/checkbox-Empty-black.png); } QMenu::indicator:exclusive:unchecked:disabled { - image: url(qss:images_dark-light/checkbox_unchecked_light.svg); + image: url(qss:images_classic/checkbox-Empty-black.png); } QMenu::indicator:exclusive:checked { border: none; outline: none; - image: url(qss:images_dark-light/radiobutton_light.svg); + image: url(qss:images_classic/Radio-checked-black.png); } QMenu::indicator:exclusive:checked:hover, QMenu::indicator:exclusive:checked:focus, QMenu::indicator:exclusive:checked:pressed { border: none; outline: none; background: @ThemeAccentColor1; - image: url(qss:images_dark-light/checkbox_unchecked_light.svg); + image: url(qss:images_classic/checkbox-Empty-black.png); } QMenu::indicator:exclusive:checked:disabled { outline: none; - image: url(qss:images_dark-light/radiobutton_light.svg); + image: url(qss:images_classic/Radio-checked-black.png); } QMenu::right-arrow { margin: 5px; padding-left: 12px; - image:url(qss:images_dark-light/right_arrow_lighter.svg); - height: 12px; - width: 12px; + image:url(qss:images_classic/Arrow-right-black.png); + height: 8px; + width: 8px; background-color: transparent; } @@ -623,9 +597,9 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox --------------------------------------------------------------------------- */ QAbstractItemView { - alternate-background-color: #5b5b5b; - color: White; - border: 1px solid #696968; + alternate-background-color: #ababab; + color: black; + border: 1px solid #ababab; border-radius: 2px; } @@ -640,16 +614,16 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea --------------------------------------------------------------------------- */ QAbstractScrollArea { background-color: transparent; - border: 0px solid #696968; + border: 0px solid #ababab; border-radius: 0px; /* fix #159 */ padding: 0px; /* remove min-height to fix #244 */ - color: White; + color: black; } QAbstractScrollArea:disabled { - color: #353535; + color: #adadad; } /* QScrollArea ------------------------------------------------------------ @@ -657,7 +631,7 @@ QAbstractScrollArea:disabled { --------------------------------------------------------------------------- text input field disabled!!!!*/ QScrollArea QWidget:disabled { - background-color: #7F7F7F; + background-color: transparent } /* QScrollBar ------------------------------------------------------------- @@ -665,141 +639,128 @@ QScrollArea QWidget:disabled { https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qscrollbar --------------------------------------------------------------------------- */ + QScrollBar:horizontal { - height: 16px; - margin: 2px 8px 2px 8px; - border: 0px solid #696968; - border-radius: 4px; - background-color: #7F7F7F; + height: 14px; + border-right: 14px solid qlineargradient(x1:0, y1:0, x2:1, y2:0, stop:0 #ababab, stop:0.1 #f9f9f9, stop:0.9 #fafafa, stop:1 #ababab); + border-left: 14px solid qlineargradient(x1:1, y1:0, x2:0, y2:0, stop:0 #ababab, stop:0.1 #f9f9f9, stop:0.9 #fafafa, stop:1 #ababab); + border-top: 0.5px solid #ababab; + border-bottom: 0.5px solid #ababab; + background-color: #e6e6e6; } QScrollBar:vertical { - background-color: #7F7F7F; - width: 16px; - margin: 8px 2px 8px 2px; - border: 0px solid #696968; - border-radius: 4px; + background-color: #222222; + width: 14px; + border-top: 14px solid qlineargradient(x1:0, y1:1, x2:0, y2:0, stop:0 #ababab, stop:0.1 #f9f9f9, stop:0.9 #fafafa, stop:1 #ababab); + border-bottom: 14px solid qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #ababab, stop:0.1 #f9f9f9, stop:0.9 #fafafa, stop:1 #ababab); + border-left: 0.5px solid #ababab; + border-right: 0.5px solid #ababab; + background-color: #e6e6e6; } QScrollBar::handle:horizontal { - background-color: #696969; - border: 1px solid #7F7F7F; - border-radius: 4px; - min-width: 8px; + border-left: 1px solid #ababab; + border-right: 1px solid #ababab; + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #fefefe, stop:1 #f2f2f2); } QScrollBar::handle:horizontal:hover { - background-color: @ThemeAccentColor1; - border: #696968; - border-radius: 4px; - min-width: 8px; + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #f2f2f2, stop:1 #fefefe); + /* border: 1px #e6e6e6; */ } QScrollBar::handle:horizontal:focus { - border: 1px solid @ThemeAccentColor2; + border: 0.5px solid @ThemeAccentColor2; } QScrollBar::handle:vertical { - background-color: #696969; - border: 1px solid #696968; + border-top: 1px solid #ababab; + border-bottom: 1px solid #ababab; min-height: 8px; - border-radius: 4px; + border-radius: 0px; + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0, stop:0 #fefefe, stop:1 #f2f2f2); } QScrollBar::handle:vertical:hover { - background-color: @ThemeAccentColor1; - border: #696968; - border-radius: 4px; + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0, stop:0 #f2f2f2, stop:1 #fefefe); + /* border: solid 1px #e6e6e6; */ + border-radius: 0px; min-height: 8px; } QScrollBar::handle:vertical:focus { - border: 1px solid @ThemeAccentColor2; + border: 0.5px solid @ThemeAccentColor2; } QScrollBar::add-line:horizontal { - border-image: url(qss:images_dark-light/right_arrow_light.svg); - height: 9px; - width: 5px; + margin: 6px 6px; + image: url(qss:images_classic/Arrow-right-lightgray.png); + height: 8px; + width: 4px; subcontrol-position: right; subcontrol-origin: margin; } QScrollBar::add-line:horizontal:hover, QScrollBar::add-line:horizontal:on { - border-image: url(qss:images_dark-light/right_arrow_lighter.svg); - height: 9px; - width: 5px; + image: url(qss:images_classic/Arrow-right-black.png); + height: 8px; + width: 4px; subcontrol-position: right; subcontrol-origin: margin; } QScrollBar::add-line:vertical { - border-image: url(qss:images_dark-light/down_arrow_light.svg); - height: 5px; - width: 9px; + margin: 6px 6px; + image: url(qss:images_classic/Arrow-down-lightgray.png); + height: 4px; + width: 8px; subcontrol-position: bottom; subcontrol-origin: margin; } QScrollBar::add-line:vertical:hover, QScrollBar::add-line:vertical:on { - border-image: url(qss:images_dark-light/down_arrow_lighter.svg); - height: 5px; - width: 9px; + image: url(qss:images_classic/Arrow-down-black.png); + height: 4px; + width: 8px; subcontrol-position: bottom; subcontrol-origin: margin; } QScrollBar::sub-line:horizontal { - margin: 0px 0px 0px 0px; - border-image: url(qss:images_dark-light/left_arrow_light.svg); - height: 9px; - width: 5px; + margin: 6px 6px; + image: url(qss:images_classic/Arrow-left-lightgray.png); + height: 8px; + width: 4px; subcontrol-position: left; subcontrol-origin: margin; } QScrollBar::sub-line:horizontal:hover, QScrollBar::sub-line:horizontal:on { - border-image: url(qss:images_dark-light/left_arrow_lighter.svg); - height: 9px; - width: 5px; + image: url(qss:images_classic/Arrow-left-black.png); + height: 8px; + width: 4px; subcontrol-position: left; subcontrol-origin: margin; } QScrollBar::sub-line:vertical { - margin: 0px 0px 0px 0px; - border-image: url(qss:images_dark-light/up_arrow_light.svg); - height: 5px; - width: 9px; + margin: 6px 6px; + image: url(qss:images_classic/Arrow-up-lightgray.png); + height: 4px; + width: 8px; subcontrol-position: top; subcontrol-origin: margin; } QScrollBar::sub-line:vertical:hover, QScrollBar::sub-line:vertical:on { - background-color: @ThemeAccentColor1; - border-image: url(qss:images_dark-light/up_arrow_lighter.svg); - height: 5px; - width: 9px; + image: url(qss:images_classic/Arrow-up-black.png); + height: 4px; + width: 8px; subcontrol-position: top; subcontrol-origin: margin; } -QScrollBar::up-arrow:horizontal, QScrollBar::down-arrow:horizontal { - background: none; -} - -QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical { - background: none; -} - -QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal { - background: none; -} - -QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { - background: none; -} - /* QTextEdit -------------------------------------------------------------- https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-specific-widgets @@ -808,38 +769,38 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-specific-widgets report view --------------------------------------------------------------------------- */ QTextEdit { - background-color: #7F7F7F; - color: White; - border-radius: 1.9px; - border: 0px solid #696968; + background-color: #ffffff; + color: black; + border-radius: 2px; + border: 0px solid #ababab; } QTextEdit:focus { - border: 1px solid @ThemeAccentColor2; + border: 0.5px solid @ThemeAccentColor2; } QTextEdit:selected { background: #346792; - color: white; + color: black; } /* QPlainTextEdit --------------------------------------------------------- Python --------------------------------------------------------------------------- */ QPlainTextEdit { - background-color: #3c3c3c; - color: White; + background-color: #ffffff; + color: black; border-radius: 1.9px; - border: 0px solid #696968; + border: 0px solid #ababab; } QPlainTextEdit:focus { - border: 1px solid @ThemeAccentColor2; + border: 0.5px solid @ThemeAccentColor2; } QPlainTextEdit:selected { background: @ThemeAccentColor1; - color: White; + color: black; } /* QSizeGrip -------------------------------------------------------------- @@ -851,7 +812,7 @@ QSizeGrip { background: transparent; width: 12px; height: 12px; - image:url(qss:images_dark-light/sizegrip_light.svg); + image:url(qss:images_classic/sizegrip-lightgray.png); } /* QStackedWidget --------------------------------------------------------- @@ -859,7 +820,7 @@ QSizeGrip { --------------------------------------------------------------------------- */ QStackedWidget { padding: 0px; - border: 0px solid #696968; + border: 0px solid #ababab; } /* QToolBar --------------------------------------------------------------- @@ -868,64 +829,73 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbar --------------------------------------------------------------------------- */ QToolBar { - background-color: #7F7F7F; - border-bottom: 0px solid rgba(0,0,0,120); - padding: 1px; - font-weight: bold; - spacing: 1px; + background-color: #f0f0f0; + /* border: 1px solid #ababab; */ + /* font-weight: bold; */ +} + +QToolBar:horizontal { + border-bottom: 0.5px solid #ababab; + padding-top: 3px; + padding-left: 5px; +} + +QToolBar:vertical { + border-left: 0.5px solid #ababab; + border-right: 0.5px solid #ababab; + padding-top: 3px; + padding-left: 2px; } QToolBar:disabled { - /* Fixes #272 */ - background-color: #7F7F7F; + } QToolBar::handle:horizontal { width: 8px; - margin: 3px 3px; - background-position: top right; - background-repeat: repeat-y; - background-image: url(qss:images_dark-light/Hmovetoolbar_light.svg); + image: url(qss:images_classic/Hmovetoolbar-lightgray.png); } QToolBar::handle:vertical { height: 8px; - margin: 3px 3px; - background-position: left bottom; - background-repeat: repeat-x; - background-image: url(qss:images_dark-light/Vmovetoolbar_light.svg); + image: url(qss:images_classic/Vmovetoolbar-lightgray.png); } +QToolBar::handle:horizontal:hover { + width: 8px; + image: url(qss:images_classic/Hmovetoolbar-darkgray.png); +} + +QToolBar::handle:vertical:hover { + height: 8px; + image: url(qss:images_classic/Vmovetoolbar-darkgray.png); +} + + QToolBar::separator:horizontal { width: 2px; - margin: 4px 4px; - background-color: transparent; + image: url(qss:images_classic/Hsepartoolbar-lightgray.png); } QToolBar::separator:vertical { height: 2px; - margin: 4px 4px; - background-color: transparent; + image: url(qss:images_classic/Vsepartoolbar-lightgray.png); } /*The "show more" button (it can also be stylable with "QToolBarExtension" icon is not working Qproperty works but breaks when you move the toolbar see also */ QToolButton#qt_toolbar_ext_button { margin: 0px; padding: 0px; -background-color: #696969; -/*background-image: url(qss:images_dark-light/more_light.svg);*/ background-repeat: none; background-position: center center; } QToolButton#qt_toolbar_ext_button:hover { -/*background-image: url(qss:images_dark-light/more_light.svg);*/ background-color: @ThemeAccentColor1; } QToolButton#qt_toolbar_ext_button:on { -/*background-image: url(qss:images_dark-light/more_light.svg);*/ -border-color: #696968; +border-color: #ababab; background-color: @ThemeAccentColor1; } @@ -935,76 +905,75 @@ background-color: @ThemeAccentColor1; --------------------------------------------------------------------------- */ QAbstractSpinBox, QSpinBox { - background-color: #505050; - border: 1px solid transparent; - color: White; - /* This fixes 103, 111 */ - /* padding-top: 0px; - /* This fixes 103, 111 */ - /*padding-bottom: 0px; - /*padding-left: 4px; - /*padding-right: 4px; - border-radius: 1.9px;*/ + background-color: #ffffff; + border: 1px solid #ababab; + color: black; + border-radius: 2px; min-height: 1.7em; - /* min-width: 5px; removed to fix 109 */ } QAbstractSpinBox:up-button { - background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #676767, stop:1 #505051); + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #f0f0f0, stop:1 #fdfdfd); subcontrol-origin: border; subcontrol-position: top right; - border: 1px solid transparent; - border-top-left-radius: 0; - border-bottom-left-radius: 0; - /*margin: 1px;*/ - /*width: 12px; - /*margin-bottom: -1px;*/ + border-top: 1px solid transparent; + border-right: 1px solid transparent; + border-top-right-radius: 2px; + border-bottom-left-radius: 2px; + margin-top: 1px; + margin-right: 1px; + border-left: 1px solid #b0b0b0; } QAbstractSpinBox::up-arrow, QAbstractSpinBox::up-arrow:disabled, QAbstractSpinBox::up-arrow:off { - image: url(qss:images_dark-light/up_arrow_disabled_light.svg); - /* height: 8px; - width: 8px;*/ + image: url(qss:images_classic/Arrow-up-lightgray.png); + height: 8px; + width: 8px; } QAbstractSpinBox::up-arrow:hover { - image: url(qss:images_dark-light/up_arrow_lighter.svg); + image: url(qss:images_classic/Arrow-up-black.png); + height: 8px; + width: 8px; } QAbstractSpinBox:down-button { - background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #676767, stop:1 #505051); + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #fdfdfd, stop:1 #f0f0f0); subcontrol-origin: border; subcontrol-position: bottom right; - border: 1px solid transparent; - border-top-left-radius: 0; - border-bottom-left-radius: 0; - /*margin: 1px;*/ + border-bottom: 1px solid transparent; + border-right: 1px solid transparent; + border-top-left-radius: 2px; + border-bottom-left-radius: 2px; + margin-bottom: 1px; + margin-right: 1px; + border-left: 1px solid #b0b0b0; + /* margin: 1px; */ /*width: 12px; /*margin-top: -1px;*/ } QAbstractSpinBox::down-arrow, QAbstractSpinBox::down-arrow:disabled, QAbstractSpinBox::down-arrow:off { - image: url(qss:images_dark-light/down_arrow_disabled_light.svg); - /*height: 8px; - width: 8px;*/ + image: url(qss:images_classic/Arrow-down-lightgray.png); + height: 8px; + width: 8px; } QAbstractSpinBox::down-arrow:hover { - image: url(qss:images_dark-light/down_arrow_lighter.svg); + image: url(qss:images_classic/Arrow-down-black.png); + height: 8px; + width: 8px; } QAbstractSpinBox:hover { - /*border: 1px solid @ThemeAccentColor1; - color: White;*/ } QAbstractSpinBox:focus { - border: 1px solid @ThemeAccentColor2; + border: 0.5px solid @ThemeAccentColor2; } QAbstractSpinBox:selected { background: @ThemeAccentColor2; - /*color: White;*/ } /* ------------------------------------------------------------------------ */ @@ -1017,16 +986,16 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe --------------------------------------------------------------------------- */ QLabel { background-color: transparent; - border: 0px solid #696968; + border: 0px solid #ababab; padding: 2px; margin: 0px; - color: White; + color: black; } QLabel:disabled { background-color: transparent; - border: 0px solid #696968; - color: #c2c7cb; + border: 0px solid #ababab; + color: #adadad; } QLabel[haslink="true"] { @@ -1040,21 +1009,20 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea --------------------------------------------------------------------------- */ QTextBrowser { - background-color: #505050; - border: 1px solid #696968; - color: White; + background-color: #ffffff; + border: 1px solid #ababab; + color: black; border-radius: 1.9px; } QTextBrowser:disabled { - background-color: #7F7F7F; - border: 1px solid #696968; - color: #c2c7cb; + background-color: #d8d8d8; + border: 1px solid #ababab; + color: #adadad; border-radius: 1.9px; } QTextBrowser:hover, QTextBrowser:!hover, QTextBrowser:selected, QTextBrowser:pressed { - border: 1px solid @ThemeAccentColor1; } /* QGraphicsView ---------------------------------------------------------- @@ -1063,14 +1031,14 @@ QTextBrowser:hover, QTextBrowser:!hover, QTextBrowser:selected, QTextBrowser:pre QGraphicsView { background-color: transparent; border: 0px solid @ThemeAccentColor1; - color: White; + color: black; border-radius: 0px; } QGraphicsView:disabled { - background-color: #505050; - border: 0px solid #696968; - color: #c2c7cb; + background-color: #fdfdfd; + border: 0px solid #ababab; + color: #adadad; border-radius: 0px; } @@ -1082,13 +1050,13 @@ QGraphicsView:hover, QGraphicsView:!hover, QGraphicsView:selected, QGraphicsView --------------------------------------------------------------------------- */ QCalendarWidget { - border: 1px solid #696968; + border: 1px solid #ababab; border-radius: 1.9px; } QCalendarWidget:disabled { - background-color: #353535; - color: #c2c7cb; + background-color: #f0f0f0; + color: #adadad; } /* QLCDNumber ------------------------------------------------------------- @@ -1096,12 +1064,12 @@ QCalendarWidget:disabled { --------------------------------------------------------------------------- */ QLCDNumber { background-color: #1aff00; - color: White; + color: black; } QLCDNumber:disabled { - background-color: #7F7F7F; - color: #c2c7cb; + background-color: #d8d8d8; + color: #adadad; } /* QProgressBar ----------------------------------------------------------- @@ -1110,16 +1078,16 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qprogressbar --------------------------------------------------------------------------- */ QProgressBar { - background-color: #c2c7cb; - border: 1px solid #696968; - color: White; + background-color: #cccccc; + border: 1px solid #ababab; + color: black; border-radius: 1.9px; text-align: center; } QProgressBar:disabled { - background-color: #505050; - border: 1px solid #696968; + background-color: #d8d8d8; + border: 1px solid #ababab; color: #696969; border-radius: 1.9px; text-align: center; @@ -1127,13 +1095,13 @@ QProgressBar:disabled { QProgressBar::chunk { background-color: @ThemeAccentColor1; - color: #7F7F7F; + color: #d8d8d8; border-radius: 1.9px; } QProgressBar::chunk:disabled { - background-color: #505050; - color: #696968; + background-color: #d8d8d8; + color: #ababab; border-radius: 1.9px; } @@ -1146,47 +1114,53 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qpushbutton --------------------------------------------------------------------------- */ QPushButton { - background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #676767, stop:1 #505051); - color: White; - border: 1px solid #505051; - border-bottom-color: #1e1e1e; /* simulates shadow under the button */ - border-radius: 4px; - padding: 2px; + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #f0f0f0, stop:1 #fdfdfd); + color: black; + border: 1px solid #ababab; + /* border-bottom-color: #1e1e1e; simulates shadow under the button */ + border-radius: 3px; + padding: 4px 0px; + min-width: 80px; } QPushButton:disabled { - background-color: #7F7F7F; - color: #c2c7cb; - + background-color: #d8d8d8; + color: #adadad; + border: 1px solid #ababab; } QPushButton:checked { - background-color: @ThemeAccentColor1; + border: 1px solid @ThemeAccentColor1; outline: none; } +QPushButton:focus { + border: 1px solid @ThemeAccentColor1; +} + + QPushButton:checked:disabled { - background-color: @ThemeAccentColor1; - color: #3c3c3c; + border: 1px solid @ThemeAccentColor1; + color: #adadad; outline: none; } QPushButton:checked:selected { - background: @ThemeAccentColor1; + border: 1px solid @ThemeAccentColor1; } QPushButton:hover { - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); - color: White; + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #fefefe, stop:1 #f8f8f8); + color: black; } QPushButton:pressed { - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); + border: 1px solid @ThemeAccentColor1; } QPushButton:selected { - background: @ThemeAccentColor2; - color: White; + border: 1px solid @ThemeAccentColor1; + color: black; } QPushButton::menu-indicator { @@ -1207,64 +1181,60 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbutton --------------------------------------------------------------------------- */ QToolButton { background-color: transparent; - color: White; - border-radius: 1px; - padding: 0px; + color: black; + /* border-radius: 1px; */ + padding: 2px; outline: none; border: none; + border-radius: 3px; /* The subcontrols below are used only in the DelayedPopup mode */ /* The subcontrols below are used only in the MenuButtonPopup mode */ /* The subcontrol below is used only in the InstantPopup or DelayedPopup mode */ } QToolButton:disabled { - background-color: rgba(0, 0, 0, 0.065); - color: #c2c7cb; - border-radius: 1px; - padding: 0px; + /* background-color: rgba(0, 0, 0, 0.065); */ + color: #adadad; } QToolButton:checked { - background-color: @ThemeAccentColor1; - border-radius: 1.9px; - padding: 0px; - outline: none; + background-color: @ThemeAccentColor2; + border-radius: 2px; } QToolButton:checked:disabled { - background-color: #b65555; - color: #c2c7cb; - border-radius: 1.9px; + background-color: @ThemeAccentColor1; + color: #adadad; + border-radius: 2px; padding: 0px; outline: none; } QToolButton:checked:hover { background-color: @ThemeAccentColor1; - color: White; + border: 1px solid #ababab; } QToolButton:checked:pressed { - background-color: @ThemeAccentColor1; + border: 1px solid @ThemeAccentColor2; } QToolButton:checked:selected { background: @ThemeAccentColor2; - color: White; + color: black; } QToolButton:hover { - background-color: @ThemeAccentColor1; - color: White; + color: black; + border: 1px solid #ababab; } QToolButton:pressed { - background-color: @ThemeAccentColor2; } QToolButton:selected { - background: @ThemeAccentColor1; - color: White; + border: 1px solid @ThemeAccentColor1; + color: black; } QToolButton[popupMode="0"] { @@ -1276,14 +1246,15 @@ QToolButton[popupMode="1"] { /* Only for MenuButtonPopup */ padding-right: 20px; } + QToolButton[popupMode="0"]::menu-button { border: none; } QToolButton[popupMode="0"]::menu-button:hover { border: none; - border-left: 2px solid #fe0000; - border-radius: 0px; + border-left: 2px solid #e6e6e6; + border-radius: 3px; } QToolButton[popupMode="1"]::menu-button { border: none; @@ -1291,57 +1262,63 @@ QToolButton[popupMode="1"]::menu-button { QToolButton[popupMode="1"]::menu-button:hover { border: none; - border-left: 2px solid #e5ff00; - border-radius: 0px; + border-left: 2px solid #e6e6e6; + border-radius: 3px; } QToolButton[popupMode="2"] { /* Only for InstantPopup */ padding-right: 20px; } +QToolBar > QToolButton#qt_toolbutton_menubutton { + padding-right: 15px; /* Hack to add more width to buttons with menu */ + border-radius: 3px; +} QToolButton::menu-button { - border-bottom: 0px solid #ffffff; - border-radius: 2px; + border: 1px solid transparent; /* 16px width + 4px for border = 20px allocated above */ + border-radius: 3px; width: 1.6ex; - padding: 2px; - border-radius: 2px; - border: 0px #000000; } QToolButton::menu-button:hover { - /* background: rgba(0, 0, 0, 0.5);*/ + border: 1px solid transparent; } +QToolButton::menu-button:pressed { + border: 1px solid transparent; +} + QToolButton::menu-button:checked:hover { - /* background: rgba(0, 0, 0, 0.5);*/ + border: 1px solid #ababab; + background: @ThemeAccentColor2; } QToolButton::menu-indicator { /* Exclude a shift for better image */ - subcontrol-position: right bottom; + subcontrol-position: center center; /* Shift it a bit */ } QToolButton::menu-arrow { - image: url(qss:images_dark-light/more_arrow_light.svg); - width: 1.5ex; - height: 1.5ex; - subcontrol-position: right bottom; + image: url(qss:images_classic/Arrow-down-lightgray.png); + width: 1.3ex; + height: 1.3ex; + subcontrol-position: center center; background: transparent; } QToolButton::menu-arrow:open { - subcontrol-position: right bottom; - image: url(qss:images_dark-light/more_arrow_light.svg); - width: 1.7ex; - height: 1.7ex; + subcontrol-position: center center; + image: url(qss:images_classic/Arrow-Down-black.png); + width: 1.3ex; + height: 1.3ex; } QToolButton::menu-arrow:hover { - image: url(qss:images_dark-light/more_arrow_light.svg); - width: 1.7ex; - height: 1.7ex; + image: url(qss:images_classic/Arrow-Down-black.png); + width: 1.3ex; + height: 1.3ex; } /* QCommandLinkButton ----------------------------------------------------- @@ -1349,8 +1326,8 @@ QToolButton::menu-arrow:hover { --------------------------------------------------------------------------- */ QCommandLinkButton { background-color: transparent; - border: 1px solid #696968; - color: White; + border: 1px solid #ababab; + color: black; border-radius: 1.9px; padding: 0px; margin: 0px; @@ -1358,7 +1335,7 @@ QCommandLinkButton { QCommandLinkButton:disabled { background-color: transparent; - color: #c2c7cb; + color: #adadad; } /* ------------------------------------------------------------------------ */ @@ -1370,62 +1347,64 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox --------------------------------------------------------------------------- */ QComboBox { - border: 1px solid transparent; - background: #505050; + border: 1px solid #ababab; border-radius: 2px; + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #f0f0f0, stop:1 #fdfdfd); selection-background-color: @ThemeAccentColor1; - padding-left: 2px; + padding-left: 4px; padding-right: 2px; /* padding-right = 36; 4 + 16*2 See scrollbar size */ /* changed to 4px to fix #239 */ /* Fixes #103, #111 */ min-height: 1.5em; - margin: 0px -1px 0px 0px; /* hack for Mac... try it on Windows and Linux */ + /*margin: 0px -1px 0px 0px; hack for Mac... try it on Windows and Linux */ /* padding-top: 2px; removed to fix #132 */ /* padding-bottom: 2px; removed to fix #132 */ /* min-width: 75px; removed to fix #109 */ /* Needed to remove indicator - fix #132 */ } QComboBox:editable { - background: #505050; + background: #fdfdfd; } QComboBox QAbstractItemView { - border: 0px solid #696968; - border-radius: 0px; - background-color: #505050; + border: 1px solid #ababab; + border-radius: 2px; + background-color: #fdfdfd; selection-background-color: @ThemeAccentColor1; } QComboBox QAbstractItemView:hover { - background-color:#505050; - color: White; + background-color:#fdfdfd; + color: black; } QComboBox QAbstractItemView:selected { background: @ThemeAccentColor1; - color: White; + color: black; } QComboBox QAbstractItemView:alternate { - background: #3c3c3c; + background: #fdfdfd; } QComboBox:checked { - color: #ffffff; + color: #000000; } QComboBox:disabled { - background-color: #7F7F7F; - color: #353535; + background-color: #d8d8d8; + color: #adadad; } QComboBox:hover { - /*background-color: @ThemeAccentColor1;*/ - border: 1px solid @ThemeAccentColor1; + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #f8f8f8, stop:1 #fefefe); + /* border: 1px solid @ThemeAccentColor1; */ } QComboBox:focus { - border: 1px solid @ThemeAccentColor2; + border: 1px solid #ababab; + border-radius: 2px; + /* border: 1px solid @ThemeAccentColor2; */ } QComboBox:on { @@ -1438,9 +1417,9 @@ QComboBox::indicator { } QComboBox::indicator:checked { - width: 12px; - height: 12px; - image: url(qss:images_dark-light/check_light.svg); + width: 10px; + height: 10px; + image: url(qss:images_classic/Check-Checked-black.png); } QComboBox::item { @@ -1458,33 +1437,35 @@ QComboBox::item { /* Needed to complete the rule set. */ QComboBox::item:alternate { - background: #3c3c3c; + background: #ededed; } /* Color of the selected list item. */ QComboBox::item:selected { - border: 1px solid @ThemeAccentColor2; + border: 1px solid #ababab; background: @ThemeAccentColor2; } QComboBox::drop-down { subcontrol-origin: padding; - background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #676767, stop:1 #505051); + /* background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #f0f0f0, stop:1 #ababab); */ subcontrol-position: top right; - width: 14px; - border-left: 1px solid transparent; + width: 20px; + border-right: 1px solid transparent; + padding-right: 2px; + /* border-radius: 2px; */ } QComboBox::drop-down:hover { - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); + /* background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); */ } QComboBox::down-arrow { - image: url(qss:images_dark-light/down_arrow_disabled_light.svg); - height: 10px; - width: 10px; + image: url(qss:images_classic/Arrow-down-lightgray.png); + /* height: 10px; */ + width: 8px; } QComboBox::down-arrow:on, QComboBox::down-arrow:hover, QComboBox::down-arrow:focus { - image: url(qss:images_dark-light/down_arrow_lighter.svg); + image: url(qss:images_classic/Arrow-down-black.png); } @@ -1492,53 +1473,69 @@ QComboBox::down-arrow:on, QComboBox::down-arrow:hover, QComboBox::down-arrow:foc Tasks panel (custom FreeCAD class) ==================================================================================================*/ Gui--PropertyEditor--PropertyEditor { - qproperty-groupTextColor: white; - qproperty-groupBackground: #3c3c3c; - border: 0px solid #696968; - + qproperty-groupTextColor: black; + qproperty-groupBackground: #ededed; + border: 0px solid #ababab; } /* Action group */ QFrame[class="panel"] { -background-color: transparent; /* temporal (transparent background) */ +background-color: rgba(237, 237, 237, 0.5); } QSint--ActionGroup { padding: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ margin: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ +color: black; +} + +QSint--ActionGroup QGroupBox { + border: 1px solid #696969; + background-color: transparent; + padding-bottom: 3px; +} + +QSint--ActionGroup QGroupBox::title { + top: -8px; + left: 13px; } /* Separator line */ QSint--ActionGroup QFrame[height="1"], -QSint--ActionGroup QFrame[height="2"], -QSint--ActionGroup QFrame[height="3"], +QSint--ActionGroup QFrame[height="1"], +QSint--ActionGroup QFrame[height="1"], QSint--ActionGroup QFrame[width="1"], -QSint--ActionGroup QFrame[width="2"], -QSint--ActionGroup QFrame[width="3"] { -border-color: rgba(0,0,0,60); +QSint--ActionGroup QFrame[width="1"], +QSint--ActionGroup QFrame[width="1"] { +/* border-color: #ababab; */ +border-top: #ababab; +border-left: #ababab; } /* Panel header */ QSint--ActionGroup QFrame[class="header"] { -border-top: 1px solid #696968; -border-left: 1px solid #696968; -border-right: 1px solid #696968; -background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #676767, stop:1 #505051); +border-top: 1px solid #ffffff; +border-left: 1px solid #ffffff; +border-right: 1px solid #ffffff; +/*background-color: #d4d4d4; /* Task Panel Header background color */ +background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0 #e8f2fb, stop:1 #418FDE); border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; margin: 0px; padding: 0px; +color: #215dc6; } QSint--ActionGroup QFrame[class="header"]:hover { -background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); + /* background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0 #ffffff stop:1 #313d61); */ + color: #418FDE; } QSint--ActionGroup QToolButton[class="header"] { -color: white; /* Task Panel Header text color */ +color: black; /* Task Panel Header text color */ text-align: left; font-weight: bold; border: none; @@ -1546,41 +1543,29 @@ margin: 0px; padding: 0px; } -QSint--ActionGroup QFrame[class="header"] QLabel { -background-color: transparent; -background-image: url(qss:images_dark-light/down_arrow_light.svg); -background-repeat: none; -background-position: center center; -padding: 0px; -margin: 0px; +QSint--ActionGroup QFrame[class="header"] QLabel[fold="false"] { + background-image: url(qss:images_classic/Qsint_header_Unfold_Blue-light.png); } -QSint--ActionGroup QFrame[class="header"] QLabel:hover { -background-color: transparent; -background-image: url(qss:images_dark-light/down_arrow_lighter.svg); +QSint--ActionGroup QFrame[class="header"] QLabel:hover[fold="false"] { + background-image: url(qss:images_classic/Qsint_header_UnfoldOver_Blue-light.png); } QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"] { -background-color: transparent; -background-image: url(qss:images_dark-light/up_arrow_light.svg); -background-repeat: none; -background-position: center center; -padding: 0px; -margin: 0px; + background-image: url(qss:images_classic/Qsint_header_Fold_Blue-light.png); } QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"]:hover { -background-color: transparent; -background-image: url(qss:images_dark-light/up_arrow_lighter.svg); + background-image: url(qss:images_classic/Qsint_header_FoldOver_Blue-light.png) ; } QSint--ActionGroup QFrame[class="content"] { -background-color: transparent; /* Task Panel background color */ +background-color: #c7def5; /* Task Panel background color */ margin: 0px; padding: 0px; -border-bottom: 1px solid #696968; -border-left: 1px solid #696968; -border-right: 1px solid #696968; +border-bottom: 1px solid #ffffff; +border-left: 1px solid #ffffff; +border-right: 1px solid #ffffff; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-left-radius: 3px; @@ -1588,7 +1573,7 @@ border-bottom-right-radius: 3px; } QSint--ActionGroup QFrame[class="content"] > QWidget { -background-color: #7F7F7F; /* Task Panel background color */ +background-color: #c7def5; /* Task Panel background color */ } /* Fixs for tabs inside Task Panel */ @@ -1612,32 +1597,58 @@ border-left-color: @ThemeAccentColor1; /* same as Task Panel background color */ QSint--ActionGroup QFrame[class="content"] > QWidget > QPushButton { padding: 2px; /* bigger padding crops text and icons... */ margin: 0px; +border-radius: 3px; } /* Fix for lists inside task panels */ /* sketcher constraints list */ QSint--ActionGroup QFrame[class="content"] QTreeView, QSint--ActionGroup QFrame[class="content"] QListView, QSint--ActionGroup QFrame[class="content"] QTableView { -color: white; -background-color: #505050; +color: black; +background-color: #f0f0f0; } /* found inside Part Design Workbench and "make a draft on a face" Task panel options */ QSint--ActionGroup QFrame[class="content"] QToolButton { - color: white; + color: black; text-align: center; - background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #676767, stop:1 #505051); + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #f0f0f0, stop:1 #fdfdfd); border: 0px solid #adadad; padding: 1px 1px; /* different than regular QPushButton */ margin: 0px; /* different than regular QPushButton */ min-height: 16px; /* same as QTabBar QPushButton min-width */ - border-radius: 1px; + border-radius: 3px; } -QSint--ActionGroup QFrame[class="content"] QToolButton:hover{ - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); +/* QToolButtons with a menu found in Sketcher task panel*/ +QSint--ActionGroup QToolButton::menu-button { + border-left: 1px solid #adadad; + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; + padding: 0px; + width: 19px; /* 16px width + 4px for border = 20px allocated above */ + outline: none; + background-color: transparent; + /* margin: 10px; */ +} +QSint--ActionGroup QToolButton#settingsButton, +QSint--ActionGroup QToolButton#filterButton, +QSint--ActionGroup QToolButton#manualUpdate { + padding-right: 20px; /* make way for the popup button */ +} + +/* to give widget inside the menu same look as regular menu */ +QSint--ActionGroup QToolButton#filterButton QListWidget { + color: #000000; + background: #ffffff; + border: 1px solid #adadad; +} + + +QSint--ActionGroup QFrame[class="content"] QToolButton:hover{ + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #fefefe, stop:1 #f8f8f8); } QSint--ActionGroup QFrame[class="content"] QToolButton:focus { border: 1px solid @ThemeAccentColor2; @@ -1645,13 +1656,12 @@ QSint--ActionGroup QFrame[class="content"] QToolButton:focus { QSint--ActionGroup QFrame[class="content"] QToolButton:disabled, QSint--ActionGroup QFrame[class="content"] QToolButton:disabled:checked { - color: #696969; - background-color: #505050; + color: #adadad; + /* background-color: #fdfdfd; */ } QSint--ActionGroup QFrame[class="content"] QToolButton:pressed { - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); - + border: 1px solid @ThemeAccentColor1; } /* QSlider ---------------------------------------------------------------- @@ -1660,24 +1670,24 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qslider --------------------------------------------------------------------------- */ QSlider:disabled { - background: #7F7F7F; + background: #d8d8d8; } QSlider:focus { - /* border: 1px solid @ThemeAccentColor2;*/ + /*border: 1px solid @ThemeAccentColor2;*/ } QSlider::groove:horizontal { - background: #7F7F7F; - border: 1px solid #696968; + background: #d8d8d8; + border: 1px solid #ababab; height: 4px; margin: 0px; border-radius: 1.9px; } QSlider::groove:vertical { - background: #7F7F7F; - border: 1px solid #696968; + background: @ThemeAccentColor1; + border: 1px solid #ababab; width: 4px; margin: 0px; border-radius: 1.9px; @@ -1685,19 +1695,19 @@ QSlider::groove:vertical { QSlider::add-page:vertical { background: @ThemeAccentColor1; - border: 1px solid #696968; + border: 1px solid #ababab; width: 4px; margin: 0px; border-radius: 1.9px; } QSlider::add-page:vertical :disabled { - background: #696968; + background: #d8d8d8; } QSlider::sub-page:horizontal { background: @ThemeAccentColor1; - border: 1px solid #696968; + border: 1px solid #ababab; height: 4px; margin: 0px; border-radius: 1.9px; @@ -1708,8 +1718,8 @@ QSlider::sub-page:horizontal:disabled { } QSlider::handle:horizontal { - background: #353535; - border: 1px solid #696968; + background: #f0f0f0; + border: 1px solid #ababab; width: 10px; height: 8px; margin: -4px 0px; @@ -1718,17 +1728,17 @@ QSlider::handle:horizontal { QSlider::handle:horizontal:hover { background: @ThemeAccentColor1; - border: 1px solid #696968; + border: 1px solid #ababab; } QSlider::handle:horizontal:focus { background: @ThemeAccentColor2; - border: 1px solid @ThemeAccentColor2; + border: 0.5px solid @ThemeAccentColor2; } QSlider::handle:vertical { - background: #353535; - border: 1px solid #696968; + background: #f0f0f0; + border: 1px solid #ababab; width: 10px; height: 8px; margin: 0px -4px; @@ -1737,11 +1747,11 @@ QSlider::handle:vertical { QSlider::handle:vertical:hover { background: @ThemeAccentColor1; - border: 1px solid #696968; + border: 1px solid #ababab; } QSlider::handle:vertical:focus { - border: 1px solid @ThemeAccentColor2; + border: 0.5px solid @ThemeAccentColor2; } /* QLineEdit -------------------------------------------------------------- @@ -1750,7 +1760,7 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlineedit --------------------------------------------------------------------------- */ QLineEdit { - background-color: #505050; + background-color: #ffffff; padding-top: 2px; /* This QLineEdit fix 103, 111 */ padding-bottom: 2px; @@ -1758,19 +1768,19 @@ QLineEdit { padding-left: 4px; padding-right: 4px; border-style: solid; - border: 1px solid #696968; + border: 1px solid #ababab; border-radius: 2px; - color: White; + color: black; } QLineEdit:disabled { - background-color: #7F7F7F; - color: #c2c7cb; + background-color: #d8d8d8; + color: #adadad; } QLineEdit:hover { - border: 1px solid @ThemeAccentColor1; - color: White; + /* border: 1px solid @ThemeAccentColor1; */ + color: black; } QLineEdit:focus { @@ -1779,7 +1789,7 @@ QLineEdit:focus { QLineEdit:selected { background-color: @ThemeAccentColor1; - color: white; + color: black; } /* QTabWiget -------------------------------------------------------------- @@ -1801,34 +1811,38 @@ QTabWidget::pane { margin: 0px; /* Fixes double border inside pane with pyqt5 */ padding: 0px; - background-color: #7f7f7f; + background-color: rgba(27, 27, 27, 0.549); } QTabWidget::pane:selected { background-color: @ThemeAccentColor1; + border: 1px solid #fdfdfd; +} + +QTabWidget::pane:selected { + background-color: #557bb6; border: 1px solid #346792; } QTabWidget::pane:top { top: -1px; - border-top: 1px solid #696969; + border-top: 1px solid #fdfdfd; } QTabWidget::pane:bottom { bottom: -1px; - border-bottom: 1px solid #696969; + border-bottom: 1px solid #fdfdfd; } QTabWidget::pane:left { right: -1px; - border-right: 1px solid #696969; + border-right: 1px solid #fdfdfd; } QTabWidget::pane:right { left: -1px; - border-left: 1px solid #696969; + border-left: 1px solid #fdfdfd; } - /* QTabBar ---------------------------------------------------------------- https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar @@ -1836,191 +1850,212 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabb --------------------------------------------------------------------------- */ QTabBar, QDockWidget QTabBar { qproperty-drawBase: 0; + background-color: #f0f0f0; /* left: 5px; move to the right by 5px - removed for fix */ } QTabBar::close-button, QDockWidget QTabBar::close-button { border: 0; - margin: 0; - padding: 1px; - image: url(qss:images_dark-light/close_light.svg); + margin: 3px; + padding: 0px; + image: url(qss:images_classic/Close-lightgray.png); } QTabBar::close-button:hover, QDockWidget QTabBar::close-button:hover { - image: url(qss:images_dark-light/close_red.svg); + image: url(qss:images_classic/close-red.png); /*background-color: rgba(255, 0, 0, 0.3);*/ } QTabBar::close-button:pressed, QDockWidget QTabBar::close-button:pressed { - image: url(qss:images_dark-light/close_.svg); + image: url(qss:images_classic/close-lightRed.png); } QTabBar::tab, QDockWidget QTabBar::tab { /* !selected and disabled ----------------------------------------- */ /* selected ------------------------------------------------------- */ padding: 4px; -} + background-color: #f0f0f0; +} +/* QTabBar::tab:top:selected:disabled, QDockWidget QTabBar::tab:top:selected:disabled { - color: #f5f5f5; + color: #adadad; } QTabBar::tab:bottom:selected:disabled, QDockWidget QTabBar::tab:bottom:selected:disabled { - color: #f5f5f5; + color: #adadad; } QTabBar::tab:left:selected:disabled, QDockWidget QTabBar::tab:left:selected:disabled { - color: #f5f5f5; + color: #adadad; } QTabBar::tab:right:selected:disabled, QDockWidget QTabBar::tab:right:selected:disabled { - color: #f5f5f5; + color: #adadad; } QTabBar::tab:top:!selected:disabled, QDockWidget QTabBar::tab:top:!selected:disabled { - color: #f5f5f5; + color: #adadad; } QTabBar::tab:bottom:!selected:disabled, QDockWidget QTabBar::tab:bottom:!selected:disabled { - color: #f5f5f5; + color: #adadad; } QTabBar::tab:left:!selected:disabled, QDockWidget QTabBar::tab:left:!selected:disabled { - color: #f5f5f5; + color: #adadad; } QTabBar::tab:right:!selected:disabled, QDockWidget QTabBar::tab:right:!selected:disabled { - color: #f5f5f5; + color: #adadad; } QTabBar::tab:top:!selected, QDockWidget QTabBar::tab:top:!selected { - color: #f5f5f5; + color: #adadad; } QTabBar::tab:bottom:!selected, QDockWidget QTabBar::tab:bottom:!selected { - color: #f5f5f5; + color: #adadad; } QTabBar::tab:left:!selected, QDockWidget QTabBar::tab:left:!selected { - color: #f5f5f5; + color: #adadad; } QTabBar::tab:right:!selected, QDockWidget QTabBar::tab:right:!selected { - color: #f5f5f5; -} + color: #adadad; +} */ QTabBar::tab:top, QDockWidget QTabBar::tab:top { - color: #f5f5f5; + color: black; margin-left: 0px; - padding-left: 4px; - padding-right: 4px; - padding-top: 2px; - padding-bottom: 2px; + margin-right: 0px; min-width: 5px; - border-bottom: 1px solid #696969; /* same as tab content background color */ - border-radius: 0px; + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #dddddd, stop:0.6 #e2e2e2, stop:1 #cccccc); + margin-top: 3px; + border-top: 1px solid #ababab; /* selection color */ + border-bottom: 1px solid #ababab; + border-left: 1px solid #ababab; + border-right: 1px solid #ababab; + border-top-left-radius: 2px; + border-top-right-radius: 2px; } QTabBar::tab:top:selected, QDockWidget QTabBar::tab:top:selected { - color: white; - border-top: 4px solid @ThemeAccentColor1; /* selection color */ - border-bottom: 1px solid transparent; /* same as tab content background color */ - border-left: 1px solid #696969; - border-right: 1px solid #696969; - } + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #f0f0f0, stop:0.6 #fdfdfd stop:1 #f0f0f0); + color: black; + border-top: 1px solid #ababab; /* selection color */ + border-bottom: 1px solid #f0f0f0; + border-left: 1px solid #ababab; + border-right: 1px solid #ababab; + margin-top: 0px; + border-top-left-radius: 2px; + border-top-right-radius: 2px; +} QTabBar::tab:top:!selected:hover, QDockWidget QTabBar::tab:top:!selected:hover { - /*border: 1px solid @ThemeAccentColor1;*/ - border: 0px solid @ThemeAccentColor1; - background-color: @ThemeAccentColor1; - /* Fixes spyder-ide/spyder#9766 and #243 */ - padding-left: 3px; - padding-right: 3px; + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #f0f0f0, stop:1 #d8d8d8); + margin-top: 0px; } QTabBar::tab:bottom, QDockWidget QTabBar::tab:bottom { - color: #f5f5f5; - margin-left: 0px; - padding-left: 4px; - padding-right: 4px; - padding-top: 2px; - padding-bottom: 2px; + color: black; + padding-left: 9px; min-width: 5px; - border-top: 1px solid #696969; /* same as tab content background color */ - border-radius: 0px; + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #dddddd, stop:0.6 #e2e2e2, stop:1 #cccccc); + margin-bottom: 3px; + border-bottom: 1px solid #ababab; /* selection color */ + border-top: 1px solid #ababab; + border-left: 1px solid #ababab; + border-right: 1px solid #ababab; + border-bottom-left-radius: 2px; + border-bottom-right-radius: 2px; } QTabBar::tab:bottom:selected, QDockWidget QTabBar::tab:bottom:selected { - color: white; - border-bottom: 4px solid @ThemeAccentColor1; /* selection color */ - border-top: 1px solid transparent; /* same as tab content background color */ - border-left: 1px solid #696969; - border-right: 1px solid #696969; - + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #f0f0f0, stop:0.6 #fdfdfd stop:1 #f0f0f0); + color: black; + border-bottom: 1px solid #ababab; /* selection color */ + border-top: 1px solid #f0f0f0; + border-left: 1px solid #ababab; + border-right: 1px solid #ababab; + margin-bottom: 0px; + border-bottom-left-radius: 2px; + border-bottom-right-radius: 2px; } QTabBar::tab:bottom:!selected:hover, QDockWidget QTabBar::tab:bottom:!selected:hover { -/*border: 1px solid @ThemeAccentColor1;*/ - border: 0px solid @ThemeAccentColor1; - background-color: @ThemeAccentColor1; - /* Fixes spyder-ide/spyder#9766 and #243 */ - padding-left: 3px; - padding-right: 3px; + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #d8d8d8, stop:1 #f0f0f0); + margin-bottom: 0px; } QTabBar::tab:left, QDockWidget QTabBar::tab:left { - background-color: #7F7F7F; - margin-top: 2px; - padding-left: 2px; - padding-right: 2px; - padding-top: 4px; - padding-bottom: 4px; - border-radius: 4px; + color: black; + padding-bottom: 9px; min-height: 5px; + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0, stop:0 #dddddd, stop:0.6 #e2e2e2, stop:1 #cccccc); + margin-right: 3px; + border-bottom: 1px solid #ababab; /* selection color */ + border-right: 1px solid #ababab; + border-left: 1px solid #ababab; + border-top: 1px solid #ababab; + border-top-left-radius: 2px; + border-bottom-left-radius: 2px; } QTabBar::tab:left:selected, QDockWidget QTabBar::tab:left:selected { - background-color: #7F7F7F; - border: 0px solid @ThemeAccentColor2; + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0, stop:0 #f0f0f0, stop:0.6 #fdfdfd stop:1 #f0f0f0); + color: black; + border-bottom: 1px solid #ababab; /* selection color */ + border-right: 1px solid #f0f0f0; + border-left: 1px solid #ababab; + border-top: 1px solid #ababab; + margin-right: 0px; + border-top-left-radius: 2px; + border-bottom-left-radius: 2px; } QTabBar::tab:left:!selected:hover, QDockWidget QTabBar::tab:left:!selected:hover { - border: 0px solid @ThemeAccentColor1; - background-color: @ThemeAccentColor1; - /* Fixes different behavior #271 */ + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0, stop:0 #d8d8d8, stop:1 #f0f0f0); margin-right: 0px; - padding-right: -1px; } QTabBar::tab:right, QDockWidget QTabBar::tab:right { - background-color: #7F7F7F; - margin-top: 2px; - padding-left: 2px; - padding-right: 2px; - padding-top: 4px; - padding-bottom: 4px; + color: black; + padding-bottom: 9px; min-height: 5px; - border: 10px; + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0, stop:0 #dddddd, stop:0.6 #e2e2e2, stop:1 #cccccc); + margin-right: 3px; + border-bottom: 1px solid #ababab; /* selection color */ + border-left: 1px solid #ababab; + border-right: 1px solid #ababab; + border-top: 1px solid #ababab; + border-top-right-radius: 2px; + border-bottom-right-radius: 2px; } QTabBar::tab:right:selected, QDockWidget QTabBar::tab:right:selected { - background-color: #7F7F7F; - border: 0px solid @ThemeAccentColor2; + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0, stop:0 #f0f0f0, stop:0.6 #fdfdfd stop:1 #f0f0f0); + color: black; + border-bottom: 1px solid #ababab; /* selection color */ + border-left: 1px solid #f0f0f0; + border-left: 1px solid #ababab; + border-top: 1px solid #ababab; + margin-right: 0px; + border-top-right-radius: 2px; + border-bottom-right-radius: 2px; } QTabBar::tab:right:!selected:hover, QDockWidget QTabBar::tab:right:!selected:hover { - border: 0px solid @ThemeAccentColor1; - background-color: @ThemeAccentColor1; - /* Fixes different behavior #271 */ - margin-left: 0px; - padding-left: 0px; + background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0, stop:0 #f0f0f0, stop:1 #d8d8d8); + margin-right: 0px; } QTabBar QToolButton, QDockWidget QTabBar QToolButton { /* Fixes #136 */ - background-color: #7F7F7F; + background-color: #d8d8d8; height: 12px; width: 12px; } @@ -2036,30 +2071,30 @@ QTabBar QToolButton:pressed:hover, QDockWidget QTabBar QToolButton:pressed:hover } QTabBar QToolButton::left-arrow:enabled, QDockWidget QTabBar QToolButton::left-arrow:enabled { - image: url(qss:images_dark-light/left_arrow_lighter.svg); + image: url(qss:images_classic/Arrow-left-black.png); } QTabBar QToolButton::left-arrow:disabled, QDockWidget QTabBar QToolButton::left-arrow:disabled { - image: url(qss:images_dark-light/left_arrow_disabled_light.svg); + image: url(qss:images_classic/Arrow-left-lightgray.png); } QTabBar QToolButton::right-arrow:enabled, QDockWidget QTabBar QToolButton::right-arrow:enabled { - image: url(qss:images_dark-light/right_arrow_lighter.svg); + image: url(qss:images_classic/Arrow-right-black.png); } QTabBar QToolButton::right-arrow:disabled, QDockWidget QTabBar QToolButton::right-arrow:disabled { - image: url(qss:images_dark-light/right_arrow_disabled_light.svg); + image: url(qss:images_classic/Arrow-right-lightgray.png); } /* QDockWiget ------------------------------------------------------------- --------------------------------------------------------------------------- */ QDockWidget { - background-color: #7F7F7F; - border: 1px solid #505051; + background-color: #f0f0f0; + border: 1px solid #ababab; border-radius: 1.9px; - titlebar-close-icon: url(qss:images_dark-light/transparent.svg); - titlebar-normal-icon: url(qss:images_dark-light/transparent.svg); + titlebar-close-icon: url(qss:images_classic/transparent.png); + titlebar-normal-icon: url(qss:images_classic/transparent.png); } QDockWidget::title { @@ -2067,7 +2102,7 @@ QDockWidget::title { padding: 3px; spacing: 4px; border: none; - background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #676767, stop:1 #505051); + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #f0f0f0, stop:1 #fdfdfd); text-align: center; font-weight: bold; } @@ -2080,15 +2115,15 @@ QDockWidget::close-button { border: 0; margin: 0; padding: 0; - image: url(qss:images_dark-light/close_light.svg); + image: url(qss:images_classic/close-black.png); } QDockWidget::close-button:hover { - image: url(qss:images_dark-light/close_red.svg); + image: url(qss:images_classic/close-red.png); } QDockWidget::close-button:pressed { - image: url(qss:images_dark-light/close_light.svg); + image: url(qss:images_classic/close-black.png); } QDockWidget::float-button { @@ -2099,16 +2134,16 @@ QDockWidget::float-button { border: 0; margin: 0; padding: 0; - image: url(qss:images_dark-light/undock_light.svg); + image: url(qss:images_classic/undock-black.png); } QDockWidget::float-button:hover { /*background-color: @ThemeAccentColor1;*/ - image: url(qss:images_dark-light/undock_blue.svg); + image: url(qss:images_classic/undock-blue.png); } QDockWidget::float-button:pressed { - image: url(qss:images_dark-light/undock_light.svg); + image: url(qss:images_classic/undock-black.png); } /* QTreeView QListView QTableView ----------------------------------------- @@ -2123,38 +2158,58 @@ QTreeView::branch { } QTreeView::branch:has-siblings:!adjoins-item { - border-image: url(qss:images_dark-light/branch_vline_light.svg) 0; + /* border-image: url(qss:images_classic/branch_vline_white.png) 0; */ + /* border-image: url(qss:images_classic/Arrow-right-black.png) 0; */ } QTreeView::branch:has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_more_light.svg) 0; + /* border-image: url(qss:images_classic/Arrow-right-blue.png) 0; */ + /* border-image: url(qss:images_classic/branch_more_white.png) 0; */ } QTreeView::branch:!has-children:!has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_end_light.svg) 0; + /* border-image: url(qss:images_classic/Arrow-right-lightgray.png) 0; */ + /* border-image: url(qss:images_classic/branch_end_white.png) 0; */ } QTreeView::branch:closed:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_closed_light.svg) 0; + margin-top: 5px; + margin-bottom: 5px; + border-image: none; + image: url(qss:images_classic/Arrow-right-black.png) 0; + /* border-image: url(qss:images_classic/branch_more_closed_white.png) 0; */ } QTreeView::branch:has-children:!has-siblings:closed { - border-image: url(qss:images_dark-light/branch_end_closed_light.svg) 0; + margin-top: 5px; + margin-bottom: 5px; + border-image: none; + image: url(qss:images_classic/Arrow-right-black.png) 0; + /* border-image: url(qss:images_classic/Arrow-right-whitey.png) 0; */ + /* border-image: url(qss:images_classic/branch_end_closed_white.png) 0; */ } QTreeView::branch:open:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_open_light.svg) 0; + margin-left: 6px; + margin-right: 6px; + border-image: none; + image: url(qss:images_classic/Arrow-down-black.png) 0; + /* border-image: url(qss:images_classic/branch_more_open_white.png) 0; */ } QTreeView::branch:open:has-children:!has-siblings { - border-image: url(qss:images_dark-light/branch_end_open_light.svg) 0; + margin-left: 6px; + margin-right: 6px; + border-image: none; + image: url(qss:images_classic/Arrow-down-black.png) 0; + /* border-image: url(qss:images_classic/branch_end_open_white.png) 0; */ } QTreeView::indicator:checked, QListView::indicator:checked, QTableView::indicator:checked, QColumnView::indicator:checked { - image: url(qss:images_dark-light/checkbox_light.svg); + image: url(qss:images_classic/checkbox-checked-black.png); } QTreeView::indicator:checked:hover, QTreeView::indicator:checked:focus, QTreeView::indicator:checked:pressed, @@ -2167,14 +2222,14 @@ QTableView::indicator:checked:pressed, QColumnView::indicator:checked:hover, QColumnView::indicator:checked:focus, QColumnView::indicator:checked:pressed { - image: url(qss:images_dark-light/checkbox_light_hover.svg); + image: url(qss:images_classic/checkbox-checked-blue.png); } QTreeView::indicator:unchecked, QListView::indicator:unchecked, QTableView::indicator:unchecked, QColumnView::indicator:unchecked { - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); + image: url(qss:images_classic/checkbox-Empty-black.png); } QTreeView::indicator:unchecked:hover, QTreeView::indicator:unchecked:focus, QTreeView::indicator:unchecked:pressed, @@ -2187,14 +2242,14 @@ QTableView::indicator:unchecked:pressed, QColumnView::indicator:unchecked:hover, QColumnView::indicator:unchecked:focus, QColumnView::indicator:unchecked:pressed { - image: url(qss:images_dark-light/checkbox_unchecked_hover_light.svg); + image: url(qss:images_classic/checkbox-Empty-blue.png); } QTreeView::indicator:indeterminate, QListView::indicator:indeterminate, QTableView::indicator:indeterminate, QColumnView::indicator:indeterminate { - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); + image: url(qss:images_classic/checkbox-indeterminate-black.png); } QTreeView::indicator:indeterminate:hover, QTreeView::indicator:indeterminate:focus, QTreeView::indicator:indeterminate:pressed, @@ -2207,23 +2262,23 @@ QTableView::indicator:indeterminate:pressed, QColumnView::indicator:indeterminate:hover, QColumnView::indicator:indeterminate:focus, QColumnView::indicator:indeterminate:pressed { - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); + image: url(qss:images_classic/checkbox-indeterminate-black.png); } QTreeView, QListView, QTableView, QColumnView { - background-color: #7F7F7F; /* background of a lot of stuff including spreadsheets.*/ - border: 0px solid #696968; - color: White; - gridline-color: #696968; + background-color: #f0f0f0; /* background of a lot of stuff including spreadsheets.*/ + /* border: 1px solid #ef0000; */ + color: black; + gridline-color: #ababab; border-radius: 0px; } QTableView, QListView { - background-color: rgba(82, 82, 82, 0.85); /* background of a lot of stuff including spreadsheets.*/ + background-color: #ffffff; /* background of a lot of stuff including spreadsheets.*/ } @@ -2231,23 +2286,23 @@ QTreeView:disabled, QListView:disabled, QTableView:disabled, QColumnView:disabled { - background-color: #505050; - color: #c2c7cb; + background-color: #d8d8d8; + color: #adadad; } QTreeView:selected, QListView:selected, QTableView:selected, QColumnView:selected { - background-color: @ThemeAccentColor1; - color: White; + background-color: #f0f0f0; + color: black; } QTreeView:focus, QListView:focus, QTableView:focus, QColumnView:focus { - border: 1px solid @ThemeAccentColor2; + /* border: 1px solid #ababab; */ } QTreeView::item:pressed, @@ -2261,15 +2316,15 @@ QTreeView::item:selected:active, QListView::item:selected:active, QTableView::item:selected:active, QColumnView::item:selected:active { - background-color: @ThemeAccentColor1; + background-color: #f0f0f0; } QTreeView::item:selected:!active, QListView::item:selected:!active, QTableView::item:selected:!active, QColumnView::item:selected:!active { - color: White; - background-color: @ThemeAccentColor1; + /* color: black; */ + background-color: #f0f0f0; } QTreeView::item:!selected:hover, @@ -2277,18 +2332,18 @@ QListView::item:!selected:hover, QTableView::item:!selected:hover, QColumnView::item:!selected:hover { outline: 0; - color: White; + color: black; background-color: @ThemeAccentColor1; } QTableCornerButton::section { - background-color: #7F7F7F; - border: 1px transparent #696968; + background-color: #d8d8d8; + border: 1px transparent #ababab; border-radius: 0px; } QTableView::item { - color: white; + color: black; } QTableView { /*qproperty-AliasedCellBackgroundColor: #f700ff;*/ @@ -2302,51 +2357,52 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qheaderview --------------------------------------------------------------------------- */ QHeaderView { background-color: transparent; - text-align: center; + /* text-align: bottom; */ } QHeaderView:disabled { - background-color: #7f7f7f; - color: rgb(174, 174, 174); + /* background-color: #d8d8d8; */ + color: #adadad; } QHeaderView::section { - background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #676767, stop:1 #505051); - color: White; - border: 1px solid #505051; - font-size: 13px; - font-weight: bold; + background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #f0f0f0, stop:1 #fdfdfd); + color: black; + border-bottom: 1px solid #ababab; + border-right: 1px solid #ababab; + border-top: 1px solid #ababab; + border-left: 1px solid transparent; } QHeaderView::section::horizontal { - padding-top: 1px; + /* padding-top: 1px; padding-bottom: 1px; padding-left: 5px; - padding-right: 0px; + padding-right: 0px; */ } QHeaderView::section::horizontal::first, QHeaderView::section::horizontal::only-one { - border-left: 0px solid #696968; + /* border-left: 0px solid #ababab; */ } QHeaderView::section::horizontal:disabled { - color: #353535; + color: #adadad; } QHeaderView::section::vertical { - padding-top: 1px; + /* padding-top: 1px; padding-bottom: 0; padding-left: 1px; - padding-right: 0px; - border-top: 0px solid #696968; + padding-right: 0px; */ + border-top: 0.5px solid #ababab; } QHeaderView::section::vertical::first, QHeaderView::section::vertical::only-one { - border-top: 2px solid #505051; + border-top: 2px solid #ababab; } QHeaderView::section::vertical:disabled { - border-top: 2px solid #505051; + border-top: 2px solid #ababab; } QHeaderView::down-arrow { @@ -2358,7 +2414,7 @@ QHeaderView::down-arrow { width: 12px; padding-left: 2px; padding-right: 2px; - image: url(qss:images_dark-light/down_arrow_light.svg); + image: url(qss:images_classic/Arrow-down-lightgray.png); } QHeaderView::up-arrow { @@ -2368,7 +2424,7 @@ QHeaderView::up-arrow { width: 12px; padding-left: 2px; padding-right: 2px; - image: url(qss:images_dark-light/up_arrow_light.svg); + image: url(qss:images_classic/Arrow-up-lightgray.png); } /* QToolBox -------------------------------------------------------------- @@ -2392,19 +2448,19 @@ QToolBox:selected { QToolBox::tab { background-color: transparent; border: 0px solid #696969; - color: white; - background-image: url(qss:images_dark-light/down_arrow_lighter.svg); + color: black; + background-image: url(qss:images_classic/Arrow-down-black.png); background-repeat: none; background-position: center left; } QToolBox::tab:disabled { - color: #696969; + color: #adadad; } QToolBox::tab:selected { background-color: #696969; - background-image: url(qss:images_dark-light/transparent.svg); + background-image: url(qss:images_classic/transparent.png); padding-right: 5px; background-repeat: none; } @@ -2412,7 +2468,7 @@ QToolBox::tab:selected { QToolBox::tab:selected:disabled { background-color: #696969; border-bottom: 0px solid #cccccc; - color: white; + color: #adadad; } QToolBox::tab:!selected { @@ -2420,7 +2476,7 @@ QToolBox::tab:!selected { } QToolBox::tab:!selected:disabled { - background-color: #7F7F7F; + background-color: #d8d8d8; } QToolBox::tab:hover { @@ -2444,8 +2500,8 @@ https://stackoverflow.com/questions/14581498/qt-stylesheet-for-hline-vline-color /* (dot) .QFrame fix #141, #126, #123 */ .QFrame { border-radius: 0px; - border: 0px solid #696968; - background-color: #696969; + border: 0px solid #ababab; + background-color: #f0f0f0; /* No frame */ /* HLine */ /* HLine */ @@ -2453,19 +2509,19 @@ https://stackoverflow.com/questions/14581498/qt-stylesheet-for-hline-vline-color .QFrame[frameShape="0"] { border-radius: 1.9px; - border: 1px solid #696968; + border: 1px solid #ababab; } .QFrame[frameShape="4"] { max-height: 1px; border: none; - background-color: #696968; + background-color: #ababab; } .QFrame[frameShape="5"] { max-width: 1px; border: none; - background-color: #7F7F7F; + background-color: #f0f0f0; } /* QSplitter -------------------------------------------------------------- @@ -2498,17 +2554,11 @@ QSplitter::handle:vertical { height: 1px; } QSplitter::handle:vertical:hover { - background-image: url(qss:images_dark-light/splitter_horizontal_light.svg); - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0.2 transparent,stop:0.5 @ThemeAccentColor1, stop:0.8 transparent); - background-position: center center; - background-repeat: none; - } + image: url(qss:images_classic/splitter_horizontal-lightgray.png); +} -QSplitter::handle:vertical:hover { - background-image: url(qss:images_dark-light/splitter_horizontal_light.svg); - background-position: center center; - background-repeat: none; - background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0.2 transparent,stop:0.5 @ThemeAccentColor1, stop:0.8 transparent); +QSplitter::handle:horizontal:hover { + image: url(qss:images_classic/splitter_vertical-lightgray.png); } /* QDateEdit, QDateTimeEdit ----------------------------------------------- @@ -2517,7 +2567,7 @@ QSplitter::handle:vertical:hover { QDateEdit, QDateTimeEdit { selection-background-color: @ThemeAccentColor1; border-style: solid; - border: 1px solid #696968; + border: 1px solid #ababab; border-radius: 1.9px; /* This fixes 103, 111 */ padding-top: 2px; @@ -2536,23 +2586,23 @@ QDateEdit::drop-down, QDateTimeEdit::drop-down { subcontrol-origin: padding; subcontrol-position: top right; width: 12px; - border-left: 1px solid #696968; + border-left: 1px solid #ababab; } QDateEdit::down-arrow, QDateTimeEdit::down-arrow { - image: url(qss:images_dark-light/down_arrow_disabled_light.svg); + image: url(qss:images_classic/Arrow-down-lightgray.png); height: 8px; width: 8px; } QDateEdit::down-arrow:on, QDateEdit::down-arrow:hover, QDateEdit::down-arrow:focus, QDateTimeEdit::down-arrow:on, QDateTimeEdit::down-arrow:hover, QDateTimeEdit::down-arrow:focus { - image: url(qss:images_dark-light/down_arrow_lighter.svg); + image: url(qss:images_classic/Arrow-down-black.png); } QDateEdit QAbstractItemView, QDateTimeEdit QAbstractItemView { - background-color: #7F7F7F; + background-color: #ffffff; border-radius: 2px; - border: 1px solid #696968; + border: 1px solid #ababab; selection-background-color: @ThemeAccentColor1; } @@ -2561,12 +2611,12 @@ QDateEdit QAbstractItemView, QDateTimeEdit QAbstractItemView { --------------------------------------------------------------------------- */ QAbstractView:hover { border: 1px solid @ThemeAccentColor1; - color: White; + color: black; } QAbstractView:selected { background: @ThemeAccentColor1; - color: White; + color: black; } /* PlotWidget ------------------------------------------------------------- @@ -2613,19 +2663,18 @@ Gui--UrlLabel { } Gui--NotificationLabel { - background-color: #7F7F7F; - border: 1px solid #696968; + background-color: #ffffff; + border: 1px solid #ababab; border-radius: 2px; } + Gui--OverlayToolButton:!hover{ background-color: transparent; - border: 0px solid transparent; - image: url(qss:overlay/close_light.svg); + image: url(qss:overlay/close_lightgray.svg); } Gui--OverlayToolButton:hover { - image: url(qss:overlay/close_red.svg); } @@ -2676,19 +2725,20 @@ Gui--OverlayToolButton[objectName="OBTN Float"]:hover { Gui--OverlayToolButton[objectName="OBTN Float"]:checked { image: url(qss:overlay/float_lighter.svg); } + /*================================================================================================== Forming windows below are the border settings. See also https://forum.freecad.org/viewtopic.php?p=439797#p439797 ==================================================================================================*/ QMdiSubWindow { - border:2px solid #696968; + border:2px solid #f0f0f0; border-radius: 2px; border-top-right-radius: 7px; border-top-left-radius: 7px; - background-color: #333333; + background-color: #f0f0f0; } QMdiSubWindow:hover { - border:2px solid #333333; + border:2px solid #ababab; } QMdiSubWindow:active { @@ -2700,21 +2750,52 @@ Settings menu #groupsTreeView: ==================================================================================================*/ QTreeView::branch#groupsTreeView:closed:has-children:has-siblings { - border-image: none 0; + margin-top: 15px; + margin-bottom: 15px; + border-image: none; + image: url(qss:images_classic/Arrow-right-black.png) 0; } QTreeView::branch#groupsTreeView:open:has-children:has-siblings { - border-image: none 0; + margin-left: 6px; + margin-right: 6px; + border-image: none; + image: url(qss:images_classic/Arrow-down-black.png) 0; } QTreeView::branch#groupsTreeView:open:has-children:!has-siblings { - border-image: none 0; + margin-left: 6px; + margin-right: 6px; + border-image: none; + image: url(qss:images_classic/Arrow-down-black.png) 0; } QTreeView::branch#groupsTreeView:has-children:!has-siblings:closed { - border-image: none 0; + margin-top: 15px; + margin-bottom: 15px; + border-image: none; + image: url(qss:images_classic/Arrow-right-black.png) 0; } QTreeView::branch#groupsTreeView:has-siblings:!adjoins-item { - border-image: none 0; + border-image: none; } + +/*================================================================================================== +Start page +==================================================================================================*/ +QWidget#thumbnailWidget { + background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #f0f0f0, stop:1 #fdfdfd); + border-radius: 8px; + margin-bottom: 3px; + margin-right: 7px; + border: 1px solid #ababab; +} + +QWidget#thumbnailWidget[state="hovered"] { + border: 0.5px solid @ThemeAccentColor2; +} + +QWidget#thumbnailWidget[state="pressed"] { + border: 1px solid @ThemeAccentColor1; +} \ No newline at end of file diff --git a/src/Gui/Stylesheets/Light-modern.qss b/src/Gui/Stylesheets/Light-modern.qss deleted file mode 100644 index 2f4e80c32e..0000000000 --- a/src/Gui/Stylesheets/Light-modern.qss +++ /dev/null @@ -1,2692 +0,0 @@ -/* -ABOUT -============================================================================================================ -Revised stylesheet based on the original from Pablo Gil Fernández made by MisterMaker - -KNOWN BUGS and TO DO -============================================================================================================ -Please, follow the link to get updated information: -https://forum.freecad.org/viewtopic.php?t=78431 - -INSTALLATION WHEN NECESSARY -============================================================================================================ -1) Place the .qss files and /images/ folder in the path that fits your OS: - OSX = /Users/[YOUR_USER_NAME]/Library/Preferences/FreeCAD/Gui/Stylesheets/ - WINDOWS = C:/[INSTALLATION_PATH]/FreeCAD/data/Gui/Stylesheets/ - LINUX = /home/[YOUR_USER_NAME]/.FreeCAD/Gui/Stylesheets/ - -============================================================================================================ -FOLLOWING CODES ARE CHANGED IN THE SETTINGS: - @ThemeAccentColor1 - @ThemeAccentColor2 -See Qt documentation: - - - https://doc.qt.io/qt-5/stylesheet.html - - https://doc.qt.io/qt-5/stylesheet-reference.html - - https://doc.qt.io/qt-5/stylesheet-examples.html - ---------------------------------------------------------------------------- */ - - -/* Reset elements ------------------------------------------------------------ - -Resetting everything helps to unify styles across different operating systems - ---------------------------------------------------------------------------- */ -* { - padding: 0px; - margin: 0px; - border: 0px; - border-style: none; - border-image: none; - outline: 0; -} - -/* specific reset for elements inside QToolBar */ -QToolBar * { - margin: 0px; - padding: 0px; -} - -/*hacks */ - -Gui--PropertyEditor--PropertyEditor QLineEdit:read-only, -Gui--PropertyEditor--PropertyEditor QLineEdit:disabled, -Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:read-only, -Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:disabled { - color: transparent; - border-color: transparent; - background-color: transparent; - selection-color: transparent; - selection-background-color: transparent; - -} -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel, -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel:disabled { - color: transparent; - background-color: transparent; - border: none; - border-radius: 0px; - margin: 0px; - padding: 0px; -} - -Gui--PropertyEditor--PropertyEditor QSpinBox, -Gui--PropertyEditor--PropertyEditor QDoubleSpinBox, -Gui--PropertyEditor--PropertyEditor QAbstractSpinBox, -Gui--PropertyEditor--PropertyEditor QLineEdit, -Gui--PropertyEditor--PropertyEditor QComboBox { - margin-left: 0px; - margin-right: 0px; - padding-top: 0px; - padding-bottom: 0px; - -} - -/* fix for column items background when a link is present */ -Gui--PropertyEditor--PropertyEditor > QWidget > QFrame:focus { - background-color: @ThemeAccentColor1; /* same as focused background color */ -} - -/* hack to hide weird redundant information inside cells with links and no editable data (but editable via "..." button) */ -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel { - color: #ffffff; - background-color: #ACC8E5; /* same as focused background color */ -} - -/*================================================================================================== -Main window -==================================================================================================*/ -QMainWindow, -QDialog, -QDockWidget, -QToolBar { - background-color: #2b2b2b; /* main background color */ -} - -QMdiArea { - background-image: url(qss:images_dark-light/background_freecad.svg); - background-position: center center; - background-repeat: no-repeat; -} -/*navgation src/Mod/Tux/NavigationIndicatorGui.py */ -Gui--NavigationIndicatorGui--BlenderNavigationStyle { -/*QAction#a4 {*/ - qproperty-icon: url(:/icons/icons/NavigationBlender_dark.svg); -} -/*===== -/* QWidget ---------------------------------------------------------------- - ---------------------------------------------------------------------------- */ -QWidget { - background-color: #f6f6f6; - border: 0px solid #cccccc; - padding: 0px; - color: black; - selection-background-color: @ThemeAccentColor1; - selection-color: black; -} - -QWidget:disabled { - color: #515151; - selection-background-color: @ThemeAccentColor1; - selection-color: #515151; -} - -QWidget::item:selected { - background-color: @ThemeAccentColor1; -} - - /* Causes issue with colorselector. -QWidget::item:hover:!selected { - background-color: @ThemeAccentColor1; -}*/ - -/* QMainWindow ------------------------------------------------------------ - -This adjusts the splitter in the dock widget, not qsplitter -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmainwindow - ---------------------------------------------------------------------------- */ -QMainWindow::separator { - /*background-color: #3c3c3c;*/ - border: 0px solid #696968; - spacing: 0px; - padding: 1px; -} - -QMainWindow::separator:vertical:hover { - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0.2 transparent,stop:0.5 @ThemeAccentColor1, stop:0.8 transparent); - /*background-color: #557bb6;*/ - image: url(qss:images_dark-light/splitter_vertical_dark.svg); -} - -QMainWindow::separator:horizontal:hover { - background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0.2 transparent,stop:0.5 @ThemeAccentColor1, stop:0.8 transparent); - /*background-color: #557bb6;*/ - image: url(qss:images_dark-light/splitter_horizontal_dark.svg); -} - -QMainWindow::separator:horizontal { - width: 4px; - margin-top: 0.1px; - margin-bottom: 0.1px; - /* image: url(qss:images_dark-light/splitter_horizontal_dark.svg);*/ -} - -QMainWindow::separator:vertical { - height: 4px; - margin-left: 0.1px; - margin-right: 0.1px; - /* image: url(qss:images_dark-light/splitter_vertical_dark.svg);*/ -} - -/* QToolTip --------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtooltip - ---------------------------------------------------------------------------- */ -QToolTip { - background-color: #f6f6f6; - color: black; - /* If you remove the border property, background stops working on Windows */ - border: none; - /* Remove padding, for fix combo box tooltip */ - padding: 0px; - /* Remove opacity, fix #174 - may need to use RGBA */ -} - -/* QStatusBar ------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qstatusbar - ---------------------------------------------------------------------------- */ -QStatusBar { - border: 0px solid #f5f5f5; - /* Fixes Spyder #9120, #9121 */ - background: #f6f6f6; - /* Fixes #205, black vertical borders separating items */ -} - -QStatusBar::item { - border: none; -} - -QStatusBar QToolTip { - background-color: #f6f6f6; - border: 1px solid #cccccc; - color: black; - /* Remove padding, for fix combo box tooltip */ - padding: 0px; - /* Reducing transparency to read better */ - opacity: 230; -} - -QStatusBar QLabel { - /* Fixes Spyder #9120, #9121 */ - background: transparent; -} - -/* QCheckBox -------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcheckbox - ---------------------------------------------------------------------------- */ -QCheckBox { - color: black; - padding: 0px; - outline: none; - border: 1px solid transparent; - background-color: transparent; -} - -QCheckBox:focus { - border: 1px solid @ThemeAccentColor2; -} - -QCheckBox QWidget:disabled { - background-color: transparent; - color: #515151; -} - -QCheckBox::indicator { - color: black; - background-color: white; - width: 12px; - height: 12px; - image:url(qss:images_dark-light/checkbox_unchecked_dark.svg); -} - -QCheckBox::indicator:unchecked { - background-color: white; - image:url(qss:images_dark-light/checkbox_unchecked_dark.svg); -} - -QCheckBox::indicator:unchecked:hover, QCheckBox::indicator:unchecked:focus, QCheckBox::indicator:unchecked:pressed { - background-color: @ThemeAccentColor1; - image:url(qss:images_dark-light/checkbox_unchecked_dark.svg); -} - -QCheckBox::indicator:unchecked:disabled { - background-color: #f5f5f5; - image:url(qss:images_dark-light/checkbox_unchecked_disabled.svg); -} - -QCheckBox::indicator:checked { - background-color: white; - /*border: 1px solid #cccccc; /* QRadioButton has the same color */ - image:url(qss:images_dark-light/checkbox_dark.svg); -} - -QCheckBox::indicator:checked:hover, QCheckBox::indicator:checked:pressed { - background-color: @ThemeAccentColor1; -} - -QCheckBox::indicator:checked:disabled { - background-color: #f5f5f5; - image: url(qss:images_dark-light/checkbox_checked_disabled.svg); -} - -QCheckBox::indicator:indeterminate { - background-color: white; - border: 1px solid #cccccc; - image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); -} - -QCheckBox::indicator:indeterminate:disabled { - background-color: #f5f5f5; - image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); -} - -QCheckBox::indicator:indeterminate:hover, QCheckBox::indicator:indeterminate:pressed { - background-color: @ThemeAccentColor1; /* QRadioButton has the same color */ -} - -/* QGroupBox -------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qgroupbox - ---------------------------------------------------------------------------- */ -QGroupBox { - font-weight: bold; - border: 1px solid #cccccc; - border-radius: 1.9px; - padding: 2px; - margin-top: 10px; - margin-bottom: 4px; -} - -QGroupBox::title { - subcontrol-origin: margin; - subcontrol-position: top left; - left: 4px; - padding-left: 2px; - padding-right: 4px; - padding-top: 6px; -} - -QGroupBox::indicator { - color: black; - background-color: #f5f5f5; - border: 1px solid #cccccc; - width: 12px; - height: 12px; - border-radius:1px; -} - -QGroupBox::indicator:unchecked { - background-color: #cccccc; - border: 1px solid #cccccc; - image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); -} - -QGroupBox::indicator:unchecked:hover, QGroupBox::indicator:unchecked:focus, QGroupBox::indicator:unchecked:pressed { - background-color: @ThemeAccentColor1; -} - -QGroupBox::indicator:unchecked:disabled { - background-color: white; - border: 1px solid #cccccc; -} - -QGroupBox::indicator:checked { - border: none; - image:url(qss:images_dark-light/checkbox_dark.svg); -} - -QGroupBox::indicator:checked:hover, QGroupBox::indicator:checked:focus, QGroupBox::indicator:checked:pressed { - background-color: @ThemeAccentColor1; -} - -QGroupBox::indicator:checked:disabled { - background-color: @ThemeAccentColor1; -} - -/* QRadioButton ----------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qradiobutton - ---------------------------------------------------------------------------- */ -QRadioButton { - background-color: transparent; - color: black; - border: none; - spacing: 4px; - padding-top: 4px; - padding-bottom: 4px; - outline: none; -} - -QRadioButton:focus { - border: 1px solid @ThemeAccentColor2; -} - -QRadioButton:disabled { - background-color: #f6f6f6; - color: #515151; -} - -QRadioButton QWidget { - background-color: transparent; - color: black; - spacing: 0px; - padding: 0px; - outline: none; - border: none; -} - -QRadioButton::indicator { - background-color: #f8f8f8; - border: 1px solid #cccccc; - border-radius: 6px; - margin-left: 0px; - height: 11px; - width: 11px; -} - -QRadioButton::indicator:unchecked { - /*image:url(qss:images_dark-light/radiobutton_dark.svg);*/ -} - -QRadioButton::indicator:unchecked:hover, QRadioButton::indicator:unchecked:pressed { - background-color: @ThemeAccentColor1; - border: 1px solid @ThemeAccentColor1; - border-radius: 6px; -} - -QRadioButton::indicator:unchecked:disabled { - /*image:url(qss:images_dark-light/radiobutton_dark.svg);*/ - border: 1px solid #cccccc; -} - -QRadioButton::indicator:checked { - image:url(qss:images_dark-light/radiobutton_dark.svg); -} - -QRadioButton::indicator:checked:hover, QRadioButton::indicator:checked:pressed { - background-color: @ThemeAccentColor1; - border: 1px solid @ThemeAccentColor1; - border-radius: 6px; - image:url(qss:images_dark-light/radiobutton_dark.svg); -} - -QRadioButton::indicator:checked:disabled { - outline: none; - background-color: #cccccc; - image:url(qss:images_dark-light/radiobutton_dark.svg); -} - -/* QMenuBar --------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenubar - ---------------------------------------------------------------------------- */ -QMenuBar { - background-color: #f8f8f8; - /*padding: 1px; - border: 0px solid rgba(255,255,255,140);*/ - color: black; - selection-background-color: @ThemeAccentColor1; -} - -QMenuBar:focus { - border: 1px solid @ThemeAccentColor2; -} - -QMenuBar::item { - background: transparent; - /*padding-left:5px; - padding-right: 5px; - padding-bottom: 1px; - padding-top: 1px;*/ -} - -QMenuBar::item:selected { - background: transparent; - border: 0px solid #cccccc; - background-color: @ThemeAccentColor1; -} - -QMenuBar::item:pressed { - /*padding: 2px; - padding-left: 10px; - padding-right: 10px;*/ - border: 0px solid #cccccc; - background-color: @ThemeAccentColor1; - color: black; - /*margin-bottom: 0px; - padding-bottom: 0px;*/ -} - -/* QMenu ------------------------------------------------------------------ - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenu - ---------------------------------------------------------------------------- */ -QMenu { - border-bottom: 2px rgba(100,100,100,140); - border-right: 2px rgba(100,100,100,140); - color: black; - margin: 0px; - background-color: #f8f8f8; - selection-background-color: @ThemeAccentColor1; -} - -QMenu::separator { - height: 2px; - background-color: #cccccc; - margin-left: 30%; - margin-right: 30%; -} - -QMenu::item { - background-color: transparent; - padding: 2px 2px; /* make room for icon at left */ - /* Reserve space for selection border */ - border: 0px transparent #cccccc; -} - -QMenu::item:selected { - color: black; - background-color: @ThemeAccentColor1; -} - -QMenu::item:pressed { - background-color: @ThemeAccentColor1; -} - -QMenu::icon { - margin-left: 5px; - width: 14px; - height: 14px; -} - -QMenu::indicator { - margin-left: 2px; - margin-right: 2px; - padding: 0px; - width: 12px; - height: 12px; - /* non-exclusive indicator = check box style indicator (see QActionGroup::setExclusive) */ - /* exclusive indicator = radio button style indicator (see QActionGroup::setExclusive) */ -} - -QMenu::icon:checked { /* appearance of a 'checked' icon */ - background: @ThemeAccentColor1; - margin-left: -5px; - border: 5px solid @ThemeAccentColor1; - position: absolute; - border-radius: 0px; -} -QMenu::indicator:non-exclusive:unchecked { - image: url(qss:images_dark-light/checkbox_unchecked_dark.svg); -} - -QMenu::indicator:non-exclusive:unchecked:hover, QMenu::indicator:non-exclusive:unchecked:focus, QMenu::indicator:non-exclusive:unchecked:pressed { - border: none; - background: @ThemeAccentColor1; -} - -QMenu::indicator:non-exclusive:unchecked:disabled { - image: url(qss:images_dark-light/checkbox_unchecked_disabled.svg); -} - -QMenu::indicator:non-exclusive:checked { - image:url(qss:images_dark-light/checkbox_dark.svg); -} - -QMenu::indicator:non-exclusive:checked:hover, QMenu::indicator:non-exclusive:checked:focus, QMenu::indicator:non-exclusive:checked:pressed { - border: none; - background: @ThemeAccentColor1; -} - -QMenu::indicator:non-exclusive:checked:disabled { - image:url(qss:images_dark-light/checkbox_checked_disabled.svg); -} - -QMenu::indicator:non-exclusive:indeterminate { - image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); -} - -QMenu::indicator:non-exclusive:indeterminate:disabled { - image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); -} - -QMenu::indicator:non-exclusive:indeterminate:focus, QMenu::indicator:non-exclusive:indeterminate:hover, QMenu::indicator:non-exclusive:indeterminate:pressed { - image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); -} - -QMenu::indicator:exclusive:unchecked { - image: url(qss:images_dark-light/transparent.svg); -} - -QMenu::indicator:exclusive:unchecked:hover, QMenu::indicator:exclusive:unchecked:focus, QMenu::indicator:exclusive:unchecked:pressed { - border: none; - outline: none; - background: @ThemeAccentColor1; - image: url(qss:images_dark-light/checkbox_unchecked_light.svg); -} - -QMenu::indicator:exclusive:unchecked:disabled { - image: url(qss:images_dark-light/checkbox_unchecked_dark.svg); -} - -QMenu::indicator:exclusive:checked { - border: none; - outline: none; - image:url(qss:images_dark-light/radiobutton_dark.svg); -} - -QMenu::indicator:exclusive:checked:hover, QMenu::indicator:exclusive:checked:focus, QMenu::indicator:exclusive:checked:pressed { - border: none; - outline: none; - background: @ThemeAccentColor1; - image: url(qss:images_dark-light/checkbox_unchecked_dark.svg); -} - -QMenu::indicator:exclusive:checked:disabled { - outline: none; - image:url(qss:images_dark-light/radiobutton_dark.svg); -} - -QMenu::right-arrow { - margin: 5px; - padding-left: 12px; - image:url(qss:images_dark-light/right_arrow_darker.svg); - height: 12px; - width: 12px; - background-color: transparent; -} - -/* QAbstractItemView ------------------------------------------------------ - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox - ---------------------------------------------------------------------------- */ -QAbstractItemView { - alternate-background-color: #cfcfcf; - color: black; - border: 1px solid #cccccc; - border-radius: 2px; -} - -QAbstractItemView QLineEdit { - padding: 2px; -} - -/* QAbstractScrollArea ---------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea - ---------------------------------------------------------------------------- */ -QAbstractScrollArea { - background-color: transparent; - border: 0px solid #cccccc; - border-radius: 0px; - /* fix #159 */ - padding: 0px; - /* remove min-height to fix #244 */ - color: black; -} - -QAbstractScrollArea:disabled { - color: #515151; -} - -/* QScrollArea ------------------------------------------------------------ - ---------------------------------------------------------------------------- -text input field disabled!!!!*/ -QScrollArea QWidget:disabled { - background-color: #f6f6f6; -} - -/* QScrollBar ------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qscrollbar - ---------------------------------------------------------------------------- */ -QScrollBar:horizontal { - height: 16px; - margin: 2px 16px 2px 16px; - border: 0px solid #cccccc; - border-radius: 1.9px; - background-color: #f6f6f6; -} - -QScrollBar:vertical { - background-color: #f6f6f6; - width: 16px; - margin: 16px 2px 16px 2px; - border: 0px solid #cccccc; - border-radius: 1.9px; -} - -QScrollBar::handle:horizontal { - background-color: #d4d4d4; - border: 1px solid #f6f6f6; - border-radius: 1.9px; - min-width: 8px; -} - -QScrollBar::handle:horizontal:hover { - background-color: @ThemeAccentColor1; - border: #cccccc; - border-radius: 1.9px; - min-width: 8px; -} - -QScrollBar::handle:horizontal:focus { - border: 1px solid @ThemeAccentColor2; -} - -QScrollBar::handle:vertical { - background-color: #d4d4d4; - border: 1px solid #cccccc; - min-height: 8px; - border-radius: 1.9px; -} - -QScrollBar::handle:vertical:hover { - background-color: @ThemeAccentColor1; - border: #cccccc; - border-radius: 1.9px; - min-height: 8px; -} - -QScrollBar::handle:vertical:focus { - border: 1px solid @ThemeAccentColor2; -} - -QScrollBar::add-line:horizontal { - margin: 0px 0px 0px 0px; - border-image: url(qss:images_dark-light/right_arrow_darker.svg); - height: 10px; - width: 7px; - subcontrol-position: right; - subcontrol-origin: margin; -} - -QScrollBar::add-line:horizontal:hover, QScrollBar::add-line:horizontal:on { - border-image: url(qss:images_dark-light/right_arrow_darker.svg); - background-color: @ThemeAccentColor1; - height: 10px; - width: 7px; - subcontrol-position: right; - subcontrol-origin: margin; -} - -QScrollBar::add-line:vertical { - margin: 0px 0px 0px 0px; - border-image: url(qss:images_dark-light/down_arrow_darker.svg); - height: 7px; - width: 10px; - subcontrol-position: bottom; - subcontrol-origin: margin; -} - -QScrollBar::add-line:vertical:hover, QScrollBar::add-line:vertical:on { - border-image: url(qss:images_dark-light/down_arrow_darker.svg); - background-color: @ThemeAccentColor1; - height: 7px; - width: 10px; - subcontrol-position: bottom; - subcontrol-origin: margin; -} - -QScrollBar::sub-line:horizontal { - margin: 0px 0px 0px 0px; - border-image: url(qss:images_dark-light/left_arrow_darker.svg); - height: 10px; - width: 7px; - subcontrol-position: left; - subcontrol-origin: margin; -} - -QScrollBar::sub-line:horizontal:hover, QScrollBar::sub-line:horizontal:on { - border-image: url(qss:images_dark-light/left_arrow_darker.svg); - background-color: @ThemeAccentColor1; - height: 10px; - width: 8px; - subcontrol-position: left; - subcontrol-origin: margin; -} - -QScrollBar::sub-line:vertical { - margin: 0px 0px 0px 0px; - border-image: url(qss:images_dark-light/up_arrow_darker.svg); - height: 8px; - width: 10px; - subcontrol-position: top; - subcontrol-origin: margin; -} - -QScrollBar::sub-line:vertical:hover, QScrollBar::sub-line:vertical:on { - background-color: @ThemeAccentColor1; - border-image: url(qss:images_dark-light/up_arrow_darker.svg); - height: 8px; - width: 10px; - subcontrol-position: top; - subcontrol-origin: margin; -} - -QScrollBar::up-arrow:horizontal, QScrollBar::down-arrow:horizontal { - background: none; -} - -QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical { - background: none; -} - -QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal { - background: none; -} - -QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { - background: none; -} - -/* QTextEdit -------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-specific-widgets - - -report view ---------------------------------------------------------------------------- */ -QTextEdit { - background-color: #f6f6f6; - color: black; - border-radius: 1.9px; - border: 0px solid #cccccc; -} - -QTextEdit:focus { - border: 1px solid @ThemeAccentColor2; -} - -QTextEdit:selected { - background: #346792; - color: black; -} - -/* QPlainTextEdit --------------------------------------------------------- -Python ---------------------------------------------------------------------------- */ -QPlainTextEdit { - background-color: white; - color: black; - border-radius: 1.9px; - border: 0px solid #cccccc; -} - -QPlainTextEdit:focus { - border: 1px solid @ThemeAccentColor2; -} - -QPlainTextEdit:selected { - background: @ThemeAccentColor1; - color: black; -} - -/* QSizeGrip -------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsizegrip - ---------------------------------------------------------------------------- */ -QSizeGrip { - background: transparent; - width: 12px; - height: 12px; - image:url(qss:images_dark-light/sizegrip_dark.svg); -} - -/* QStackedWidget --------------------------------------------------------- - ---------------------------------------------------------------------------- */ -QStackedWidget { - padding: 0px; - border: 0px solid #cccccc; -} - -/* QToolBar --------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbar - ---------------------------------------------------------------------------- */ -QToolBar { - background-color: #f6f6f6; - border-bottom: 0px solid rgba(0,0,0,120); - padding: 1px; - font-weight: bold; - spacing: 1px; -} - -QToolBar:disabled { - /* Fixes #272 */ - background-color: #f6f6f6; -} - -QToolBar::handle:horizontal { - width: 8px; - margin: 3px 3px; - background-position: top right; - background-repeat: repeat-y; - background-image: url(qss:images_dark-light/Hmovetoolbar_dark.svg); -} - -QToolBar::handle:vertical { - height: 8px; - margin: 3px 3px; - background-position: left bottom; - background-repeat: repeat-x; - background-image: url(qss:images_dark-light/Vmovetoolbar_dark.svg); -} - -QToolBar::separator:horizontal { - width: 2px; - margin: 4px 4px; - background-color: transparent; -} - -QToolBar::separator:vertical { - height: 2px; - margin: 4px 4px; - background-color: transparent; -} - -/*The "show more" button (it can also be stylable with "QToolBarExtension" icon is not working Qproperty works but breaks when you move the toolbar see also */ -QToolButton#qt_toolbar_ext_button { -margin: 0px; -padding: 0px; -background-color: #f6f6f6; -/*background-image: url(qss:images_dark-light/more_dark.svg);*/ -background-repeat: none; -background-position: center center; -} - -QToolButton#qt_toolbar_ext_button:hover { -/* background-image: url(qss:images_dark-light/more_dark.svg);*/ -background-color: @ThemeAccentColor1; -} - -QToolButton#qt_toolbar_ext_button:on { -/* background-image: url(qss:images_dark-light/more_dark.svg);*/ -border-color: #cccccc; -background-color: @ThemeAccentColor1; -} - - -/* QAbstractSpinBox ------------------------------------------------------- - ---------------------------------------------------------------------------- */ -QAbstractSpinBox, -QSpinBox { - background-color: white; - border: 1px solid #cccccc; - color: black; - /* This fixes 103, 111 */ - /* padding-top: 0px; - /* This fixes 103, 111 */ - /*padding-bottom: 0px; - /*padding-left: 4px; - /*padding-right: 4px; - border-radius: 1.9px;*/ - min-height: 1.7em; - /* min-width: 5px; removed to fix 109 */ -} - -QAbstractSpinBox:up-button { - background-color: #cccccc; - subcontrol-origin: border; - subcontrol-position: top right; - border-left: 1px solid #cccccc; - border-bottom: 1px solid #cccccc; - border-top-left-radius: 0; - border-bottom-left-radius: 0; - /*margin: 1px;*/ - /*width: 12px; - /*margin-bottom: -1px;*/ -} - -QAbstractSpinBox::up-arrow, QAbstractSpinBox::up-arrow:disabled, QAbstractSpinBox::up-arrow:off { - image: url(qss:images_dark-light/up_arrow_disabled_dark.svg); - /* height: 8px; - width: 8px;*/ -} - -QAbstractSpinBox::up-arrow:hover { - /*background-color: @ThemeAccentColor1;*/ - image: url(qss:images_dark-light/up_arrow_darker.svg); -} - -QAbstractSpinBox:down-button { - background-color: #cccccc; - subcontrol-origin: border; - subcontrol-position: bottom right; - border-left: 1px solid #cccccc; - border-top: 1px solid #cccccc; - border-top-left-radius: 0; - border-bottom-left-radius: 0; - /*margin: 1px;*/ - /*width: 12px; - /*margin-top: -1px;*/ -} - -QAbstractSpinBox::down-arrow, QAbstractSpinBox::down-arrow:disabled, QAbstractSpinBox::down-arrow:off { - image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); - /*height: 8px; - width: 8px;*/ -} - -QAbstractSpinBox::down-arrow:hover { - /*background-color: @ThemeAccentColor1;*/ image:url(qss:images_dark-light/down_arrow_darker.svg); -} - -QAbstractSpinBox:hover { - /*border: 1px solid @ThemeAccentColor1; - color: black;*/ -} - -QAbstractSpinBox:focus { - border: 1px solid @ThemeAccentColor2; -} - -QAbstractSpinBox:selected { - background: @ThemeAccentColor2; - /*color: black;*/ -} - -/* ------------------------------------------------------------------------ */ -/* DISPLAYS --------------------------------------------------------------- */ -/* ------------------------------------------------------------------------ */ -/* QLabel ----------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe - ---------------------------------------------------------------------------- */ -QLabel { - background-color: transparent; - border: 0px solid #cccccc; - padding: 2px; - margin: 0px; - color: black; -} - -QLabel:disabled { - background-color: transparent; - border: 0px solid #cccccc; - color: #9f0d00; -} - -QLabel[haslink="true"] { - color: darkblue; -} - - -/* QTextBrowser ----------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea - ---------------------------------------------------------------------------- */ -QTextBrowser { - background-color: white; - border: 1px solid #cccccc; - color: black; - border-radius: 1.9px; -} - -QTextBrowser:disabled { - background-color: #f6f6f6; - border: 1px solid #cccccc; - color: #005aa4; - border-radius: 1.9px; -} - -QTextBrowser:hover, QTextBrowser:!hover, QTextBrowser:selected, QTextBrowser:pressed { - border: 1px solid #455364; -} - -/* QGraphicsView ---------------------------------------------------------- - ---------------------------------------------------------------------------- */ -QGraphicsView { - background-color: transparent; - border: 0px solid #455364; - color: black; - border-radius: 0px; -} - -QGraphicsView:disabled { - background-color: white; - border: 0px solid #cccccc; - color: #515151; - border-radius: 0px; -} - -QGraphicsView:hover, QGraphicsView:!hover, QGraphicsView:selected, QGraphicsView:pressed { - border: 0px solid #ff00f7; -} - -/* QCalendarWidget -------------------------------------------------------- - ---------------------------------------------------------------------------- */ -QCalendarWidget { - border: 1px solid #cccccc; - border-radius: 1.9px; -} - -QCalendarWidget:disabled { - background-color: #bfc1c0; - color: #515151; -} - -/* QLCDNumber ------------------------------------------------------------- - ---------------------------------------------------------------------------- */ -QLCDNumber { - background-color: #1aff00; - color: black; -} - -QLCDNumber:disabled { - background-color: #f6f6f6; - color: #515151; -} - -/* QProgressBar ----------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qprogressbar - ---------------------------------------------------------------------------- */ -QProgressBar { - background-color: #515151; - border: 1px solid #cccccc; - color: black; - border-radius: 1.9px; - text-align: center; -} - -QProgressBar:disabled { - background-color: #f8f8f8; - border: 1px solid #cccccc; - color: #515151; - border-radius: 1.9px; - text-align: center; -} - -QProgressBar::chunk { - background-color: @ThemeAccentColor1; - color: #f6f6f6; - border-radius: 1.9px; -} - -QProgressBar::chunk:disabled { - background-color: #f8f8f8; - color: #cccccc; - border-radius: 1.9px; -} - -/* ------------------------------------------------------------------------ */ -/* BUTTONS ---------------------------------------------------------------- */ -/* ------------------------------------------------------------------------ */ -/* QPushButton ------------------------------------------------------------ - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qpushbutton - ---------------------------------------------------------------------------- */ -QPushButton { - background-color: #d4d4d4; - color: black; - border-radius: 2px; - padding: 2px; - outline: none; - border: none; -} - -QPushButton:disabled { - background-color: #f6f6f6; - color: #515151; - border-radius: 2px; - padding: 2px; -} - -QPushButton:checked { - background-color: @ThemeAccentColor1; - border-radius: 2px; - padding: 2px; - outline: none; -} - -QPushButton:checked:disabled { - background-color: @ThemeAccentColor1; - color: #f5f5f5; - border-radius: 2px; - padding: 2px; - outline: none; -} - -QPushButton:checked:selected { - background: @ThemeAccentColor1; -} - -QPushButton:hover { - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); - color: White; -} - -QPushButton:pressed { - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); -} - -QPushButton:selected { - background: @ThemeAccentColor2; - color: black; -} - -QPushButton::menu-indicator { - subcontrol-origin: padding; - subcontrol-position: bottom right; - bottom: 4px; -} - -QDialogButtonBox QPushButton { - /* Issue # 194 # 248 - Special case of QPushButton inside dialogs, for better UI */ - min-width: 80px; -} - -/* QToolButton ------------------------------------------------------------ - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbutton - ---------------------------------------------------------------------------- */ -QToolButton { - background-color: transparent; - color: black; - border-radius: 1px; - padding: 0px; - outline: none; - border: none; - /* The subcontrols below are used only in the DelayedPopup mode */ - /* The subcontrols below are used only in the MenuButtonPopup mode */ - /* The subcontrol below is used only in the InstantPopup or DelayedPopup mode */ -} - -QToolButton:disabled { - background-color: #f8f8f8; - color: #515151; - border-radius: 1px; - padding: 0px; -} - -QToolButton:checked { - background-color: @ThemeAccentColor1; - border-radius: 1.9px; - padding: 0px; - outline: none; -} - -QToolButton:checked:disabled { - background-color: @ThemeAccentColor1; - color: #515151; - border-radius: 1.9px; - padding: 0px; - outline: none; -} - -QToolButton:checked:hover { - background-color: @ThemeAccentColor1; - color: black; -} - -QToolButton:checked:pressed { - background-color: @ThemeAccentColor1; -} - -QToolButton:checked:selected { - background: @ThemeAccentColor2; - color: black; -} - -QToolButton:hover { - background-color: @ThemeAccentColor1; - color: black; -} - -QToolButton:pressed { - background-color: @ThemeAccentColor2; -} - -QToolButton:selected { - background: @ThemeAccentColor1; - color: black; -} - -QToolButton[popupMode="0"] { - /* Only for DelayedPopup */ - padding-right: 20px; -} - -QToolButton[popupMode="1"] { - /* Only for MenuButtonPopup */ - padding-right: 20px; -} -QToolButton[popupMode="0"]::menu-button { - border: none; -} - -QToolButton[popupMode="0"]::menu-button:hover { - border: none; - border-left: 2px solid #fe0000; - border-radius: 0px; -} -QToolButton[popupMode="1"]::menu-button { - border: none; -} - -QToolButton[popupMode="1"]::menu-button:hover { - border: none; - border-left: 2px solid #e5ff00; - border-radius: 0px; -} - -QToolButton[popupMode="2"] { - /* Only for InstantPopup */ - padding-right: 20px; -} - -QToolButton::menu-button { - border-bottom: 0px solid #f6f6f6; - border-radius: 2px; - /* 16px width + 4px for border = 20px allocated above */ - width: 1.6ex; - padding: 2px; - border-radius: 2px; - border: 0px #000000; -} - -QToolButton::menu-button:hover { - /* background: rgba(0, 0, 0, 0.5);*/ - -} - -QToolButton::menu-button:checked:hover { - /* background: rgba(0, 0, 0, 0.5);*/ -} - -QToolButton::menu-indicator { - /* Exclude a shift for better image */ - subcontrol-position: right bottom; - /* Shift it a bit */ -} - -QToolButton::menu-arrow { - image: url(qss:images_dark-light/more_arrow_dark.svg); - width: 1.5ex; - height: 1.5ex; - subcontrol-position: right bottom; - background: transparent; -} -QToolButton::menu-arrow:open { - subcontrol-position: right bottom; - width: 1.7ex; - height: 1.7ex; - image: url(qss:images_dark-light/more_arrow_dark.svg); -} -QToolButton::menu-arrow:hover { - width: 1.7ex; - height: 1.7ex; - image: url(qss:images_dark-light/more_arrow_dark.svg); -} - -/* QCommandLinkButton ----------------------------------------------------- - ---------------------------------------------------------------------------- */ -QCommandLinkButton { - background-color: transparent; - border: 1px solid #cccccc; - color: black; - border-radius: 1.9px; - padding: 0px; - margin: 0px; -} - -QCommandLinkButton:disabled { - background-color: transparent; - color: #515151; -} - -/* ------------------------------------------------------------------------ */ -/* INPUTS - NO FIELDS ----------------------------------------------------- */ -/* ------------------------------------------------------------------------ */ -/* QComboBox -------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox - ---------------------------------------------------------------------------- */ -QComboBox { - border: 1px solid #cccccc; - background: white; - border-radius: 2px; - selection-background-color: @ThemeAccentColor1; - padding-left: 2px; - padding-right: 2px; - /* padding-right = 36; 4 + 16*2 See scrollbar size */ - /* changed to 4px to fix #239 */ - /* Fixes #103, #111 */ - min-height: 1.5em; - margin: 0px -1px 0px 0px; /* hack for Mac... try it on Windows and Linux */ - /* padding-top: 2px; removed to fix #132 */ - /* padding-bottom: 2px; removed to fix #132 */ - /* min-width: 75px; removed to fix #109 */ - /* Needed to remove indicator - fix #132 */ -} -QComboBox:editable { - background: white; -} -QComboBox QAbstractItemView { - border: 0px solid #cccccc; - border-radius: 0px; - background-color: white; - selection-background-color: @ThemeAccentColor1; -} - -QComboBox QAbstractItemView:hover { - background-color:white; - color: black; -} - -QComboBox QAbstractItemView:selected { - background: @ThemeAccentColor1; - color: black; -} - -QComboBox QAbstractItemView:alternate { - background: #f5f5f5; -} - -QComboBox:checked { - color: black; -} - -QComboBox:disabled { - background-color: #cccccc; - color: #515151; -} - -QComboBox:hover { - /*background-color: @ThemeAccentColor1;*/ - border: 1px solid @ThemeAccentColor1; -} - -QComboBox:focus { - border: 1px solid @ThemeAccentColor2; -} - -QComboBox:on { - selection-background-color: @ThemeAccentColor2; -} - -QComboBox::indicator { - padding-left: 8px; - background-color: transparent; -} - -QComboBox::indicator:checked { - width: 12px; - height: 12px; - image:url(qss:images_dark-light/check_dark.svg); -} - -QComboBox::item { - /* Remove to fix #282, #285 and MR #288*/ - /*&:checked { - font-weight: bold; - } - - &:selected { - border: 0px solid transparent; - } - */ -} -/* Background color of popup-list.*/ - -/* Needed to complete the rule set. */ -QComboBox::item:alternate { - background: #f5f5f5; -} - -/* Color of the selected list item. */ -QComboBox::item:selected { - border: 1px solid @ThemeAccentColor2; - background: @ThemeAccentColor2; -} - -QComboBox::drop-down { - subcontrol-origin: padding; - background-color: #d4d4d4; - subcontrol-position: top right; - width: 14px; - border-left: 1px solid #cccccc; -} -QComboBox::drop-down:hover { - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); -} - -QComboBox::down-arrow { - image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); - height: 10px; - width: 10px; -} - -QComboBox::down-arrow:on, QComboBox::down-arrow:hover, QComboBox::down-arrow:focus { - image: url(qss:images_dark-light/down_arrow_darker.svg); -} - - -/*================================================================================================== -Tasks panel (custom FreeCAD class) -==================================================================================================*/ -Gui--PropertyEditor--PropertyEditor { - qproperty-groupTextColor: black; - qproperty-groupBackground: #f5f5f5; - border: 0px solid #cccccc; - -} - -/* Action group */ -QFrame[class="panel"] { -background-color: transparent; /* temporal (transparent background) */ - -} - -QSint--ActionGroup { -padding: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ -margin: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ -} - -/* Separator line */ -QSint--ActionGroup QFrame[height="1"], -QSint--ActionGroup QFrame[height="2"], -QSint--ActionGroup QFrame[height="3"], -QSint--ActionGroup QFrame[width="1"], -QSint--ActionGroup QFrame[width="2"], -QSint--ActionGroup QFrame[width="3"] { -border-color: rgba(0,0,0,60); -} - -/* Panel header */ -QSint--ActionGroup QFrame[class="header"] { -border-top: 1px solid #cccccc; -border-left: 1px solid #cccccc; -border-right: 1px solid #cccccc; -background-color: #d4d4d4; /* Task Panel Header background color */ -border-top-left-radius: 3px; -border-top-right-radius: 3px; -border-bottom-left-radius: 0px; -border-bottom-right-radius: 0px; -margin: 0px; -padding: 0px; -} - -QSint--ActionGroup QFrame[class="header"]:hover { -background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); -} - -QSint--ActionGroup QToolButton[class="header"] { -color: black; /* Task Panel Header text color */ -text-align: left; -font-weight: bold; -border: none; -margin: 0px; -padding: 0px; -} - -QSint--ActionGroup QFrame[class="header"] QLabel { -background-color: transparent; -background-image: url(qss:images_dark-light/down_arrow_darker.svg); -background-repeat: none; -background-position: center center; -padding: 0px; -margin: 0px; -} - -QSint--ActionGroup QFrame[class="header"] QLabel:hover { -background-color: transparent; -background-image: url(qss:images_dark-light/down_arrow_darker.svg); -} - -QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"] { -background-color: transparent; -background-image: url(qss:images_dark-light/up_arrow_darker.svg); -background-repeat: none; -background-position: center center; -padding: 0px; -margin: 0px; -} - -QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"]:hover { -background-color: transparent; -background-image: url(qss:images_dark-light/up_arrow_darker.svg); -} - -QSint--ActionGroup QFrame[class="content"] { -background-color: transparent; /* Task Panel background color */ -margin: 0px; -padding: 0px; -border-bottom: 1px solid #cccccc; -border-left: 1px solid #cccccc; -border-right: 1px solid #cccccc; -border-top-left-radius: 0px; -border-top-right-radius: 0px; -border-bottom-left-radius: 3px; -border-bottom-right-radius: 3px; -} - -QSint--ActionGroup QFrame[class="content"] > QWidget { -background-color: #f6f6f6; /* Task Panel background color */ -} - -/* Fixs for tabs inside Task Panel */ -QSint--ActionGroup QFrame[class="content"] QTabBar::tab:top:selected { -border-bottom-color: @ThemeAccentColor1; /* same as Task Panel background color */ -} - -QSint--ActionGroup QFrame[class="content"] QTabBar::tab:bottom:selected { -border-top-color: @ThemeAccentColor1; /* same as Task Panel background color */ -} - -QSint--ActionGroup QFrame[class="content"] QTabBar::tab:right:selected { -border-right-color: @ThemeAccentColor1; /* same as Task Panel background color */ -} - -QSint--ActionGroup QFrame[class="content"] QTabBar::tab:left:selected { -border-left-color: @ThemeAccentColor1; /* same as Task Panel background color */ -} - -/* Fix for buttons with icons that showed cropped (still not happy with result) */ -QSint--ActionGroup QFrame[class="content"] > QWidget > QPushButton { -padding: 2px; /* bigger padding crops text and icons... */ -margin: 0px; -} - -/* Fix for lists inside task panels */ /* sketcher constraints list */ -QSint--ActionGroup QFrame[class="content"] QTreeView, -QSint--ActionGroup QFrame[class="content"] QListView, -QSint--ActionGroup QFrame[class="content"] QTableView { -color: black; -background-color: white; -} - - -/* found inside Part Design Workbench and "make a draft on a face" Task panel options */ -QSint--ActionGroup QFrame[class="content"] QToolButton { - color: black; - text-align: center; - background-color: #d4d4d4; - border: 0px solid #adadad; - padding: 1px 1px; /* different than regular QPushButton */ - margin: 0px; /* different than regular QPushButton */ - min-height: 16px; /* same as QTabBar QPushButton min-width */ - border-radius: 1px; -} - -QSint--ActionGroup QFrame[class="content"] QToolButton:hover{ - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); - -} -QSint--ActionGroup QFrame[class="content"] QToolButton:focus { - border: 1px solid @ThemeAccentColor2; -} - -QSint--ActionGroup QFrame[class="content"] QToolButton:disabled, -QSint--ActionGroup QFrame[class="content"] QToolButton:disabled:checked { - color: #455364; - background-color: #cccccc; -} - -QSint--ActionGroup QFrame[class="content"] QToolButton:pressed { - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); - -} - -/* QSlider ---------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qslider - ---------------------------------------------------------------------------- */ -QSlider:disabled { - background: #f6f6f6; -} - -QSlider:focus { - /*border: 1px solid @ThemeAccentColor2;*/ -} - -QSlider::groove:horizontal { - background: #F6F6F6; - border: 1px solid #cccccc; - height: 4px; - margin: 0px; - border-radius: 1.9px; -} - -QSlider::groove:vertical { - background: #F6F6F6; - border: 1px solid #cccccc; - width: 4px; - margin: 0px; - border-radius: 1.9px; -} - -QSlider::add-page:vertical { - background: @ThemeAccentColor1; - border: 1px solid #cccccc; - width: 4px; - margin: 0px; - border-radius: 1.9px; -} - -QSlider::add-page:vertical :disabled { - background: #cccccc; -} - -QSlider::sub-page:horizontal { - background: @ThemeAccentColor1; - border: 1px solid #cccccc; - height: 4px; - margin: 0px; - border-radius: 1.9px; -} - -QSlider::sub-page:horizontal:disabled { - background: #cccccc; -} - -QSlider::handle:horizontal { - background: #cccccc; - border: 1px solid #cccccc; - width: 10px; - height: 8px; - margin: -4px 0px; - border-radius: 6px; -} - -QSlider::handle:horizontal:hover { - background: @ThemeAccentColor1; - border: 1px solid #cccccc; -} - -QSlider::handle:horizontal:focus { - border: 1px solid #cccccc; - background: @ThemeAccentColor2; -} - -QSlider::handle:vertical { - background: #cccccc; - border: 1px solid #cccccc; - width: 10px; - height: 8px; - margin: 0px -4px; - border-radius: 6px; -} - -QSlider::handle:vertical:hover { - background: @ThemeAccentColor1; - border: 1px solid #cccccc; -} - -QSlider::handle:vertical:focus { - border: 1px solid @ThemeAccentColor2; -} - -/* QLineEdit -------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlineedit - ---------------------------------------------------------------------------- */ -QLineEdit { - background-color: white; - padding-top: 2px; - /* This QLineEdit fix 103, 111 */ - padding-bottom: 2px; - /* This QLineEdit fix 103, 111 */ - padding-left: 4px; - padding-right: 4px; - border-style: solid; - border: 1px solid #cccccc; - border-radius: 2px; - color: black; -} - -QLineEdit:disabled { - background-color: #cccccc; - color: #454545; -} - -QLineEdit:hover { - border: 1px solid @ThemeAccentColor1; - color: black; -} - -QLineEdit:focus { - border: 2px solid @ThemeAccentColor2; -} - -QLineEdit:selected { - background-color: @ThemeAccentColor1; - color: black; -} - -/* QTabWiget -------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar - ---------------------------------------------------------------------------- */ -QTabWidget { - padding: 2px; - selection-background-color: @ThemeAccentColor1; -} - -QTabWidget QWidget { - /* Fixes #189 */ - border-radius: 0px; -} - -QTabWidget::pane { - border: 0px solid #8c00ffa1; - border-radius: 1.9px; - margin: 0px; - /* Fixes double border inside pane with pyqt5 */ - padding: 0px; - background-color: #f6f6f6; -} - -QTabWidget::pane:selected { - background-color: @ThemeAccentColor1; - border: 1px solid #346792; -} -/* QTabBar ---------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar - ---------------------------------------------------------------------------- */ -QTabBar, QDockWidget QTabBar { - qproperty-drawBase: 0; - border-radius: 2px; - margin: 0px; - padding: 2px; - border: 0; - alignment: center; - /* left: 5px; move to the right by 5px - removed for fix */ -} - -QTabBar::close-button, QDockWidget QTabBar::close-button { - border: 0; - margin: 0; - padding: 1px; - image: url(qss:images_dark-light/close_dark.svg); -} - -QTabBar::close-button:hover, QDockWidget QTabBar::close-button:hover { - image: url(qss:images_dark-light/close_red.svg); - /*background-color: rgba(255, 0, 0, 0.392);*/ -} - -QTabBar::close-button:pressed, QDockWidget QTabBar::close-button:pressed { - image: url(qss:images_dark-light/close_dark.svg); -} - -QTabBar::tab, QDockWidget QTabBar::tab { - /* !selected and disabled ----------------------------------------- */ - /* selected ------------------------------------------------------- */ -} - -QTabBar::tab:top:selected:disabled, QDockWidget QTabBar::tab:top:selected:disabled { - border-bottom: 3px solid #d4d4d4; - color: #515151; - background-color: #d4d4d4; -} - -QTabBar::tab:bottom:selected:disabled, QDockWidget QTabBar::tab:bottom:selected:disabled { - border-top: 3px solid #d4d4d4; - color: #515151; - background-color: #d4d4d4; -} - -QTabBar::tab:left:selected:disabled, QDockWidget QTabBar::tab:left:selected:disabled { - border-right: 3px solid #d4d4d4; - color: #515151; - background-color: #d4d4d4; -} - -QTabBar::tab:right:selected:disabled, QDockWidget QTabBar::tab:right:selected:disabled { - border-left: 3px solid #d4d4d4; - color: #515151; - background-color: #d4d4d4; -} - -QTabBar::tab:top:!selected:disabled, QDockWidget QTabBar::tab:top:!selected:disabled { - border-bottom: 3px solid #d4d4d4; - color: #515151; - background-color: #d4d4d4; -} - -QTabBar::tab:bottom:!selected:disabled, QDockWidget QTabBar::tab:bottom:!selected:disabled { - border-top: 3px solid #d4d4d4; - color: #515151; - background-color: #d4d4d4; -} - -QTabBar::tab:left:!selected:disabled, QDockWidget QTabBar::tab:left:!selected:disabled { - border-right: 3px solid #d4d4d4; - color: #515151; - background-color: #d4d4d4; -} - -QTabBar::tab:right:!selected:disabled, QDockWidget QTabBar::tab:right:!selected:disabled { - border-left: 3px solid #d4d4d4; - color: #515151; - background-color: #d4d4d4; -} - -QTabBar::tab:top:!selected, QDockWidget QTabBar::tab:top:!selected { - border-bottom: 2px solid #d4d4d4; - margin-top: 2px; -} - -QTabBar::tab:bottom:!selected, QDockWidget QTabBar::tab:bottom:!selected { - border-top: 2px solid #d4d4d4; - margin-bottom: 2px; -} - -QTabBar::tab:left:!selected, QDockWidget QTabBar::tab:left:!selected { - border-left: 2px solid #d4d4d4; - margin-right: 2px; -} - -QTabBar::tab:right:!selected, QDockWidget QTabBar::tab:right:!selected { - border-right: 2px solid #d4d4d4; - margin-left: 2px; -} - -QTabBar::tab:top, QDockWidget QTabBar::tab:top { - background-color: #f6f6f6; - margin-left: 3px; - padding-left: 4px; - padding-right: 4px; - padding-top: 2px; - padding-bottom: 2px; - min-width: 5px; - border: 1px solid #d4d4d4; - border-radius: 4px; -} - -QTabBar::tab:top:selected, QDockWidget QTabBar::tab:top:selected { - background-color: #d4d4d4; - /*border: 1px solid @ThemeAccentColor2; - border-radius: 4px; - margin-left: 4px; - margin-right: 4px; - padding-left: 3px; - padding-right: 3px;*/ -} - -QTabBar::tab:top:!selected:hover, QDockWidget QTabBar::tab:top:!selected:hover { - /*border: 1px solid @ThemeAccentColor1;*/ - border: 0px solid @ThemeAccentColor1; - background-color: @ThemeAccentColor1; - /* Fixes spyder-ide/spyder#9766 and #243 */ - padding-left: 3px; - padding-right: 3px; -} - -QTabBar::tab:bottom, QDockWidget QTabBar::tab:bottom { - border: 1px solid #d4d4d4; - background-color: #f5f5f5; - margin-left: 3px; - padding-left: 4px; - padding-right: 4px; - padding-top: 2px; - padding-bottom: 2px; - border-radius: 4px; - min-width: 5px; -} - -QTabBar::tab:bottom:selected, QDockWidget QTabBar::tab:bottom:selected { - background-color: #d4d4d4; - /*border: 1px solid @ThemeAccentColor2; - border-radius: 4px; - margin-left: 4px; - margin-right: 4px; - padding-left: 3px; - padding-right: 3px;*/ -} - -QTabBar::tab:bottom:!selected:hover, QDockWidget QTabBar::tab:bottom:!selected:hover { -/*border: 1px solid @ThemeAccentColor1;*/ - border: 0px solid @ThemeAccentColor1; - background-color: @ThemeAccentColor1; - /* Fixes spyder-ide/spyder#9766 and #243 */ - padding-left: 3px; - padding-right: 3px; -} - -QTabBar::tab:left, QDockWidget QTabBar::tab:left { - background-color: #f5f5f5; - margin-top: 2px; - padding-left: 2px; - padding-right: 2px; - padding-top: 4px; - padding-bottom: 4px; - border-radius: 4px; - min-height: 5px; -} - -QTabBar::tab:left:selected, QDockWidget QTabBar::tab:left:selected { - background-color: #f5f5f5; - border: 0px solid @ThemeAccentColor2; -} - -QTabBar::tab:left:!selected:hover, QDockWidget QTabBar::tab:left:!selected:hover { - border: 0px solid @ThemeAccentColor1; - background-color: @ThemeAccentColor1; - /* Fixes different behavior #271 */ - margin-right: 0px; - padding-right: -1px; -} - -QTabBar::tab:right, QDockWidget QTabBar::tab:right { - background-color: #f5f5f5; - margin-top: 2px; - padding-left: 2px; - padding-right: 2px; - padding-top: 4px; - padding-bottom: 4px; - min-height: 5px; - border: 10px; -} - -QTabBar::tab:right:selected, QDockWidget QTabBar::tab:right:selected { - background-color: #f5f5f5; - border: 0px solid @ThemeAccentColor2; -} - -QTabBar::tab:right:!selected:hover, QDockWidget QTabBar::tab:right:!selected:hover { - border: 0px solid @ThemeAccentColor1; - background-color: @ThemeAccentColor1; - /* Fixes different behavior #271 */ - margin-left: 0px; - padding-left: 0px; -} - -QTabBar QToolButton, QDockWidget QTabBar QToolButton { - /* Fixes #136 */ - background-color: #f5f5f5; - height: 12px; - width: 12px; -} - -QTabBar QToolButton:pressed, QDockWidget QTabBar QToolButton:pressed { - border: 0px solid @ThemeAccentColor1; - background-color: @ThemeAccentColor1; -} - -QTabBar QToolButton:pressed:hover, QDockWidget QTabBar QToolButton:pressed:hover { - border: 0px solid @ThemeAccentColor1; - background-color: @ThemeAccentColor1; -} - -QTabBar QToolButton::left-arrow:enabled, QDockWidget QTabBar QToolButton::left-arrow:enabled { - image: url(qss:images_dark-light/left_arrow_darker.svg); -} - -QTabBar QToolButton::left-arrow:disabled, QDockWidget QTabBar QToolButton::left-arrow:disabled { - image: url(qss:images_dark-light/left_arrow_disabled_dark.svg); -} - -QTabBar QToolButton::right-arrow:enabled, QDockWidget QTabBar QToolButton::right-arrow:enabled { - image: url(qss:images_dark-light/right_arrow_darker.svg); -} - -QTabBar QToolButton::right-arrow:disabled, QDockWidget QTabBar QToolButton::right-arrow:disabled { - image: url(qss:images_dark-light/right_arrow_disabled_dark.svg); -} - -/* QDockWiget ------------------------------------------------------------- - ---------------------------------------------------------------------------- */ -QDockWidget { - background-color: #f6f6f6; - border: 1px solid #cccccc; - border-radius: 1.9px; - titlebar-close-icon: url(qss:images_dark-light/transparent.svg); - titlebar-normal-icon: url(qss:images_dark-light/transparent.svg); -} - -QDockWidget::title { - /* Better size for title bar */ - padding: 3px; - spacing: 4px; - border: none; - background-color: #f6f6f6; - text-align: center; - font-weight: bold; -} - -QDockWidget::close-button { - icon-size: 10px; - border: none; - background: transparent; - background-image: transparent; - border: 0; - margin: 0; - padding: 0; - image: url(qss:images_dark-light/close_dark.svg); -} - -QDockWidget::close-button:hover { - image: url(qss:images_dark-light/close_red.svg); -} - -QDockWidget::close-button:pressed { - image: url(qss:images_dark-light/close_dark.svg); -} - -QDockWidget::float-button { - icon-size: 12px; - border: none; - background: transparent; - background-image: transparent; - border: 0; - margin: 0; - padding: 0; - image: url(qss:images_dark-light/undock_dark.svg); -} - -QDockWidget::float-button:hover { - /* background-color: @ThemeAccentColor1; */ - image: url(qss:images_dark-light/undock_blue.svg); -} - -QDockWidget::float-button:pressed { - image: url(qss:images_dark-light/undock_dark.svg); -} - -/* QTreeView QListView QTableView ----------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtreeview -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlistview -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtableview - ---------------------------------------------------------------------------- */ -QTreeView::branch { - background: transparent; -} - -QTreeView::branch:has-siblings:!adjoins-item { - border-image: url(qss:images_dark-light/branch_vline_dark.svg) 0; -} - -QTreeView::branch:has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_more_dark.svg) 0; -} - -QTreeView::branch:!has-children:!has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_end_dark.svg) 0; -} - -QTreeView::branch:closed:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_closed_dark.svg) 0; -} - -QTreeView::branch:has-children:!has-siblings:closed { - border-image: url(qss:images_dark-light/branch_end_closed_dark.svg) 0; -} - -QTreeView::branch:open:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_open_dark.svg) 0; -} - -QTreeView::branch:open:has-children:!has-siblings { - border-image: url(qss:images_dark-light/branch_end_open_dark.svg) 0; -} - -QTreeView::indicator:checked, -QListView::indicator:checked, -QTableView::indicator:checked, -QColumnView::indicator:checked { - image: url(qss:images_dark-light/checkbox_dark.svg); -} - -QTreeView::indicator:checked:hover, QTreeView::indicator:checked:focus, QTreeView::indicator:checked:pressed, -QListView::indicator:checked:hover, -QListView::indicator:checked:focus, -QListView::indicator:checked:pressed, -QTableView::indicator:checked:hover, -QTableView::indicator:checked:focus, -QTableView::indicator:checked:pressed, -QColumnView::indicator:checked:hover, -QColumnView::indicator:checked:focus, -QColumnView::indicator:checked:pressed { - image: url(qss:images_dark-light/checkbox_dark_hover.svg); -} - -QTreeView::indicator:unchecked, -QListView::indicator:unchecked, -QTableView::indicator:unchecked, -QColumnView::indicator:unchecked { - image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); -} - -QTreeView::indicator:unchecked:hover, QTreeView::indicator:unchecked:focus, QTreeView::indicator:unchecked:pressed, -QListView::indicator:unchecked:hover, -QListView::indicator:unchecked:focus, -QListView::indicator:unchecked:pressed, -QTableView::indicator:unchecked:hover, -QTableView::indicator:unchecked:focus, -QTableView::indicator:unchecked:pressed, -QColumnView::indicator:unchecked:hover, -QColumnView::indicator:unchecked:focus, -QColumnView::indicator:unchecked:pressed { - image: url(qss:images_dark-light/checkbox_unchecked_hover_dark.svg); -} - -QTreeView::indicator:indeterminate, -QListView::indicator:indeterminate, -QTableView::indicator:indeterminate, -QColumnView::indicator:indeterminate { - image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); -} - -QTreeView::indicator:indeterminate:hover, QTreeView::indicator:indeterminate:focus, QTreeView::indicator:indeterminate:pressed, -QListView::indicator:indeterminate:hover, -QListView::indicator:indeterminate:focus, -QListView::indicator:indeterminate:pressed, -QTableView::indicator:indeterminate:hover, -QTableView::indicator:indeterminate:focus, -QTableView::indicator:indeterminate:pressed, -QColumnView::indicator:indeterminate:hover, -QColumnView::indicator:indeterminate:focus, -QColumnView::indicator:indeterminate:pressed { - image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); -} - -QTreeView, -QListView, -QTableView, -QColumnView { - background-color: #f6f6f6; /* background of a lot of stuff including spreadsheets.*/ - border: 0px solid #cccccc; - color: black; - gridline-color: #cccccc; - border-radius: 0px; -} - -QTableView, -QListView { - background-color: rgba(229, 229, 229, 0.7); /* background of a lot of stuff including spreadsheets.*/ -} - - -QTreeView:disabled, -QListView:disabled, -QTableView:disabled, -QColumnView:disabled { - background-color: white; - color: #515151; -} - -QTreeView:selected, -QListView:selected, -QTableView:selected, -QColumnView:selected { - background-color: @ThemeAccentColor1; - color: black; -} - -QTreeView:focus, -QListView:focus, -QTableView:focus, -QColumnView:focus { - border: 1px solid @ThemeAccentColor2; -} - -QTreeView::item:pressed, -QListView::item:pressed, -QTableView::item:pressed, -QColumnView::item:pressed { - background-color: @ThemeAccentColor1; -} - -QTreeView::item:selected:active, -QListView::item:selected:active, -QTableView::item:selected:active, -QColumnView::item:selected:active { - background-color: @ThemeAccentColor1; -} - -QTreeView::item:selected:!active, -QListView::item:selected:!active, -QTableView::item:selected:!active, -QColumnView::item:selected:!active { - color: black; - background-color: @ThemeAccentColor1; -} - -QTreeView::item:!selected:hover, -QListView::item:!selected:hover, -QTableView::item:!selected:hover, -QColumnView::item:!selected:hover { - outline: 0; - color: black; - background-color: @ThemeAccentColor1; -} - -QTableCornerButton::section { - background-color: #f6f6f6; - border: 1px transparent #cccccc; - border-radius: 0px; -} - -QTableView::item { - color: black; -} -QTableView { - /*qproperty-AliasedCellBackgroundColor: #f700ff;*/ - /*qproperty-aliasBgColor: #f700ff;*/ -} - -/* QHeaderView ------------------------------------------------------------ - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qheaderview - ---------------------------------------------------------------------------- */ -QHeaderView { - background-color: #f6f6f6; - border: 1px solid #cccccc; - padding: 0; - margin: 0; - border-radius: 0px; - text-align: center; -} - -QHeaderView:disabled { - background-color: #f6f6f6; - border: 1px solid #cccccc; - color: #515151; -} - -QHeaderView::section { - background-color: #f5f5f5; - color: black; - border-radius: 0px; - text-align: center; - font-size: 13px; - font-weight: bold; - text-align: center; -} - -QHeaderView::section::horizontal { - padding-top: 0; - padding-bottom: 0; - padding-left: 10px; - padding-right: 10px; - border-left: 1px solid #cccccc; -} - -QHeaderView::section::horizontal::first, QHeaderView::section::horizontal::only-one { - border-left: 1px solid #cccccc; - padding-left: 15px; -} - -QHeaderView::section::horizontal:disabled { - color: #515151; -} - -QHeaderView::section::vertical { - padding-top: 0; - padding-bottom: 0; - padding-left: 1px; - padding-right: 1px; - border-top: 1px solid #cccccc; -} - -QHeaderView::section::vertical::first, QHeaderView::section::vertical::only-one { - border-top: 1px solid #cccccc; -} - -QHeaderView::section::vertical:disabled { - color: #515151; -} - -QHeaderView::down-arrow { - /* Those settings (border/width/height/background-color) solve bug */ - /* transparent arrow background and size */ - background-color: #455364; - border: none; - height: 12px; - width: 12px; - padding-left: 2px; - padding-right: 2px; - image: url(qss:images_dark-light/arrow_down.svg); -} - -QHeaderView::up-arrow { - background-color: #455364; - border: none; - height: 12px; - width: 12px; - padding-left: 2px; - padding-right: 2px; - image: url(qss:images_dark-light/up_arrow_dark.svg); -} - -/* QToolBox -------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbox -used in PATH - ---------------------------------------------------------------------------- */ -QToolBox { - padding: 0px; - border: 1px solid #d4d4d4; - border-radius: 4px; - background-color: transparent; -} - -QToolBox:selected { - padding: 0px; - border: 0px solid #346792; -} - -QToolBox::tab { - background-color: #d4d4d4; - border: 0px solid #cccccc; - color: black; - background-image: url(qss:images_dark-light/down_arrow_darker.svg); - background-repeat: none; - background-position: center left; -} - -QToolBox::tab:disabled { - color: #515151; -} - -QToolBox::tab:selected { - background-color: #d4d4d4; - background-image: url(qss:images_dark-light/transparent.svg); - padding-right: 5px; - background-repeat: none; -} - -QToolBox::tab:selected:disabled { - background-color: #d4d4d4; - border-bottom: 0px solid #cccccc; - color: #515151; -} - -QToolBox::tab:!selected { - -} - -QToolBox::tab:!selected:disabled { - background-color: #f6f6f6; -} - -QToolBox::tab:hover { - background-color: @ThemeAccentColor1; - } - -QToolBox QScrollArea QWidget QWidget { - padding: 0px; - border: 0px; - background-color: transparent; -} - -/* QFrame ----------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe -https://doc.qt.io/qt-5/qframe.html#-prop -https://doc.qt.io/qt-5/qframe.html#details -https://stackoverflow.com/questions/14581498/qt-stylesheet-for-hline-vline-color - ---------------------------------------------------------------------------- */ -/* (dot) .QFrame fix #141, #126, #123 */ -.QFrame { - border-radius: 0px; - border: 0px solid #cccccc; - background-color: #cccccc; - /* No frame */ - /* HLine */ - /* HLine */ -} - -.QFrame[frameShape="0"] { - border-radius: 1.9px; - border: 1px solid #cccccc; -} - -.QFrame[frameShape="4"] { - max-height: 1px; - border: none; - background-color: #cccccc; -} - -.QFrame[frameShape="5"] { - max-width: 1px; - border: none; - background-color: #f6f6f6; -} - -/* QSplitter -------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsplitter - ----------------------------------------------------------------------------*/ -QSplitterHandle:hover { /* to fix bug about hovering on splitters https://bugreports.qt.io/browse/QTBUG-13768 */ - -} - -QSplitter::handle { - margin: 0px 0px; - padding: 0px; -} - -QSplitter::handle:horizontal { - background-image: none; - background-position: center center; - background-repeat: none; - margin: 2px 2px 2px 2px; - width: 1px; -} - -QSplitter::handle:vertical { - background-image: none; - background-position: center center; - background-repeat: none; - margin: 2px 2px 2px 2px; - height: 1px; -} -QSplitter::handle:vertical:hover { - background-image: url(qss:images_dark-light/splitter_horizontal_dark.svg); - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0.2 transparent,stop:0.5 @ThemeAccentColor1, stop:0.8 transparent); - background-position: center center; - background-repeat: none; - } - -QSplitter::handle:vertical:hover { - background-image: url(qss:images_dark-light/splitter_horizontal_dark.svg); - background-position: center center; - background-repeat: none; - background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0.2 transparent,stop:0.5 @ThemeAccentColor1, stop:0.8 transparent); -} - -/* QDateEdit, QDateTimeEdit ----------------------------------------------- - ---------------------------------------------------------------------------- */ -QDateEdit, QDateTimeEdit { - selection-background-color: @ThemeAccentColor1; - border-style: solid; - border: 1px solid #cccccc; - border-radius: 1.9px; - /* This fixes 103, 111 */ - padding-top: 2px; - /* This fixes 103, 111 */ - padding-bottom: 2px; - padding-left: 4px; - padding-right: 4px; - min-width: 10px; -} - -QDateEdit:on, QDateTimeEdit:on { - selection-background-color: @ThemeAccentColor1; -} - -QDateEdit::drop-down, QDateTimeEdit::drop-down { - subcontrol-origin: padding; - subcontrol-position: top right; - width: 12px; - border-left: 1px solid #cccccc; -} - -QDateEdit::down-arrow, QDateTimeEdit::down-arrow { - image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); - height: 8px; - width: 8px; -} - -QDateEdit::down-arrow:on, QDateEdit::down-arrow:hover, QDateEdit::down-arrow:focus, QDateTimeEdit::down-arrow:on, QDateTimeEdit::down-arrow:hover, QDateTimeEdit::down-arrow:focus { - image: url(qss:images_dark-light/down_arrow_darker.svg); -} - -QDateEdit QAbstractItemView, QDateTimeEdit QAbstractItemView { - background-color: #f6f6f6; - border-radius: 2px; - border: 1px solid #cccccc; - selection-background-color: @ThemeAccentColor1; -} - -/* QAbstractView ---------------------------------------------------------- - ---------------------------------------------------------------------------- */ -QAbstractView:hover { - border: 1px solid @ThemeAccentColor1; - color: black; -} - -QAbstractView:selected { - background: @ThemeAccentColor1; - color: black; -} - -/* PlotWidget ------------------------------------------------------------- - ---------------------------------------------------------------------------- */ -PlotWidget { - /* Fix cut labels in plots #134 */ - padding: 0px; -} - -/*================================================================================================== -SKETCHER -==================================================================================================*/ - -Gui--StatefulLabel[state="empty_sketch"] { - color : rgba(255,255,255,127); /* 50% opacity white */ -} -Gui--StatefulLabel[state="under_constrained"] { - color : rgba(255,255,255,255); /* White */ -} -Gui--StatefulLabel[state="conflicting_constraints"] { - color : rgba(255,0,0,255); /* Red */ -} -Gui--StatefulLabel[state="malformed_constraints"] { - color : rgba(255,0,0,255); /* Red */ -} -Gui--StatefulLabel[state="redundant_constraints"] { - color : rgba(255,69,0,255); /* Orange red */ -} -Gui--StatefulLabel[state="partially_redundant_constraints"] { - color : rgba(65,105,225,255); /* Royal blue */ -} -Gui--StatefulLabel[state="solver_failed"] { - color : rgba(255,0,0,255); /* Red */ - font-weight: bold; -} -Gui--StatefulLabel[state="fully_constrained"] { - color : rgba(0,255,0,255); /* Green */ - font-weight: bold; -} -Gui--UrlLabel { - color : rgba(0,91,255,255); /* Deep sky blue */ - text-decoration : underline; -} - -Gui--NotificationLabel { - background-color: #f6f6f6; - border: 1px solid #cccccc; - border-radius: 2px; -} - -/*================================================================================================== -Forming windows below are the border settings. See also https://forum.freecad.org/viewtopic.php?p=439797#p439797 -==================================================================================================*/ -QMdiSubWindow { - border:2px solid #ffffff; - border-radius: 2px; - border-top-right-radius: 7px; - border-top-left-radius: 7px; - background-color: #f6f6f6; -} - -QMdiSubWindow:hover { - border:2px solid #cccccc; -} - -QMdiSubWindow:active { - border:2px solid @ThemeAccentColor1; -} - -/*================================================================================================== -Settings menu #groupsTreeView: -==================================================================================================*/ - -QTreeView::branch#groupsTreeView:closed:has-children:has-siblings { - border-image: none 0; -} - -QTreeView::branch#groupsTreeView:open:has-children:has-siblings { - border-image: none 0; -} - -QTreeView::branch#groupsTreeView:open:has-children:!has-siblings { - border-image: none 0; -} - -QTreeView::branch#groupsTreeView:has-children:!has-siblings:closed { - border-image: none 0; -} - -QTreeView::branch#groupsTreeView:has-siblings:!adjoins-item { - border-image: none 0; -} diff --git a/src/Gui/Stylesheets/Light.qss b/src/Gui/Stylesheets/Light.qss deleted file mode 100644 index 549208631c..0000000000 --- a/src/Gui/Stylesheets/Light.qss +++ /dev/null @@ -1,2674 +0,0 @@ -/* -ABOUT -============================================================================================================ -Revised stylesheet based on the original from Pablo Gil Fernández made by MisterMaker - -KNOWN BUGS and TO DO -============================================================================================================ -Please, follow the link to get updated information: -https://forum.freecad.org/viewtopic.php?t=78431 - -INSTALLATION WHEN NECESSARY -============================================================================================================ -1) Place the .qss files and /images/ folder in the path that fits your OS: - OSX = /Users/[YOUR_USER_NAME]/Library/Preferences/FreeCAD/Gui/Stylesheets/ - WINDOWS = C:/[INSTALLATION_PATH]/FreeCAD/data/Gui/Stylesheets/ - LINUX = /home/[YOUR_USER_NAME]/.FreeCAD/Gui/Stylesheets/ - -============================================================================================================ -FOLLOWING CODES ARE CHANGED IN THE SETTINGS: - @ThemeAccentColor1 - @ThemeAccentColor2 -See Qt documentation: - - - https://doc.qt.io/qt-5/stylesheet.html - - https://doc.qt.io/qt-5/stylesheet-reference.html - - https://doc.qt.io/qt-5/stylesheet-examples.html - ---------------------------------------------------------------------------- */ - - -/* Reset elements ------------------------------------------------------------ - -Resetting everything helps to unify styles across different operating systems - ---------------------------------------------------------------------------- */ -* { - padding: 0px; - margin: 0px; - border: 0px; - border-style: none; - border-image: none; - outline: 0; -} - -/* specific reset for elements inside QToolBar */ -QToolBar * { - margin: 0px; - padding: 0px; -} - -/*hacks */ - -Gui--PropertyEditor--PropertyEditor QLineEdit:read-only, -Gui--PropertyEditor--PropertyEditor QLineEdit:disabled, -Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:read-only, -Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:disabled { - color: transparent; - border-color: transparent; - background-color: transparent; - selection-color: transparent; - selection-background-color: transparent; - -} -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel, -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel:disabled { - color: transparent; - background-color: transparent; - border: none; - border-radius: 0px; - margin: 0px; - padding: 0px; -} - -Gui--PropertyEditor--PropertyEditor QSpinBox, -Gui--PropertyEditor--PropertyEditor QDoubleSpinBox, -Gui--PropertyEditor--PropertyEditor QAbstractSpinBox, -Gui--PropertyEditor--PropertyEditor QLineEdit, -Gui--PropertyEditor--PropertyEditor QComboBox { - margin-left: 0px; - margin-right: 0px; - padding-top: 0px; - padding-bottom: 0px; - -} - -/* fix for column items background when a link is present */ -Gui--PropertyEditor--PropertyEditor > QWidget > QFrame:focus { - background-color: @ThemeAccentColor1; /* same as focused background color */ -} - -/* hack to hide weird redundant information inside cells with links and no editable data (but editable via "..." button) */ -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel { - color: #ffffff; - background-color: #ACC8E5; /* same as focused background color */ -} - -/*================================================================================================== -Main window -==================================================================================================*/ -QMainWindow, -QDialog, -QDockWidget, -QToolBar { - background-color: #F6F6F6; /* main background color */ -} - -QMdiArea { - background-image: url(qss:images_dark-light/background_freecad.svg); - background-position: center center; - background-repeat: no-repeat; -} -/*navgation src/Mod/Tux/NavigationIndicatorGui.py */ -Gui--NavigationIndicatorGui--BlenderNavigationStyle { -/*QAction#a4 {*/ - qproperty-icon: url(:/icons/icons/NavigationBlender_dark.svg); -} -/*===== -/* QWidget ---------------------------------------------------------------- - ---------------------------------------------------------------------------- */ -QWidget { - background-color: #F6F6F6; - border: 0px solid #C1C1C1; - padding: 0px; - color: black; - selection-background-color: @ThemeAccentColor1; - selection-color: black; -} - -QWidget:disabled { - color: #A3A3A3; - selection-background-color: @ThemeAccentColor1; - selection-color: #A3A3A3; -} - -QWidget::item:selected { - background-color: @ThemeAccentColor1 -; -} - - /* Causes issue with colorselector. - QWidget::item:hover:!selected { - background-color: @ThemeAccentColor1; - }*/ - -/* QMainWindow ------------------------------------------------------------ - -This adjusts the splitter in the dock widget, not qsplitter -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmainwindow - ---------------------------------------------------------------------------- */ -QMainWindow::separator { - /*background-color: #f6f6f6;*/ - border: 0px solid #C1C1C1; - spacing: 0px; - padding: 1px; -} - -QMainWindow::separator:vertical:hover { - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0.2 transparent,stop:0.5 @ThemeAccentColor1, stop:0.8 transparent); - /*background-color: @ThemeAccentColor1;*/ - image: url(qss:images_dark-light/splitter_vertical_dark.svg); -} - -QMainWindow::separator:horizontal:hover { - background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0.2 transparent,stop:0.5 @ThemeAccentColor1, stop:0.8 transparent); - /*background-color: @ThemeAccentColor1;*/ - image: url(qss:images_dark-light/splitter_horizontal_dark.svg); -} - -QMainWindow::separator:horizontal { - width: 4px; - margin-top: 0.1px; - margin-bottom: 0.1px; - /* image: url(qss:images_dark-light/splitter_horizontal_light.svg);*/ -} - -QMainWindow::separator:vertical { - height: 4px; - margin-left: 0.1px; - margin-right: 0.1px; - /* image: url(qss:images_dark-light/splitter_vertical_light.svg);*/ -} - -/* QToolTip --------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtooltip - ---------------------------------------------------------------------------- */ -QToolTip { - background-color: #ffffff; - color: black; - /* If you remove the border property, background stops working on Windows */ - border: none; - /* Remove padding, for fix combo box tooltip */ - padding: 0px; - /* Remove opacity, fix #174 - may need to use RGBA */ -} - -/* QStatusBar ------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qstatusbar - ---------------------------------------------------------------------------- */ -QStatusBar { - border: 0px solid #C1C1C1; - /* Fixes Spyder #9120, #9121 */ - background: #F6F6F6; - /* Fixes #205, black vertical borders separating items */ -} - -QStatusBar::item { - border: none; -} - -QStatusBar QToolTip { - background-color: #f6f6f6; - border: 1px solid #cccccc; - color: black; - /* Remove padding, for fix combo box tooltip */ - padding: 0px; - /* Reducing transparency to read better */ - opacity: 230; -} - -QStatusBar QLabel { - /* Fixes Spyder #9120, #9121 */ - background: transparent; -} - -/* QCheckBox -------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcheckbox - ---------------------------------------------------------------------------- */ -QCheckBox { - color: black; - padding: 0px; - outline: none; - border: 1px solid transparent; - background-color: transparent; -} - -QCheckBox:focus { - border: 1px solid @ThemeAccentColor2; -} - -QCheckBox QWidget:disabled { - color: #A3A3A3; -} - -QCheckBox::indicator { - color: black; - background-color: #ffffff; - width: 12px; - height: 12px; - image:url(qss:images_dark-light/checkbox_unchecked_dark.svg); -} - -QCheckBox::indicator:unchecked { - background-color: #ffffff; - image:url(qss:images_dark-light/checkbox_unchecked_dark.svg); -} - -QCheckBox::indicator:unchecked:hover, QCheckBox::indicator:unchecked:focus, QCheckBox::indicator:unchecked:pressed { - background-color: @ThemeAccentColor1; - image:url(qss:images_dark-light/checkbox_unchecked_dark.svg); -} - -QCheckBox::indicator:unchecked:disabled { - background-color: #F6F6F6; - image:url(qss:images_dark-light/checkbox_unchecked_disabled.svg); -} - -QCheckBox::indicator:checked { - background-color: #ffffff; - /*border: 1px solid #C1C1C1; /* QRadioButton has the same color */ - image:url(qss:images_dark-light/checkbox_dark.svg); -} - -QCheckBox::indicator:checked:hover, QCheckBox::indicator:checked:pressed { - background-color: @ThemeAccentColor1; -} - -QCheckBox::indicator:checked:disabled { - background-color: #F6F6F6; - image: url(qss:images_dark-light/checkbox_checked_disabled.svg); -} - -QCheckBox::indicator:indeterminate { - background-color: #ffffff; - border: 1px solid #C1C1C1; - image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); -} - -QCheckBox::indicator:indeterminate:disabled { - background-color: #F6F6F6; - image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); -} - -QCheckBox::indicator:indeterminate:hover, QCheckBox::indicator:indeterminate:pressed { - background-color: @ThemeAccentColor1; /* QRadioButton has the same color */ -} - -/* QGroupBox -------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qgroupbox - ---------------------------------------------------------------------------- */ -QGroupBox { - font-weight: bold; - border: 1px solid #C1C1C1; - border-radius: 1.9px; - padding: 2px; - margin-top: 10px; - margin-bottom: 4px; -} - -QGroupBox::title { - subcontrol-origin: margin; - subcontrol-position: top left; - left: 4px; - padding-left: 2px; - padding-right: 4px; - padding-top: 6px; -} - -QGroupBox::indicator { - color: black; - background-color: #f6f6f6; - border: 1px solid #C1C1C1; - width: 12px; - height: 12px; - border-radius:1px; -} - -QGroupBox::indicator:unchecked { - background-color: #f6f6f6; - border: 1px solid #C1C1C1; - image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); -} - -QGroupBox::indicator:unchecked:hover, QGroupBox::indicator:unchecked:focus, QGroupBox::indicator:unchecked:pressed { - background-color: @ThemeAccentColor1; -} - -QGroupBox::indicator:unchecked:disabled { - background-color: #ffffff; - border: 1px solid #C1C1C1; -} - -QGroupBox::indicator:checked { - border: none; - image:url(qss:images_dark-light/checkbox_dark.svg); -} - -QGroupBox::indicator:checked:hover, QGroupBox::indicator:checked:focus, QGroupBox::indicator:checked:pressed { - background-color: @ThemeAccentColor1; -} - -QGroupBox::indicator:checked:disabled { - background-color: @ThemeAccentColor1; -} - -/* QRadioButton ----------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qradiobutton - ---------------------------------------------------------------------------- */ -QRadioButton { - background-color: transparent; - color: black; - border: none; - spacing: 4px; - padding-top: 4px; - padding-bottom: 4px; - outline: none; -} - -QRadioButton:focus { - border: 1px solid @ThemeAccentColor2; -} - -QRadioButton:disabled { - background-color: #f6f6f6; - color: #BABABA; -} - -QRadioButton QWidget { - background-color: transparent; - color: black; - spacing: 0px; - padding: 0px; - outline: none; - border: none; -} - -QRadioButton::indicator { - background-color: #f6f6f6; - border: 1px solid #C1C1C1; - border-radius: 6px; - margin-left: 0px; - height: 11px; - width: 11px; -} - -QRadioButton::indicator:unchecked { - /*image:url(qss:images_dark-light/radiobutton_dark.svg);*/ -} - -QRadioButton::indicator:unchecked:hover, QRadioButton::indicator:unchecked:pressed { - background-color: @ThemeAccentColor1; - border: 1px solid @ThemeAccentColor1; - border-radius: 6px; -} - -QRadioButton::indicator:unchecked:disabled { - /*image:url(qss:images_dark-light/radiobutton_light.svg);*/ - border: 1px solid #C1C1C1; -} - -QRadioButton::indicator:checked { - image:url(qss:images_dark-light/radiobutton_dark.svg); -} - -QRadioButton::indicator:checked:hover, QRadioButton::indicator:checked:pressed { - background-color: @ThemeAccentColor1; - border: 1px solid @ThemeAccentColor1; - border-radius: 6px; - image:url(qss:images_dark-light/radiobutton_dark.svg); -} - -QRadioButton::indicator:checked:disabled { - outline: none; - background-color: #f6f6f6; - image:url(qss:images_dark-light/radiobutton_light.svg); -} - -/* QMenuBar --------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenubar - ---------------------------------------------------------------------------- */ -QMenuBar { - background-color: #ffffff; - /*padding: 1px; - border: 0px solid rgba(0,0,0,140);*/ - color: black; - selection-background-color: @ThemeAccentColor1; -} - -QMenuBar:focus { - border: 1px solid @ThemeAccentColor1; -} - -QMenuBar::item { - background: transparent; - /*padding-left:5px; - padding-right: 5px; - padding-bottom: 1px; - padding-top: 1px;*/ -} - -QMenuBar::item:selected { - background: transparent; - border: 0px solid #C1C1C1; - background-color: @ThemeAccentColor1; -} - -QMenuBar::item:pressed { - /*padding: 2px; - padding-left: 10px; - padding-right: 10px;*/ - border: 0px solid #C1C1C1; - background-color: @ThemeAccentColor1; - color: black; - /*margin-bottom: 0px; - padding-bottom: 0px;*/ -} - -/* QMenu ------------------------------------------------------------------ - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenu - ---------------------------------------------------------------------------- */ -QMenu { - border-bottom: 2px rgba(0,0,0,140); - border-right: 2px rgba(0,0,0,140); - color: black; - margin: 0px; - background-color: #ffffff; - selection-background-color: @ThemeAccentColor1; -} - -QMenu::separator { - height: 2px; - background-color: #f6f6f6; - margin-left: 30%; - margin-right: 30%; -} - -QMenu::item { - background-color: transparent; - padding: 2px 2px; /* make room for icon at left */ - /* Reserve space for selection border */ - border: 0px transparent #f6f6f6; -} - -QMenu::item:selected { - color: black; - background-color: @ThemeAccentColor1; -} - -QMenu::item:pressed { - background-color: @ThemeAccentColor1; -} - -QMenu::icon { - margin-left: 5px; - width: 14px; - height: 14px; -} - -QMenu::indicator { - margin-left: 2px; - margin-right: 2px; - padding: 0px; - width: 12px; - height: 12px; - /* non-exclusive indicator = check box style indicator (see QActionGroup::setExclusive) */ - /* exclusive indicator = radio button style indicator (see QActionGroup::setExclusive) */ -} - -QMenu::icon:checked { /* appearance of a 'checked' icon */ - background: @ThemeAccentColor2; - margin-left: -5px; - border: 5px solid @ThemeAccentColor2; - position: absolute; - border-radius: 0px; -} -QMenu::indicator:non-exclusive:unchecked { - image: url(qss:images_dark-light/checkbox_unchecked_dark.svg); -} - -QMenu::indicator:non-exclusive:unchecked:hover, QMenu::indicator:non-exclusive:unchecked:focus, QMenu::indicator:non-exclusive:unchecked:pressed { - border: none; - background: @ThemeAccentColor1; -} - -QMenu::indicator:non-exclusive:unchecked:disabled { - image: url(qss:images_dark-light/checkbox_unchecked_disabled.svg); -} - -QMenu::indicator:non-exclusive:checked { - image:url(qss:images_dark-light/checkbox_dark.svg); -} - -QMenu::indicator:non-exclusive:checked:hover, QMenu::indicator:non-exclusive:checked:focus, QMenu::indicator:non-exclusive:checked:pressed { - border: none; - background: @ThemeAccentColor1; -} - -QMenu::indicator:non-exclusive:checked:disabled { - image:url(qss:images_dark-light/checkbox_checked_disabled.svg); -} - -QMenu::indicator:non-exclusive:indeterminate { - image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); -} - -QMenu::indicator:non-exclusive:indeterminate:disabled { - image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); -} - -QMenu::indicator:non-exclusive:indeterminate:focus, QMenu::indicator:non-exclusive:indeterminate:hover, QMenu::indicator:non-exclusive:indeterminate:pressed { - image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); -} - -QMenu::indicator:exclusive:unchecked { - image: url(qss:images_dark-light/transparent.svg); -} - -QMenu::indicator:exclusive:unchecked:hover, QMenu::indicator:exclusive:unchecked:focus, QMenu::indicator:exclusive:unchecked:pressed { - border: none; - outline: none; - background: @ThemeAccentColor1; - image: url(qss:images_dark-light/checkbox_unchecked_dark.svg); -} - -QMenu::indicator:exclusive:unchecked:disabled { - image: url(qss:images_dark-light/checkbox_unchecked_dark.svg); -} - -QMenu::indicator:exclusive:checked { - border: none; - outline: none; - image: url(qss:images_dark-light/radiobutton_dark.svg); -} - -QMenu::indicator:exclusive:checked:hover, QMenu::indicator:exclusive:checked:focus, QMenu::indicator:exclusive:checked:pressed { - border: none; - outline: none; - background: @ThemeAccentColor1; - image: url(qss:images_dark-light/checkbox_unchecked_dark.svg); -} - -QMenu::indicator:exclusive:checked:disabled { - outline: none; - image: url(qss:images_dark-light/radiobutton_dark.svg); -} - -QMenu::right-arrow { - margin: 5px; - padding-left: 12px; - image:url(qss:images_dark-light/right_arrow_darker.svg); - height: 12px; - width: 12px; - background-color: transparent; -} - -/* QAbstractItemView ------------------------------------------------------ - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox - ---------------------------------------------------------------------------- */ -QAbstractItemView { - alternate-background-color: #ababab; - color: black; - border: 1px solid #C1C1C1; - border-radius: 2px; -} - -QAbstractItemView QLineEdit { - padding: 2px; -} - -/* QAbstractScrollArea ---------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea - ---------------------------------------------------------------------------- */ -QAbstractScrollArea { - background-color: transparent; - border: 0px solid #C1C1C1; - border-radius: 0px; - /* fix #159 */ - padding: 0px; - /* remove min-height to fix #244 */ - color: black; -} - -QAbstractScrollArea:disabled { - color: #A3A3A3; -} - -/* QScrollArea ------------------------------------------------------------ - ---------------------------------------------------------------------------- -text input field disabled!!!!*/ -QScrollArea QWidget:disabled { - background-color: #F6F6F6; -} - -/* QScrollBar ------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qscrollbar - ---------------------------------------------------------------------------- */ -QScrollBar:horizontal { - height: 16px; - margin: 2px 16px 2px 16px; - border: 0px solid #C1C1C1; - border-radius: 1.9px; - background-color: #F6F6F6; -} - -QScrollBar:vertical { - background-color: #F6F6F6; - width: 16px; - margin: 16px 2px 16px 2px; - border: 0px solid #C1C1C1; - border-radius: 1.9px; -} - -QScrollBar::handle:horizontal { - background-color: #A3A3A3; - border: 1px solid #C1C1C1; - border-radius: 1.9px; - min-width: 8px; -} - -QScrollBar::handle:horizontal:hover { - background-color: @ThemeAccentColor1; - border: #f6f6f6; - border-radius: 1.9px; - min-width: 8px; -} - -QScrollBar::handle:horizontal:focus { - border: 1px solid @ThemeAccentColor2; -} - -QScrollBar::handle:vertical { - background-color: #A3A3A3; - border: 1px solid #C1C1C1; - min-height: 8px; - border-radius: 1.9px; -} - -QScrollBar::handle:vertical:hover { - background-color: @ThemeAccentColor1; - border: #f6f6f6; - border-radius: 1.9px; - min-height: 8px; -} - -QScrollBar::handle:vertical:focus { - border: 1px solid @ThemeAccentColor2; -} - -QScrollBar::add-line:horizontal { - border-image: url(qss:images_dark-light/right_arrow_dark.svg); - height: 9px; - width: 5px; - subcontrol-position: right; - subcontrol-origin: margin; -} - -QScrollBar::add-line:horizontal:hover, QScrollBar::add-line:horizontal:on { - border-image: url(qss:images_dark-light/right_arrow_dark.svg); - height: 9px; - width: 5px; - subcontrol-position: right; - subcontrol-origin: margin; -} - -QScrollBar::add-line:vertical { - border-image: url(qss:images_dark-light/down_arrow_dark.svg); - height: 5px; - width: 9px; - subcontrol-position: bottom; - subcontrol-origin: margin; -} - -QScrollBar::add-line:vertical:hover, QScrollBar::add-line:vertical:on { - border-image: url(qss:images_dark-light/down_arrow_darker.svg); - height: 5px; - width: 9px; - subcontrol-position: bottom; - subcontrol-origin: margin; -} - -QScrollBar::sub-line:horizontal { - margin: 0px 0px 0px 0px; - border-image: url(qss:images_dark-light/left_arrow_dark.svg); - height: 9px; - width: 5px; - subcontrol-position: left; - subcontrol-origin: margin; -} - -QScrollBar::sub-line:horizontal:hover, QScrollBar::sub-line:horizontal:on { - border-image: url(qss:images_dark-light/left_arrow_darker.svg); - height: 9px; - width: 5px; - subcontrol-position: left; - subcontrol-origin: margin; -} - -QScrollBar::sub-line:vertical { - margin: 0px 0px 0px 0px; - border-image: url(qss:images_dark-light/up_arrow_dark.svg); - height: 5px; - width: 9px; - subcontrol-position: top; - subcontrol-origin: margin; -} - -QScrollBar::sub-line:vertical:hover, QScrollBar::sub-line:vertical:on { - border-image: url(qss:images_dark-light/up_arrow_darker.svg); - height: 5px; - width: 9px; - subcontrol-position: top; - subcontrol-origin: margin; -} - -QScrollBar::up-arrow:horizontal, QScrollBar::down-arrow:horizontal { - background: none; -} - -QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical { - background: none; -} - -QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal { - background: none; -} - -QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { - background: none; -} - -/* QTextEdit -------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-specific-widgets - - -report view ---------------------------------------------------------------------------- */ -QTextEdit { - background-color: #F6F6F6; - color: black; - border-radius: 1.9px; - border: 0px solid #C1C1C1; -} - -QTextEdit:focus { - border: 1px solid @ThemeAccentColor2; -} - -QTextEdit:selected { - background: #346792; - color: black; -} - -/* QPlainTextEdit --------------------------------------------------------- -Python ---------------------------------------------------------------------------- */ -QPlainTextEdit { - background-color: #f6f6f6; - color: black; - border-radius: 1.9px; - border: 0px solid #C1C1C1; -} - -QPlainTextEdit:focus { - border: 1px solid @ThemeAccentColor2; -} - -QPlainTextEdit:selected { - background: @ThemeAccentColor1; - color: black; -} - -/* QSizeGrip -------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsizegrip - ---------------------------------------------------------------------------- */ -QSizeGrip { - background: transparent; - width: 12px; - height: 12px; - image:url(qss:images_dark-light/sizegrip_dark.svg); -} - -/* QStackedWidget --------------------------------------------------------- - ---------------------------------------------------------------------------- */ -QStackedWidget { - padding: 0px; - border: 0px solid #C1C1C1; -} - -/* QToolBar --------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbar - ---------------------------------------------------------------------------- */ -QToolBar { - background-color: #F6F6F6; - border-bottom: 0px solid rgba(0,0,0,120); - padding: 1px; - font-weight: bold; - spacing: 1px; -} - -QToolBar:disabled { - /* Fixes #272 */ - background-color: #F6F6F6; -} - -QToolBar::handle:horizontal { - width: 8px; - margin: 3px 3px; - background-position: top right; - background-repeat: repeat-y; - background-image: url(qss:images_dark-light/Hmovetoolbar_dark.svg); -} - -QToolBar::handle:vertical { - height: 8px; - margin: 3px 3px; - background-position: left bottom; - background-repeat: repeat-x; - background-image: url(qss:images_dark-light/Vmovetoolbar_dark.svg); -} - -QToolBar::separator:horizontal { - width: 2px; - margin: 4px 4px; - background-color: transparent; -} - -QToolBar::separator:vertical { - height: 2px; - margin: 4px 4px; - background-color: transparent; -} - -/*The "show more" button (it can also be stylable with "QToolBarExtension" icon is not working Qproperty works but breaks when you move the toolbar see also */ -QToolButton#qt_toolbar_ext_button { -margin: 0px; -padding: 0px; -background-color: #A3A3A3; -/*background-image: url(qss:images_dark-light/more_dark.svg);*/ -background-repeat: none; -background-position: center center; -} - -QToolButton#qt_toolbar_ext_button:hover { -/*background-image: url(qss:images_dark-light/more_dark.svg);*/ -background-color: @ThemeAccentColor1; -} - -QToolButton#qt_toolbar_ext_button:on { -/*background-image: url(qss:images_dark-light/more_dark.svg);*/ -border-color: #f6f6f6; -background-color: @ThemeAccentColor1; -} - - -/* QAbstractSpinBox ------------------------------------------------------- - ---------------------------------------------------------------------------- */ -QAbstractSpinBox, -QSpinBox { - background-color: #ffffff; - border: 1px solid transparent; - color: black; - /* This fixes 103, 111 */ - /* padding-top: 0px; - /* This fixes 103, 111 */ - /*padding-bottom: 0px; - /*padding-left: 4px; - /*padding-right: 4px; - border-radius: 1.9px;*/ - min-height: 1.7em; - /* min-width: 5px; removed to fix 109 */ -} - -QAbstractSpinBox:up-button { - background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #E2E2E2, stop:1 #EDEDED); - subcontrol-origin: border; - subcontrol-position: top right; - border: 1px solid transparent; - border-top-left-radius: 0; - border-bottom-left-radius: 0; - /*margin: 1px;*/ - /*width: 12px; - /*margin-bottom: -1px;*/ -} - -QAbstractSpinBox::up-arrow, QAbstractSpinBox::up-arrow:disabled, QAbstractSpinBox::up-arrow:off { - image: url(qss:images_dark-light/up_arrow_disabled_dark.svg); - /* height: 8px; - width: 8px;*/ -} - -QAbstractSpinBox::up-arrow:hover { - image: url(qss:images_dark-light/up_arrow_darker.svg); -} - -QAbstractSpinBox:down-button { - background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #E2E2E2, stop:1 #EDEDED); - subcontrol-origin: border; - subcontrol-position: bottom right; - border: 1px solid transparent; - border-top-left-radius: 0; - border-bottom-left-radius: 0; - /*margin: 1px;*/ - /*width: 12px; - /*margin-top: -1px;*/ -} - -QAbstractSpinBox::down-arrow, QAbstractSpinBox::down-arrow:disabled, QAbstractSpinBox::down-arrow:off { - image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); - /*height: 8px; - width: 8px;*/ -} - -QAbstractSpinBox::down-arrow:hover { - image: url(qss:images_dark-light/down_arrow_darker.svg); -} - -QAbstractSpinBox:hover { - /*border: 1px solid @ThemeAccentColor1; - color: black;*/ -} - -QAbstractSpinBox:focus { - border: 1px solid @ThemeAccentColor2; -} - -QAbstractSpinBox:selected { - background: @ThemeAccentColor2; - /*color: black;*/ -} - -/* ------------------------------------------------------------------------ */ -/* DISPLAYS --------------------------------------------------------------- */ -/* ------------------------------------------------------------------------ */ -/* QLabel ----------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe - ---------------------------------------------------------------------------- */ -QLabel { - background-color: transparent; - border: 0px solid #C1C1C1; - padding: 2px; - margin: 0px; - color: black; -} - -QLabel:disabled { - background-color: transparent; - border: 0px solid #C1C1C1; - color: #A3A3A3; -} - -QLabel[haslink="true"] { - color: orange; -} - - -/* QTextBrowser ----------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea - ---------------------------------------------------------------------------- */ -QTextBrowser { - background-color: #ffffff; - border: 1px solid #C1C1C1; - color: black; - border-radius: 1.9px; -} - -QTextBrowser:disabled { - background-color: #F6F6F6; - border: 1px solid #C1C1C1; - color: #A3A3A3; - border-radius: 1.9px; -} - -QTextBrowser:hover, QTextBrowser:!hover, QTextBrowser:selected, QTextBrowser:pressed { - border: 1px solid @ThemeAccentColor1; -} - -/* QGraphicsView ---------------------------------------------------------- - ---------------------------------------------------------------------------- */ -QGraphicsView { - background-color: transparent; - border: 0px solid @ThemeAccentColor1; - color: black; - border-radius: 0px; -} - -QGraphicsView:disabled { - background-color: #ffffff; - border: 0px solid #C1C1C1; - color: #A3A3A3; - border-radius: 0px; -} - -QGraphicsView:hover, QGraphicsView:!hover, QGraphicsView:selected, QGraphicsView:pressed { - border: 0px solid #ff00f7; -} - -/* QCalendarWidget -------------------------------------------------------- - ---------------------------------------------------------------------------- */ -QCalendarWidget { - border: 1px solid #C1C1C1; - border-radius: 1.9px; -} - -QCalendarWidget:disabled { - background-color: #BABABA; - color: #A3A3A3; -} - -/* QLCDNumber ------------------------------------------------------------- - ---------------------------------------------------------------------------- */ -QLCDNumber { - background-color: #1aff00; - color: black; -} - -QLCDNumber:disabled { - background-color: #F6F6F6; - color: #A3A3A3; -} - -/* QProgressBar ----------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qprogressbar - ---------------------------------------------------------------------------- */ -QProgressBar { - background-color: #A3A3A3; - border: 1px solid #C1C1C1; - color: black; - border-radius: 1.9px; - text-align: center; -} - -QProgressBar:disabled { - background-color: #ffffff; - border: 1px solid #C1C1C1; - color: #A3A3A3; - border-radius: 1.9px; - text-align: center; -} - -QProgressBar::chunk { - background-color: @ThemeAccentColor1; - color: #F6F6F6; - border-radius: 1.9px; -} - -QProgressBar::chunk:disabled { - background-color: #ffffff; - color: #f6f6f6; - border-radius: 1.9px; -} - -/* ------------------------------------------------------------------------ */ -/* BUTTONS ---------------------------------------------------------------- */ -/* ------------------------------------------------------------------------ */ -/* QPushButton ------------------------------------------------------------ - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qpushbutton - ---------------------------------------------------------------------------- */ -QPushButton { - background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #E2E2E2, stop:1 #EDEDED); - color: black; - border: 1px solid #EDEDED; - border-bottom-color: #AFAFAF; /* simulates shadow under the button */ - border-radius: 4px; - padding: 2px; -} - -QPushButton:disabled { - background-color: #F6F6F6; - color: #A3A3A3; - -} - -QPushButton:checked { - background-color: @ThemeAccentColor1; - outline: none; -} - -QPushButton:checked:disabled { - background-color: @ThemeAccentColor1; - color: #f6f6f6; - outline: none; -} - -QPushButton:checked:selected { - background: @ThemeAccentColor1; -} - -QPushButton:hover { - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); - color: White; -} - -QPushButton:pressed { - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); -} - -QPushButton:selected { - background: @ThemeAccentColor2; - color: black; -} - -QPushButton::menu-indicator { - subcontrol-origin: padding; - subcontrol-position: bottom right; - bottom: 4px; -} - -QDialogButtonBox QPushButton { - /* Issue # 194 # 248 - Special case of QPushButton inside dialogs, for better UI */ - min-width: 80px; -} - -/* QToolButton ------------------------------------------------------------ - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbutton - ---------------------------------------------------------------------------- */ -QToolButton { - background-color: transparent; - color: black; - border-radius: 1px; - padding: 0px; - outline: none; - border: none; - /* The subcontrols below are used only in the DelayedPopup mode */ - /* The subcontrols below are used only in the MenuButtonPopup mode */ - /* The subcontrol below is used only in the InstantPopup or DelayedPopup mode */ -} - -QToolButton:disabled { - background-color: transparent; - color: #A3A3A3; - border-radius: 1px; - padding: 0px; -} - -QToolButton:checked { - background-color: @ThemeAccentColor1; - border-radius: 1.9px; - padding: 0px; - outline: none; -} - -QToolButton:checked:disabled { - background-color: #b65555; - color: #A3A3A3; - border-radius: 1.9px; - padding: 0px; - outline: none; -} - -QToolButton:checked:hover { - background-color: @ThemeAccentColor1; - color: black; -} - -QToolButton:checked:pressed { - background-color: @ThemeAccentColor1; -} - -QToolButton:checked:selected { - background: @ThemeAccentColor2; - color: black; -} - -QToolButton:hover { - background-color: @ThemeAccentColor1; - color: black; -} - -QToolButton:pressed { - background-color: @ThemeAccentColor2; -} - -QToolButton:selected { - background: @ThemeAccentColor1; - color: black; -} - -QToolButton[popupMode="0"] { - /* Only for DelayedPopup */ - padding-right: 20px; -} - -QToolButton[popupMode="1"] { - /* Only for MenuButtonPopup */ - padding-right: 20px; -} -QToolButton[popupMode="0"]::menu-button { - border: none; -} - -QToolButton[popupMode="0"]::menu-button:hover { - border: none; - border-left: 2px solid #fe0000; - border-radius: 0px; -} -QToolButton[popupMode="1"]::menu-button { - border: none; -} - -QToolButton[popupMode="1"]::menu-button:hover { - border: none; - border-left: 2px solid #e5ff00; - border-radius: 0px; -} - -QToolButton[popupMode="2"] { - /* Only for InstantPopup */ - padding-right: 20px; -} - -QToolButton::menu-button { - border-bottom: 0px solid #b2b2b2; - border-radius: 2px; - /* 16px width + 4px for border = 20px allocated above */ - width: 1.6ex; - padding: 2px; - border-radius: 2px; - border: 0px #000000; -} - -QToolButton::menu-button:hover { - /* background: rgba(0, 0, 0, 0.5);*/ - -} - -QToolButton::menu-button:checked:hover { - /* background: rgba(0, 0, 0, 0.5);*/ -} - -QToolButton::menu-indicator { - /* Exclude a shift for better image */ - subcontrol-position: right bottom; - /* Shift it a bit */ -} - -QToolButton::menu-arrow { - image: url(qss:images_dark-light/more_arrow_dark.svg); - width: 1.5ex; - height: 1.5ex; - subcontrol-position: right bottom; - background: transparent; -} -QToolButton::menu-arrow:open { - subcontrol-position: right bottom; - width: 1.7ex; - height: 1.7ex; - image: url(qss:images_dark-light/more_arrow_dark.svg); -} -QToolButton::menu-arrow:hover { - width: 1.7ex; - height: 1.7ex; - image: url(qss:images_dark-light/more_arrow_dark.svg); -} - -/* QCommandLinkButton ----------------------------------------------------- - ---------------------------------------------------------------------------- */ -QCommandLinkButton { - background-color: transparent; - border: 1px solid #C1C1C1; - color: black; - border-radius: 1.9px; - padding: 0px; - margin: 0px; -} - -QCommandLinkButton:disabled { - background-color: transparent; - color: #A3A3A3; -} - -/* ------------------------------------------------------------------------ */ -/* INPUTS - NO FIELDS ----------------------------------------------------- */ -/* ------------------------------------------------------------------------ */ -/* QComboBox -------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox - ---------------------------------------------------------------------------- */ -QComboBox { - border: 1px solid transparent; - background: #ffffff; - border-radius: 2px; - selection-background-color: @ThemeAccentColor1; - padding-left: 2px; - padding-right: 2px; - /* padding-right = 36; 4 + 16*2 See scrollbar size */ - /* changed to 4px to fix #239 */ - /* Fixes #103, #111 */ - min-height: 1.5em; - margin: 0px -1px 0px 0px; /* hack for Mac... try it on Windows and Linux */ - /* padding-top: 2px; removed to fix #132 */ - /* padding-bottom: 2px; removed to fix #132 */ - /* min-width: 75px; removed to fix #109 */ - /* Needed to remove indicator - fix #132 */ -} -QComboBox:editable { - background: #ffffff; -} -QComboBox QAbstractItemView { - border: 0px solid #C1C1C1; - border-radius: 0px; - background-color: #ffffff; - selection-background-color: @ThemeAccentColor1; -} - -QComboBox QAbstractItemView:hover { - background-color:#ffffff; - color: black; -} - -QComboBox QAbstractItemView:selected { - background: @ThemeAccentColor1; - color: black; -} - -QComboBox QAbstractItemView:alternate { - background: #f6f6f6; -} - -QComboBox:checked { - color: black; -} - -QComboBox:disabled { - background-color: #F6F6F6; - color: #BABABA; -} - -QComboBox:hover { - /*background-color: @ThemeAccentColor1;*/ - border: 1px solid @ThemeAccentColor1; -} - -QComboBox:focus { - border: 1px solid @ThemeAccentColor2; -} - -QComboBox:on { - selection-background-color: @ThemeAccentColor2; -} - -QComboBox::indicator { - padding-left: 8px; - background-color: transparent; -} - -QComboBox::indicator:checked { - width: 12px; - height: 12px; - image:url(qss:images_dark-light/check_dark.svg); -} - -QComboBox::item { - /* Remove to fix #282, #285 and MR #288*/ - /*&:checked { - font-weight: bold; - } - - &:selected { - border: 0px solid transparent; - } - */ -} -/* Background color of popup-list.*/ - -/* Needed to complete the rule set. */ -QComboBox::item:alternate { - background: #f6f6f6; -} - -/* Color of the selected list item. */ -QComboBox::item:selected { - border: 1px solid @ThemeAccentColor2; - background: @ThemeAccentColor2; -} - -QComboBox::drop-down { - subcontrol-origin: padding; - background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #E2E2E2, stop:1 #EDEDED); - subcontrol-position: top right; - width: 14px; - border-left: 1px solid transparent; -} -QComboBox::drop-down:hover { - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); -} - -QComboBox::down-arrow { - image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); - height: 10px; - width: 10px; -} - -QComboBox::down-arrow:on, QComboBox::down-arrow:hover, QComboBox::down-arrow:focus { - image: url(qss:images_dark-light/down_arrow_darker.svg); -} - - -/*================================================================================================== -Tasks panel (custom FreeCAD class) -==================================================================================================*/ -Gui--PropertyEditor--PropertyEditor { - qproperty-groupTextColor: black; - qproperty-groupBackground: #f6f6f6; - border: 0px solid #C1C1C1; - -} - -/* Action group */ -QFrame[class="panel"] { -background-color: transparent; /* temporal (transparent background) */ - -} - -QSint--ActionGroup { -padding: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ -margin: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ -} - -/* Separator line */ -QSint--ActionGroup QFrame[height="1"], -QSint--ActionGroup QFrame[height="2"], -QSint--ActionGroup QFrame[height="3"], -QSint--ActionGroup QFrame[width="1"], -QSint--ActionGroup QFrame[width="2"], -QSint--ActionGroup QFrame[width="3"] { -border-color: rgba(0,0,0,60); -} - -/* Panel header */ -QSint--ActionGroup QFrame[class="header"] { -border-top: 1px solid #C1C1C1; -border-left: 1px solid #C1C1C1; -border-right: 1px solid #C1C1C1; -background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #E2E2E2, stop:1 #EDEDED); -border-top-left-radius: 3px; -border-top-right-radius: 3px; -border-bottom-left-radius: 0px; -border-bottom-right-radius: 0px; -margin: 0px; -padding: 0px; -} - -QSint--ActionGroup QFrame[class="header"]:hover { -background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); -} - -QSint--ActionGroup QToolButton[class="header"] { -color: black; /* Task Panel Header text color */ -text-align: left; -font-weight: bold; -border: none; -margin: 0px; -padding: 0px; -} - -QSint--ActionGroup QFrame[class="header"] QLabel { -background-color: transparent; -background-image: url(qss:images_dark-light/down_arrow_dark.svg); -background-repeat: none; -background-position: center center; -padding: 0px; -margin: 0px; -} - -QSint--ActionGroup QFrame[class="header"] QLabel:hover { -background-color: transparent; -background-image: url(qss:images_dark-light/down_arrow_darker.svg); -} - -QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"] { -background-color: transparent; -background-image: url(qss:images_dark-light/up_arrow_dark.svg); -background-repeat: none; -background-position: center center; -padding: 0px; -margin: 0px; -} - -QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"]:hover { -background-color: transparent; -background-image: url(qss:images_dark-light/up_arrow_darker.svg); -} - -QSint--ActionGroup QFrame[class="content"] { -background-color: transparent; /* Task Panel background color */ -margin: 0px; -padding: 0px; -border-bottom: 1px solid #C1C1C1; -border-left: 1px solid #C1C1C1; -border-right: 1px solid #C1C1C1; -border-top-left-radius: 0px; -border-top-right-radius: 0px; -border-bottom-left-radius: 3px; -border-bottom-right-radius: 3px; -} - -QSint--ActionGroup QFrame[class="content"] > QWidget { -background-color: #F6F6F6; /* Task Panel background color */ -} - -/* Fixs for tabs inside Task Panel */ -QSint--ActionGroup QFrame[class="content"] QTabBar::tab:top:selected { -border-bottom-color: @ThemeAccentColor1; /* same as Task Panel background color */ -} - -QSint--ActionGroup QFrame[class="content"] QTabBar::tab:bottom:selected { -border-top-color: @ThemeAccentColor1; /* same as Task Panel background color */ -} - -QSint--ActionGroup QFrame[class="content"] QTabBar::tab:right:selected { -border-right-color: @ThemeAccentColor1; /* same as Task Panel background color */ -} - -QSint--ActionGroup QFrame[class="content"] QTabBar::tab:left:selected { -border-left-color: @ThemeAccentColor1; /* same as Task Panel background color */ -} - -/* Fix for buttons with icons that showed cropped (still not happy with result) */ -QSint--ActionGroup QFrame[class="content"] > QWidget > QPushButton { -padding: 2px; /* bigger padding crops text and icons... */ -margin: 0px; -} - -/* Fix for lists inside task panels */ /* sketcher constraints list */ -QSint--ActionGroup QFrame[class="content"] QTreeView, -QSint--ActionGroup QFrame[class="content"] QListView, -QSint--ActionGroup QFrame[class="content"] QTableView { -color: black; -background-color: #ffffff; -} - - -/* found inside Part Design Workbench and "make a draft on a face" Task panel options */ -QSint--ActionGroup QFrame[class="content"] QToolButton { - color: black; - text-align: center; - background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #E2E2E2, stop:1 #EDEDED); - border: 0px solid #C1C1C1; - padding: 1px 1px; /* different than regular QPushButton */ - margin: 0px; /* different than regular QPushButton */ - min-height: 16px; /* same as QTabBar QPushButton min-width */ - border-radius: 1px; -} - -QSint--ActionGroup QFrame[class="content"] QToolButton:hover{ - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); - -} -QSint--ActionGroup QFrame[class="content"] QToolButton:focus { - border: 1px solid @ThemeAccentColor2 -; -} - -QSint--ActionGroup QFrame[class="content"] QToolButton:disabled, -QSint--ActionGroup QFrame[class="content"] QToolButton:disabled:checked { - color: #A3A3A3; - background-color: #ffffff; -} - -QSint--ActionGroup QFrame[class="content"] QToolButton:pressed { - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor3); - -} - -/* QSlider ---------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qslider - ---------------------------------------------------------------------------- */ -QSlider:disabled { - background: #F6F6F6; -} - -QSlider:focus { - /*border: 1px solid @ThemeAccentColor2;*/ -} - -QSlider::groove:horizontal { - background: #F6F6F6; - border: 1px solid #C1C1C1; - height: 4px; - margin: 0px; - border-radius: 1.9px; -} - -QSlider::groove:vertical { - background: #F6F6F6; - border: 1px solid #C1C1C1; - width: 4px; - margin: 0px; - border-radius: 1.9px; -} - -QSlider::add-page:vertical { - background: @ThemeAccentColor1; - border: 1px solid #C1C1C1; - width: 4px; - margin: 0px; - border-radius: 1.9px; -} - -QSlider::add-page:vertical :disabled { - background: #f6f6f6; -} - -QSlider::sub-page:horizontal { - background: @ThemeAccentColor1; - border: 1px solid #C1C1C1; - height: 4px; - margin: 0px; - border-radius: 1.9px; -} - -QSlider::sub-page:horizontal:disabled { - background: @ThemeAccentColor1; -} - -QSlider::handle:horizontal { - background: #C1C1C1; - border: 1px solid #C1C1C1; - width: 10px; - height: 8px; - margin: -4px 0px; - border-radius: 6px; -} - -QSlider::handle:horizontal:hover { - background: @ThemeAccentColor1; - border: 1px solid #C1C1C1; -} - -QSlider::handle:horizontal:focus { - border: 1px solid #C1C1C1; - background: @ThemeAccentColor1; -} - -QSlider::handle:vertical { - background: #C1C1C1; - border: 1px solid #C1C1C1; - width: 10px; - height: 8px; - margin: 0px -4px; - border-radius: 6px; -} - -QSlider::handle:vertical:hover { - background: @ThemeAccentColor1; - border: 1px solid #C1C1C1; -} - -QSlider::handle:vertical:focus { - border: 1px solid @ThemeAccentColor2; -} - -/* QLineEdit -------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlineedit - ---------------------------------------------------------------------------- */ -QLineEdit { - background-color: #ffffff; - padding-top: 2px; - /* This QLineEdit fix 103, 111 */ - padding-bottom: 2px; - /* This QLineEdit fix 103, 111 */ - padding-left: 4px; - padding-right: 4px; - border-style: solid; - border: 1px solid #C1C1C1; - border-radius: 2px; - color: black; -} - -QLineEdit:disabled { - background-color: #F6F6F6; - color: #A3A3A3; -} - -QLineEdit:hover { - border: 1px solid @ThemeAccentColor1; - color: black; -} - -QLineEdit:focus { - border: 2px solid @ThemeAccentColor2; -} - -QLineEdit:selected { - background-color: @ThemeAccentColor1; - color: black; -} - -/* QTabWiget -------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar - ---------------------------------------------------------------------------- */ -QTabWidget { - padding: 2px; - selection-background-color: @ThemeAccentColor1; -} - -QTabWidget QWidget { - /* Fixes #189 */ - border-radius: 0px; -} - -QTabWidget::pane { - margin: 0px; - /* Fixes double border inside pane with pyqt5 */ - padding: 0px; - background-color: #f6f6f6; -} - -QTabWidget::pane:selected { - background-color: @ThemeAccentColor1; - border: 1px solid #C1C1C1; -} - -QTabWidget::pane:selected { - background-color: #557bb6; - border: 1px solid #346792; -} - -QTabWidget::pane:top { - top: -1px; - border-top: 1px solid #A3A3A3; -} - -QTabWidget::pane:bottom { - bottom: -1px; - border-bottom: 1px solid #A3A3A3; -} - -QTabWidget::pane:left { - right: -1px; - border-right: 1px solid #A3A3A3; -} - -QTabWidget::pane:right { - left: -1px; - border-left: 1px solid #A3A3A3; -} -/* QTabBar ---------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar - ---------------------------------------------------------------------------- */ -QTabBar, QDockWidget QTabBar { - qproperty-drawBase: 0; - /* left: 5px; move to the right by 5px - removed for fix */ -} - -QTabBar::close-button, QDockWidget QTabBar::close-button { - border: 0; - margin: 0; - padding: 1px; - image: url(qss:images_dark-light/close_dark.svg); -} - -QTabBar::close-button:hover, QDockWidget QTabBar::close-button:hover { - image: url(qss:images_dark-light/close_red.svg); - /*background-color: rgba(255, 0, 0, 0.3);*/ -} - -QTabBar::close-button:pressed, QDockWidget QTabBar::close-button:pressed { - image: url(qss:images_dark-light/close_.svg); -} - -QTabBar::tab, QDockWidget QTabBar::tab { - /* !selected and disabled ----------------------------------------- */ - /* selected ------------------------------------------------------- */ - padding: 4px; -} - -QTabBar::tab:top:selected:disabled, QDockWidget QTabBar::tab:top:selected:disabled { - color: #797979; -} - -QTabBar::tab:bottom:selected:disabled, QDockWidget QTabBar::tab:bottom:selected:disabled { - color: #797979; -} - -QTabBar::tab:left:selected:disabled, QDockWidget QTabBar::tab:left:selected:disabled { - color: #A0A0A0; -} - -QTabBar::tab:right:selected:disabled, QDockWidget QTabBar::tab:right:selected:disabled { - color: #A0A0A0; -} - -QTabBar::tab:top:!selected:disabled, QDockWidget QTabBar::tab:top:!selected:disabled { - color: #A0A0A0; -} - -QTabBar::tab:bottom:!selected:disabled, QDockWidget QTabBar::tab:bottom:!selected:disabled { - color: #A0A0A0; - -} - -QTabBar::tab:left:!selected:disabled, QDockWidget QTabBar::tab:left:!selected:disabled { - color: #A0A0A0; - -} - -QTabBar::tab:right:!selected:disabled, QDockWidget QTabBar::tab:right:!selected:disabled { - color: #A0A0A0; -} - -QTabBar::tab:top:!selected, QDockWidget QTabBar::tab:top:!selected { - color: #A0A0A0; -} - -QTabBar::tab:bottom:!selected, QDockWidget QTabBar::tab:bottom:!selected { - color: #A0A0A0; -} - -QTabBar::tab:left:!selected, QDockWidget QTabBar::tab:left:!selected { - color: #A0A0A0; -} - -QTabBar::tab:right:!selected, QDockWidget QTabBar::tab:right:!selected { - color: #A0A0A0; -} - -QTabBar::tab:top, QDockWidget QTabBar::tab:top { - color: #A0A0A0; - margin-left: 0px; - padding-left: 4px; - padding-right: 4px; - padding-top: 2px; - padding-bottom: 2px; - min-width: 5px; - border-bottom: 1px solid #A3A3A3; /* same as tab content background color */ - border-radius: 0px; -} - -QTabBar::tab:top:selected, QDockWidget QTabBar::tab:top:selected { - color: black; - border-top: 4px solid @ThemeAccentColor1; /* selection color */ - border-bottom: 1px solid transparent; /* same as tab content background color */ - border-left: 1px solid #A3A3A3; - border-right: 1px solid #A3A3A3; - } - -QTabBar::tab:top:!selected:hover, QDockWidget QTabBar::tab:top:!selected:hover { - /*border: 1px solid @ThemeAccentColor1;*/ - border: 0px solid @ThemeAccentColor1; - background-color: @ThemeAccentColor1; - /* Fixes spyder-ide/spyder#9766 and #243 */ - padding-left: 3px; - padding-right: 3px; - color: black; -} - -QTabBar::tab:bottom, QDockWidget QTabBar::tab:bottom { - color: #A0A0A0; - margin-left: 0px; - padding-left: 4px; - padding-right: 4px; - padding-top: 2px; - padding-bottom: 2px; - min-width: 5px; - border-top: 1px solid #A3A3A3; /* same as tab content background color */ - border-radius: 0px; -} - -QTabBar::tab:bottom:selected, QDockWidget QTabBar::tab:bottom:selected { - color: black; - border-bottom: 4px solid @ThemeAccentColor1; /* selection color */ - border-top: 1px solid transparent; /* same as tab content background color */ - border-left: 1px solid #A3A3A3; - border-right: 1px solid #A3A3A3; - -} - -QTabBar::tab:bottom:!selected:hover, QDockWidget QTabBar::tab:bottom:!selected:hover { -/*border: 1px solid @ThemeAccentColor1;*/ - border: 0px solid @ThemeAccentColor1; - background-color: @ThemeAccentColor1; - /* Fixes spyder-ide/spyder#9766 and #243 */ - padding-left: 3px; - padding-right: 3px; - color: black; -} - -QTabBar::tab:left, QDockWidget QTabBar::tab:left { - background-color: #F6F6F6; - margin-top: 2px; - - padding-left: 2px; - padding-right: 2px; - padding-top: 4px; - padding-bottom: 4px; - border-radius: 4px; - min-height: 5px; -} - -QTabBar::tab:left:selected, QDockWidget QTabBar::tab:left:selected { - background-color: #F6F6F6; - border: 0px solid @ThemeAccentColor2; -} - -QTabBar::tab:left:!selected:hover, QDockWidget QTabBar::tab:left:!selected:hover { - border: 0px solid @ThemeAccentColor1; - background-color: @ThemeAccentColor1; - /* Fixes different behavior #271 */ - margin-right: 0px; - padding-right: -1px; - color: black; -} - -QTabBar::tab:right, QDockWidget QTabBar::tab:right { - background-color: #F6F6F6; - margin-top: 2px; - padding-left: 2px; - padding-right: 2px; - padding-top: 4px; - padding-bottom: 4px; - min-height: 5px; - border: 10px; -} - -QTabBar::tab:right:selected, QDockWidget QTabBar::tab:right:selected { - background-color: #F6F6F6; - border: 0px solid @ThemeAccentColor2; -} - -QTabBar::tab:right:!selected:hover, QDockWidget QTabBar::tab:right:!selected:hover { - border: 0px solid @ThemeAccentColor1; - background-color: @ThemeAccentColor1; - /* Fixes different behavior #271 */ - margin-left: 0px; - padding-left: 0px; - color: black; -} - -QTabBar QToolButton, QDockWidget QTabBar QToolButton { - /* Fixes #136 */ - background-color: #F6F6F6; - height: 12px; - width: 12px; -} - -QTabBar QToolButton:pressed, QDockWidget QTabBar QToolButton:pressed { - border: 0px solid @ThemeAccentColor1; - background-color: @ThemeAccentColor1; -} - -QTabBar QToolButton:pressed:hover, QDockWidget QTabBar QToolButton:pressed:hover { - border: 0px solid @ThemeAccentColor1; - background-color: @ThemeAccentColor1; - color: black; -} - -QTabBar QToolButton::left-arrow:enabled, QDockWidget QTabBar QToolButton::left-arrow:enabled { - image: url(qss:images_dark-light/left_arrow_darker.svg); -} - -QTabBar QToolButton::left-arrow:disabled, QDockWidget QTabBar QToolButton::left-arrow:disabled { - image: url(qss:images_dark-light/left_arrow_disabled_dark.svg); -} - -QTabBar QToolButton::right-arrow:enabled, QDockWidget QTabBar QToolButton::right-arrow:enabled { - image: url(qss:images_dark-light/right_arrow_darker.svg); -} - -QTabBar QToolButton::right-arrow:disabled, QDockWidget QTabBar QToolButton::right-arrow:disabled { - image: url(qss:images_dark-light/right_arrow_disabled_dark.svg); -} - -/* QDockWiget ------------------------------------------------------------- - ---------------------------------------------------------------------------- */ -QDockWidget { - background-color: #F6F6F6; - border: 1px solid #C1C1C1; - border-radius: 1.9px; - titlebar-close-icon: url(qss:images_dark-light/transparent.svg); - titlebar-normal-icon: url(qss:images_dark-light/transparent.svg); -} - -QDockWidget::title { - /* Better size for title bar */ - padding: 3px; - spacing: 4px; - border: none; - background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #E2E2E2, stop:1 #EDEDED); - text-align: center; - font-weight: bold; -} - -QDockWidget::close-button { - icon-size: 10px; - border: none; - background: transparent; - background-image: transparent; - border: 0; - margin: 0; - padding: 0; - image: url(qss:images_dark-light/close_dark.svg); -} - -QDockWidget::close-button:hover { - image: url(qss:images_dark-light/close_red.svg); -} - -QDockWidget::close-button:pressed { - image: url(qss:images_dark-light/close_dark.svg); -} - -QDockWidget::float-button { - icon-size: 12px; - border: none; - background: transparent; - background-image: transparent; - border: 0; - margin: 0; - padding: 0; - image: url(qss:images_dark-light/undock_dark.svg); -} - -QDockWidget::float-button:hover { - /*background-color: @ThemeAccentColor1;*/ - image: url(qss:images_dark-light/undock_blue.svg); -} - -QDockWidget::float-button:pressed { - image: url(qss:images_dark-light/undock_dark.svg); -} - -/* QTreeView QListView QTableView ----------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtreeview -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlistview -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtableview - ---------------------------------------------------------------------------- */ -QTreeView::branch { - background: transparent; -} - -QTreeView::branch:has-siblings:!adjoins-item { - border-image: url(qss:images_dark-light/branch_vline_dark.svg) 0; -} - -QTreeView::branch:has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_more_dark.svg) 0; -} - -QTreeView::branch:!has-children:!has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_end_dark.svg) 0; -} - -QTreeView::branch:closed:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_closed_dark.svg) 0; -} - -QTreeView::branch:has-children:!has-siblings:closed { - border-image: url(qss:images_dark-light/branch_end_closed_dark.svg) 0; -} - -QTreeView::branch:open:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_open_dark.svg) 0; -} - -QTreeView::branch:open:has-children:!has-siblings { - border-image: url(qss:images_dark-light/branch_end_open_dark.svg) 0; -} - -QTreeView::indicator:checked, -QListView::indicator:checked, -QTableView::indicator:checked, -QColumnView::indicator:checked { - image: url(qss:images_dark-light/checkbox_dark.svg); -} - -QTreeView::indicator:checked:hover, QTreeView::indicator:checked:focus, QTreeView::indicator:checked:pressed, -QListView::indicator:checked:hover, -QListView::indicator:checked:focus, -QListView::indicator:checked:pressed, -QTableView::indicator:checked:hover, -QTableView::indicator:checked:focus, -QTableView::indicator:checked:pressed, -QColumnView::indicator:checked:hover, -QColumnView::indicator:checked:focus, -QColumnView::indicator:checked:pressed { - image: url(qss:images_dark-light/checkbox_light_hover.svg); -} - -QTreeView::indicator:unchecked, -QListView::indicator:unchecked, -QTableView::indicator:unchecked, -QColumnView::indicator:unchecked { - image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); -} - -QTreeView::indicator:unchecked:hover, QTreeView::indicator:unchecked:focus, QTreeView::indicator:unchecked:pressed, -QListView::indicator:unchecked:hover, -QListView::indicator:unchecked:focus, -QListView::indicator:unchecked:pressed, -QTableView::indicator:unchecked:hover, -QTableView::indicator:unchecked:focus, -QTableView::indicator:unchecked:pressed, -QColumnView::indicator:unchecked:hover, -QColumnView::indicator:unchecked:focus, -QColumnView::indicator:unchecked:pressed { - image: url(qss:images_dark-light/checkbox_unchecked_hover_dark.svg); -} - -QTreeView::indicator:indeterminate, -QListView::indicator:indeterminate, -QTableView::indicator:indeterminate, -QColumnView::indicator:indeterminate { - image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); -} - -QTreeView::indicator:indeterminate:hover, QTreeView::indicator:indeterminate:focus, QTreeView::indicator:indeterminate:pressed, -QListView::indicator:indeterminate:hover, -QListView::indicator:indeterminate:focus, -QListView::indicator:indeterminate:pressed, -QTableView::indicator:indeterminate:hover, -QTableView::indicator:indeterminate:focus, -QTableView::indicator:indeterminate:pressed, -QColumnView::indicator:indeterminate:hover, -QColumnView::indicator:indeterminate:focus, -QColumnView::indicator:indeterminate:pressed { - image: url(qss:images_dark-light/checkbox_indeterminate_dark.svg); -} - -QTreeView, -QListView, -QTableView, -QColumnView { - background-color: #F6F6F6; /* background of a lot of stuff including spreadsheets.*/ - border: 0px solid #C1C1C1; - color: black; - gridline-color: #A3A3A3; - border-radius: 0px; -} - -QTableView, -QListView { - background-color: rgba(229, 229, 229, 0.7); /* background of a lot of stuff including spreadsheets.*/ -} - - -QTreeView:disabled, -QListView:disabled, -QTableView:disabled, -QColumnView:disabled { - background-color: #ffffff; - color: #A3A3A3; -} - -QTreeView:selected, -QListView:selected, -QTableView:selected, -QColumnView:selected { - background-color: @ThemeAccentColor1; - color: black; -} - -QTreeView:focus, -QListView:focus, -QTableView:focus, -QColumnView:focus { - border: 1px solid @ThemeAccentColor2; -} - -QTreeView::item:pressed, -QListView::item:pressed, -QTableView::item:pressed, -QColumnView::item:pressed { - background-color: @ThemeAccentColor1; -} - -QTreeView::item:selected:active, -QListView::item:selected:active, -QTableView::item:selected:active, -QColumnView::item:selected:active { - background-color: @ThemeAccentColor1; -} - -QTreeView::item:selected:!active, -QListView::item:selected:!active, -QTableView::item:selected:!active, -QColumnView::item:selected:!active { - color: black; - background-color: @ThemeAccentColor1; -} - -QTreeView::item:!selected:hover, -QListView::item:!selected:hover, -QTableView::item:!selected:hover, -QColumnView::item:!selected:hover { - outline: 0; - color: black; - background-color: @ThemeAccentColor1; -} - -QTableCornerButton::section { - background-color: #F6F6F6; - border: 1px transparent #C1C1C1; - border-radius: 0px; -} - -QTableView::item { - color: black; -} -QTableView { - /*qproperty-AliasedCellBackgroundColor: #f700ff;*/ - /*qproperty-aliasBgColor: #f700ff;*/ -} - -/* QHeaderView ------------------------------------------------------------ - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qheaderview - ---------------------------------------------------------------------------- */ -QHeaderView { - background-color: transparent; - text-align: center; -} - -QHeaderView:disabled { - background-color: #F6F6F6; - color: rgb(174, 174, 174); -} - -QHeaderView::section { - background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #E2E2E2, stop:1 #EDEDED); - color: black; - border: 1px solid #C1C1C1; - font-size: 13px; - font-weight: bold; -} - -QHeaderView::section::horizontal { - padding-top: 1px; - padding-bottom: 1px; - padding-left: 5px; - padding-right: 0px; -} - -QHeaderView::section::horizontal::first, QHeaderView::section::horizontal::only-one { - border-left: 0px solid #C1C1C1; -} - -QHeaderView::section::horizontal:disabled { - color: #BABABA; -} - -QHeaderView::section::vertical { - padding-top: 1px; - padding-bottom: 0; - padding-left: 1px; - padding-right: 0px; - border-top: 2px solid #C1C1C1; -} - -QHeaderView::section::vertical::first, QHeaderView::section::vertical::only-one { - border-top: 2px solid #C1C1C1; -} - -QHeaderView::section::vertical:disabled { - border-top: 2px solid #C1C1C1; -} - -QHeaderView::down-arrow { - /* Those settings (border/width/height/background-color) solve bug */ - /* transparent arrow background and size */ - background-color: transparent; - border: none; - height: 12px; - width: 12px; - padding-left: 2px; - padding-right: 2px; - image: url(qss:images_dark-light/down_arrow_dark.svg); -} - -QHeaderView::up-arrow { - background-color: transparent; - border: none; - height: 12px; - width: 12px; - padding-left: 2px; - padding-right: 2px; - image: url(qss:images_dark-light/up_arrow_dark.svg); -} - -/* QToolBox -------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbox -used in PATH - ---------------------------------------------------------------------------- */ -QToolBox { - padding: 0px; - border: 1px solid #A3A3A3; - border-radius: 4px; - background-color: transparent; -} - -QToolBox:selected { - padding: 0px; - border: 0px solid @ThemeAccentColor1; -} - -QToolBox::tab { - background-color: transparent; - border: 0px solid #A3A3A3; - color: black; - background-image: url(qss:images_dark-light/down_arrow_darker.svg); - background-repeat: none; - background-position: center left; -} - -QToolBox::tab:disabled { - color: #A3A3A3; -} - -QToolBox::tab:selected { - background-color: #A3A3A3; - background-image: url(qss:images_dark-light/transparent.svg); - padding-right: 5px; - background-repeat: none; -} - -QToolBox::tab:selected:disabled { - background-color: #A3A3A3; - border-bottom: 0px solid #cccccc; - color: black; -} - -QToolBox::tab:!selected { - -} - -QToolBox::tab:!selected:disabled { - background-color: #F6F6F6; -} - -QToolBox::tab:hover { - background-color: @ThemeAccentColor1; - } - -QToolBox QScrollArea QWidget QWidget { - padding: 0px; - border: 0px; - background-color: transparent; -} - -/* QFrame ----------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe -https://doc.qt.io/qt-5/qframe.html#-prop -https://doc.qt.io/qt-5/qframe.html#details -https://stackoverflow.com/questions/14581498/qt-stylesheet-for-hline-vline-color - ---------------------------------------------------------------------------- */ -/* (dot) .QFrame fix #141, #126, #123 */ -.QFrame { - border-radius: 0px; - border: 0px solid #C1C1C1; - background-color: #A3A3A3; - /* No frame */ - /* HLine */ - /* HLine */ -} - -.QFrame[frameShape="0"] { - border-radius: 1.9px; - border: 1px solid #C1C1C1; -} - -.QFrame[frameShape="4"] { - max-height: 1px; - border: none; - background-color: #f6f6f6; -} - -.QFrame[frameShape="5"] { - max-width: 1px; - border: none; - background-color: #F6F6F6; -} - -/* QSplitter -------------------------------------------------------------- - -https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsplitter - ----------------------------------------------------------------------------*/ -QSplitterHandle:hover { /* to fix bug about hovering on splitters https://bugreports.qt.io/browse/QTBUG-13768 */ - -} - -QSplitter::handle { - margin: 0px 0px; - padding: 0px; -} - -QSplitter::handle:horizontal { - background-image: none; - background-position: center center; - background-repeat: none; - margin: 2px 2px 2px 2px; - width: 1px; -} - -QSplitter::handle:vertical { - background-image: none; - background-position: center center; - background-repeat: none; - margin: 2px 2px 2px 2px; - height: 1px; -} -QSplitter::handle:vertical:hover { - background-image: url(qss:images_dark-light/splitter_horizontal_dark.svg); - background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0.2 transparent,stop:0.5 @ThemeAccentColor1, stop:0.8 transparent); - background-position: center center; - background-repeat: none; - } - -QSplitter::handle:vertical:hover { - background-image: url(qss:images_dark-light/splitter_horizontal_dark.svg); - background-position: center center; - background-repeat: none; - background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0.2 transparent,stop:0.5 @ThemeAccentColor1, stop:0.8 transparent); -} - -/* QDateEdit, QDateTimeEdit ----------------------------------------------- - ---------------------------------------------------------------------------- */ -QDateEdit, QDateTimeEdit { - selection-background-color: @ThemeAccentColor1; - border-style: solid; - border: 1px solid #C1C1C1; - border-radius: 1.9px; - /* This fixes 103, 111 */ - padding-top: 2px; - /* This fixes 103, 111 */ - padding-bottom: 2px; - padding-left: 4px; - padding-right: 4px; - min-width: 10px; -} - -QDateEdit:on, QDateTimeEdit:on { - selection-background-color: @ThemeAccentColor1; -} - -QDateEdit::drop-down, QDateTimeEdit::drop-down { - subcontrol-origin: padding; - subcontrol-position: top right; - width: 12px; - border-left: 1px solid #C1C1C1; -} - -QDateEdit::down-arrow, QDateTimeEdit::down-arrow { - image: url(qss:images_dark-light/down_arrow_disabled_dark.svg); - height: 8px; - width: 8px; -} - -QDateEdit::down-arrow:on, QDateEdit::down-arrow:hover, QDateEdit::down-arrow:focus, QDateTimeEdit::down-arrow:on, QDateTimeEdit::down-arrow:hover, QDateTimeEdit::down-arrow:focus { - image: url(qss:images_dark-light/down_arrow_darker.svg); -} - -QDateEdit QAbstractItemView, QDateTimeEdit QAbstractItemView { - background-color: #F6F6F6; - border-radius: 2px; - border: 1px solid #C1C1C1; - selection-background-color: @ThemeAccentColor1; -} - -/* QAbstractView ---------------------------------------------------------- - ---------------------------------------------------------------------------- */ -QAbstractView:hover { - border: 1px solid @ThemeAccentColor1; - color: black; -} - -QAbstractView:selected { - background: @ThemeAccentColor1; - color: black; -} - -/* PlotWidget ------------------------------------------------------------- - ---------------------------------------------------------------------------- */ -PlotWidget { - /* Fix cut labels in plots #134 */ - padding: 0px; -} - -/*================================================================================================== -SKETCHER -==================================================================================================*/ - -Gui--StatefulLabel[state="empty_sketch"] { - color : rgba(255,255,255,127); /* 50% opacity white */ -} -Gui--StatefulLabel[state="under_constrained"] { - color : rgba(255,255,255,255); /* White */ -} -Gui--StatefulLabel[state="conflicting_constraints"] { - color : rgba(255,0,0,255); /* Red */ -} -Gui--StatefulLabel[state="malformed_constraints"] { - color : rgba(255,0,0,255); /* Red */ -} -Gui--StatefulLabel[state="redundant_constraints"] { - color : rgba(255,69,0,255); /* Orange red */ -} -Gui--StatefulLabel[state="partially_redundant_constraints"] { - color : rgba(65,105,225,255); /* Royal blue */ -} -Gui--StatefulLabel[state="solver_failed"] { - color : rgba(255,0,0,255); /* Red */ - font-weight: bold; -} -Gui--StatefulLabel[state="fully_constrained"] { - color : rgba(0,255,0,255); /* Green */ - font-weight: bold; -} -Gui--UrlLabel { - color : rgba(0,91,255,255); /* Deep sky blue */ - text-decoration : underline; -} - -Gui--NotificationLabel { - background-color: #f6f6f6; - border: 1px solid #cccccc; - border-radius: 2px; -} - -/*================================================================================================== -Forming windows below are the border settings. See also https://forum.freecad.org/viewtopic.php?p=439797#p439797 -==================================================================================================*/ -QMdiSubWindow { - border:2px solid #ffffff; - border-radius: 2px; - border-top-right-radius: 7px; - border-top-left-radius: 7px; - background-color: #f6f6f6; -} - -QMdiSubWindow:hover { - border:2px solid #cccccc; -} - -QMdiSubWindow:active { - border:2px solid @ThemeAccentColor1; -} - -/*================================================================================================== -Settings menu #groupsTreeView: -==================================================================================================*/ - -QTreeView::branch#groupsTreeView:closed:has-children:has-siblings { - border-image: none 0; -} - -QTreeView::branch#groupsTreeView:open:has-children:has-siblings { - border-image: none 0; -} - -QTreeView::branch#groupsTreeView:open:has-children:!has-siblings { - border-image: none 0; -} - -QTreeView::branch#groupsTreeView:has-children:!has-siblings:closed { - border-image: none 0; -} - -QTreeView::branch#groupsTreeView:has-siblings:!adjoins-item { - border-image: none 0; -} diff --git a/src/Gui/Stylesheets/ProDark.qss b/src/Gui/Stylesheets/ProDark.qss deleted file mode 100644 index 87f9fa1c07..0000000000 --- a/src/Gui/Stylesheets/ProDark.qss +++ /dev/null @@ -1,2583 +0,0 @@ -/* -ABOUT -============================================================================================================ -ProDark -A Professional Dark Mode FreeCAD Theme by Thomas Plank aka turn211 -based on the stock theme from FreeCAD by Pablo Gil Fernández - -KNOWN BUGS and TO DO -============================================================================================================ -Please, follow the link to get updated information: -https://forum.freecad.org/viewtopic.php?f=34&t=55134&sid=0466734fc3349eccd8921eb356f70ad7 - -LICENSE -============================================================================================================ -Copyright (c) 2019 Pablo Gil Fernández - -This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. -To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/. - -INSTALLATION -============================================================================================================ -1) Place the .qss files and /images/ folder in the path that fits your OS: - OSX = /Users/[YOUR_USER_NAME]/Library/Preferences/FreeCAD/Gui/Stylesheets/ - WINDOWS = C:/[INSTALLATION_PATH]/FreeCAD/data/Gui/Stylesheets/ - LINUX = /home/[YOUR_USER_NAME]/.FreeCAD/Gui/Stylesheets/ - -============================================================================================================ -THESE COLOURS WERE USED AS TEMP SCRATCHPAD FOR DESIGNING. PLEASE DISREGARD! - - BACKGROUND (darker to lighter) - black - #1e1e1e - #2a2a2a = background - #333333 - #424242 - #3c3c3c - #333333 = main background color - #3c3c3c = secondary - #a0a0a0 - #b4b4b4 - #bebebe - #c8c8c8 - #d2d2d2 - #e0e0e0 - #f5f5f5 - white - - SELECTION (darker to lighter) - @ThemeAccentColor1 - #696969 - #3874f2 - @ThemeAccentColor1 = main selection color - @ThemeAccentColor1 = used to build QSpinBox up and down buttons, it's used as color in the middle - #adc5ed - #cbd8e6 -*/ - - -/*================================================================================================== -Reset elements -==================================================================================================*/ -/* Resetting everything helps to unify styles across different operating systems */ -* { - padding: 0px; - margin: 0px; - border: 0px; - border-style: none; - border-image: none; - outline: 0; - color: #f5f5f5; /* Default color for labels and different text elements that usually use dark colors */ -} - -/* specific reset for elements inside QToolBar */ -QToolBar * { - margin: 0px; - padding: 0px; -} - -/*================================================================================================== -Style Links -==================================================================================================*/ -QLabel[haslink="true"] { - color: #55aaff; -} - -Gui--UrlLabel { - color: #55aaff; -} - -/*================================================================================================== -Main window -==================================================================================================*/ -QWidget { - background-color: #333333; -} -QMainWindow, -QDialog, -QDockWidget, -QToolBar { - background-color: #333333; /* main background color */ -} - -QMdiArea { - background-image: url(qss:images_dark-light/background_freecad_dark.svg); - background-position: center center; - background-repeat: no-repeat; -} - - -/*================================================================================================== -Sub windows -==================================================================================================*/ -QMdiSubWindow { - border:1px solid #333333; - margin-top: 30px; - margin-left: 4px; - margin-right: 4px; - margin-bottom:4px; -} - -/*================================================================================================== -QToolBox -==================================================================================================*/ -QToolBox -{ - background-color: transparent; -} - - -QToolBox::tab -{ - background-color: #2a2a2a; - border: 2x solid #3c3c3c; - border-radius: 2px; -} - - -QToolBox::tab:hover -{ - background-color: @ThemeAccentColor1; - border: 1px solid #6492d7; - border-radius: 1px -} - -/*================================================================================================== -QStatusBar -==================================================================================================*/ -QStatusBar > QLabel { - margin-left: 4px; -} - - -QStatusBar::item { - border: 1px solid #333333; - border-radius: 0px; -} - -/*================================================================================================== -MENUS -==================================================================================================*/ -QMenuBar, -QMenuBar::item { - color: #f5f5f5; - background-color: #2a2a2a; /* top menu main background color */ -} - -QMenu, -QMenu::item { - color: #f5f5f5; - background-color: #2a2a2a; - text-decoration: none; -} - -QMenuBar::item:selected, -QMenuBar::item:pressed, -QMenu::item:selected, -QMenu::item:pressed { - color: #ffffff; - background-color: @ThemeAccentColor1; -} - -QMenu::right-arrow { - width: 10px; - height: 10px; - image:url(qss:images_dark-light/right_arrow_light.svg); - margin-right: 2px; -} - -QMenu::right-arrow:selected { - image:url(qss:images_dark-light/right_arrow_lighter.svg); -} - -QMenu::item { - padding: 2px 4px; /* make room for icon at left */ - border: 1px solid transparent; /* reserve space for selection border */ -} - -QMenu::icon { - margin-left: 1px; - margin-right: 1px; -} - -QMenu::icon:checked { /* appearance of a 'checked' icon */ - background: @ThemeAccentColor1; - border: 2px @ThemeAccentColor1; - position: absolute; - border-radius: 2px; -} - -QMenu::separator { - height: 1px; - background-color: rgba(255,255,255,30); - margin: 6px 4px; -} - -QMenu::indicator:non-exclusive:checked { - color: white; -} - -/* Fix for elements inside a drop-down menu */ -QMenu QRadioButton, -QMenu QCheckBox, -QMenu QPushButton, -QMenu QToolButton { - color: white; /* same as regular QRadioButton and QCheckBox */ -} - -QMenu QRadioButton:hover, -QMenu QCheckBox:hover, -QMenu QPushButton:hover, -QMenu QToolButton:hover, -QMenu QPushButton:pressed, -QMenu QToolButton:pressed, -QMenu QPushButton:selected, -QMenu QToolButton:selected { - color: white; - background-color: @ThemeAccentColor1; /* same as QMenu::item:selected and QMenu::item:pressed */ -} - -QMenu QRadioButton:disabled, -QMenu QCheckBox:disabled { - color: #f5f5f5; -} - -QMenu QRadioButton::indicator:disabled, -QMenu QCheckBox::indicator:disabled { - color: #f5f5f5; - background-color: transparent; - border: 1px solid #f5f5f5; -} - - -/*================================================================================================== -Tool bar -==================================================================================================*/ -QToolBar { - padding: 2px; -} - -QToolBar::handle:top, -QToolBar::handle:bottom, -QToolBar::handle:horizontal { - background-image: url(qss:images_dark-light/Hmovetoolbar_light.svg); - width: 10px; - margin: 4px 2px; - background-position: top right; - background-repeat: repeat-y; -} - -QToolBar::handle:left, -QToolBar::handle:right, -QToolBar::handle:vertical { - background-image: url(qss:images_dark-light/Vmovetoolbar_light.svg); - height: 10px; - margin: 2px 4px; - background-position: left bottom; - background-repeat: repeat-x; -} - -QToolBar::separator:top, -QToolBar::separator:bottom, -QToolBar::separator:horizontal { - width: 1px; - margin: 6px 4px; - background-color: #949494; -} - -QToolBar::separator:left, -QToolBar::separator:right, -QToolBar::separator:vertical { - height: 1px; - margin: 4px 6px; - background-color: #949494; -} - - -/*================================================================================================== -Group box -==================================================================================================*/ -QGroupBox { - color: #bcbcbc; - border:1px solid rgba(255,255,255,20); /* lighter than its own border-color */; - border-radius: 1px; - margin-top: 10px; - padding: 6px; - background-color: rgba(255,255,255,0); -} - -QGroupBox:title { - top: -8px; - left: 12px; -} - -/* NOTE: QGroupBox checkboxes are styles with regular ones so that the all get the same style */ -/* QGroupBox::indicator { - width: 13px; - height: 13px; -} - -QGroupBox::indicator:unchecked { - image: url(:/images/checkbox_unchecked.png); -} */ - - -/*================================================================================================== -Tooltip -==================================================================================================*/ -QToolTip { - color: #ffffff; - background-color: #2a2a2a; - /*opacity: 90%; doesn't correctly work */ - padding: 4px; - border-radius: 1px; /* has no effect */ -} - - -/*================================================================================================== -Dock widget -==================================================================================================*/ -QDockWidget { - color: #a0a0a0; - titlebar-close-icon: url(qss:images_dark-light/close_light.svg); - titlebar-normal-icon: url(qss:images_dark-light/undock_light.svg); - background-color: #333333; -} - -QDockWidget::title { - text-align: center; - background-color: #2a2a2a; - border-bottom: 4px solid #333333; /* fix to simulate margin between this :title and tabs */ /* same as main background color */ - margin-left: 6px; - margin-right: 6px; -} - -QDockWidget::close-button, -QDockWidget::float-button { - border: none; - background: transparent; - border-radius: 1px; - subcontrol-origin: padding; - subcontrol-position: right center; -} - -QDockWidget::close-button { - right: 4px; -} - -QDockWidget::float-button { - right: 22px; -} - -QDockWidget::close-button:hover, -QDockWidget::float-button:hover { - background-color: @ThemeAccentColor1; -} - -QDockWidget::close-button:pressed, -QDockWidget::float-button:pressed { - background-color: @ThemeAccentColor2; - border: 2px solid @ThemeAccentColor3; -} - -/* fix for Python Console (probably there is a smarter way to arrive to it) */ -QDockWidget > QFrame { - background-color: #3c3c3c; - border: 6px solid #333333; -} - - -/*================================================================================================== -Progress bar -==================================================================================================*/ -QProgressBar, -QProgressBar:horizontal { - color: white; - min-height: 24px; - background-color: rgba(0,0,0,70); - text-align: center; - border: 1px solid rgba(0,0,0,140); - padding: 1px; - border-radius: 1px; -} -QProgressBar::chunk, -QProgressBar::chunk:horizontal { - background-color: @ThemeAccentColor1; - border-radius: 1px; -} - - -/*================================================================================================== -Scroll -==================================================================================================*/ -QAbstractScrollArea { - border-radius: 1px; - background-color: transparent; -} - -QAbstractScrollArea::corner { - border: none; - background-color: transparent; -} - -QScrollBar:horizontal { - background-color: #2a2a2a; - height: 15px; - margin: 0px; -} - -QScrollBar::handle:vertical, -QScrollBar::handle:horizontal { - background-color: #696969; -} - -QScrollBar::handle:vertical:hover, -QScrollBar::handle:horizontal:hover { - background-color: @ThemeAccentColor1; -} - -QScrollBar::handle:horizontal { - min-width: 5px; - border-radius: 1px; - margin: 4px 15px; -} - -QScrollBar::sub-line:horizontal { - margin: 1px 3px 0px 3px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images_dark-light/left_arrow_light.svg); - width: 6px; - height: 10px; - subcontrol-position: left; - subcontrol-origin: margin; -} - -QScrollBar::add-line:horizontal { - margin: 1px 3px 0px 3px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images_dark-light/right_arrow_light.svg); - width: 6px; - height: 10px; - subcontrol-position: right; - subcontrol-origin: margin; -} - -QScrollBar::sub-line:horizontal:hover, -QScrollBar::sub-line:horizontal:on { - border-image: url(qss:images_dark-light/left_arrow_lighter.svg); - background-color: @ThemeAccentColor1; -} - -QScrollBar::add-line:horizontal:hover, -QScrollBar::add-line:horizontal:on { - border-image: url(qss:images_dark-light/right_arrow_lighter.svg); - background-color: @ThemeAccentColor1; -} - -QScrollBar::up-arrow:horizontal, -QScrollBar::down-arrow:horizontal { - background-color: none; -} - -QScrollBar::add-page:horizontal, -QScrollBar::sub-page:horizontal { - background-color: transparent; -} - -QScrollBar:vertical { - background-color: #2a2a2a; - width: 15px; - margin: 0px; -} - -QScrollBar::handle:vertical { - min-height: 24px; - border-radius: 1px; - margin: 15px 4px; -} - -QScrollBar::sub-line:vertical { - margin: 3px 0px 3px 1px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images_dark-light/up_arrow_light.svg); - height: 6px; - width: 10px; - subcontrol-position: top; - subcontrol-origin: margin; -} - -QScrollBar::add-line:vertical { - margin: 3px 0px 3px 1px; /* 1px to correctly fit the 10px width image */ - border-image: url(qss:images_dark-light/down_arrow_light.svg); - height: 6px; - width: 10px; - subcontrol-position: bottom; - subcontrol-origin: margin; -} - -QScrollBar::sub-line:vertical:hover, -QScrollBar::sub-line:vertical:on { - border-image: url(qss:images_dark-light/up_arrow_lighter.svg); - background-color: @ThemeAccentColor1; -} - -QScrollBar::add-line:vertical:hover, -QScrollBar::add-line:vertical:on { - border-image: url(qss:images_dark-light/down_arrow_lighter.svg); - background-color: @ThemeAccentColor1; -} - -QScrollBar::up-arrow:vertical, -QScrollBar::down-arrow:vertical { - background-color: none; -} - -QScrollBar::add-page:vertical, -QScrollBar::sub-page:vertical { - background-color: transparent; -} - - -/*================================================================================================== -Tab bar -==================================================================================================*/ -QTabWidget::pane { - background-color: transparent; /* temporal (transparent background) */ /* tab content background color */ /* was transparent. fixes no color undocked Combo View */ - position: absolute; -} - -QTabWidget::pane:top { - top: -1px; - border-top: 1px solid #333333; -} - -QTabWidget::pane:bottom { - bottom: -1px; - border-bottom: 1px solid #33333C; -} - -QTabWidget::pane:left { - right: -1px; - border-right: 1px solid #333333; -} - -QTabWidget::pane:right { - left: -1px; - border-left: 1px solid #333333; -} - -QTabWidget::tab-bar:top, -QTabWidget::tab-bar:bottom { - left: 8px; -} - -QTabWidget::tab-bar:left, -QTabWidget::tab-bar:right { - top: 6px; -} - -QTabBar { - qproperty-drawBase: 0; /* important */ - background-color: transparent; /* Hack for Undocked white background - was transparent*/ -} - -/* Workaround for QTabBars created from docked QDockWidgets which don't draw the border if not set and reset as follows: */ -QTabBar { - border-top: 1px solid #333333; /* set color for all QTabBars */ -} -QDockWidget QTabBar { - border-color: transparent; /* set color for all QTabBars but ones created from QDockWidget */ -} -QDialog QTabBar { - border-color: transparent; /* set color for QTabBars inside Preferences dialog */ -} -/* end fix */ - -QTabBar::tab { - background-color: #3c3c3c; /* was transparent */ - border: 1px solid transparent; - padding: 3px 12px; -} - -QTabBar::tab:top, -QTabBar::tab:bottom { - border-top-width: 4px; /* same as selected tab colored border in order to center close-button */ - border-bottom-width: 4px; /* same as selected tab colored border in order to center close-button */ - min-width: 11ex; - margin-left: 0px; - margin-right: 0px; -} - -QTabBar::tab:left, -QTabBar::tab:right { - border-left-width: 4px; /* same as selected tab colored border in order to center close-button */ - border-right-width: 4px; /* same as selected tab colored border in order to center close-button */ - min-height: 14ex; - margin-top: 0px; - margin-bottom: 0px; -} - -QTabBar::tab:selected { - color: #f5f5f5; - background-color: #333333; /* same as tab content background color */ - border-color: #3C3C3C; -} - -QTabBar::tab:top:selected { - border-top: 4px solid @ThemeAccentColor1; /* selection color */ - border-bottom-color: #333333; /* same as tab content background color */ - border-radius: 2px; -} - -QTabBar::tab:bottom:selected { - border-bottom: 4px solid @ThemeAccentColor1; /* selection color */ - border-top-color: #333333; /* same as tab content background color */ -} - -QTabBar::tab:right:selected { - border-left: 4px solid @ThemeAccentColor1; /* selection color */ - border-right-color: #333333; /* same as tab content background color */ -} - -QTabBar::tab:left:selected { - border-right: 4px solid @ThemeAccentColor1; /* selection color */ - border-left-color: #333333; /* same as tab content background color */ -} - -QTabBar::tab:!selected { - color: rgba(255,255,255,120); -} - -QTabBar::tab:!selected:hover { - color: rgba(255,255,255,180); - background-color: @ThemeAccentColor1; /* Hack for Undocked inactive tabs - can also change to #696969 */ /* was rgba(255,255,255,20) */ -} - -QTabBar::tab:first:selected { - margin-left: 0; /* the first selected tab has nothing to overlap with on the left */ -} - -QTabBar::tab:last:selected { - margin-right: 0; /* the last selected tab has nothing to overlap with on the right */ -} - -QTabBar::tab:only-one { - margin: 0; /* if there is only one tab, we don't want overlapping margins */ -} - -/* hack to access Preference TabBar background */ -QDialog#Gui__Dialog__DlgPreferences > QFrame QFrame { - background-color: transparent; /* main background color (in Windows is #333333) */ -} - -/* fix for previous hack that broke QTabWidget background on Windows */ -QDialog#Gui__Dialog__DlgPreferences QTabWidget::pane { - background-color: transparent; /* temporal (transparent background) */ -} - -/* hack to correctly align Preferences icon list on OSX */ -QDialog#Gui__Dialog__DlgPreferences > QListView { - min-width: 108px; /* narrowed for new smaller icons - was 130px*/ - max-width: 108px; -} - -/* unique styles for sections inside Preferences */ -QDialog#Gui__Dialog__DlgPreferences > QListView::item { - border-radius: 1px; -} - -QDialog#Gui__Dialog__DlgPreferences > QListView::item:hover { /* Preference left icons*/ - background-color: @ThemeAccentColor1; -} - -QDialog#Gui__Dialog__DlgPreferences > QListView::item:selected { /* Preference left icons*/ - color: white; - background-color: @ThemeAccentColor1; -} - - -/*================================================================================================== -Tab bar buttons -==================================================================================================*/ -/* Close button */ -QTabBar::close-button { - subcontrol-origin: margin; - subcontrol-position: center right; /* only works for Qt 4.6 and newer */; - border-radius: 1px; - background-image: url(qss:images_dark-light/close_light.svg); - background-position: center center; - background-repeat: none; -} - -QTabBar::close-button:hover { - background-color: rgba(255,255,255,20); -} - -QTabBar::close-button:pressed { - background-color: rgba(255,255,255,30); -} - -/* Fix for lists inside Model tab */ -QDockWidget QTreeView, -QDockWidget QListView, -QDockWidget QTableView { - margin: 6px; - border: 1px solid #333333; /* same as regular QTreeView, QListView and QTableView */ - min-height: 40px; /* necessary in some areas of FreeCAD */ -} - -/* Buttons to scroll tabs if there is not space to show all of them: */ -QTabBar::scroller { - width: 20px; /* the width of the scroll buttons */ -} - -QTabBar QToolButton, -QTabBar QToolButton:hover { - background-color: #333333; /* same as main background color */ -} - -QTabBar QToolButton::right-arrow:enabled { - image: url(qss:images_dark-light/right_arrow_dark.svg); -} - -QTabBar QToolButton::right-arrow:disabled, -QTabBar QToolButton::right-arrow:off { - image: url(qss:images_dark-light/right_arrow_disabled_dark.svg); -} - -QTabBar QToolButton::right-arrow:hover { - image: url(qss:images_dark-light/right_arrow_darker.svg); -} - - QTabBar QToolButton::left-arrow:enabled { - image: url(qss:images_dark-light/left_arrow_dark.svg); -} - - QTabBar QToolButton::left-arrow:disabled, - QTabBar QToolButton::left-arrow:off { - image: url(qss:images_dark-light/left_arrow_disabled_dark.svg); -} - - QTabBar QToolButton::left-arrow:hover { - image: url(qss:images_dark-light/left_arrow_darker.svg); -} - - QTabBar QToolButton::up-arrow:enabled { - image: url(qss:images_dark-light/up_arrow_dark.svg); -} - - QTabBar QToolButton::up-arrow:disabled, - QTabBar QToolButton::up-arrow:off { - image: url(qss:images_dark-light/up_arrow_disabled_dark.svg); -} - - QTabBar QToolButton::up-arrow:hover { - image: url(qss:images_dark-light/up_arrow_darker.svg); -} - - QTabBar QToolButton::down-arrow:enabled { - image: url(qss:images_dark-light/down_arrow_light.svg); -} - - QTabBar QToolButton::down-arrow:disabled, - QTabBar QToolButton::down-arrow:off { - image: url(qss:images_dark-light/down_arrow_disabled_light.svg); -} - - QTabBar QToolButton::down-arrow:hover { - image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -QTabBar::tear { - /* default OS tear better */ -} - - -/*================================================================================================== -Tree and list views -==================================================================================================*/ -QTreeView, -QListView, -QTableView { - color: #e0e0e0; - background-color: #3c3c3c; /*Also controls Default Spreadsheet background */ - alternate-background-color: #333333; /* related with QListView background */ - border: 1px solid #333333; - selection-color: #ffffff; - selection-background-color: @ThemeAccentColor1; /* should be similar to QListView::item selected background-color */ - show-decoration-selected: 1; /* make the selection span the entire width of the view */ - border-radius: 1px; -} - -QListView::item:hover, -QTreeView::item:hover { - background-color: transparent; /* fix to homogenize it on all OSs */ -} - -QListView::item:selected, -QTreeView::item:selected { - color: #ffffff; /* should be similar to QListView selection-color */ - background-color: @ThemeAccentColor1; /* should be similar to QListView selection-background-color */ - show-decoration-selected: 1; /* make the selection span the entire width of the view */ -} - -/* Property Editor QTreeView (FreeCAD custom widget) */ -Gui--PropertyEditor--PropertyEditor { - gridline-color: #333333; /* same as Group header background */ -} - -/* fix for column items background when a link is present */ -Gui--PropertyEditor--PropertyEditor > QWidget > QFrame:focus { - background-color: #696969; /* same as focused background color */ -} - -/* hack to hide weird redundant information inside the value of a Placement cell */ -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel, -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel:disabled { - color: transparent; - background-color: transparent; - border: none; - border-radius: 1px; - margin: 0px; - padding: 0px; -} - -/* hack to hide non editable cells inside Property values */ -Gui--PropertyEditor--PropertyEditor QLineEdit:read-only, -Gui--PropertyEditor--PropertyEditor QLineEdit:disabled, -Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:read-only, -Gui--PropertyEditor--PropertyEditor QAbstractSpinBox:disabled { - color: transparent; - border-color: transparent; - background-color: transparent; - selection-color: transparent; - selection-background-color: transparent; -} - -/* hack to hide weird redundant information inside cells with links and no editable data (but editable via "..." button) */ -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QLabel { - color: #949494; - background-color: #2a2a2a; /* same as focused background color */ -} - -/* hack to disable margin inside Property values to following elements */ -Gui--PropertyEditor--PropertyEditor QSpinBox, -Gui--PropertyEditor--PropertyEditor QDoubleSpinBox, -Gui--PropertyEditor--PropertyEditor QAbstractSpinBox, -Gui--PropertyEditor--PropertyEditor QLineEdit, -Gui--PropertyEditor--PropertyEditor QComboBox { - margin-left: 0px; - margin-right: 0px; - padding-top: 0px; - padding-bottom: 0px; -} - -/* reset min-height to 0px inside list views */ -QTreeView > QWidget > QComboBox, -QTreeView > QWidget > QAbstractSpinBox, -QTreeView > QWidget > QSpinBox, -QTreeView > QWidget > QDoubleSpinBox, -QTreeView > QWidget > QLineEdit, -QTreeView > QWidget > QTextEdit, -QTreeView > QWidget > QTimeEdit, -QTreeView > QWidget > QDateEdit, -QTreeView > QWidget > QDateTimeEdit, -QTreeView > QWidget > Gui--ColorButton { - min-height: 0px; -} - -/* set border-radius to 0px inside list views */ -QTreeView > QWidget > QComboBox, -QTreeView > QWidget > QAbstractSpinBox, -QTreeView > QWidget > QSpinBox, -QTreeView > QWidget > QDoubleSpinBox, -QTreeView > QWidget > QLineEdit, -QTreeView > QWidget > QTextEdit, -QTreeView > QWidget > QTimeEdit, -QTreeView > QWidget > QDateEdit, -QTreeView > QWidget > QDateTimeEdit, -QTreeView > QWidget > QComboBox:drop-down, -QTreeView > QWidget > QAbstractSpinBox:up-button, -QTreeView > QWidget > QSpinBox:up-button, -QTreeView > QWidget > QDoubleSpinBox:up-button, -QTreeView > QWidget > QTimeEdit:up-button, -QTreeView > QWidget > QDateEdit:up-button, -QTreeView > QWidget > QDateTimeEdit:up-button, -QTreeView > QWidget > QAbstractSpinBox:down-button, -QTreeView > QWidget > QSpinBox:down-button, -QTreeView > QWidget > QDoubleSpinBox:down-button, -QTreeView > QWidget > QTimeEdit:down-button, -QTreeView > QWidget > QDateEdit:down-button, -QTreeView > QWidget > QDateTimeEdit:down-button, -QTreeView > QWidget > Gui--ColorButton { - border-radius: 1px; -} - -/* set focus colors to best viewing the editable fields */ -QTreeView > QWidget > QComboBox:focus, -QTreeView > QWidget > QAbstractSpinBox:focus, -QTreeView > QWidget > QSpinBox:focus, -QTreeView > QWidget > QDoubleSpinBox:focus, -QTreeView > QWidget > QLineEdit:focus, -QTreeView > QWidget > QTextEdit:focus, -QTreeView > QWidget > QTimeEdit:focus, -QTreeView > QWidget > QDateEdit:focus, -QTreeView > QWidget > QDateTimeEdit:focus { - border-color: #2a2a2a; /* same as focused background color */ - border-bottom-color: #1e1e1e; /* same as focused border color */ -} - -QTreeView > QWidget > QAbstractSpinBox:read-only, -QTreeView > QWidget > QSpinBox:read-only, -QTreeView > QWidget > QDoubleSpinBox:read-only, -QTreeView > QWidget > QLineEdit:read-only, -QTreeView > QWidget > QTextEdit:read-only, -QTreeView > QWidget > QTimeEdit:read-only, -QTreeView > QWidget > QDateEdit:read-only, -QTreeView > QWidget > QDateTimeEdit:read-only { - color: transparent; - background-color: transparent; - border-color: transparent; -} - -/* Fix to correctly (not totally) draw QTextEdit on OSX at Page properties: "Page result", "Template" and "Editable Texts" */ -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QWidget { - min-height: 14px; - border-radius: 1px; /* reset */ -} - - -/*================================================================================================== -Header of tree and list views -==================================================================================================*/ -QHeaderView { - color: #d2d2d2; - background-color: #2a2a2a; - border-top-left-radius: 1px; /* 1px less than its container */ - border-top-right-radius: 1px; /* 1px less than its container */ - border-bottom-left-radius: 0px; - border-bottom-right-radius: 0px; -} - -QHeaderView::section { - border:none; - padding: 4px 6px; - background-color: #2a2a2a; -} - -QHeaderView::section:horizontal { - padding: 4px 6px; /* left and right value similar to QHeaderView::section */ - border-right: 1px solid rgba(255,255,255,30); -} - -QHeaderView::section:vertical { - border-bottom: 1px solid rgba(255,255,255,30); -} - -QTableCornerButton::section { - background-color: #2a2a2a; - border-top: none; - border-left: none; - border-right: 1px solid rgba(255,255,255,30); - border-bottom: 1px solid rgba(255,255,255,30); -} - -QHeaderView::section:last { - border-right: none; -} - -QHeaderView::up-arrow { - image: url(qss:images_dark-light/up_arrow_light.svg); -} - -QHeaderView::up-arrow:hover { - image: url(qss:images_dark-light/up_arrow_lighter.svg); -} - -QHeaderView::down-arrow { - image: url(qss:images_dark-light/down_arrow_light.svg); -} - -QHeaderView::down-arrow:hover { - image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -/* Group header inside Property Editor (FreeCAD custom widget) */ -Gui--PropertyEditor--PropertyEditor { - qproperty-groupTextColor: #bebebe; - qproperty-groupBackground: #2a2a2a; -} - - -/*================================================================================================== -Branch system for QTreeViews -==================================================================================================*/ -QTreeView::branch { - background: transparent; -} - -QTreeView::branch:has-siblings:!adjoins-item { - border-image: url(qss:images_dark-light/branch_vline_light.svg) 0; -} - -QTreeView::branch:has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_more_light.svg) 0; -} - -QTreeView::branch:!has-children:!has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_end_light.svg) 0; -} - -QTreeView::branch:closed:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_closed_light.svg) 0; -} - -QTreeView::branch:has-children:!has-siblings:closed { - border-image: url(qss:images_dark-light/branch_end_closed_light.svg) 0; -} - -QTreeView::branch:open:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_open_light.svg) 0; -} - -QTreeView::branch:open:has-children:!has-siblings { - border-image: url(qss:images_dark-light/branch_end_open_light.svg) 0; -} - - -/*================================================================================================== -Splitter and windows separator -==================================================================================================*/ -QSplitter::handle { - margin: 0px 11px; - padding: 0px; -} - -QSplitter::handle:horizontal { - background-image: url(qss:images_dark-light/splitter_vertical_light.svg); - background-position: center center; - background-repeat: none; - margin: 4px 2px 4px 2px; - width: 2px; -} - -QSplitter::handle:vertical { - background-image: url(qss:images_dark-light/splitter_horizontal_light.svg); - background-position: center center; - background-repeat: none; - margin: 2px 4px 2px 4px; - height: 2px; -} - -/* Similar to the splitter is the following window separator (but horizontal/vertical is on the opposite way) */ -QMainWindow::separator { - background-position: center center; - background-repeat: none; -} - -QMainWindow::separator:horizontal { - height: 2px; - background-image: url(qss:images_dark-light/splitter_horizontal_light.svg); - margin: 4px 2px 4px 2px; -} - -QMainWindow::separator:vertical { - width: 2px; - background-image: url(qss:images_dark-light/splitter_vertical_light.svg); - margin: 2px 4px 2px 4px; -} - - -/*================================================================================================== -Text/Python editor (macros, etc...) -==================================================================================================*/ -QPlainTextEdit, -QPlainTextEdit:focus { - background-color: #3c3c3c; /* Python Console */ - selection-color: #f5f5f5; - selection-background-color: @ThemeAccentColor1; - border: 6px solid #333333; - border-radius: 0px; - margin: 0px; - padding: 1px; -} - - -/*================================================================================================== -Tasks panel (custom FreeCAD class) -==================================================================================================*/ -/* Action group */ -QFrame[class="panel"] { - background-color: transparent; /* temporal (transparent background) */ -} - -QSint--ActionGroup { - padding: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ - margin: 0px; /* if not reset, it might create problems with QPushButtons and other elements */ -} - -/* Separator line */ -QSint--ActionGroup QFrame[height="1"], -QSint--ActionGroup QFrame[height="2"], -QSint--ActionGroup QFrame[height="3"], -QSint--ActionGroup QFrame[width="1"], -QSint--ActionGroup QFrame[width="2"], -QSint--ActionGroup QFrame[width="3"] { - border-color: rgba(0,0,0,60); -} - -/* Panel header */ -QSint--ActionGroup QFrame[class="header"] { - border: none; - background-color: #2a2a2a; /* Task Panel Header background color */ - border-top-left-radius: 3px; - border-top-right-radius: 3px; - border-bottom-left-radius: 0px; - border-bottom-right-radius: 0px; - margin: 0px; - padding: 0px; -} - -QSint--ActionGroup QFrame[class="header"]:hover { - background-color: @ThemeAccentColor1; -} - -QSint--ActionGroup QToolButton[class="header"] { - color: #f5f5f5; /* Task Panel Header text color */ - text-align: left; - font-weight: bold; - border: none; - margin: 0px; - padding: 0px; -} - -QSint--ActionGroup QFrame[class="header"] QLabel { - background-color: transparent; - background-image: url(qss:images_dark-light/down_arrow_light.svg); - background-repeat: none; - background-position: center center; - padding: 0px; - margin: 0px; -} - -QSint--ActionGroup QFrame[class="header"] QLabel:hover { - background-color: transparent; - background-image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"] { - background-color: transparent; - background-image: url(qss:images_dark-light/up_arrow_light.svg); - background-repeat: none; - background-position: center center; - padding: 0px; - margin: 0px; -} - -QSint--ActionGroup QFrame[class="header"] QLabel[fold="true"]:hover { - background-color: transparent; - background-image: url(qss:images_dark-light/up_arrow_lighter.svg); -} - -QSint--ActionGroup QFrame[class="content"] { - background-color: #3c3c3c; /* Task Panel background color */ - margin: 0px; - padding: 0px; - border: none; - border-top-left-radius: 0px; - border-top-right-radius: 0px; - border-bottom-left-radius: 3px; - border-bottom-right-radius: 3px; -} - -QSint--ActionGroup QFrame[class="content"] > QWidget { - background-color: #3c3c3c; /* Task Panel background color */ -} - -/* Fixs for tabs inside Task Panel */ -QSint--ActionGroup QFrame[class="content"] QTabBar::tab:top:selected { - border-bottom-color: #3c3c3c; /* same as Task Panel background color */ -} - -QSint--ActionGroup QFrame[class="content"] QTabBar::tab:bottom:selected { - border-top-color: #3c3c3c; /* same as Task Panel background color */ -} - -QSint--ActionGroup QFrame[class="content"] QTabBar::tab:right:selected { - border-right-color: #3c3c3c; /* same as Task Panel background color */ -} - -QSint--ActionGroup QFrame[class="content"] QTabBar::tab:left:selected { - border-left-color: #3c3c3c; /* same as Task Panel background color */ -} - -/* Fix for buttons with icons that showed cropped (still not happy with result) */ -QSint--ActionGroup QFrame[class="content"] > QWidget > QPushButton { - padding: 2px; /* bigger padding crops text and icons... */ - margin: 0px; -} - -/* Fix for lists inside task panels */ /* sketcher constraints list */ -QSint--ActionGroup QFrame[class="content"] QTreeView, -QSint--ActionGroup QFrame[class="content"] QListView, -QSint--ActionGroup QFrame[class="content"] QTableView { - color: #f5f5f5; - background-color: #494949; -} - - -/*================================================================================================== -Buttons -==================================================================================================*/ -/* Common */ -QToolBar > Gui--WorkbenchComboBox { - color: #f5f5f5; - background-color: #2a2a2a; /* workbench picker and drop-down */ - selection-color: #ffffff; - selection-background-color: #2a2a2a; - border: 1px solid #2a2a2a; - border-radius: 1px; - min-width: 50px; /* it ensures the default value is correctly displayed */ - min-height: 16px; /* important to be a pair number in order to up/down buttons to be divisible by two (if not set could create a blank line in Ubuntu. Its downside is that it's needed to reset it (min-width: 0px) on following elements that can't have it such as fields inside QToolBar and inside QTreeView (Property editor) */ - padding: 1px 2px; /* temporal: could don't be compatible with elements inside Tree/List view */ -} - -QToolBar > Gui--WorkbenchComboBox:!editable { - color: #f5f5f5; - font-weight: bold; - background-color: @ThemeAccentColor1; /* workbench disabled color */ -} - -QComboBox, -QAbstractSpinBox, -QSpinBox, -QDoubleSpinBox, -QLineEdit, -QTextEdit, -QTimeEdit, -QDateEdit, -QDateTimeEdit { - color: #f5f5f5; - background-color: #494949; /* lineedits and drop-downs */ - selection-color: #ffffff; - selection-background-color: @ThemeAccentColor1; - border: 0px solid #2a2a2a; - border-radius: 1px; - min-width: 50px; /* it ensures the default value is correctly displayed */ - min-height: 16px; /* important to be a pair number in order to up/down buttons to be divisible by two (if not set could create a blank line in Ubuntu. Its downside is that it's needed to reset it (min-width: 0px) on following elements that can't have it such as fields inside QToolBar and inside QTreeView (Property editor) */ - padding: 1px 2px; /* temporal: could don't be compatible with elements inside Tree/List view */ -} - -/* more contrast for QTextEdits */ -QTextEdit { - color: #ffffff; /* Addon Manager*/ -} - -/* shifts text/number editable field to the left to make space for the up/down or drop-down buttons */ -QComboBox, -QAbstractSpinBox, -QSpinBox, -QDoubleSpinBox, -QTimeEdit, -QDateEdit, -QDateTimeEdit { - padding-right: 20px; -} - -/* when QTextEdit are no editable (like Report view)*/ -QTextEdit:!editable, -QTextEdit:!editable:focus { - color: #f5f5f5; - background-color: #3c3c3c; - border: 6px solid #333333; - border-radius: 0px; - margin: 0px; - padding: 1px; -} - -QComboBox:focus, -QAbstractSpinBox:focus, -QSpinBox:focus, -QDoubleSpinBox:focus, -QLineEdit:focus, -QTextEdit:focus, -QTimeEdit:focus, -QDateEdit:focus, -QDateTimeEdit:focus { - font-weight: bold; - color: #f5f5f5; - border-color: #333333; - border: 1px; - border-right-color: @ThemeAccentColor1; /* same as up/down or drop-down button color */ - background-color: #494949; -} - -QComboBox:disabled, -QAbstractSpinBox:disabled, -QSpinBox:disabled, -QDoubleSpinBox:disabled, -QLineEdit:disabled, -QTextEdit:disabled, -QTimeEdit:disabled, -QDateEdit:disabled, -QDateTimeEdit:disabled { - color: #696969; - background-color: #494949; /* same as enabled color */ - border-color: #2a2a2a; /* same as enabled color */ -} - -QAbstractSpinBox:up-button, -QSpinBox:up-button, -QDoubleSpinBox:up-button, -QTimeEdit:up-button, -QDateEdit:up-button, -QDateTimeEdit:up-button, -QAbstractSpinBox:down-button, -QSpinBox:down-button, -QDoubleSpinBox:down-button, -QTimeEdit:down-button, -QDateEdit:down-button, -QDateTimeEdit:down-button { - background-color: #2a2a2a; /* same color for QComboBox background-color */ - subcontrol-origin: border; /* important */ - width: 20px; /* same as QComboBox ... QDateTimeEdit padding-right */ -} - -QAbstractSpinBox:up-button, -QSpinBox:up-button, -QDoubleSpinBox:up-button, -QTimeEdit:up-button, -QDateEdit:up-button, -QDateTimeEdit:up-button { - subcontrol-position: top right; - border-top-right-radius: 3px; -} - -QAbstractSpinBox:down-button, -QSpinBox:down-button, -QDoubleSpinBox:down-button, -QTimeEdit:down-button, -QDateEdit:down-button, -QDateTimeEdit:down-button { - subcontrol-position: bottom right; - border-bottom-right-radius: 3px; -} - -QAbstractSpinBox:up-button:focus, -QSpinBox:up-button:focus, -QDoubleSpinBox:up-button:focus, -QTimeEdit:up-button:focus, -QDateEdit:up-button:focus, -QDateTimeEdit:up-button:focus { - background-color: #2a2a2a; -} - -QAbstractSpinBox:down-button:focus, -QSpinBox:down-button:focus, -QDoubleSpinBox:down-button:focus, -QTimeEdit:down-button:focus, -QDateEdit:down-button:focus, -QDateTimeEdit:down-button:focus { - background-color: #2a2a2a; -} - -QAbstractSpinBox:up-button:disabled, -QSpinBox:up-button:disabled, -QDoubleSpinBox:up-button:disabled, -QTimeEdit:up-button:disabled, -QDateEdit:up-button:disabled, -QDateTimeEdit:up-button:disabled, -QAbstractSpinBox:down-button:disabled, -QSpinBox:down-button:disabled, -QDoubleSpinBox:down-button:disabled, -QTimeEdit:down-button:disabled, -QDateEdit:down-button:disabled, -QDateTimeEdit:down-button:disabled { - background-color: transparent; -} - -QAbstractSpinBox::up-arrow, -QSpinBox::up-arrow, -QDoubleSpinBox::up-arrow, -QTimeEdit::up-arrow, -QDateEdit::up-arrow, -QDateTimeEdit::up-arrow { - image: url(qss:images_dark-light/up_arrow_light.svg); - top: 2px; /* fix symmetry between up and down images */ -} - -QAbstractSpinBox::up-arrow:focus, -QSpinBox::up-arrow:focus, -QDoubleSpinBox::up-arrow:focus, -QTimeEdit::up-arrow:focus, -QDateEdit::up-arrow:focus, -QDateTimeEdit::up-arrow:focus { - image: url(qss:images_dark-light/up_arrow_lighter.svg); -} - -QAbstractSpinBox::up-arrow:off, -QSpinBox::up-arrow:off, -QDoubleSpinBox::up-arrow:off, -QTimeEdit::up-arrow:off, -QDateEdit::up-arrow:off, -QDateTimeEdit::up-arrow:off { - image: url(qss:images_dark-light/up_arrow_disabled_dark.svg); -} - -QAbstractSpinBox::up-arrow:disabled, -QSpinBox::up-arrow:disabled, -QDoubleSpinBox::up-arrow:disabled, -QTimeEdit::up-arrow:disabled, -QDateEdit::up-arrow:disabled, -QDateTimeEdit::up-arrow:disabled { - image: url(qss:images_dark-light/up_arrow_disabled_dark.svg); -} - -QAbstractSpinBox::down-arrow, -QSpinBox::down-arrow, -QDoubleSpinBox::down-arrow, -QTimeEdit::down-arrow, -QDateEdit::down-arrow, -QDateTimeEdit::down-arrow { - image: url(qss:images_dark-light/down_arrow_light.svg); - bottom: 0px; /* fix simetry between up and down images */ -} - -QAbstractSpinBox::down-arrow:focus, -QSpinBox::down-arrow:focus, -QDoubleSpinBox::down-arrow:focus, -QTimeEdit::down-arrow:focus, -QDateEdit::down-arrow:focus, -QDateTimeEdit::down-arrow:focus { - image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -QAbstractSpinBox::down-arrow:off, -QSpinBox::down-arrow:off, -QDoubleSpinBox::down-arrow:off, -QTimeEdit::down-arrow:off, -QDateEdit::down-arrow:off, -QDateTimeEdit::down-arrow:off { - image: url(qss:images_dark-light/down_arrow_disabled_light.svg); -} - -QAbstractSpinBox::down-arrow:disabled, -QSpinBox::down-arrow:disabled, -QDoubleSpinBox::down-arrow:disabled, -QTimeEdit::down-arrow:disabled, -QDateEdit::down-arrow:disabled, -QDateTimeEdit::down-arrow:disabled { - image: url(qss:images_dark-light/down_arrow_disabled_light.svg); -} - -/* ComboBox */ - -QComboBox::drop-down { - background-color: #2a2a2a; /* same color as up/down QSpinBox ... QDateTimeView background-color */ - subcontrol-origin: border; /* important */ - subcontrol-position: top right; - width: 20px; - border-top-right-radius: 1px; - border-bottom-right-radius: 1px; -} - -QComboBox::drop-down:on, -QComboBox::drop-down:focus { - background-color: #2a2a2a; -} - -QComboBox::down-arrow { - image: url(qss:images_dark-light/down_arrow_light.svg); -} - -QComboBox::down-arrow:on, -QComboBox::down-arrow:focus { - image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -QComboBox::down-arrow:off, -QComboBox::down-arrow:disabled { - image: url(qss:images_dark-light/down_arrow_disabled_light.svg); -} - -/* ComboBox menu */ -QComboBox { - selection-color: #f5f5f5; - selection-background-color: @ThemeAccentColor1; -} - -QComboBox QAbstractItemView { - color: #bebebe; /* same as regular QComboBox color */ - background-color: transparent; /* was transparent */ - selection-color: #f5f5f5; - selection-background-color: @ThemeAccentColor1; - border-width: 5px 0px 5px 0px; - border-style: solid; - border-color: transparent; - margin: 0px -1px 0px 0px; /* hack for Mac... try it on Windows and Linux */ -} - - -/*================================================================================================== -Push button -==================================================================================================*/ -QPushButton { - color: #e0e0e0; - text-align: center; - background-color: #2a2a2a; - padding: 4px 20px; - border: 1px solid #494949; - margin: 4px 4px; - border-radius: 1px; -} - -QPushButton:hover, -QPushButton:focus { - color: #ffffff; - background-color: @ThemeAccentColor1; - border: 1px solid #f5f5f5; -} - -QPushButton:disabled, -QPushButton:disabled:checked { - color: #f5f5f5; - background-color: #2a2a2a; /* same as enabled color */ - border: 1px solid #2a2a2a; /* same as enabled color */ -} - -QPushButton:pressed { - color: #ffffff; - background-color: @ThemeAccentColor2; - border: 1px solid #3c3c3c; -} - -QPushButton:checked { - background-color: @ThemeAccentColor1; - border: 1px solid @ThemeAccentColor1; -} - -/* Inspect Widgets Addon */ - -QDockWidget#InspectWidgets QPushButton { - background-color: #2a2a2a; - border: 1px solid #3c3c3c; - min-height: 16px; - margin: 0px; -} - -QDockWidget#InspectWidgets QPushButton:hover { - color: #ffffff; - background-color: @ThemeAccentColor1; - border: 1px solid #f5f5f5; - border-bottom: 1px solid #f5f5f5; -} - -QDockWidget#InspectWidgets QPushButton:checked, -QDockWidget#InspectWidgets QPushButton:pressed { - background-color: @ThemeAccentColor1; - border: 1px solid @ThemeAccentColor1; -} - -/* CAD Navigation Style */ -QMenu::item#NavigationIndicator { - image: url(qss:images_dark-light/NavigationBlender_light.svg); -} -QPushButton#NavigationIndicator { - background-color: @ThemeAccentColor1; - padding: 2px; - margin: 0px; - border: 1px solid #333333; - border-radius: 1px; - min-width: 90px; - min-height: 24px; -} - -QPushButton:hover#NavigationIndicator { - color: #ffffff; - border: 1px solid #f5f5f5; -} - -QPushButton:pressed#NavigationIndicator { - color: #ffffff; - background-color: @ThemeAccentColor1; - border: 1px solid @ThemeAccentColor1; -} - -/* BIM Views Manager */ - -QWidget#Form QPushButton { - background-color: #333333; - padding: 4px 2px; - border: 1px solid #3c3c3c; - border-radius: 1px; - margin: 2px; - margin-bottom: 8px; - max-width: 100%; - min-width: 16px; - min-height: 24px; -} - -QWidget#Form QPushButton:hover { - border: 1px solid #f5f5f5; - background-color: @ThemeAccentColor1; -} - -QWidget#Form QPushButton:pressed { - border: 1px solid @ThemeAccentColor1; - background-color: @ThemeAccentColor1; -} - -/* Addon Manager */ - -QDialog#Dialog QPushButton { - padding: 4px; - margin: 0px; - border: 1px solid #494949; -} - -QDialog#Dialog QPushButton:hover { - color: #ffffff; - border: 1px solid #3c3c3c; - background-color: @ThemeAccentColor2; -} - -QPushButton#buttonUninstall { - margin-left: 16px; -} - -QPushButton#buttonClose { - margin-right: 8px; -} - -/* Ok Cancel Apply Help Preferences Buttons */ /* Hack to move Help button left */ - -QDialogButtonBox > QPushButton { - color: #e0e0e0; - text-align: center; - background-color: #2a2a2a; - border: 1px solid #494949; - padding: 4px; - margin-right: 8px; - min-width: 60px; -} - -/* Color Buttons */ -Gui--ColorButton, -Gui--ColorButton:disabled { - padding: 0px; /* reset */ - margin: 0px; /* reset */ -} - -Gui--ColorButton { - background-color: qlineargradient(spread:pad, x1:0, y1:0.3, x2:0, y2:1, stop:0 #2a2a2a, stop:1 #1e1e1e); - border: 1px solid #1e1e1e; - border-bottom-color: black; /* simulates shadow under the button */ -} - -Gui--ColorButton:disabled { - border-color: transparent; - background-color: rgba(0,0,0,10); -} - -Gui--ColorButton:hover, -Gui--ColorButton:focus { - border-color: @ThemeAccentColor1; - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor1); -} - -Gui--ColorButton:pressed { - background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 @ThemeAccentColor1, stop:1 @ThemeAccentColor1); - -} - -/* Pushbutton style for "..." inside Placement cell which launches Placement tool */ -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QPushButton, -Gui--PropertyEditor--PropertyEditor > QWidget > QPushButton { - background-color: #2a2a2a; - border: 1px solid #1e1e1e; - min-width: 16px; /* reset it due to larger value on regular QPushButton, same or bigger value as regular QPushButton min-height */ - border-radius: 1px; - margin: 0px; /* reset */ - padding: 0px; /* reset */ -} - -Gui--PropertyEditor--PropertyEditor > QWidget > QPushButton { - text-align:left; - padding-left: 2px; -} - -/* Fix for Expressions description QFrame that is "broken" with initial reset */ -Gui--PropertyEditor--PropertyEditor > QWidget > QWidget > QWidget > QWidget > QFrame { - background-color: #333333; /* main background color */ - border: 1px solid #333333; - border-radius: 1px; - padding: 2px 6px; -} - -/*================================================================================================== -Tool button Icon fix in save dialogs -==================================================================================================*/ -/* found under Tools -> Save Picture */ /* Draft -> ShapeString -> Font file */ - -QFileDialog#QFileDialog QToolButton { - background-color: transparent; - padding: 1px; - border: 1px; - margin: 0px; -} - -QFileDialog#QFileDialog QToolButton:hover, -QFileDialog#QFileDialog QToolButton:focus { - color: #ffffff; - background-color: @ThemeAccentColor1; - border: 1px solid #f5f5f5; -} - -/*================================================================================================== -Tool button inside QDialogs that works as QPushButtons -==================================================================================================*/ -/* found under Tools -> Customize -> Macros -> Pixmap "..." button */ - -QDialog QToolButton { - color: #e0e0e0; - text-align: center; - background-color: #2a2a2a; - border: 1px solid #494949; - padding: 0px; /* different than regular QPushButton */ - margin: 2px; - min-height: 16px; /* same as QTabBar QPushButton min-width */ - border-radius: 1px; -} - -QDialog QToolButton:hover, -QDialog QToolButton:focus { - color: #ffffff; - background-color: @ThemeAccentColor1; - border: 1px solid #f5f5f5; -} - -QDialog QToolButton:disabled, -QDialog QToolButton:disabled:checked { - color: #f5f5f5; - background-color: #2a2a2a; - border: 1px solid #2a2a2a; -} - -QDialog QToolButton:pressed { - color: #ffffff; - background-color: @ThemeAccentColor2; - border: 1px solid #3c3c3c; -} - - -/*================================================================================================== -Tool button inside Task Panel content that works as QPushButtons -==================================================================================================*/ -/* found inside Part Design Workbench and "make a draft on a face" Task panel options */ -QSint--ActionGroup QFrame[class="content"] QToolButton { - color: #e0e0e0; - text-align: center; - background-color: #2a2a2a; - border: 1px solid #494949; - border-bottom-color: black; /* simulates shadow under the button */ - padding: 2px 6px; /* different than regular QPushButton */ - margin: 2px; /* different than regular QPushButton */ - min-height: 16px; /* same as QTabBar QPushButton min-width */ - border-radius: 1px; -} - -QSint--ActionGroup QFrame[class="content"] QToolButton:hover, -QSint--ActionGroup QFrame[class="content"] QToolButton:focus { - color: white; - border-color: solid #f5f5f5; - background-color: @ThemeAccentColor1; -} - -QSint--ActionGroup QFrame[class="content"] QToolButton:disabled, -QSint--ActionGroup QFrame[class="content"] QToolButton:disabled:checked { - color: #f5f5f5; - border-color: #494949; - background-color: #424242; -} - -QSint--ActionGroup QFrame[class="content"] QToolButton:pressed { - background-color: @ThemeAccentColor1; -} - -/* QToolButtons with a menu found in Sketcher task panel*/ -QSint--ActionGroup QToolButton::menu-button { - border: none; - border-top-right-radius: 4px; - border-bottom-right-radius: 4px; - padding: 2px; - width: 16px; /* 16px width + 4px for border = 20px allocated above */ - outline: none; - background-color: transparent; -} - -QSint--ActionGroup QToolButton#settingsButton, -QSint--ActionGroup QToolButton#filterButton, -QSint--ActionGroup QToolButton#manualUpdate { - padding-right: 20px; /* make way for the popup button */ -} - -/* to give widget inside the menu same look as regular menu */ -QSint--ActionGroup QToolButton#filterButton QListWidget { - color: #f5f5f5; - background: #2a2a2a; - padding: 0px; - margin: 0px; -} - -/*================================================================================================== -QComboBox inside Task Panel content -==================================================================================================*/ -/* Fix for QComboBox inside Task Panel due to not correctly styling it with regular */ -/* found inside TechDraw Workbench and "insert multiple views" from toolbar */ -/* TODO: external border not working, in the rest of GUI works setting up Qmenu background color but inside Task Panel it doesn't... */ -QSint--ActionGroup QFrame[class="content"] QMenu, -QSint--ActionGroup QFrame[class="content"] QMenu::item { - background-color: #2a2a2a; -} - -QSint--ActionGroup QFrame[class="content"] QComboBox QAbstractItemView { - background-color: #333333; -} - - -/*================================================================================================== -Radio button -==================================================================================================*/ -QRadioButton::indicator:unchecked{ - color: black; - background-color: #696969; - border: 1px solid #2a2a2a; -} - -QRadioButton::indicator:checked { - background-color: @ThemeAccentColor1; /* QCheckBox has the same color */ - border: 1px solid #2a2a2a; /* QCheckBox has the same color */ - image:url(qss:images_dark-light/radiobutton_light.svg); -} - -QRadioButton, -QRadioButton:disabled { - color: #f5f5f5; - padding: 3px; - outline: none; - background-color: transparent; -} - -QRadioButton:disabled { - color: rgba(255,255,255,40); -} - -QRadioButton::indicator { - width: 12px; - height: 12px; - border-radius: 1px; -} - -QRadioButton::indicator:pressed { - border-color: #696969; -} - -QRadioButton::indicator:disabled { - color: #424242; - background-color: transparent; - border: 1px solid #424242; - image:url(qss:images_dark-light/radiobutton_dark.svg); -} - -QRadioButton:focus { - border: none; -} - - -/*================================================================================================== -Checkbox -==================================================================================================*/ -QCheckBox, -QCheckBox:disabled { - color: #f5f5f5; - padding: 3px; - outline: none; - background-color: transparent; -} - -QCheckBox::indicator, -QGroupBox::indicator { - color: black; - background-color: #696969; - border: 1px solid #2a2a2a; - width: 12px; - height: 12px; - border-radius:1px; -} - -QCheckBox::indicator:pressed, -QCheckBox::indicator:non-exclusive:checked:pressed, -QCheckBox::indicator:indeterminate:pressed, -QCheckBox::indicator:checked:pressed, -QGroupBox::indicator:pressed, -QGroupBox::indicator:non-exclusive:checked:pressed, -QGroupBox::indicator:indeterminate:pressed, -QGroupBox::indicator:checked:pressed { - border-color: #696969; -} - -QCheckBox::indicator:checked, -QGroupBox::indicator:checked { - background-color: @ThemeAccentColor1; /* QRadioButton has the same color */ - border: 1px solid #2a2a2a; /* QRadioButton has the same color */ - image:url(qss:images_dark-light/checkbox_light.svg); -} - -QCheckBox:disabled { - color: rgba(255,255,255,40); - background-color: transparent; -} - -QCheckBox::indicator:disabled, -QGroupBox::indicator:disabled { - background-color: rgba(0,0,0,0); - border: 1px solid rgba(0,0,0,20); -} - -QCheckBox::indicator:indeterminate, -QGroupBox::indicator:indeterminate { - background-color: #696969; - border: 1px solid #696969; - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); -} - -QCheckBox:focus { - border: none; -} - - -/*================================================================================================== -Checkboxes inside QListWidget and QTreeView -==================================================================================================*/ -QListWidget::indicator, -QTreeView::indicator { - color: #c8c8c8; - background-color: rgba(255,255,255,20); - border: 1px solid #424242; - width: 11px; - height: 11px; - border-radius:0px; -} - -/* fix for QTreeView::indicator losing its margin */ -QTreeView::indicator { - margin: 3px; -} - -QListWidget::indicator:selected, -QTreeView::indicator:selected { - background-color: #e6e6e6; -} - -QListWidget::indicator:checked:selected, -QListWidget::indicator:indeterminate:selected, -QTreeView::indicator:checked:selected, -QTreeView::indicator:indeterminate:selected { - background-color: #696969; /* slightly lighter than default */ - border-color: #696969; /* slightly darker than default */ -} - -QListWidget::indicator:pressed, -QListWidget::indicator:non-exclusive:checked:pressed, -QListWidget::indicator:indeterminate:pressed, -QListWidget::indicator:checked:pressed, -QTreeView::indicator:pressed, -QTreeView::indicator:non-exclusive:checked:pressed, -QTreeView::indicator:indeterminate:pressed, -QTreeView::indicator:checked:pressed { - border-color: #cbd8e6; -} - -QListWidget::indicator:checked, -QTreeView::indicator:checked { - background-color: #696969; /* QRadioButton has the same color */ - border: 1px solid #696969; /* QRadioButton has the same color */ - image:url(qss:images_dark-light/checkbox_light.svg); -} - -QListWidget::indicator:disabled, -QTreeView::indicator:disabled { - background-color: rgba(255,255,255,20); - border: 1px solid rgba(255,255,255,20); -} - -QListWidget::indicator:indeterminate, -QTreeView::indicator:indeterminate { - background-color: #696969; - border: 1px solid #696969; - image: url(qss:images_dark-light/checkbox_indeterminate_light.svg); -} - - -/*================================================================================================== -Slider -==================================================================================================*/ -QSlider, -QSlider:active, -QSlider:!active { - border: none; - background-color: transparent; -} - -QSlider:horizontal { - padding: 0px 10px; -} - -QSlider:vertical { - padding: 10px 0px; -} - -QSlider::groove { - background-color: #2a2a2a; - border: 2px solid #3c3c3c; - border-radius: 1px; - margin: 4px 0px; -} - -QSlider::groove:horizontal { - height: 8px; -} - -QSlider::groove:vertical { - width: 8px; -} - -QSlider::groove:horizontal:disabled, -QSlider::groove:vertical:disabled { - border-color: #3c3c3c; - background-color: #2a2a2a; -} - -QSlider::handle:horizontal, -QSlider::handle:vertical { - background-color: #696969; - border: 1px solid #2a2a2a; - width: 16px; - height: 16px; - border-radius: 1px; -} - -QSlider::handle:horizontal { - margin: -4px 0; -} - -QSlider::handle:vertical { - margin: 0 -4px; -} - -QSlider::handle:horizontal:hover, -QSlider::handle:vertical:hover, -QSlider::handle:horizontal:pressed, -QSlider::handle:vertical:pressed { - border-color: #adc5ed; - background-color: @ThemeAccentColor1; -} - -QSlider::handle:horizontal:disabled, -QSlider::handle:vertical:disabled { - border-color: #2a2a2a; - background-color: @ThemeAccentColor1; -} - - -/*================================================================================================== -Toolbar buttons -==================================================================================================*/ -/*QToolBar > QComboBox, disabled because creates different margins for body and drop-down button */ -QToolBar > QAbstractSpinBox, -QToolBar > QSpinBox, -QToolBar > QDoubleSpinBox, -QToolBar > QLineEdit, -QToolBar > QTextEdit, -QToolBar > QTimeEdit, -QToolBar > QDateEdit, -QToolBar > QDateTimeEdit { - margin: 0px 2px; - padding: 0px; - min-width: 70px; /* necessary to show its content */ -} - -QToolBar > QComboBox, -QToolBar > QAbstractSpinBox, -QToolBar > QSpinBox, -QToolBar > QDoubleSpinBox, -QToolBar > QLineEdit, -QToolBar > QTextEdit, -QToolBar > QTimeEdit, -QToolBar > QDateEdit, -QToolBar > QDateTimeEdit { - min-height: 0px; /* reset it inside Tool Bar due to the user ability to set the "size of toolbar icons" inside Preferences */ -} - -QToolBar > QPushButton { - padding: 2px; - margin: 0px; /* doesn't work with :left, :right:, :top or :bottom sub-controls */ - min-width: 24px; /* could not be larger due to switchable Preferences "Size of toolbar icons" */ - min-height: 24px; /* could not be larger due to switchable Preferences "Size of toolbar icons" */ - border-radius: 1px; /* same as regular QPushButton */ -} - -QToolBar > QPushButton:checked { - border: 1px solid #3c3c3c; - background-color: @ThemeAccentColor1; -} - -/* Hack to avoid QPushButton text partially hidden under menu-indicator */ -QToolBar > QPushButton::menu-indicator:!checked { - image: none; - width: 0px; -} - -QToolBar > QPushButton:!checked { - background-color: #333333; /* Current Working Plane and Nudge */ - padding: 2px 4px; - border: 1px solid #3c3c3c; - margin: 0px 2px; -} - -QToolBar > QPushButton:checked:hover { - border: 1px solid #f5f5f5; -} - -QToolBar > QPushButton:!checked:hover { - color: #ffffff; - background-color: @ThemeAccentColor1; - border: 1px solid #f5f5f5; -} - -QToolBar > QPushButton:checked:pressed { - border: 1px solid @ThemeAccentColor1; - background-color: solid @ThemeAccentColor1; -} - -QToolBar > QPushButton:!checked:pressed { - border: 1px solid @ThemeAccentColor1; - background-color: @ThemeAccentColor1; -} - -QToolBar > QPushButton:checked:disabled, -QToolBar > QPushButton:!checked:disabled { - border: none; - background-color: transparent; -} - -QToolBar > QToolButton { - margin: 2px; - padding: 2px; - border-radius: 1px; - border: 1px solid transparent; -} - -QToolBar > QToolButton:hover { - background-color: @ThemeAccentColor1; - border: 1px solid #f5f5f5; -} - -QToolBar > QToolButton:pressed { - background-color: @ThemeAccentColor1; - border: 1px solid @ThemeAccentColor1; -} - -/* ToolBar menu buttons (buttons with drop-down menu) */ -QToolBar > QToolButton#qt_toolbutton_menubutton { - padding-right: 20px; /* Hack to add more width to buttons with menu */ - border: 1px solid #333333; - border-radius: 1px; -} - -QToolBar QToolButton::menu-button, -QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button { - border: none; - border-top-right-radius: 1px; - border-bottom-right-radius: 1px; - width: 16px; /* 16px width + 4px for border = 20px allocated above */ - outline: none; - background-color: transparent; -} - -QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:hover { - border-top: 1px solid #f5f5f5; - border-bottom: 1px solid #f5f5f5; - border-right: 1px solid #f5f5f5; - background-color: @ThemeAccentColor1; -} - -QToolBar > QToolButton#qt_toolbutton_menubutton:pressed, -QToolBar > QToolButton#qt_toolbutton_menubutton:open { - background-color: @ThemeAccentColor1; - border: 1px solid @ThemeAccentColor1; -} - -QToolBar > QToolButton#qt_toolbutton_menubutton:hover { - background-color: @ThemeAccentColor1; - border: 1px solid #f5f5f5; -} - -QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:pressed, -QToolBar > QToolButton#qt_toolbutton_menubutton::menu-button:open { - border-top: 1px solid @ThemeAccentColor1; - border-bottom: 1px solid @ThemeAccentColor1; - border-right: 1px solid @ThemeAccentColor1; - background-color: @ThemeAccentColor1; -} - -QToolBar > QToolButton::menu-arrow { - background-image: url(qss:images_dark-light/down_arrow_light.svg); - background-position: center center; - background-repeat: none; - subcontrol-origin: padding; - subcontrol-position: bottom right; - height: 10px; /* same as arrow image */ -} - -QToolBar > QToolButton::menu-arrow:hover { - background-image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -QToolBar > QToolButton::menu-arrow:open { - background-image: url(qss:images_dark-light/down_arrow_lighter.svg); -} - -/* when QToolButton is checked: */ -QToolBar > QToolButton:checked { - border: 1px solid @ThemeAccentColor1; - background-color: @ThemeAccentColor1; /* transparency for @ThemeAccentColor1 color */ -} - -QToolBar > QToolButton:checked:hover { - border: 1px solid @ThemeAccentColor1; - background-color: @ThemeAccentColor1; /* transparency for @ThemeAccentColor1 color */ -} - -/*The "show more" button (it can also be stylable with "QToolBarExtension" */ -QToolBar QToolButton#qt_toolbar_ext_button { - margin: 0px; - padding: 0px; - /*background-image: url(qss:images_dark-light/more_dark.svg);*/ - image: transparent; - background-repeat: none; - background-position: center left; -} - -QToolBar QToolButton#qt_toolbar_ext_button:hover { - /*background-image: url(qss:images_dark-light/more_light.svg);*/ - border-color: #424242; - background-color: #424242; -} - -QToolBar QToolButton#qt_toolbar_ext_button:on { - /*background-image: url(qss:images_dark-light/more_light.svg);*/ - border-color: #424242; - background-color: #424242; -} - - -/*================================================================================================== -Tables (spreadsheets) -==================================================================================================*/ -QMdiArea > QWidget > QMdiSubWindow > SpreadsheetGui--SheetView > QWidget > SpreadsheetGui--SheetTableView > { - background-color: #cecece; /* Default Spreadsheet background color */ -} -QTableView { - gridline-color: #a8a8a8; - selection-color: #ffffff; - selection-background-color: @ThemeAccentColor1; /* Default Spreadsheet cell selection background color */ -} - -QTableView::item:disabled { - color: #eeeeee; -} - -QTableView::item:selected { - color: #ffffff; - border-color: #cecece; /* same as focused background color */ - border-bottom-color: @ThemeAccentColor1; /* same as focused border color */ - background-color: @ThemeAccentColor1; /* cell background color */ -} - -/* fix for elements inside the cells */ -QTableView > QWidget > QComboBox, -QTableView > QWidget > QAbstractSpinBox, -QTableView > QWidget > QSpinBox, -QTableView > QWidget > QDoubleSpinBox, -QTableView > QWidget > QLineEdit, -QTableView > QWidget > QTextEdit, -QTableView > QWidget > QTimeEdit, -QTableView > QWidget > QDateEdit, -QTableView > QWidget > QDateTimeEdit, -QTableView > QWidget > QComboBox:drop-down, -QTableView > QWidget > QAbstractSpinBox:up-button, -QTableView > QWidget > QSpinBox:up-button, -QTableView > QWidget > QDoubleSpinBox:up-button, -QTableView > QWidget > QTimeEdit:up-button, -QTableView > QWidget > QDateEdit:up-button, -QTableView > QWidget > QDateTimeEdit:up-button, -QTableView > QWidget > QAbstractSpinBox:down-button, -QTableView > QWidget > QSpinBox:down-button, -QTableView > QWidget > QDoubleSpinBox:down-button, -QTableView > QWidget > QTimeEdit:down-button, -QTableView > QWidget > QDateEdit:down-button, -QTableView > QWidget > QDateTimeEdit:down-button, -QTableView > QWidget > Gui--ColorButton { - border-radius: 1px; -} - -QTableView > QWidget > QComboBox, -QTableView > QWidget > QAbstractSpinBox, -QTableView > QWidget > QSpinBox, -QTableView > QWidget > QDoubleSpinBox, -QTableView > QWidget > QLineEdit, -QTableView > QWidget > QTextEdit, -QTableView > QWidget > QTimeEdit, -QTableView > QWidget > QDateEdit, -QTableView > QWidget > QDateTimeEdit { - color: #f5f5f5; - background-color: transparent; - border-color: transparent; -} - -QTableView > QWidget > QComboBox:drop-down, -QTableView > QWidget > QAbstractSpinBox:up-button, -QTableView > QWidget > QSpinBox:up-button, -QTableView > QWidget > QDoubleSpinBox:up-button, -QTableView > QWidget > QTimeEdit:up-button, -QTableView > QWidget > QDateEdit:up-button, -QTableView > QWidget > QDateTimeEdit:up-button, -QTableView > QWidget > QAbstractSpinBox:down-button, -QTableView > QWidget > QSpinBox:down-button, -QTableView > QWidget > QDoubleSpinBox:down-button, -QTableView > QWidget > QTimeEdit:down-button, -QTableView > QWidget > QDateEdit:down-button, -QTableView > QWidget > QDateTimeEdit:down-button, -QTableView > QWidget > Gui--ColorButton { - background-color: rgba(0,0,0,30); -} - -QTableView > QWidget > QComboBox:focus, -QTableView > QWidget > QAbstractSpinBox:focus, -QTableView > QWidget > QSpinBox:focus, -QTableView > QWidget > QDoubleSpinBox:focus, -QTableView > QWidget > QLineEdit:focus, -QTableView > QWidget > QTextEdit:focus, -QTableView > QWidget > QTimeEdit:focus, -QTableView > QWidget > QDateEdit:focus, -QTableView > QWidget > QDateTimeEdit:focus { - color: #000000; - selection-color: #f5f5f5; - selection-background-color: @ThemeAccentColor1; - border-color: #3c3c3c; - background-color: #cecece; -} - -QTableView > QWidget > QComboBox:disabled, -QTableView > QWidget > QAbstractSpinBox:disabled, -QTableView > QWidget > QSpinBox:disabled, -QTableView > QWidget > QDoubleSpinBox:disabled, -QTableView > QWidget > QLineEdit:disabled, -QTableView > QWidget > QTextEdit:disabled, -QTableView > QWidget > QTimeEdit:disabled, -QTableView > QWidget > QDateEdit:disabled, -QTableView > QWidget > QDateTimeEdit:disabled { - color: #f5f5f5; - background-color: transparent; - border-color: transparent; -} - -QTableView > QWidget > QComboBox:read-only, -QTableView > QWidget > QAbstractSpinBox:read-only, -QTableView > QWidget > QSpinBox:read-only, -QTableView > QWidget > QDoubleSpinBox:read-only, -QTableView > QWidget > QLineEdit:read-only, -QTableView > QWidget > QTextEdit:read-only, -QTableView > QWidget > QTimeEdit:read-only, -QTableView > QWidget > QDateEdit:read-only, -QTableView > QWidget > QDateTimeEdit:read-only { - color: #f5f5f5; - background-color: transparent; - border-color: transparent; -} - - -/*================================================================================================== -SELECTORTOOLBAR widget (3rd party plugin) -==================================================================================================*/ -QToolBar:horizontal#Selector, -QToolBar:vertical#Selector { - background-color: rgba(0,0,0,120); - margin: 0px; - padding: 0px; -} - -QToolBar::handle:top#Selector, -QToolBar::handle:bottom#Selector, -QToolBar::handle:horizontal#Selector { - alignment: bottom left; -} - -QToolBar::handle:left#Selector, -QToolBar::handle:right#Selector, -QToolBar::handle:vertical#Selector { - width: 100%; - alignment: center left; -} - -QToolBar:top#Selector QToolButton, -QToolBar:bottom#Selector QToolButton, -QToolBar:horizontal#Selector QToolButton { - alignment: bottom left; -} - -QToolBar:left#Selector QToolButton, -QToolBar:right#Selector QToolButton, -QToolBar:vertical#Selector QToolButton { - alignment: center left; -} - -QToolButton[toolbar_orientation="horizontal"] { - /* nothing, when Horizontal there's no need to add special parameters */ -} - -QToolButton[toolbar_orientation="vertical"] { - /* nothing, when Horizontal there's no need to add special parameters */ -} - -QToolBar#Selector QToolButton { - border: none; - margin: 0px; - padding: 2px 6px; - border-radius: 1px; -} - -/* Active tab */ -QToolBar#Selector QToolButton:checked { - color: white; - background-color: #333333; -} - -/* Unactive tabs */ -QToolBar#Selector QToolButton:!checked { - color: rgba(255,255,255,160); - background-color: transparent; - margin: 0px; -} - -/* Unactive tabs (hover) */ -QToolBar#Selector QToolButton:!checked:hover { - color: rgba(255,255,255,255); - background-color: rgba(255,255,255,20); -} - -/* Unactive tabs (pressed) */ -QToolBar#Selector QToolButton:!checked:pressed { - background-color: rgba(255,255,255,40); -} - - -/*================================================================================================== -TABBAR widget (3rd party plugin) -==================================================================================================*/ -QTabWidget#TabBar > QTabBar { - border-top: 0; -} - -QTabWidget#TabBar > QTabBar::tab:top, -QTabWidget#TabBar > QTabBar::tab:bottom { - min-width: -1; -} - -QTabWidget#TabBar > QTabBar::tab:left, -QTabWidget#TabBar > QTabBar::tab:right { - min-height: -1; -} - - -/*================================================================================================== -EXPERIMENTAL -==================================================================================================*/ - -/* Fix for preventing elements in different rows to accidentally overlap */ -QDialog QGroupBox QFrame { - margin: 2px 0px; -} - -*[mandatoryField="true"] { background-color: cyan } - -/* Hack to avoid QPushButton text partially hidden under menu-indicator */ -QPushButton#NavigationIndicator::menu-indicator { - image: none; - width: 0px; -} - -QToolBar QToolButton[popupMode="1"] { - width: 100px; - background: red; -} - -/*================================================================================================== -SKETCHER -==================================================================================================*/ - -Gui--StatefulLabel[state="empty_sketch"] { - color : rgba(255,255,255,127); /* 50% opacity white */ -} -Gui--StatefulLabel[state="under_constrained"] { - color : rgba(255,255,255,255); /* White */ -} -Gui--StatefulLabel[state="conflicting_constraints"] { - color : rgba(255,0,0,255); /* Red */ -} -Gui--StatefulLabel[state="malformed_constraints"] { - color : rgba(255,0,0,255); /* Red */ -} -Gui--StatefulLabel[state="redundant_constraints"] { - color : rgba(255,69,0,255); /* Orange red */ -} -Gui--StatefulLabel[state="partially_redundant_constraints"] { - color : rgba(65,105,225,255); /* Royal blue */ -} -Gui--StatefulLabel[state="solver_failed"] { - color : rgba(255,0,0,255); /* Red */ - font-weight: bold; -} -Gui--StatefulLabel[state="fully_constrained"] { - color : rgba(0,255,0,255); /* Green */ - font-weight: bold; -} - -/*================================================================================================== -PREFERENCES PACKS -==================================================================================================*/ -Gui--Dialog--DlgSettingsGeneral > QGroupBox > QGroupBox > QTableWidget > QWidget > QPushButton { - margin: 0px; -} - -/*================================================================================================== -Settings menu #groupsTreeView: -==================================================================================================*/ - -QTreeView::branch#groupsTreeView:closed:has-children:has-siblings { - border-image: none 0; - } - - QTreeView::branch#groupsTreeView:open:has-children:has-siblings { - border-image: none 0; - } - - QTreeView::branch#groupsTreeView:open:has-children:!has-siblings { - border-image: none 0; - } - - QTreeView::branch#groupsTreeView:has-children:!has-siblings:closed { - border-image: none 0; - } - - QTreeView::branch#groupsTreeView:has-siblings:!adjoins-item { - border-image: none 0; - } diff --git a/src/Gui/Stylesheets/images_classic/Arrow-double-LeftRight-black.png b/src/Gui/Stylesheets/images_classic/Arrow-double-LeftRight-black.png new file mode 100644 index 0000000000..52fccd3287 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Arrow-double-LeftRight-black.png differ diff --git a/src/Gui/Stylesheets/images_classic/Arrow-double-LeftRight-blue.png b/src/Gui/Stylesheets/images_classic/Arrow-double-LeftRight-blue.png new file mode 100644 index 0000000000..ce56401104 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Arrow-double-LeftRight-blue.png differ diff --git a/src/Gui/Stylesheets/images_classic/Arrow-double-LeftRight-darkgray.png b/src/Gui/Stylesheets/images_classic/Arrow-double-LeftRight-darkgray.png new file mode 100644 index 0000000000..c4ad950228 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Arrow-double-LeftRight-darkgray.png differ diff --git a/src/Gui/Stylesheets/images_classic/Arrow-double-LeftRight-lightgray.png b/src/Gui/Stylesheets/images_classic/Arrow-double-LeftRight-lightgray.png new file mode 100644 index 0000000000..e07f14613c Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Arrow-double-LeftRight-lightgray.png differ diff --git a/src/Gui/Stylesheets/images_classic/Arrow-double-LeftRight-white.png b/src/Gui/Stylesheets/images_classic/Arrow-double-LeftRight-white.png new file mode 100644 index 0000000000..05b3e3567e Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Arrow-double-LeftRight-white.png differ diff --git a/src/Gui/Stylesheets/images_classic/Arrow-double-UpDown-black.png b/src/Gui/Stylesheets/images_classic/Arrow-double-UpDown-black.png new file mode 100644 index 0000000000..e5340ac2e9 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Arrow-double-UpDown-black.png differ diff --git a/src/Gui/Stylesheets/images_classic/Arrow-double-UpDown-blue.png b/src/Gui/Stylesheets/images_classic/Arrow-double-UpDown-blue.png new file mode 100644 index 0000000000..d31d98fe63 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Arrow-double-UpDown-blue.png differ diff --git a/src/Gui/Stylesheets/images_classic/Arrow-double-UpDown-darkgray.png b/src/Gui/Stylesheets/images_classic/Arrow-double-UpDown-darkgray.png new file mode 100644 index 0000000000..835896c0fd Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Arrow-double-UpDown-darkgray.png differ diff --git a/src/Gui/Stylesheets/images_classic/Arrow-double-UpDown-lightgray.png b/src/Gui/Stylesheets/images_classic/Arrow-double-UpDown-lightgray.png new file mode 100644 index 0000000000..e833e1d996 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Arrow-double-UpDown-lightgray.png differ diff --git a/src/Gui/Stylesheets/images_classic/Arrow-double-UpDown-white.png b/src/Gui/Stylesheets/images_classic/Arrow-double-UpDown-white.png new file mode 100644 index 0000000000..d48147818d Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Arrow-double-UpDown-white.png differ diff --git a/src/Gui/Stylesheets/images_classic/Arrow-down-black.png b/src/Gui/Stylesheets/images_classic/Arrow-down-black.png new file mode 100644 index 0000000000..9a72428cb3 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Arrow-down-black.png differ diff --git a/src/Gui/Stylesheets/images_classic/Arrow-down-blue.png b/src/Gui/Stylesheets/images_classic/Arrow-down-blue.png new file mode 100644 index 0000000000..bd578f501b Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Arrow-down-blue.png differ diff --git a/src/Gui/Stylesheets/images_classic/Arrow-down-darkgray.png b/src/Gui/Stylesheets/images_classic/Arrow-down-darkgray.png new file mode 100644 index 0000000000..ecd077e5a0 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Arrow-down-darkgray.png differ diff --git a/src/Gui/Stylesheets/images_classic/Arrow-down-lightgray.png b/src/Gui/Stylesheets/images_classic/Arrow-down-lightgray.png new file mode 100644 index 0000000000..3441914a4c Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Arrow-down-lightgray.png differ diff --git a/src/Gui/Stylesheets/images_classic/Arrow-down-white.png b/src/Gui/Stylesheets/images_classic/Arrow-down-white.png new file mode 100644 index 0000000000..5aaa258c49 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Arrow-down-white.png differ diff --git a/src/Gui/Stylesheets/images_classic/Arrow-left-black.png b/src/Gui/Stylesheets/images_classic/Arrow-left-black.png new file mode 100644 index 0000000000..dcfc9f2ae5 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Arrow-left-black.png differ diff --git a/src/Gui/Stylesheets/images_classic/Arrow-left-blue.png b/src/Gui/Stylesheets/images_classic/Arrow-left-blue.png new file mode 100644 index 0000000000..409f0e9c64 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Arrow-left-blue.png differ diff --git a/src/Gui/Stylesheets/images_classic/Arrow-left-darkgray.png b/src/Gui/Stylesheets/images_classic/Arrow-left-darkgray.png new file mode 100644 index 0000000000..14764cceb6 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Arrow-left-darkgray.png differ diff --git a/src/Gui/Stylesheets/images_classic/Arrow-left-lightgray.png b/src/Gui/Stylesheets/images_classic/Arrow-left-lightgray.png new file mode 100644 index 0000000000..3ecb3ebd58 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Arrow-left-lightgray.png differ diff --git a/src/Gui/Stylesheets/images_classic/Arrow-left-white.png b/src/Gui/Stylesheets/images_classic/Arrow-left-white.png new file mode 100644 index 0000000000..6b31a607df Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Arrow-left-white.png differ diff --git a/src/Gui/Stylesheets/images_classic/Arrow-leftDown-blue.png b/src/Gui/Stylesheets/images_classic/Arrow-leftDown-blue.png new file mode 100644 index 0000000000..bb7ee31e57 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Arrow-leftDown-blue.png differ diff --git a/src/Gui/Stylesheets/images_classic/Arrow-leftDown-darkgray.png b/src/Gui/Stylesheets/images_classic/Arrow-leftDown-darkgray.png new file mode 100644 index 0000000000..7b66315058 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Arrow-leftDown-darkgray.png differ diff --git a/src/Gui/Stylesheets/images_classic/Arrow-leftDown-lightgray.png b/src/Gui/Stylesheets/images_classic/Arrow-leftDown-lightgray.png new file mode 100644 index 0000000000..65c2492412 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Arrow-leftDown-lightgray.png differ diff --git a/src/Gui/Stylesheets/images_classic/Arrow-leftDown-white.png b/src/Gui/Stylesheets/images_classic/Arrow-leftDown-white.png new file mode 100644 index 0000000000..f498bd1bd3 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Arrow-leftDown-white.png differ diff --git a/src/Gui/Stylesheets/images_classic/Arrow-leftDown.png b/src/Gui/Stylesheets/images_classic/Arrow-leftDown.png new file mode 100644 index 0000000000..b2fc76019c Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Arrow-leftDown.png differ diff --git a/src/Gui/Stylesheets/images_classic/Arrow-right-black.png b/src/Gui/Stylesheets/images_classic/Arrow-right-black.png new file mode 100644 index 0000000000..676a53c19c Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Arrow-right-black.png differ diff --git a/src/Gui/Stylesheets/images_classic/Arrow-right-blue.png b/src/Gui/Stylesheets/images_classic/Arrow-right-blue.png new file mode 100644 index 0000000000..ae7ab6752d Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Arrow-right-blue.png differ diff --git a/src/Gui/Stylesheets/images_classic/Arrow-right-darkgray.png b/src/Gui/Stylesheets/images_classic/Arrow-right-darkgray.png new file mode 100644 index 0000000000..7e5c19ca07 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Arrow-right-darkgray.png differ diff --git a/src/Gui/Stylesheets/images_classic/Arrow-right-lightgray.png b/src/Gui/Stylesheets/images_classic/Arrow-right-lightgray.png new file mode 100644 index 0000000000..2538cf3b83 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Arrow-right-lightgray.png differ diff --git a/src/Gui/Stylesheets/images_classic/Arrow-right-white.png b/src/Gui/Stylesheets/images_classic/Arrow-right-white.png new file mode 100644 index 0000000000..ac30f27ef8 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Arrow-right-white.png differ diff --git a/src/Gui/Stylesheets/images_classic/Arrow-rightDown-black.png b/src/Gui/Stylesheets/images_classic/Arrow-rightDown-black.png new file mode 100644 index 0000000000..fe9798d855 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Arrow-rightDown-black.png differ diff --git a/src/Gui/Stylesheets/images_classic/Arrow-rightDown-blue.png b/src/Gui/Stylesheets/images_classic/Arrow-rightDown-blue.png new file mode 100644 index 0000000000..b6fc71777c Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Arrow-rightDown-blue.png differ diff --git a/src/Gui/Stylesheets/images_classic/Arrow-rightDown-darkgray.png b/src/Gui/Stylesheets/images_classic/Arrow-rightDown-darkgray.png new file mode 100644 index 0000000000..80458cf2e2 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Arrow-rightDown-darkgray.png differ diff --git a/src/Gui/Stylesheets/images_classic/Arrow-rightDown-lightgray.png b/src/Gui/Stylesheets/images_classic/Arrow-rightDown-lightgray.png new file mode 100644 index 0000000000..59d8fd2d52 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Arrow-rightDown-lightgray.png differ diff --git a/src/Gui/Stylesheets/images_classic/Arrow-rightDown-white.png b/src/Gui/Stylesheets/images_classic/Arrow-rightDown-white.png new file mode 100644 index 0000000000..4befe9faa6 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Arrow-rightDown-white.png differ diff --git a/src/Gui/Stylesheets/images_classic/Arrow-up-black.png b/src/Gui/Stylesheets/images_classic/Arrow-up-black.png new file mode 100644 index 0000000000..e21088ecfc Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Arrow-up-black.png differ diff --git a/src/Gui/Stylesheets/images_classic/Arrow-up-blue.png b/src/Gui/Stylesheets/images_classic/Arrow-up-blue.png new file mode 100644 index 0000000000..31a959017b Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Arrow-up-blue.png differ diff --git a/src/Gui/Stylesheets/images_classic/Arrow-up-darkgray.png b/src/Gui/Stylesheets/images_classic/Arrow-up-darkgray.png new file mode 100644 index 0000000000..77a551e746 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Arrow-up-darkgray.png differ diff --git a/src/Gui/Stylesheets/images_classic/Arrow-up-lightgray.png b/src/Gui/Stylesheets/images_classic/Arrow-up-lightgray.png new file mode 100644 index 0000000000..bef803cdac Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Arrow-up-lightgray.png differ diff --git a/src/Gui/Stylesheets/images_classic/Arrow-up-white.png b/src/Gui/Stylesheets/images_classic/Arrow-up-white.png new file mode 100644 index 0000000000..017d65f2d4 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Arrow-up-white.png differ diff --git a/src/Gui/Stylesheets/images_classic/Check-Checked-black.png b/src/Gui/Stylesheets/images_classic/Check-Checked-black.png new file mode 100644 index 0000000000..32768dffcc Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Check-Checked-black.png differ diff --git a/src/Gui/Stylesheets/images_classic/Check-Checked-blue.png b/src/Gui/Stylesheets/images_classic/Check-Checked-blue.png new file mode 100644 index 0000000000..933768f5f7 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Check-Checked-blue.png differ diff --git a/src/Gui/Stylesheets/images_classic/Check-Checked-darkgray.png b/src/Gui/Stylesheets/images_classic/Check-Checked-darkgray.png new file mode 100644 index 0000000000..e5dd19b481 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Check-Checked-darkgray.png differ diff --git a/src/Gui/Stylesheets/images_classic/Check-Checked-lightgray.png b/src/Gui/Stylesheets/images_classic/Check-Checked-lightgray.png new file mode 100644 index 0000000000..75f6b26ebf Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Check-Checked-lightgray.png differ diff --git a/src/Gui/Stylesheets/images_classic/Check-Checked-white.png b/src/Gui/Stylesheets/images_classic/Check-Checked-white.png new file mode 100644 index 0000000000..78da118347 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Check-Checked-white.png differ diff --git a/src/Gui/Stylesheets/images_classic/Check-indeterminate-mark-black.png b/src/Gui/Stylesheets/images_classic/Check-indeterminate-mark-black.png new file mode 100644 index 0000000000..55191cd8fb Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Check-indeterminate-mark-black.png differ diff --git a/src/Gui/Stylesheets/images_classic/Check-indeterminate-mark-darkgray.png b/src/Gui/Stylesheets/images_classic/Check-indeterminate-mark-darkgray.png new file mode 100644 index 0000000000..2e5c0f1485 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Check-indeterminate-mark-darkgray.png differ diff --git a/src/Gui/Stylesheets/images_classic/Check-indeterminate-mark-lightgray.png b/src/Gui/Stylesheets/images_classic/Check-indeterminate-mark-lightgray.png new file mode 100644 index 0000000000..9b5574aa07 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Check-indeterminate-mark-lightgray.png differ diff --git a/src/Gui/Stylesheets/images_classic/Check-indeterminate-mark-white.png b/src/Gui/Stylesheets/images_classic/Check-indeterminate-mark-white.png new file mode 100644 index 0000000000..f3f2a48a04 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Check-indeterminate-mark-white.png differ diff --git a/src/Gui/Stylesheets/images_classic/Check-indeterminate-mark.png b/src/Gui/Stylesheets/images_classic/Check-indeterminate-mark.png new file mode 100644 index 0000000000..6fc8f4b035 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Check-indeterminate-mark.png differ diff --git a/src/Gui/Stylesheets/images_classic/Close-DarkRed.png b/src/Gui/Stylesheets/images_classic/Close-DarkRed.png new file mode 100644 index 0000000000..e257df2d1a Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Close-DarkRed.png differ diff --git a/src/Gui/Stylesheets/images_classic/Close-lightgray.png b/src/Gui/Stylesheets/images_classic/Close-lightgray.png new file mode 100644 index 0000000000..26237c598d Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Close-lightgray.png differ diff --git a/src/Gui/Stylesheets/images_classic/Hmovetoolbar-black.png b/src/Gui/Stylesheets/images_classic/Hmovetoolbar-black.png new file mode 100644 index 0000000000..9dfbbd9e9d Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Hmovetoolbar-black.png differ diff --git a/src/Gui/Stylesheets/images_classic/Hmovetoolbar-blue.png b/src/Gui/Stylesheets/images_classic/Hmovetoolbar-blue.png new file mode 100644 index 0000000000..fdd33174d6 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Hmovetoolbar-blue.png differ diff --git a/src/Gui/Stylesheets/images_classic/Hmovetoolbar-darkgray.png b/src/Gui/Stylesheets/images_classic/Hmovetoolbar-darkgray.png new file mode 100644 index 0000000000..bfd1783d0d Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Hmovetoolbar-darkgray.png differ diff --git a/src/Gui/Stylesheets/images_classic/Hmovetoolbar-lightgray.png b/src/Gui/Stylesheets/images_classic/Hmovetoolbar-lightgray.png new file mode 100644 index 0000000000..f8157b6bae Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Hmovetoolbar-lightgray.png differ diff --git a/src/Gui/Stylesheets/images_classic/Hmovetoolbar-white.png b/src/Gui/Stylesheets/images_classic/Hmovetoolbar-white.png new file mode 100644 index 0000000000..b70d911585 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Hmovetoolbar-white.png differ diff --git a/src/Gui/Stylesheets/images_classic/Hsepartoolbar-black.png b/src/Gui/Stylesheets/images_classic/Hsepartoolbar-black.png new file mode 100644 index 0000000000..d66254d0b8 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Hsepartoolbar-black.png differ diff --git a/src/Gui/Stylesheets/images_classic/Hsepartoolbar-blue.png b/src/Gui/Stylesheets/images_classic/Hsepartoolbar-blue.png new file mode 100644 index 0000000000..d6644e8c99 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Hsepartoolbar-blue.png differ diff --git a/src/Gui/Stylesheets/images_classic/Hsepartoolbar-darkgray.png b/src/Gui/Stylesheets/images_classic/Hsepartoolbar-darkgray.png new file mode 100644 index 0000000000..4f35ed1d21 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Hsepartoolbar-darkgray.png differ diff --git a/src/Gui/Stylesheets/images_classic/Hsepartoolbar-lightgray.png b/src/Gui/Stylesheets/images_classic/Hsepartoolbar-lightgray.png new file mode 100644 index 0000000000..945d0a66d5 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Hsepartoolbar-lightgray.png differ diff --git a/src/Gui/Stylesheets/images_classic/Hsepartoolbar-white.png b/src/Gui/Stylesheets/images_classic/Hsepartoolbar-white.png new file mode 100644 index 0000000000..88890c551d Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Hsepartoolbar-white.png differ diff --git a/src/Gui/Stylesheets/images_classic/Qsint_header_FoldOver_Blue-Blue.png b/src/Gui/Stylesheets/images_classic/Qsint_header_FoldOver_Blue-Blue.png new file mode 100644 index 0000000000..c6866b8609 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Qsint_header_FoldOver_Blue-Blue.png differ diff --git a/src/Gui/Stylesheets/images_classic/Qsint_header_FoldOver_Blue-dark.png b/src/Gui/Stylesheets/images_classic/Qsint_header_FoldOver_Blue-dark.png new file mode 100644 index 0000000000..f427f08082 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Qsint_header_FoldOver_Blue-dark.png differ diff --git a/src/Gui/Stylesheets/images_classic/Qsint_header_FoldOver_Blue-light.png b/src/Gui/Stylesheets/images_classic/Qsint_header_FoldOver_Blue-light.png new file mode 100644 index 0000000000..65b1cde5aa Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Qsint_header_FoldOver_Blue-light.png differ diff --git a/src/Gui/Stylesheets/images_classic/Qsint_header_Fold_Blue-Blue.png b/src/Gui/Stylesheets/images_classic/Qsint_header_Fold_Blue-Blue.png new file mode 100644 index 0000000000..b6ed1c1187 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Qsint_header_Fold_Blue-Blue.png differ diff --git a/src/Gui/Stylesheets/images_classic/Qsint_header_Fold_Blue-dark.png b/src/Gui/Stylesheets/images_classic/Qsint_header_Fold_Blue-dark.png new file mode 100644 index 0000000000..0c5ef5957f Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Qsint_header_Fold_Blue-dark.png differ diff --git a/src/Gui/Stylesheets/images_classic/Qsint_header_Fold_Blue-light.png b/src/Gui/Stylesheets/images_classic/Qsint_header_Fold_Blue-light.png new file mode 100644 index 0000000000..bdfd0bf240 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Qsint_header_Fold_Blue-light.png differ diff --git a/src/Gui/Stylesheets/images_classic/Qsint_header_UnFoldOver_Blue-Blue.png b/src/Gui/Stylesheets/images_classic/Qsint_header_UnFoldOver_Blue-Blue.png new file mode 100644 index 0000000000..b9ddbb60f2 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Qsint_header_UnFoldOver_Blue-Blue.png differ diff --git a/src/Gui/Stylesheets/images_classic/Qsint_header_UnfoldOver_Blue-dark.png b/src/Gui/Stylesheets/images_classic/Qsint_header_UnfoldOver_Blue-dark.png new file mode 100644 index 0000000000..5035c71c13 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Qsint_header_UnfoldOver_Blue-dark.png differ diff --git a/src/Gui/Stylesheets/images_classic/Qsint_header_UnfoldOver_Blue_light.png b/src/Gui/Stylesheets/images_classic/Qsint_header_UnfoldOver_Blue_light.png new file mode 100644 index 0000000000..e0456dba8a Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Qsint_header_UnfoldOver_Blue_light.png differ diff --git a/src/Gui/Stylesheets/images_classic/Qsint_header_Unfold_Blue-Blue.png b/src/Gui/Stylesheets/images_classic/Qsint_header_Unfold_Blue-Blue.png new file mode 100644 index 0000000000..6761469737 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Qsint_header_Unfold_Blue-Blue.png differ diff --git a/src/Gui/Stylesheets/images_classic/Qsint_header_Unfold_Blue-dark.png b/src/Gui/Stylesheets/images_classic/Qsint_header_Unfold_Blue-dark.png new file mode 100644 index 0000000000..84b1a479ca Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Qsint_header_Unfold_Blue-dark.png differ diff --git a/src/Gui/Stylesheets/images_classic/Qsint_header_Unfold_Blue-light.png b/src/Gui/Stylesheets/images_classic/Qsint_header_Unfold_Blue-light.png new file mode 100644 index 0000000000..ee6afced02 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Qsint_header_Unfold_Blue-light.png differ diff --git a/src/Gui/Stylesheets/images_classic/Radio-checked-black.png b/src/Gui/Stylesheets/images_classic/Radio-checked-black.png new file mode 100644 index 0000000000..3624982a13 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Radio-checked-black.png differ diff --git a/src/Gui/Stylesheets/images_classic/Radio-checked-blue.png b/src/Gui/Stylesheets/images_classic/Radio-checked-blue.png new file mode 100644 index 0000000000..214fc4462e Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Radio-checked-blue.png differ diff --git a/src/Gui/Stylesheets/images_classic/Radio-checked-darkgray.png b/src/Gui/Stylesheets/images_classic/Radio-checked-darkgray.png new file mode 100644 index 0000000000..f02e14bf9c Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Radio-checked-darkgray.png differ diff --git a/src/Gui/Stylesheets/images_classic/Radio-checked-lightgray.png b/src/Gui/Stylesheets/images_classic/Radio-checked-lightgray.png new file mode 100644 index 0000000000..0cecff1da7 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Radio-checked-lightgray.png differ diff --git a/src/Gui/Stylesheets/images_classic/Radio-checked-white.png b/src/Gui/Stylesheets/images_classic/Radio-checked-white.png new file mode 100644 index 0000000000..6445de9013 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Radio-checked-white.png differ diff --git a/src/Gui/Stylesheets/images_classic/Radio-unchecked-black.png b/src/Gui/Stylesheets/images_classic/Radio-unchecked-black.png new file mode 100644 index 0000000000..c1dfaae3b7 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Radio-unchecked-black.png differ diff --git a/src/Gui/Stylesheets/images_classic/Radio-unchecked-blue.png b/src/Gui/Stylesheets/images_classic/Radio-unchecked-blue.png new file mode 100644 index 0000000000..2398650a62 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Radio-unchecked-blue.png differ diff --git a/src/Gui/Stylesheets/images_classic/Radio-unchecked-darkgray.png b/src/Gui/Stylesheets/images_classic/Radio-unchecked-darkgray.png new file mode 100644 index 0000000000..2fb8f5c7cf Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Radio-unchecked-darkgray.png differ diff --git a/src/Gui/Stylesheets/images_classic/Radio-unchecked-lightgray.png b/src/Gui/Stylesheets/images_classic/Radio-unchecked-lightgray.png new file mode 100644 index 0000000000..f8120aee4d Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Radio-unchecked-lightgray.png differ diff --git a/src/Gui/Stylesheets/images_classic/Radio-unchecked-white.png b/src/Gui/Stylesheets/images_classic/Radio-unchecked-white.png new file mode 100644 index 0000000000..e7d323930d Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Radio-unchecked-white.png differ diff --git a/src/Gui/Stylesheets/images_classic/Vmovetoolbar-black.png b/src/Gui/Stylesheets/images_classic/Vmovetoolbar-black.png new file mode 100644 index 0000000000..d723697207 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Vmovetoolbar-black.png differ diff --git a/src/Gui/Stylesheets/images_classic/Vmovetoolbar-blue.png b/src/Gui/Stylesheets/images_classic/Vmovetoolbar-blue.png new file mode 100644 index 0000000000..119dbc04b9 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Vmovetoolbar-blue.png differ diff --git a/src/Gui/Stylesheets/images_classic/Vmovetoolbar-darkgray.png b/src/Gui/Stylesheets/images_classic/Vmovetoolbar-darkgray.png new file mode 100644 index 0000000000..cfeec0316b Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Vmovetoolbar-darkgray.png differ diff --git a/src/Gui/Stylesheets/images_classic/Vmovetoolbar-lightgray.png b/src/Gui/Stylesheets/images_classic/Vmovetoolbar-lightgray.png new file mode 100644 index 0000000000..9fe61d8da5 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Vmovetoolbar-lightgray.png differ diff --git a/src/Gui/Stylesheets/images_classic/Vmovetoolbar-white.png b/src/Gui/Stylesheets/images_classic/Vmovetoolbar-white.png new file mode 100644 index 0000000000..83fca0ce3b Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Vmovetoolbar-white.png differ diff --git a/src/Gui/Stylesheets/images_classic/Vsepartoolbar-black.png b/src/Gui/Stylesheets/images_classic/Vsepartoolbar-black.png new file mode 100644 index 0000000000..6031e2e65a Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Vsepartoolbar-black.png differ diff --git a/src/Gui/Stylesheets/images_classic/Vsepartoolbar-blue.png b/src/Gui/Stylesheets/images_classic/Vsepartoolbar-blue.png new file mode 100644 index 0000000000..c202f0d8a7 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Vsepartoolbar-blue.png differ diff --git a/src/Gui/Stylesheets/images_classic/Vsepartoolbar-darkgray.png b/src/Gui/Stylesheets/images_classic/Vsepartoolbar-darkgray.png new file mode 100644 index 0000000000..4ee6f9c878 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Vsepartoolbar-darkgray.png differ diff --git a/src/Gui/Stylesheets/images_classic/Vsepartoolbar-lightgray.png b/src/Gui/Stylesheets/images_classic/Vsepartoolbar-lightgray.png new file mode 100644 index 0000000000..fa30de9316 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Vsepartoolbar-lightgray.png differ diff --git a/src/Gui/Stylesheets/images_classic/Vsepartoolbar-white.png b/src/Gui/Stylesheets/images_classic/Vsepartoolbar-white.png new file mode 100644 index 0000000000..89b98f316a Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/Vsepartoolbar-white.png differ diff --git a/src/Gui/Stylesheets/images_classic/background_freecad.png b/src/Gui/Stylesheets/images_classic/background_freecad.png new file mode 100644 index 0000000000..5ed9c67858 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/background_freecad.png differ diff --git a/src/Gui/Stylesheets/images_classic/background_freecad_dark.png b/src/Gui/Stylesheets/images_classic/background_freecad_dark.png new file mode 100644 index 0000000000..2be5e744ff Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/background_freecad_dark.png differ diff --git a/src/Gui/Stylesheets/images_classic/background_freecad_light.png b/src/Gui/Stylesheets/images_classic/background_freecad_light.png new file mode 100644 index 0000000000..a03b938648 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/background_freecad_light.png differ diff --git a/src/Gui/Stylesheets/images_classic/checkbox-Empty-black.png b/src/Gui/Stylesheets/images_classic/checkbox-Empty-black.png new file mode 100644 index 0000000000..401232f9fe Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/checkbox-Empty-black.png differ diff --git a/src/Gui/Stylesheets/images_classic/checkbox-Empty-blue.png b/src/Gui/Stylesheets/images_classic/checkbox-Empty-blue.png new file mode 100644 index 0000000000..49a9c5c4e3 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/checkbox-Empty-blue.png differ diff --git a/src/Gui/Stylesheets/images_classic/checkbox-Empty-darkgray.png b/src/Gui/Stylesheets/images_classic/checkbox-Empty-darkgray.png new file mode 100644 index 0000000000..1de7737549 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/checkbox-Empty-darkgray.png differ diff --git a/src/Gui/Stylesheets/images_classic/checkbox-Empty-lightgray.png b/src/Gui/Stylesheets/images_classic/checkbox-Empty-lightgray.png new file mode 100644 index 0000000000..d7b981d1cc Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/checkbox-Empty-lightgray.png differ diff --git a/src/Gui/Stylesheets/images_classic/checkbox-Empty-white.png b/src/Gui/Stylesheets/images_classic/checkbox-Empty-white.png new file mode 100644 index 0000000000..1503f1156d Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/checkbox-Empty-white.png differ diff --git a/src/Gui/Stylesheets/images_classic/checkbox-checked-black.png b/src/Gui/Stylesheets/images_classic/checkbox-checked-black.png new file mode 100644 index 0000000000..f461514a03 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/checkbox-checked-black.png differ diff --git a/src/Gui/Stylesheets/images_classic/checkbox-checked-blue.png b/src/Gui/Stylesheets/images_classic/checkbox-checked-blue.png new file mode 100644 index 0000000000..09da3854dc Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/checkbox-checked-blue.png differ diff --git a/src/Gui/Stylesheets/images_classic/checkbox-checked-darkgray.png b/src/Gui/Stylesheets/images_classic/checkbox-checked-darkgray.png new file mode 100644 index 0000000000..59c1453fcd Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/checkbox-checked-darkgray.png differ diff --git a/src/Gui/Stylesheets/images_classic/checkbox-checked-lightgray.png b/src/Gui/Stylesheets/images_classic/checkbox-checked-lightgray.png new file mode 100644 index 0000000000..7845e34bcd Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/checkbox-checked-lightgray.png differ diff --git a/src/Gui/Stylesheets/images_classic/checkbox-checked-white.png b/src/Gui/Stylesheets/images_classic/checkbox-checked-white.png new file mode 100644 index 0000000000..5c9ef30f25 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/checkbox-checked-white.png differ diff --git a/src/Gui/Stylesheets/images_classic/checkbox-indeterminate-black.png b/src/Gui/Stylesheets/images_classic/checkbox-indeterminate-black.png new file mode 100644 index 0000000000..a742eb8d01 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/checkbox-indeterminate-black.png differ diff --git a/src/Gui/Stylesheets/images_classic/checkbox-indeterminate-blue.png b/src/Gui/Stylesheets/images_classic/checkbox-indeterminate-blue.png new file mode 100644 index 0000000000..67552d58d6 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/checkbox-indeterminate-blue.png differ diff --git a/src/Gui/Stylesheets/images_classic/checkbox-indeterminate-darkgray.png b/src/Gui/Stylesheets/images_classic/checkbox-indeterminate-darkgray.png new file mode 100644 index 0000000000..bf7bd62cb7 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/checkbox-indeterminate-darkgray.png differ diff --git a/src/Gui/Stylesheets/images_classic/checkbox-indeterminate-lightgray.png b/src/Gui/Stylesheets/images_classic/checkbox-indeterminate-lightgray.png new file mode 100644 index 0000000000..26de520ac3 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/checkbox-indeterminate-lightgray.png differ diff --git a/src/Gui/Stylesheets/images_classic/checkbox-indeterminate-white.png b/src/Gui/Stylesheets/images_classic/checkbox-indeterminate-white.png new file mode 100644 index 0000000000..5bcecb68be Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/checkbox-indeterminate-white.png differ diff --git a/src/Gui/Stylesheets/images_classic/close-black.png b/src/Gui/Stylesheets/images_classic/close-black.png new file mode 100644 index 0000000000..8a18d0662b Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/close-black.png differ diff --git a/src/Gui/Stylesheets/images_classic/close-blue.png b/src/Gui/Stylesheets/images_classic/close-blue.png new file mode 100644 index 0000000000..9919fa80c8 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/close-blue.png differ diff --git a/src/Gui/Stylesheets/images_classic/close-darkerred.png b/src/Gui/Stylesheets/images_classic/close-darkerred.png new file mode 100644 index 0000000000..724e6dfc2b Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/close-darkerred.png differ diff --git a/src/Gui/Stylesheets/images_classic/close-darkgray.png b/src/Gui/Stylesheets/images_classic/close-darkgray.png new file mode 100644 index 0000000000..73432ce6ed Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/close-darkgray.png differ diff --git a/src/Gui/Stylesheets/images_classic/close-lightred.png b/src/Gui/Stylesheets/images_classic/close-lightred.png new file mode 100644 index 0000000000..4751002a0c Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/close-lightred.png differ diff --git a/src/Gui/Stylesheets/images_classic/close-red.png b/src/Gui/Stylesheets/images_classic/close-red.png new file mode 100644 index 0000000000..649e5f3c36 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/close-red.png differ diff --git a/src/Gui/Stylesheets/images_classic/close-white.png b/src/Gui/Stylesheets/images_classic/close-white.png new file mode 100644 index 0000000000..5ab56a0943 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/close-white.png differ diff --git a/src/Gui/Stylesheets/images_classic/icons classic.svg b/src/Gui/Stylesheets/images_classic/icons classic.svg new file mode 100644 index 0000000000..3d0adeb9cf --- /dev/null +++ b/src/Gui/Stylesheets/images_classic/icons classic.svg @@ -0,0 +1,3758 @@ + + + +Arrow-upArrow-up-blackArrow-downArrow-downArrow-upArrow-upArrow-downArrow-downArrow-upArrow-upArrow-downArrow-downundockblueundockblueArrow-upArrow-upArrow-downArrow-downArrow-upArrow-upArrow-downArrow-downTransparant diff --git a/src/Gui/Stylesheets/images_classic/more-black-lightgray.png b/src/Gui/Stylesheets/images_classic/more-black-lightgray.png new file mode 100644 index 0000000000..0d550559f7 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/more-black-lightgray.png differ diff --git a/src/Gui/Stylesheets/images_classic/more-black.png b/src/Gui/Stylesheets/images_classic/more-black.png new file mode 100644 index 0000000000..0a97eb09ae Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/more-black.png differ diff --git a/src/Gui/Stylesheets/images_classic/more-blue.png b/src/Gui/Stylesheets/images_classic/more-blue.png new file mode 100644 index 0000000000..3bf1f9958a Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/more-blue.png differ diff --git a/src/Gui/Stylesheets/images_classic/more-darkgray.png b/src/Gui/Stylesheets/images_classic/more-darkgray.png new file mode 100644 index 0000000000..fa7406462b Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/more-darkgray.png differ diff --git a/src/Gui/Stylesheets/images_classic/more-white.png b/src/Gui/Stylesheets/images_classic/more-white.png new file mode 100644 index 0000000000..e283ef9ecc Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/more-white.png differ diff --git a/src/Gui/Stylesheets/images_classic/sizegrip-black.png b/src/Gui/Stylesheets/images_classic/sizegrip-black.png new file mode 100644 index 0000000000..cbf4e8a7e3 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/sizegrip-black.png differ diff --git a/src/Gui/Stylesheets/images_classic/sizegrip-blue.png b/src/Gui/Stylesheets/images_classic/sizegrip-blue.png new file mode 100644 index 0000000000..d1897c3e86 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/sizegrip-blue.png differ diff --git a/src/Gui/Stylesheets/images_classic/sizegrip-darkgray.png b/src/Gui/Stylesheets/images_classic/sizegrip-darkgray.png new file mode 100644 index 0000000000..e48b4ad546 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/sizegrip-darkgray.png differ diff --git a/src/Gui/Stylesheets/images_classic/sizegrip-lightgray.png b/src/Gui/Stylesheets/images_classic/sizegrip-lightgray.png new file mode 100644 index 0000000000..230440a3ac Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/sizegrip-lightgray.png differ diff --git a/src/Gui/Stylesheets/images_classic/sizegrip-white.png b/src/Gui/Stylesheets/images_classic/sizegrip-white.png new file mode 100644 index 0000000000..a1f766afab Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/sizegrip-white.png differ diff --git a/src/Gui/Stylesheets/images_classic/splitter_horizontal-black.png b/src/Gui/Stylesheets/images_classic/splitter_horizontal-black.png new file mode 100644 index 0000000000..b98a3cb044 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/splitter_horizontal-black.png differ diff --git a/src/Gui/Stylesheets/images_classic/splitter_horizontal-blue.png b/src/Gui/Stylesheets/images_classic/splitter_horizontal-blue.png new file mode 100644 index 0000000000..45aee26a26 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/splitter_horizontal-blue.png differ diff --git a/src/Gui/Stylesheets/images_classic/splitter_horizontal-darkgray.png b/src/Gui/Stylesheets/images_classic/splitter_horizontal-darkgray.png new file mode 100644 index 0000000000..fcaf5d5cb0 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/splitter_horizontal-darkgray.png differ diff --git a/src/Gui/Stylesheets/images_classic/splitter_horizontal-lightgray.png b/src/Gui/Stylesheets/images_classic/splitter_horizontal-lightgray.png new file mode 100644 index 0000000000..da14e76779 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/splitter_horizontal-lightgray.png differ diff --git a/src/Gui/Stylesheets/images_classic/splitter_horizontal-white.png b/src/Gui/Stylesheets/images_classic/splitter_horizontal-white.png new file mode 100644 index 0000000000..9a0ca9e18e Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/splitter_horizontal-white.png differ diff --git a/src/Gui/Stylesheets/images_classic/splitter_vertical-black.png b/src/Gui/Stylesheets/images_classic/splitter_vertical-black.png new file mode 100644 index 0000000000..1cdb57c763 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/splitter_vertical-black.png differ diff --git a/src/Gui/Stylesheets/images_classic/splitter_vertical-blue.png b/src/Gui/Stylesheets/images_classic/splitter_vertical-blue.png new file mode 100644 index 0000000000..025f2ebf5e Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/splitter_vertical-blue.png differ diff --git a/src/Gui/Stylesheets/images_classic/splitter_vertical-darkgray.png b/src/Gui/Stylesheets/images_classic/splitter_vertical-darkgray.png new file mode 100644 index 0000000000..fdd4ed7278 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/splitter_vertical-darkgray.png differ diff --git a/src/Gui/Stylesheets/images_classic/splitter_vertical-lightgray.png b/src/Gui/Stylesheets/images_classic/splitter_vertical-lightgray.png new file mode 100644 index 0000000000..aa5af97620 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/splitter_vertical-lightgray.png differ diff --git a/src/Gui/Stylesheets/images_classic/splitter_vertical-white.png b/src/Gui/Stylesheets/images_classic/splitter_vertical-white.png new file mode 100644 index 0000000000..3d65edac4a Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/splitter_vertical-white.png differ diff --git a/src/Gui/Stylesheets/images_classic/transparent.png b/src/Gui/Stylesheets/images_classic/transparent.png new file mode 100644 index 0000000000..67b5488e63 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/transparent.png differ diff --git a/src/Gui/Stylesheets/images_classic/undock-black-lightgray.png b/src/Gui/Stylesheets/images_classic/undock-black-lightgray.png new file mode 100644 index 0000000000..6ca3b19fa4 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/undock-black-lightgray.png differ diff --git a/src/Gui/Stylesheets/images_classic/undock-black.png b/src/Gui/Stylesheets/images_classic/undock-black.png new file mode 100644 index 0000000000..000db0a701 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/undock-black.png differ diff --git a/src/Gui/Stylesheets/images_classic/undock-blue.png b/src/Gui/Stylesheets/images_classic/undock-blue.png new file mode 100644 index 0000000000..379b9d30a3 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/undock-blue.png differ diff --git a/src/Gui/Stylesheets/images_classic/undock-darkgray.png b/src/Gui/Stylesheets/images_classic/undock-darkgray.png new file mode 100644 index 0000000000..2bb9703003 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/undock-darkgray.png differ diff --git a/src/Gui/Stylesheets/images_classic/undock-white.png b/src/Gui/Stylesheets/images_classic/undock-white.png new file mode 100644 index 0000000000..f106969b78 Binary files /dev/null and b/src/Gui/Stylesheets/images_classic/undock-white.png differ diff --git a/src/Gui/Stylesheets/overlay/Dark Theme + Dark Background.qss b/src/Gui/Stylesheets/overlay/Dark Theme + Dark Background.qss new file mode 100644 index 0000000000..38b5408b9f --- /dev/null +++ b/src/Gui/Stylesheets/overlay/Dark Theme + Dark Background.qss @@ -0,0 +1,152 @@ +* { + /* color: #ffffff; */ + } + QTabWidget::pane{ + background-color: rgba(0, 0, 0, 0.01); + border: transparent; + } + QAbstractItemView { + alternate-background-color: rgba(0, 0, 0, 0.119); + color: White; + border: transparent; + padding-right: 5px; + } + Gui--OverlayTabWidget[transparent="true"] QWidget { + selection-background-color: transparent; + } + + Gui--OverlayTabWidget[transparent="false"] QTreeView::item { + color: #ffffff; +} + +Gui--OverlayTabWidget[transparent="true"] QTreeView::item { + color: #ffffff; +} + + Gui--OverlayTabWidget[transparent="true"] QTreeView::item:selected { + color: #ffffff; + background-color: #181d2a; +} + +Gui--OverlayTabWidget[transparent="true"] QTreeView::item:focus { + color: #ffffff; + background-color: #181d2a; +} + + Gui--OverlayTabWidget[transparent="true"] QTreeView::item:selected:focus { + color: #ffffff; + background-color: #181d2a; +} + + /* The OverlayTabWidget is named as OverlayLeft, OverlayRight, OverlayTop, OverlayBottom. + To customize for each overlay docking site, use the following selector + + Gui--OverlayTabWidget#OverlayLeft {} + */ + + Gui--OverlayTabWidget { + qproperty-effectColor: rgba(25, 25, 25, 220); + qproperty-effectBlurRadius: 5; + qproperty-effectOffsetX: 0; + qproperty-effectOffsetY: 0; + qproperty-effectWidth: 1; + qproperty-effectHeight: 1; + qproperty-enableEffect: 1; + } + Gui--OverlayTabWidget#OverlayBottom { + qproperty-effectColor: rgba(100, 100, 100, 220); + qproperty-effectBlurRadius: 5; + qproperty-effectOffsetX: 0.0; + qproperty-effectOffsetY: 0.0; + qproperty-effectWidth: 1; + qproperty-effectHeight: 1; + qproperty-enableEffect: 1; + } + + Gui--OverlayTabWidget::pane { + background-color: transparent; + border: transparent; + } + + QSint--ActionGroup QFrame[class="content"] { + border-bottom-left-radius: 5px; + border-bottom-right-radius: 5px; + } + + Gui--OverlayTabWidget::tab-bar:top, + Gui--OverlayTabWidget::tab-bar:bottom { + left: 10px; + alignment: left; + } + + Gui--OverlayTabWidget::tab-bar:left, + Gui--OverlayTabWidget::tab-bar:right { + top: 10px; + alignment: top; + } + + Gui--OverlayProxyWidget { + qproperty-hintColor: rgba(250, 250, 250, 0.6); + } + + Gui--OverlayToolButton { + background: transparent; + padding: 0px; + border: none; + } + + Gui--OverlayToolButton::hover { + background: rgba(250,250,250,200); + } + + Gui--OverlayToolButton::focus { + background: rgba(250,250,250,255); + } + + Gui--OverlayToolButton::pressed, + Gui--OverlayToolButton::checked { + background: rgba(150,150,50,80); + border: 1px inset #f5f5f5; + } + + Gui--OverlayToolButton::checked:hover { + background: rgba(150,150,150,200); + border: 1px inset #f5f5f5; + } + QFrame { + border: none; + } + + Gui--OverlayToolButton[objectName="OBTN Transparent"] { + image: url(qss:overlay/icons/transparent_light.svg); + } + + Gui--OverlayToolButton[objectName="OBTN Transparent"]:hover { + image: url(qss:overlay/icons/transparent_lighter.svg); + } + + Gui--OverlayToolButton[objectName="OBTN Overlay"] { + image: url(qss:overlay/icons/overlay_light.svg); + } + + Gui--OverlayToolButton[objectName="OBTN Overlay"]:hover { + image: url(qss:overlay/icons/overlay_lighter.svg); + } + + Gui--OverlayToolButton[objectName="OBTN AutoMode"] { + image: url(qss:overlay/icons/mode_light.svg); + } + + Gui--OverlayToolButton[objectName="OBTN AutoMode"]:hover { + image: url(qss:overlay/icons/mode_lighter.svg); + } + + Gui--OverlaySplitterHandle Gui--OverlayToolButton, + Gui--OverlayToolButton[objectName="OBTN Float"] { + image: url(qss:overlay/icons/float_light.svg); + } + + Gui--OverlaySplitterHandle Gui--OverlayToolButton:hover, + Gui--OverlayToolButton[objectName="OBTN Float"]:hover { + image: url(qss:overlay/icons/float_lighter.svg); + } \ No newline at end of file diff --git a/src/Gui/Stylesheets/overlay/Dark Theme + Light Background.qss b/src/Gui/Stylesheets/overlay/Dark Theme + Light Background.qss new file mode 100644 index 0000000000..513a92fff5 --- /dev/null +++ b/src/Gui/Stylesheets/overlay/Dark Theme + Light Background.qss @@ -0,0 +1,195 @@ +QTabWidget::pane{ + background-color: rgba(255, 255, 255, 0.01); + border: transparent; +} + +QAbstractItemView { + alternate-background-color: rgba(0, 0, 0, 0.119); + color: White; + border: transparent; + padding-right: 5px; +} + +QTreeView { + background-color: #cecece; + border: 0px solid #696968; + /* alternate-background-color: rgba(255, 0, 0, 0.611); */ + color: #0e0e0e; + gridline-color: #696968; + border-radius: 0px; +} + +Gui--OverlayTabWidget[transparent="true"] QWidget { + selection-background-color: transparent; +} +Gui--OverlayTabWidget[transparent="false"] QTreeView::item { + color: #ffffff; +} + +Gui--OverlayTabWidget[transparent="true"] QTreeView::item { + color: #000000; +} + + Gui--OverlayTabWidget[transparent="true"] QTreeView::item:selected { + color: #000000; + background-color: #c7def5; +} + +Gui--OverlayTabWidget[transparent="true"] QTreeView::item:focus { + color: #000000; + background-color: #c7def5; +} + + Gui--OverlayTabWidget[transparent="true"] QTreeView::item:selected:focus { + color: #000000; + background-color: #c7def5; +} + +Gui--OverlayTabWidget[transparent="true"] QTreeView::item:disabled { + color: #8b8b8b; +} +Gui--OverlayTabWidget[transparent="true"] QTreeView::item { + color: #000000; +} + +/* The OverlayTabWidget is named as OverlayLeft, OverlayRight, OverlayTop, OverlayBottom. +To customize for each overlay docking site, use the following selector + +Gui--OverlayTabWidget#OverlayLeft {} +*/ + +Gui--OverlayTabWidget { + qproperty-effectColor: rgba(225, 225, 225, 220); + qproperty-effectBlurRadius: 5; + qproperty-effectOffsetX: 0; + qproperty-effectOffsetY: 0; + qproperty-effectWidth: 1; + qproperty-effectHeight: 1; + qproperty-enableEffect: 1; +} + Gui--OverlayTabWidget#OverlayBottom { + qproperty-effectColor: rgba(225, 225, 225, 220); + qproperty-effectBlurRadius: 5; + qproperty-effectOffsetX: 0.0; + qproperty-effectOffsetY: 0.0; + qproperty-effectWidth: 1; + qproperty-effectHeight: 1; + qproperty-enableEffect: 1; +} + + Gui--OverlayTabWidget::pane { + background-color: transparent; + border: transparent; + } + + QSint--ActionGroup QFrame[class="content"] { + border-bottom-left-radius: 5px; + border-bottom-right-radius: 5px; + } + + Gui--OverlayTabWidget::tab-bar:top, + Gui--OverlayTabWidget::tab-bar:bottom { + left: 10px; + alignment: left; + } + + Gui--OverlayTabWidget::tab-bar:left, + Gui--OverlayTabWidget::tab-bar:right { + top: 10px; + alignment: top; + } + + Gui--OverlayProxyWidget { + qproperty-hintColor: rgba(250, 250, 250, 0.6); + } + + Gui--OverlayToolButton { + background: transparent; + padding: 0px; + border: none; + } + + Gui--OverlayToolButton::hover { + background: rgba(250,250,250,200); + } + + Gui--OverlayToolButton::focus { + background: rgba(250,250,250,255); + } + + Gui--OverlayToolButton::pressed, + Gui--OverlayToolButton::checked { + background: rgba(150,150,50,80); + border: 1px inset #f5f5f5; + } + + Gui--OverlayToolButton::checked:hover { + background: rgba(150,150,150,200); + border: 1px inset #f5f5f5; + } + + QFrame { + border: none; + } + + Gui--OverlayToolButton[objectName="OBTN Transparent"] { + image: url(qss:overlay/icons/transparent_light.svg); + } + + Gui--OverlayToolButton[objectName="OBTN Transparent"]:hover { + image: url(qss:overlay/icons/transparent_lighter.svg); + } + + Gui--OverlayToolButton[objectName="OBTN Overlay"] { + image: url(qss:overlay/icons/overlay_light.svg); + } + + Gui--OverlayToolButton[objectName="OBTN Overlay"]:hover { + image: url(qss:overlay/icons/overlay_lighter.svg); + } + + Gui--OverlayToolButton[objectName="OBTN AutoMode"] { + image: url(qss:overlay/icons/mode_light.svg); + } + + Gui--OverlayToolButton[objectName="OBTN AutoMode"]:hover { + image: url(qss:overlay/icons/mode_lighter.svg); + } + + Gui--OverlaySplitterHandle Gui--OverlayToolButton, + Gui--OverlayToolButton[objectName="OBTN Float"] { + image: url(qss:overlay/icons/float_light.svg); + } + + Gui--OverlaySplitterHandle Gui--OverlayToolButton:hover, + Gui--OverlayToolButton[objectName="OBTN Float"]:hover { + image: url(qss:overlay/icons/float_lighter.svg); + } + + QTreeView::branch:closed:has-children:has-siblings { + margin-top: 5px; + margin-bottom: 5px; + border-image: none; + image: url(qss:images_classic/Arrow-right-black.png) 0; + } + + QTreeView::branch:has-children:!has-siblings:closed { + margin-top: 5px; + margin-bottom: 5px; + border-image: none; + image: url(qss:images_classic/Arrow-right-black.png) 0; + } + + QTreeView::branch:open:has-children:has-siblings { + margin-left: 6px; + margin-right: 6px; + border-image: none; + image: url(qss:images_classic/Arrow-down-black.png) 0; + } + + QTreeView::branch:open:has-children:!has-siblings { + margin-left: 6px; + margin-right: 6px; + border-image: none; + image: url(qss:images_classic/Arrow-down-black.png) 0; + } diff --git a/src/Gui/Stylesheets/overlay/Dark-Modern_overlay.qss b/src/Gui/Stylesheets/overlay/Dark-Modern_overlay.qss deleted file mode 100644 index 8472252fd6..0000000000 --- a/src/Gui/Stylesheets/overlay/Dark-Modern_overlay.qss +++ /dev/null @@ -1,102 +0,0 @@ -/* The OverlayTabWidget is named as OverlayLeft, OverlayRight, OverlayTop, OverlayBottom. -To customize for each overlay docking site, use the following selector - -Gui--OverlayTabWidget#OverlayLeft {} -*/ -/* -* { - color: #f0f0f0; - alternate-background-color: rgba(255, 179, 0, 0.607); - background-color: rgba(0, 255, 132, 0.607); -}*/ - -Gui--OverlayTabWidget { - qproperty-effectColor: rgba(42, 42, 42, 0.278); - qproperty-effectBlurRadius: 1.0; - qproperty-effectOffsetX: 0.0; - qproperty-effectOffsetY: 0.0; - qproperty-effectWidth: 2; - qproperty-effectHeight: 2; - qproperty-enableEffect: 1; -} - -Gui--OverlayTabWidget::tab-bar:top, -Gui--OverlayTabWidget::tab-bar:bottom { - left: 10px; - alignment: left; -} - -Gui--OverlayTabWidget::tab-bar:left, -Gui--OverlayTabWidget::tab-bar:right { - top: 10px; - alignment: top; -} - -Gui--OverlayTabWidget::pane { - background-color: transparent; -} - -Gui--OverlayProxyWidget { - qproperty-hintColor: rgba(100, 100, 100, 0.6); -} - -Gui--OverlayToolButton { - background: #444444; - padding: 1px; - border: 0px outset rgb(255, 255, 255); - border-radius: 0px; -} -Gui--OverlayToolButton:hover { - padding: 0px; -} - -Gui--OverlayToolButton:focus { - background: #000000; - padding: 0px; - border: 1px rgb(135, 135, 135); -} - -Gui--OverlayToolButton::pressed { - background: #000000; - padding: 0px; -} - -Gui--OverlayToolButton:checked { - padding: 0px; -} - -Gui--OverlayToolButton:checked:hover { - background: #000000; - border: 1px inset #525252; - padding: 0px; -} - -/* Use the following selector to customize title bar for each side */ -/* -Gui--OverlayTabWidget#OverlayBottom Gui--OverlayTitleBar, -Gui--OverlayTabWidget#OverlayBottom QSplitter Gui--OverlaySplitterHandle { - background-color: qlineargradient( - spread:pad, x1:0, y1:1, x2:0, y2:0, - stop:0 #80202020, stop:1 #00202020); -} -*/ - -Gui--OverlaySplitterHandle { - background-color: #444444; -} - -Gui--OverlayTitleBar { - background-color: #444444; -} - -QScrollArea#ClippingScrollArea, -QWidget#ClippingScrollAreaContents { - background-color: #750000; -} -QSint--ActionGroup QFrame[class="content"] { - background-color: #444444; /* Task Panel background color */ -} - -QAbstractItemView { - alternate-background-color: #313131; -} diff --git a/src/Gui/Stylesheets/overlay/Dark-Outline.qss b/src/Gui/Stylesheets/overlay/Dark-Outline.qss deleted file mode 100644 index ad962b7bea..0000000000 --- a/src/Gui/Stylesheets/overlay/Dark-Outline.qss +++ /dev/null @@ -1,190 +0,0 @@ -* { - color: #f0f0f0; - alternate-background-color: rgba(50,50,50,120); -} - -QComboBox, -QComboBox:editable, -QComboBox:!editable, -QLineEdit, -QTextEdit, -QPlainTextEdit, -QAbstractSpinBox, -QDateEdit, -QDateTimeEdit, -Gui--PropertyEditor--PropertyEditor QLabel { - background : #6e6e6e; -} -Gui--PropertyEditor--PropertyEditor { - gridline-color: #20a0a0a0; -} - -QComboBox:disabled, -QAbstractSpinBox:disabled, -QLineEdit:disabled, -QTextEdit:disabled, -QPlainTextEdit:disabled, -QTimeEdit:disabled, -QDateEdit:disabled, -QDateTimeEdit:disabled { - color: darkgray; -} - -QTabWidget::pane { - background-color: transparent; - border: transparent; -} - -QTabBar { - border : none; -} - -QTabBar::tab { - color: rgb(180,180,180); - background-color: rgba(100,100,100,10); - padding: 5px; -} - -QTabBar::tab:selected { - color: rgb(250,250,250); - background-color: rgba(100,100,100,50); -} - -QTabBar::tab:hover { - color: rgb(250,250,250); - background-color: rgba(150,150,150,150); -} - -/* The OverlayTabWidget is named as OverlayLeft, OverlayRight, OverlayTop, OverlayBottom. -To customize for each overlay docking site, use the following selector - -Gui--OverlayTabWidget#OverlayLeft {} -*/ - -Gui--OverlayTabWidget { - qproperty-effectColor: rgba(50, 50, 50, 200); - qproperty-effectBlurRadius: 2.0; - qproperty-effectOffsetX: 0.0; - qproperty-effectOffsetY: 0.0; - qproperty-effectWidth: 1; - qproperty-effectHeight: 1; - qproperty-enableEffect: 1; -} - -Gui--OverlayTabWidget::tab-bar:top, -Gui--OverlayTabWidget::tab-bar:bottom { - left: 10px; - alignment: left; -} - -Gui--OverlayTabWidget::tab-bar:left, -Gui--OverlayTabWidget::tab-bar:right { - top: 10px; - alignment: top; -} - -Gui--OverlayTabWidget::pane { - background-color: transparent; -} - -QHeaderView { background:transparent } -QHeaderView::section { - color: rgb(200,200,200); - background-color: rgba(50,50,50,10); - padding: 2px; - border: 1px solid rgb(150,150,150); -} - -QToolTip { - background-color: rgba(100,100,100,180); - border: 1px solid darkgray; - border-radius:2px; -} - -Gui--OverlayProxyWidget { - qproperty-hintColor: rgba(50, 50, 50, 0.6); -} - -Gui--OverlayToolButton { - background: transparent; - padding: 0px; - border: none; -} - -Gui--OverlayToolButton::hover { - background: rgba(150,150,150,200); -} - -Gui--OverlayToolButton::focus { - background: rgba(150,150,150,155); -} - -Gui--OverlayToolButton::pressed { - background: rgba(50,50,50,80); - border: 1px inset darkgray; -} - -Gui--OverlayToolButton::checked { - background: rgba(50,50,50,80); - border: 1px inset darkgray; -} - -Gui--OverlayToolButton::checked:hover { - background: rgba(150,150,150,200); - border: 1px inset darkgray; -} - -QTreeView, -QListView, -QTableView { - background: rgb(100,100,100); - border: transparent; - selection-background-color: rgba(94, 144, 250, 0.7); -} - -QListView::item:selected, -QTreeView::item:selected { - background-color: rgba(94, 144, 250, 0.7); -} - -Gui--PropertyEditor--PropertyEditor { - qproperty-groupTextColor: rgb(50, 50, 50); - qproperty-groupBackground: rgba(140, 140, 140, 0.6); - qproperty-itemBackground: rgba(0, 0, 0, 0.01); -} - -Gui--CallTipsList::item { - background-color: rgba(100, 100, 100, 200); -} - -Gui--CallTipsList::item::selected { - background-color: rgb(94, 144, 250); -} - -/* Use the following selector to customize title bar for each side */ -/* -Gui--OverlayTabWidget#OverlayBottom Gui--OverlayTitleBar, -Gui--OverlayTabWidget#OverlayBottom QSplitter Gui--OverlaySplitterHandle { - background-color: qlineargradient( - spread:pad, x1:0, y1:1, x2:0, y2:0, - stop:0 #80202020, stop:1 #00202020); -} -*/ - -Gui--OverlayTitleBar, -Gui--OverlaySplitterHandle { - background-color: rgba(80, 80, 80, 150) -} - -QScrollArea#ClippingScrollArea, -QWidget#ClippingScrollAreaContents { - background-color: #808c8c8c; -} - -QSint--ActionGroup QFrame[class="content"] { - background-color: #a08c8c8c; /* Task Panel background color */ -} - -QSint--ActionGroup QFrame[class="content"] > QWidget { - background-color: #808c8c8c; /* Task Panel background color */ -} diff --git a/src/Gui/Stylesheets/overlay/Dark-off.qss b/src/Gui/Stylesheets/overlay/Dark-off.qss deleted file mode 100644 index a11272af5b..0000000000 --- a/src/Gui/Stylesheets/overlay/Dark-off.qss +++ /dev/null @@ -1,34 +0,0 @@ -Gui--OverlayToolButton { - background: transparent; - padding: 0px; - border: none; -} - -Gui--OverlayToolButton::hover { - background: rgba(150,150,150,200); -} - -Gui--OverlayToolButton::focus { - background: rgba(150,150,150,155); -} - -Gui--OverlayToolButton::pressed { - background: rgba(50,50,50,80); - border: 1px inset palette(dark); -} - -Gui--OverlayToolButton::checked { - background: rgba(50,50,50,80); - border: 1px inset palette(dark); -} - -Gui--OverlayToolButton::checked:hover { - background: rgba(150,150,150,200); - border: 1px inset palette(dark); -} - -Gui--OverlayTitleBar, -Gui--OverlaySplitterHandle { - background-color: rgba(80, 80, 80, 150) -} - diff --git a/src/Gui/Stylesheets/overlay/Dark.qss b/src/Gui/Stylesheets/overlay/Dark.qss deleted file mode 100644 index 3e74e12b36..0000000000 --- a/src/Gui/Stylesheets/overlay/Dark.qss +++ /dev/null @@ -1,158 +0,0 @@ -* { - color: #f0f0f0; - alternate-background-color: rgba(50,50,50,120); -} - -QComboBox, -QComboBox:editable, -QComboBox:!editable, -QLineEdit, -QTextEdit, -QPlainTextEdit, -QAbstractSpinBox, -QDateEdit, -QDateTimeEdit, -Gui--PropertyEditor--PropertyEditor QLabel { - background : #6e6e6e; -} - -QComboBox:disabled, -QAbstractSpinBox:disabled, -QLineEdit:disabled, -QTextEdit:disabled, -QPlainTextEdit:disabled, -QTimeEdit:disabled, -QDateEdit:disabled, -QDateTimeEdit:disabled { - color: darkgray; -} - -QTabWidget::pane { - background-color: transparent; - border: transparent; -} - -Gui--OverlayTabWidget { - qproperty-enableEffect: 0; -} - -Gui--OverlayTabWidget::pane { - background-color: rgba(100,100,100,150) -} - -QTabBar { - border : none; -} - -QTabBar::tab { - color: #f0f0f0; - background-color: rgba(100,100,100,50); - padding: 5px; -} - -QTabBar::tab:selected { - background-color: rgba(100,100,100,150); -} - -QTabBar::tab:hover { - background-color: rgba(150,150,150,150); -} - -QHeaderView { background:transparent } -QHeaderView::section { - color: rgb(200,200,200); - background-color: rgba(50,50,50,50); - padding: 2px; - border: 1px solid rgb(100,100,100); -} - -QToolTip { - background-color: rgba(100,100,100,180); - border: 1px solid darkgray; - border-radius:2px; -} - -Gui--OverlayToolButton { - background: transparent; - padding: 0px; - border: none; -} - -Gui--OverlayToolButton::hover { - background: rgba(150,150,150,200); -} - -Gui--OverlayToolButton::focus { - background: rgba(150,150,150,155); -} - -Gui--OverlayToolButton::pressed { - background: rgba(50,50,50,80); - border: 1px inset darkgray; -} - -Gui--OverlayToolButton::checked { - background: rgba(50,50,50,80); - border: 1px inset darkgray; -} - -Gui--OverlayToolButton::checked:hover { - background: rgba(150,150,150,200); - border: 1px inset darkgray; -} - -QTreeView, -QListView, -QTableView { - background: rgb(100,100,100); - selection-background-color: rgba(94, 144, 250, 0.7); - border: transparent; -} - -QListView::item:selected, -QTreeView::item:selected { - background-color: rgba(94, 144, 250, 0.7); -} - -Gui--PropertyEditor--PropertyEditor { - qproperty-groupTextColor: rgb(50, 50, 50); - qproperty-groupBackground: rgba(140, 140, 140, 0.7); - qproperty-itemBackground: rgba(0, 0, 0, 0.01); -} - -Gui--CallTipsList::item { - background-color: rgba(100, 100, 100, 200); -} - -Gui--CallTipsList::item::selected { - background-color: rgb(94, 144, 250); -} - -/* Use the following selector to customize title bar for each side */ -/* -Gui--OverlayTabWidget#OverlayBottom Gui--OverlayTitleBar, -Gui--OverlayTabWidget#OverlayBottom QSplitter Gui--OverlaySplitterHandle { - background-color: qlineargradient( - spread:pad, x1:0, y1:1, x2:0, y2:0, - stop:0 #80202020, stop:1 #00202020); -} -*/ - -Gui--OverlayTitleBar, -Gui--OverlaySplitterHandle { - background-color: rgba(80, 80, 80, 150) -} - -QScrollArea#ClippingScrollArea, -QWidget#ClippingScrollAreaContents { - background-color: #808c8c8c; -} - -QSint--ActionGroup QFrame[class="content"] { - background-color: #808c8c8c; /* Task Panel background color */ -} - -QSint--ActionGroup QFrame[class="content"] > QWidget { - background-color: #808c8c8c; /* Task Panel background color */ -} - diff --git a/src/Gui/Stylesheets/overlay/Darker_overlay.qss b/src/Gui/Stylesheets/overlay/DarkBehave_overlay.qss similarity index 100% rename from src/Gui/Stylesheets/overlay/Darker_overlay.qss rename to src/Gui/Stylesheets/overlay/DarkBehave_overlay.qss diff --git a/src/Gui/Stylesheets/overlay/Dark_overlay.qss b/src/Gui/Stylesheets/overlay/Dark_overlay.qss deleted file mode 100644 index c66a46775f..0000000000 --- a/src/Gui/Stylesheets/overlay/Dark_overlay.qss +++ /dev/null @@ -1,102 +0,0 @@ -/* The OverlayTabWidget is named as OverlayLeft, OverlayRight, OverlayTop, OverlayBottom. -To customize for each overlay docking site, use the following selector - -Gui--OverlayTabWidget#OverlayLeft {} -*/ -/* -* { - color: #f0f0f0; - alternate-background-color: rgba(255, 179, 0, 0.607); - background-color: rgba(0, 255, 132, 0.607); -}*/ - -Gui--OverlayTabWidget { - qproperty-effectColor: rgba(42, 42, 42, 0.278); - qproperty-effectBlurRadius: 1.0; - qproperty-effectOffsetX: 0.0; - qproperty-effectOffsetY: 0.0; - qproperty-effectWidth: 2; - qproperty-effectHeight: 2; - qproperty-enableEffect: 1; -} - -Gui--OverlayTabWidget::tab-bar:top, -Gui--OverlayTabWidget::tab-bar:bottom { - left: 10px; - alignment: left; -} - -Gui--OverlayTabWidget::tab-bar:left, -Gui--OverlayTabWidget::tab-bar:right { - top: 10px; - alignment: top; -} - -Gui--OverlayTabWidget::pane { - background-color: transparent; -} - -Gui--OverlayProxyWidget { - qproperty-hintColor: rgba(100, 100, 100, 0.6); -} - -Gui--OverlayToolButton { - background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #333333, stop:1 #2a2a2a); - padding: 0px; - border: 0px outset rgb(255, 255, 255); - border-radius: 0px; -} - -Gui--OverlayToolButton:hover { - -} - -Gui--OverlayToolButton:focus { - background: #000000; - padding: 0px; - border: 1px rgb(135, 135, 135); -} - -Gui--OverlayToolButton::pressed { - background: #000000; - padding: 0px; -} - -Gui--OverlayToolButton:checked { - padding: 0px; -} - -Gui--OverlayToolButton:checked:hover { - border: 0px inset #525252; - padding: 1px; -} - -/* Use the following selector to customize title bar for each side */ -/* -Gui--OverlayTabWidget#OverlayBottom Gui--OverlayTitleBar, -Gui--OverlayTabWidget#OverlayBottom QSplitter Gui--OverlaySplitterHandle { - background-color: qlineargradient( - spread:pad, x1:0, y1:1, x2:0, y2:0, - stop:0 #80202020, stop:1 #00202020); -} -*/ - -Gui--OverlaySplitterHandle { - background-color: #444444; -} - -Gui--OverlayTitleBar { - background-color: #444444; -} - -QScrollArea#ClippingScrollArea, -QWidget#ClippingScrollAreaContents { - background-color: #750000; -} -QSint--ActionGroup QFrame[class="content"] { - background-color: #444444; /* Task Panel background color */ -} - -QAbstractItemView { - alternate-background-color: #313131; -} diff --git a/src/Gui/Stylesheets/overlay/Default_Dark-theme_Light-background.qss b/src/Gui/Stylesheets/overlay/Default_Dark-theme_Light-background.qss deleted file mode 100644 index 2b25f99ac6..0000000000 --- a/src/Gui/Stylesheets/overlay/Default_Dark-theme_Light-background.qss +++ /dev/null @@ -1,209 +0,0 @@ -* { - /* color: #000000; */ - alternate-background-color: rgba(255, 255, 255, 0.437); -} - -QTabWidget::pane { - background-color: rgba(255, 255, 255, 0.566); - border: transparent; -} - -Gui--OverlayTabWidget[transparent="true"] QTreeView::item:disabled { - color: #8b8b8b; -} -Gui--OverlayTabWidget[transparent="true"] QTreeView::item { - color: #000000; -} - - - -/* The OverlayTabWidget is named as OverlayLeft, OverlayRight, OverlayTop, OverlayBottom. -To customize for each overlay docking site, use the following selector - -Gui--OverlayTabWidget#OverlayLeft {} -*/ - -Gui--OverlayTabWidget { - qproperty-effectColor: rgba(225, 225, 225, 220); - qproperty-effectBlurRadius: 5; - qproperty-effectOffsetX: 0; - qproperty-effectOffsetY: 0; - qproperty-effectWidth: 1; - qproperty-effectHeight: 1; - qproperty-enableEffect: 1; -} - Gui--OverlayTabWidget#OverlayBottom { - qproperty-effectColor: rgba(225, 225, 225, 220); - qproperty-effectBlurRadius: 5; - qproperty-effectOffsetX: 0.0; - qproperty-effectOffsetY: 0.0; - qproperty-effectWidth: 1; - qproperty-effectHeight: 1; - qproperty-enableEffect: 1; -} - - Gui--OverlayTabWidget::pane { - background-color: transparent; - border: transparent; - } - - QSint--ActionGroup QFrame[class="content"] { - border-bottom-left-radius: 5px; - border-bottom-right-radius: 5px; - } - - Gui--OverlayTabWidget::tab-bar:top, - Gui--OverlayTabWidget::tab-bar:bottom { - left: 10px; - alignment: left; - } - - Gui--OverlayTabWidget::tab-bar:left, - Gui--OverlayTabWidget::tab-bar:right { - top: 10px; - alignment: top; - } - - Gui--OverlayProxyWidget { - qproperty-hintColor: rgba(250, 250, 250, 0.6); - } - - Gui--OverlayToolButton { - background: transparent; - padding: 0px; - border: none; - } - - Gui--OverlayToolButton::hover { - background: rgba(250,250,250,200); - } - - Gui--OverlayToolButton::focus { - background: rgba(250,250,250,255); - } - - Gui--OverlayToolButton::pressed, - Gui--OverlayToolButton::checked { - background: rgba(150,150,50,80); - border: 1px inset #f5f5f5; - } - - Gui--OverlayToolButton::checked:hover { - background: rgba(150,150,150,200); - border: 1px inset #f5f5f5; - } - - /* QTreeView{ - color: #000000; - } */ - /* - QTreeView:disabled { - color: #262626; - } */ - - /* Gui--OverlayTabWidget[transparent="true"] QTreeView { - color: #ffffff; - } */ - /* QTreeView::item { - /* border-radius: 3px; */ - /* margin: 1.5px 0px; */ - /* background-color: rgba(255, 255, 255, 200); */ - /* } */ - - QFrame { - border: none; - } - - Gui--OverlayToolButton[objectName="OBTN Transparent"] { - image: url(qss:overlay/transparent_light.svg); - } - - Gui--OverlayToolButton[objectName="OBTN Transparent"]:hover { - image: url(qss:overlay/transparent_lighter.svg); - } - - Gui--OverlayToolButton[objectName="OBTN Overlay"] { - image: url(qss:overlay/overlay_light.svg); - } - - Gui--OverlayToolButton[objectName="OBTN Overlay"]:hover { - image: url(qss:overlay/overlay_lighter.svg); - } - - Gui--OverlayToolButton[objectName="OBTN AutoMode"] { - image: url(qss:overlay/mode_light.svg); - } - - Gui--OverlayToolButton[objectName="OBTN AutoMode"]:hover { - image: url(qss:overlay/mode_lighter.svg); - } - - Gui--OverlaySplitterHandle Gui--OverlayToolButton, - Gui--OverlayToolButton[objectName="OBTN Float"] { - image: url(qss:overlay/float_light.svg); - } - - Gui--OverlaySplitterHandle Gui--OverlayToolButton:hover, - Gui--OverlayToolButton[objectName="OBTN Float"]:hover { - image: url(qss:overlay/float_lighter.svg); - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::branch:has-siblings:!adjoins-item { - border-image: url(qss:images_dark-light/branch_vline_dark.svg) 0; - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::branch:has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_more_dark.svg) 0; - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::branch:!has-children:!has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_end_dark.svg) 0; - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::branch:closed:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_closed_dark.svg) 0; - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::branch:has-children:!has-siblings:closed { - border-image: url(qss:images_dark-light/branch_end_closed_dark.svg) 0; - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::branch:open:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_open_dark.svg) 0; - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::branch:open:has-children:!has-siblings { - border-image: url(qss:images_dark-light/branch_end_open_dark.svg) 0; - } - - - /* Normal stuff */ - - - QTreeView::branch:has-siblings:!adjoins-item { - border-image: url(qss:images_dark-light/branch_vline_light.svg) 0; - } - - QTreeView::branch:has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_more_light.svg) 0; - } - - QTreeView::branch:!has-children:!has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_end_light.svg) 0; - } - - QTreeView::branch:closed:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_closed_light.svg) 0; - } - - QTreeView::branch:has-children:!has-siblings:closed { - border-image: url(qss:images_dark-light/branch_end_closed_light.svg) 0; - } - - QTreeView::branch:open:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_open_light.svg) 0; - } - - QTreeView::branch:open:has-children:!has-siblings { - border-image: url(qss:images_dark-light/branch_end_open_light.svg) 0; - } \ No newline at end of file diff --git a/src/Gui/Stylesheets/overlay/Default_Dark-theme_dark-background.qss b/src/Gui/Stylesheets/overlay/Default_Dark-theme_dark-background.qss deleted file mode 100644 index 4eeba2d459..0000000000 --- a/src/Gui/Stylesheets/overlay/Default_Dark-theme_dark-background.qss +++ /dev/null @@ -1,209 +0,0 @@ -* { - /* color: #000000; */ - alternate-background-color: rgba(255, 255, 255, 0.437); - } - - QTabWidget::pane { - background-color: rgba(255, 255, 255, 0.566); - border: transparent; - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::item:disabled { - color: #535353; - } - Gui--OverlayTabWidget[transparent="true"] QTreeView::item { - color: #ffffff; - } - - - - /* The OverlayTabWidget is named as OverlayLeft, OverlayRight, OverlayTop, OverlayBottom. - To customize for each overlay docking site, use the following selector - - Gui--OverlayTabWidget#OverlayLeft {} - */ - - Gui--OverlayTabWidget { - qproperty-effectColor: rgba(25, 25, 25, 220); - qproperty-effectBlurRadius: 5; - qproperty-effectOffsetX: 0; - qproperty-effectOffsetY: 0; - qproperty-effectWidth: 1; - qproperty-effectHeight: 1; - qproperty-enableEffect: 1; - } - Gui--OverlayTabWidget#OverlayBottom { - qproperty-effectColor: rgba(100, 100, 100, 220); - qproperty-effectBlurRadius: 5; - qproperty-effectOffsetX: 0.0; - qproperty-effectOffsetY: 0.0; - qproperty-effectWidth: 1; - qproperty-effectHeight: 1; - qproperty-enableEffect: 1; - } - - Gui--OverlayTabWidget::pane { - background-color: transparent; - border: transparent; - } - - QSint--ActionGroup QFrame[class="content"] { - border-bottom-left-radius: 5px; - border-bottom-right-radius: 5px; - } - - Gui--OverlayTabWidget::tab-bar:top, - Gui--OverlayTabWidget::tab-bar:bottom { - left: 10px; - alignment: left; - } - - Gui--OverlayTabWidget::tab-bar:left, - Gui--OverlayTabWidget::tab-bar:right { - top: 10px; - alignment: top; - } - - Gui--OverlayProxyWidget { - qproperty-hintColor: rgba(250, 250, 250, 0.6); - } - - Gui--OverlayToolButton { - background: transparent; - padding: 0px; - border: none; - } - - Gui--OverlayToolButton::hover { - background: rgba(250,250,250,200); - } - - Gui--OverlayToolButton::focus { - background: rgba(250,250,250,255); - } - - Gui--OverlayToolButton::pressed, - Gui--OverlayToolButton::checked { - background: rgba(150,150,50,80); - border: 1px inset #f5f5f5; - } - - Gui--OverlayToolButton::checked:hover { - background: rgba(150,150,150,200); - border: 1px inset #f5f5f5; - } - - /* QTreeView{ - color: #000000; - } */ - /* - QTreeView:disabled { - color: #262626; - } */ - - /* Gui--OverlayTabWidget[transparent="true"] QTreeView { - color: #ffffff; - } */ - /* QTreeView::item { - /* border-radius: 3px; */ - /* margin: 1.5px 0px; */ - /* background-color: rgba(255, 255, 255, 200); */ - /* } */ - - QFrame { - border: none; - } - - Gui--OverlayToolButton[objectName="OBTN Transparent"] { - image: url(qss:overlay/transparent_light.svg); - } - - Gui--OverlayToolButton[objectName="OBTN Transparent"]:hover { - image: url(qss:overlay/transparent_lighter.svg); - } - - Gui--OverlayToolButton[objectName="OBTN Overlay"] { - image: url(qss:overlay/overlay_light.svg); - } - - Gui--OverlayToolButton[objectName="OBTN Overlay"]:hover { - image: url(qss:overlay/overlay_lighter.svg); - } - - Gui--OverlayToolButton[objectName="OBTN AutoMode"] { - image: url(qss:overlay/mode_light.svg); - } - - Gui--OverlayToolButton[objectName="OBTN AutoMode"]:hover { - image: url(qss:overlay/mode_lighter.svg); - } - - Gui--OverlaySplitterHandle Gui--OverlayToolButton, - Gui--OverlayToolButton[objectName="OBTN Float"] { - image: url(qss:overlay/float_light.svg); - } - - Gui--OverlaySplitterHandle Gui--OverlayToolButton:hover, - Gui--OverlayToolButton[objectName="OBTN Float"]:hover { - image: url(qss:overlay/float_lighter.svg); - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::branch:has-siblings:!adjoins-item { - border-image: url(qss:images_dark-light/branch_vline_light.svg) 0; - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::branch:has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_more_light.svg) 0; - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::branch:!has-children:!has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_end_light.svg) 0; - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::branch:closed:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_closed_light.svg) 0; - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::branch:has-children:!has-siblings:closed { - border-image: url(qss:images_dark-light/branch_end_closed_light.svg) 0; - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::branch:open:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_open_light.svg) 0; - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::branch:open:has-children:!has-siblings { - border-image: url(qss:images_dark-light/branch_end_open_light.svg) 0; - } - - - /* Normal stuff */ - - - QTreeView::branch:has-siblings:!adjoins-item { - border-image: url(qss:images_dark-light/branch_vline_light.svg) 0; - } - - QTreeView::branch:has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_more_light.svg) 0; - } - - QTreeView::branch:!has-children:!has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_end_light.svg) 0; - } - - QTreeView::branch:closed:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_closed_light.svg) 0; - } - - QTreeView::branch:has-children:!has-siblings:closed { - border-image: url(qss:images_dark-light/branch_end_closed_light.svg) 0; - } - - QTreeView::branch:open:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_open_light.svg) 0; - } - - QTreeView::branch:open:has-children:!has-siblings { - border-image: url(qss:images_dark-light/branch_end_open_light.svg) 0; - } \ No newline at end of file diff --git a/src/Gui/Stylesheets/overlay/Default_Light-theme_dark-background.qss b/src/Gui/Stylesheets/overlay/Default_Light-theme_dark-background.qss deleted file mode 100644 index 242f312db1..0000000000 --- a/src/Gui/Stylesheets/overlay/Default_Light-theme_dark-background.qss +++ /dev/null @@ -1,209 +0,0 @@ -* { - /* color: #000000; */ - alternate-background-color: rgba(255, 255, 255, 0.437); - } - - QTabWidget::pane { - background-color: rgba(255, 255, 255, 0.566); - border: transparent; - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::item:disabled { - color: #535353; - } - Gui--OverlayTabWidget[transparent="true"] QTreeView::item { - color: #ffffff; - } - - - - /* The OverlayTabWidget is named as OverlayLeft, OverlayRight, OverlayTop, OverlayBottom. - To customize for each overlay docking site, use the following selector - - Gui--OverlayTabWidget#OverlayLeft {} - */ - - Gui--OverlayTabWidget { - qproperty-effectColor: rgba(25, 25, 25, 220); - qproperty-effectBlurRadius: 5; - qproperty-effectOffsetX: 0; - qproperty-effectOffsetY: 0; - qproperty-effectWidth: 1; - qproperty-effectHeight: 1; - qproperty-enableEffect: 1; - } - Gui--OverlayTabWidget#OverlayBottom { - qproperty-effectColor: rgba(225, 225, 225, 220); - qproperty-effectBlurRadius: 5; - qproperty-effectOffsetX: 0.0; - qproperty-effectOffsetY: 0.0; - qproperty-effectWidth: 1; - qproperty-effectHeight: 1; - qproperty-enableEffect: 1; - } - - Gui--OverlayTabWidget::pane { - background-color: transparent; - border: transparent; - } - - QSint--ActionGroup QFrame[class="content"] { - border-bottom-left-radius: 5px; - border-bottom-right-radius: 5px; - } - - Gui--OverlayTabWidget::tab-bar:top, - Gui--OverlayTabWidget::tab-bar:bottom { - left: 10px; - alignment: left; - } - - Gui--OverlayTabWidget::tab-bar:left, - Gui--OverlayTabWidget::tab-bar:right { - top: 10px; - alignment: top; - } - - Gui--OverlayProxyWidget { - qproperty-hintColor: rgba(250, 250, 250, 0.6); - } - - Gui--OverlayToolButton { - background: transparent; - padding: 0px; - border: none; - } - - Gui--OverlayToolButton::hover { - background: rgba(250,250,250,200); - } - - Gui--OverlayToolButton::focus { - background: rgba(250,250,250,255); - } - - Gui--OverlayToolButton::pressed, - Gui--OverlayToolButton::checked { - background: rgba(150,150,50,80); - border: 1px inset #f5f5f5; - } - - Gui--OverlayToolButton::checked:hover { - background: rgba(150,150,150,200); - border: 1px inset #f5f5f5; - } - - /* QTreeView{ - color: #000000; - } */ - /* - QTreeView:disabled { - color: #262626; - } */ - - /* Gui--OverlayTabWidget[transparent="true"] QTreeView { - color: #ffffff; - } */ - /* QTreeView::item { - /* border-radius: 3px; */ - /* margin: 1.5px 0px; */ - /* background-color: rgba(255, 255, 255, 200); */ - /* } */ - - QFrame { - border: none; - } - - Gui--OverlayToolButton[objectName="OBTN Transparent"] { - image: url(qss:overlay/transparent_dark.svg); - } - - Gui--OverlayToolButton[objectName="OBTN Transparent"]:hover { - image: url(qss:overlay/transparent_light.svg); - } - - Gui--OverlayToolButton[objectName="OBTN Overlay"] { - image: url(qss:overlay/overlay_dark.svg); - } - - Gui--OverlayToolButton[objectName="OBTN Overlay"]:hover { - image: url(qss:overlay/overlay_light.svg); - } - - Gui--OverlayToolButton[objectName="OBTN AutoMode"] { - image: url(qss:overlay/mode_dark.svg); - } - - Gui--OverlayToolButton[objectName="OBTN AutoMode"]:hover { - image: url(qss:overlay/mode_light.svg); - } - - Gui--OverlaySplitterHandle Gui--OverlayToolButton, - Gui--OverlayToolButton[objectName="OBTN Float"] { - image: url(qss:overlay/float_dark.svg); - } - - Gui--OverlaySplitterHandle Gui--OverlayToolButton:hover, - Gui--OverlayToolButton[objectName="OBTN Float"]:hover { - image: url(qss:overlay/float_light.svg); - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::branch:has-siblings:!adjoins-item { - border-image: url(qss:images_dark-light/branch_vline_light.svg) 0; - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::branch:has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_more_light.svg) 0; - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::branch:!has-children:!has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_end_light.svg) 0; - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::branch:closed:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_closed_light.svg) 0; - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::branch:has-children:!has-siblings:closed { - border-image: url(qss:images_dark-light/branch_end_closed_light.svg) 0; - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::branch:open:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_open_light.svg) 0; - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::branch:open:has-children:!has-siblings { - border-image: url(qss:images_dark-light/branch_end_open_light.svg) 0; - } - - - /* Normal stuff */ - - - QTreeView::branch:has-siblings:!adjoins-item { - border-image: url(qss:images_dark-light/branch_vline_dark.svg) 0; - } - - QTreeView::branch:has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_more_dark.svg) 0; - } - - QTreeView::branch:!has-children:!has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_end_dark.svg) 0; - } - - QTreeView::branch:closed:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_closed_dark.svg) 0; - } - - QTreeView::branch:has-children:!has-siblings:closed { - border-image: url(qss:images_dark-light/branch_end_closed_dark.svg) 0; - } - - QTreeView::branch:open:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_open_dark.svg) 0; - } - - QTreeView::branch:open:has-children:!has-siblings { - border-image: url(qss:images_dark-light/branch_end_open_dark.svg) 0; - } \ No newline at end of file diff --git a/src/Gui/Stylesheets/overlay/Default_Light-theme_light-background.qss b/src/Gui/Stylesheets/overlay/Default_Light-theme_light-background.qss deleted file mode 100644 index 1ef36ab552..0000000000 --- a/src/Gui/Stylesheets/overlay/Default_Light-theme_light-background.qss +++ /dev/null @@ -1,227 +0,0 @@ -* { - /* color: #000000; */ - alternate-background-color: rgba(255, 255, 255, 0.437); - } - - QTabWidget::pane { - background-color: rgba(255, 255, 255, 0.566); - border: transparent; - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::item:disabled { - color: #8b8b8b; - } - Gui--OverlayTabWidget[transparent="true"] QTreeView::item { - color: #000000; - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::item:pressed { - background-color: @ThemeAccentColor1; - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::item:selected:active{ - background-color: @ThemeAccentColor1; - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::item:selected:!active { - color: white; - background-color: #353535; - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::item:!selected:hover { - outline: 0; - color: white; - background-color: @ThemeAccentColor1; - } - - - /* The OverlayTabWidget is named as OverlayLeft, OverlayRight, OverlayTop, OverlayBottom. - To customize for each overlay docking site, use the following selector - - Gui--OverlayTabWidget#OverlayLeft {} - */ - - Gui--OverlayTabWidget { - qproperty-effectColor: rgba(225, 225, 225, 220); - qproperty-effectBlurRadius: 5; - qproperty-effectOffsetX: 0; - qproperty-effectOffsetY: 0; - qproperty-effectWidth: 1; - qproperty-effectHeight: 1; - qproperty-enableEffect: 1; - } - Gui--OverlayTabWidget#OverlayBottom { - qproperty-effectColor: rgba(225, 225, 225, 220); - qproperty-effectBlurRadius: 5; - qproperty-effectOffsetX: 0.0; - qproperty-effectOffsetY: 0.0; - qproperty-effectWidth: 1; - qproperty-effectHeight: 1; - qproperty-enableEffect: 1; - } - - Gui--OverlayTabWidget::pane { - background-color: transparent; - border: transparent; - } - - QSint--ActionGroup QFrame[class="content"] { - border-bottom-left-radius: 5px; - border-bottom-right-radius: 5px; - } - - Gui--OverlayTabWidget::tab-bar:top, - Gui--OverlayTabWidget::tab-bar:bottom { - left: 10px; - alignment: left; - } - - Gui--OverlayTabWidget::tab-bar:left, - Gui--OverlayTabWidget::tab-bar:right { - top: 10px; - alignment: top; - } - - Gui--OverlayProxyWidget { - qproperty-hintColor: rgba(250, 250, 250, 0.6); - } - - Gui--OverlayToolButton { - background: transparent; - padding: 0px; - border: none; - } - - Gui--OverlayToolButton::hover { - background: rgba(250,250,250,200); - } - - Gui--OverlayToolButton::focus { - background: rgba(250,250,250,255); - } - - Gui--OverlayToolButton::pressed, - Gui--OverlayToolButton::checked { - background: rgba(150,150,50,80); - border: 1px inset #f5f5f5; - } - - Gui--OverlayToolButton::checked:hover { - background: rgba(150,150,150,200); - border: 1px inset #f5f5f5; - } - - /* QTreeView{ - color: #000000; - } */ - /* - QTreeView:disabled { - color: #262626; - } */ - - /* Gui--OverlayTabWidget[transparent="true"] QTreeView { - color: #ffffff; - } */ - /* QTreeView::item { - /* border-radius: 3px; */ - /* margin: 1.5px 0px; */ - /* background-color: rgba(255, 255, 255, 200); */ - /* } */ - - QFrame { - border: none; - } - - Gui--OverlayToolButton[objectName="OBTN Transparent"] { - image: url(qss:overlay/transparent_dark.svg); - } - - Gui--OverlayToolButton[objectName="OBTN Transparent"]:hover { - image: url(qss:overlay/transparent_light.svg); - } - - Gui--OverlayToolButton[objectName="OBTN Overlay"] { - image: url(qss:overlay/overlay_dark.svg); - } - - Gui--OverlayToolButton[objectName="OBTN Overlay"]:hover { - image: url(qss:overlay/overlay_light.svg); - } - - Gui--OverlayToolButton[objectName="OBTN AutoMode"] { - image: url(qss:overlay/mode_dark.svg); - } - - Gui--OverlayToolButton[objectName="OBTN AutoMode"]:hover { - image: url(qss:overlay/mode_light.svg); - } - - Gui--OverlaySplitterHandle Gui--OverlayToolButton, - Gui--OverlayToolButton[objectName="OBTN Float"] { - image: url(qss:overlay/float_dark.svg); - } - - Gui--OverlaySplitterHandle Gui--OverlayToolButton:hover, - Gui--OverlayToolButton[objectName="OBTN Float"]:hover { - image: url(qss:overlay/float_light.svg); - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::branch:has-siblings:!adjoins-item { - border-image: url(qss:images_dark-light/branch_vline_dark.svg) 0; - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::branch:has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_more_dark.svg) 0; - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::branch:!has-children:!has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_end_dark.svg) 0; - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::branch:closed:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_closed_dark.svg) 0; - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::branch:has-children:!has-siblings:closed { - border-image: url(qss:images_dark-light/branch_end_closed_dark.svg) 0; - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::branch:open:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_open_dark.svg) 0; - } - - Gui--OverlayTabWidget[transparent="true"] QTreeView::branch:open:has-children:!has-siblings { - border-image: url(qss:images_dark-light/branch_end_open_dark.svg) 0; - } - - - /* Normal stuff */ - - - QTreeView::branch:has-siblings:!adjoins-item { - border-image: url(qss:images_dark-light/branch_vline_dark.svg) 0; - } - - QTreeView::branch:has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_more_dark.svg) 0; - } - - QTreeView::branch:!has-children:!has-siblings:adjoins-item { - border-image: url(qss:images_dark-light/branch_end_dark.svg) 0; - } - - QTreeView::branch:closed:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_closed_dark.svg) 0; - } - - QTreeView::branch:has-children:!has-siblings:closed { - border-image: url(qss:images_dark-light/branch_end_closed_dark.svg) 0; - } - - QTreeView::branch:open:has-children:has-siblings { - border-image: url(qss:images_dark-light/branch_more_open_dark.svg) 0; - } - - QTreeView::branch:open:has-children:!has-siblings { - border-image: url(qss:images_dark-light/branch_end_open_dark.svg) 0; - } \ No newline at end of file diff --git a/src/Gui/Stylesheets/overlay/Light Theme + Dark Background.qss b/src/Gui/Stylesheets/overlay/Light Theme + Dark Background.qss new file mode 100644 index 0000000000..5dd957e23d --- /dev/null +++ b/src/Gui/Stylesheets/overlay/Light Theme + Dark Background.qss @@ -0,0 +1,205 @@ +QTabWidget::pane{ + background-color: rgba(0, 0, 0, 0.01); + border: transparent; +} +QAbstractItemView { + alternate-background-color: rgba(255, 255, 255, 0.119); + color: #000000; + border: transparent; + padding-right: 6px; +} +Gui--OverlayTabWidget[transparent="true"] QWidget { + selection-background-color: transparent; +} + +/* Overwrites Properties panel to use white text. */ +QTreeView { + background-color: #5f5f5f; + border: 0px solid #696968; + /* alternate-background-color: rgba(255, 0, 0, 0.611); */ + color: #fdfdfd; + gridline-color: #696968; + border-radius: 0px; +} + +Gui--OverlayTabWidget[transparent="false"] QTreeView::item { + color: #ffffff; +} + +Gui--OverlayTabWidget[transparent="true"] QTreeView::item { + color: #ffffff; +} + + Gui--OverlayTabWidget[transparent="true"] QTreeView::item:selected { + color: #000000; + background-color: #c7def5; +} + +Gui--OverlayTabWidget[transparent="true"] QTreeView::item:focus { + color: #000000; + background-color: #c7def5; +} + + Gui--OverlayTabWidget[transparent="true"] QTreeView::item:selected:focus { + color: #000000; + background-color: #c7def5; +} + + +Gui--OverlayTabWidget[transparent="true"] QTreeView::item:hover { + color: #000000; + background-color: #c7def5; +} + + Gui--OverlayTabWidget[transparent="true"] QTreeView::item:active { + color: #ffffff; +} + +Gui--OverlayTabWidget[transparent="true"] QTreeView::item:selected:active { + color: #000000; + background-color: #c7def5; +} + + +Gui--OverlayTabWidget[transparent="true"] QTreeView::item:disabled { + color: #9a9a9a; +} + +Gui--OverlayTabWidget { + qproperty-effectColor: rgba(25, 25, 25, 220); + qproperty-effectBlurRadius: 5; + qproperty-effectOffsetX: 0; + qproperty-effectOffsetY: 0; + qproperty-effectWidth: 1; + qproperty-effectHeight: 1; + qproperty-enableEffect: 1; +} + + Gui--OverlayTabWidget#OverlayBottom { + qproperty-effectColor: rgba(225, 225, 225, 220); + qproperty-effectBlurRadius: 5; + qproperty-effectOffsetX: 0.0; + qproperty-effectOffsetY: 0.0; + qproperty-effectWidth: 1; + qproperty-effectHeight: 1; + qproperty-enableEffect: 1; +} + +Gui--OverlayTabWidget::pane { + background-color: transparent; + border: transparent; +} + +QSint--ActionGroup QFrame[class="content"] { + border-bottom-left-radius: 6px; + border-bottom-right-radius: 6px; + } + +Gui--OverlayTabWidget::tab-bar:top, +Gui--OverlayTabWidget::tab-bar:bottom { + left: 10px; + alignment: left; +} + +Gui--OverlayTabWidget::tab-bar:left, +Gui--OverlayTabWidget::tab-bar:right { + top: 10px; + alignment: top; +} + +Gui--OverlayProxyWidget { + qproperty-hintColor: rgba(250, 250, 250, 0.6); +} + +Gui--OverlayToolButton { + background: transparent; + padding: 0px; + border: none; +} + +Gui--OverlayToolButton::hover { + background: rgba(250,250,250,200); +} + +Gui--OverlayToolButton::focus { + background: rgba(250,250,250,255); +} + +Gui--OverlayToolButton::pressed, +Gui--OverlayToolButton::checked { + background: rgba(150,150,50,80); + border: 1px inset #f5f5f5; +} + +Gui--OverlayToolButton::checked:hover { + background: rgba(150,150,150,200); + border: 1px inset #f5f5f5; +} + +QFrame { + border: none; +} + + +Gui--OverlayToolButton[objectName="OBTN Transparent"] { + image: url(qss:overlay/icons/transparent_dark.svg); +} + +Gui--OverlayToolButton[objectName="OBTN Transparent"]:hover { + image: url(qss:overlay/icons/transparent_light.svg); +} + +Gui--OverlayToolButton[objectName="OBTN Overlay"] { + image: url(qss:overlay/icons/overlay_dark.svg); +} + +Gui--OverlayToolButton[objectName="OBTN Overlay"]:hover { + image: url(qss:overlay/icons/overlay_light.svg); +} + +Gui--OverlayToolButton[objectName="OBTN AutoMode"] { + image: url(qss:overlay/icons/mode_dark.svg); +} + +Gui--OverlayToolButton[objectName="OBTN AutoMode"]:hover { + image: url(qss:overlay/icons/mode_light.svg); +} + +Gui--OverlaySplitterHandle Gui--OverlayToolButton, +Gui--OverlayToolButton[objectName="OBTN Float"] { + image: url(qss:overlay/icons/float_dark.svg); +} + +Gui--OverlaySplitterHandle Gui--OverlayToolButton:hover, +Gui--OverlayToolButton[objectName="OBTN Float"]:hover { + image: url(qss:overlay/icons/float_light.svg); +} + + QTreeView::branch:closed:has-children:has-siblings { + margin-top: 5px; + margin-bottom: 5px; + border-image: none; + image: url(qss:images_classic/Arrow-right-white.png) 0; +} + + QTreeView::branch:has-children:!has-siblings:closed { + margin-top: 5px; + margin-bottom: 5px; + border-image: none; + image: url(qss:images_classic/Arrow-right-white.png) 0; +} + + QTreeView::branch:open:has-children:has-siblings { + margin-left: 6px; + margin-right: 6px; + border-image: none; + image: url(qss:images_classic/Arrow-down-white.png) 0; +} + + QTreeView::branch:open:has-children:!has-siblings { + margin-left: 6px; + margin-right: 6px; + border-image: none; + image: url(qss:images_classic/Arrow-down-white.png) 0; +} + diff --git a/src/Gui/Stylesheets/overlay/Light Theme + Light Background.qss b/src/Gui/Stylesheets/overlay/Light Theme + Light Background.qss new file mode 100644 index 0000000000..fc77aac61f --- /dev/null +++ b/src/Gui/Stylesheets/overlay/Light Theme + Light Background.qss @@ -0,0 +1,151 @@ +QTabWidget::pane{ + background-color: rgba(255, 255, 255, 0.01); + border: transparent; +} +QAbstractItemView { + alternate-background-color: rgba(255, 255, 255, 0.13); + color: #000000; + border: transparent; + padding-right: 5px; +} + +Gui--OverlayTabWidget[transparent="true"] QWidget { + selection-background-color: transparent; +} + +Gui--OverlayTabWidget[transparent="false"] QTreeView::item { + color: #000000; +} + +Gui--OverlayTabWidget[transparent="true"] QTreeView::item { + color: #000000; +} + + Gui--OverlayTabWidget[transparent="true"] QTreeView::item:selected { + color: #000000; + background-color: #c7def5; +} + +Gui--OverlayTabWidget[transparent="true"] QTreeView::item:focus { + color: #000000; + background-color: #c7def5; +} + + Gui--OverlayTabWidget[transparent="true"] QTreeView::item:selected:focus { + color: #000000; + background-color: #c7def5; +} + +/* The OverlayTabWidget is named as OverlayLeft, OverlayRight, OverlayTop, OverlayBottom. +To customize for each overlay docking site, use the following selector + +Gui--OverlayTabWidget#OverlayLeft {} +*/ + +Gui--OverlayTabWidget { + qproperty-effectColor: rgba(225, 225, 225, 220); + qproperty-effectBlurRadius: 5; + qproperty-effectOffsetX: 0; + qproperty-effectOffsetY: 0; + qproperty-effectWidth: 1; + qproperty-effectHeight: 1; + qproperty-enableEffect: 1; +} + Gui--OverlayTabWidget#OverlayBottom { + qproperty-effectColor: rgba(225, 225, 225, 220); + qproperty-effectBlurRadius: 5; + qproperty-effectOffsetX: 0.0; + qproperty-effectOffsetY: 0.0; + qproperty-effectWidth: 1; + qproperty-effectHeight: 1; + qproperty-enableEffect: 1; +} + +Gui--OverlayTabWidget::pane { + background-color: transparent; + border: transparent; +} + +QSint--ActionGroup QFrame[class="content"] { + border-bottom-left-radius: 5px; + border-bottom-right-radius: 5px; + } + +Gui--OverlayTabWidget::tab-bar:top, +Gui--OverlayTabWidget::tab-bar:bottom { + left: 10px; + alignment: left; +} + +Gui--OverlayTabWidget::tab-bar:left, +Gui--OverlayTabWidget::tab-bar:right { + top: 10px; + alignment: top; +} + +Gui--OverlayProxyWidget { + qproperty-hintColor: rgba(250, 250, 250, 0.6); +} + +Gui--OverlayToolButton { + background: transparent; + padding: 0px; + border: none; +} + +Gui--OverlayToolButton::hover { + background: rgba(250,250,250,200); +} + +Gui--OverlayToolButton::focus { + background: rgba(250,250,250,255); +} + +Gui--OverlayToolButton::pressed, +Gui--OverlayToolButton::checked { + background: rgba(150,150,50,80); + border: 1px inset #f5f5f5; +} + +Gui--OverlayToolButton::checked:hover { + background: rgba(150,150,150,200); + border: 1px inset #f5f5f5; +} + +QFrame { + border: none; +} + +Gui--OverlayToolButton[objectName="OBTN Transparent"] { + image: url(qss:overlay/icons/transparent_dark.svg); +} + +Gui--OverlayToolButton[objectName="OBTN Transparent"]:hover { + image: url(qss:overlay/icons/transparent_light.svg); +} + +Gui--OverlayToolButton[objectName="OBTN Overlay"] { + image: url(qss:overlay/icons/overlay_dark.svg); +} + +Gui--OverlayToolButton[objectName="OBTN Overlay"]:hover { + image: url(qss:overlay/icons/overlay_light.svg); +} + +Gui--OverlayToolButton[objectName="OBTN AutoMode"] { + image: url(qss:overlay/icons/mode_dark.svg); +} + +Gui--OverlayToolButton[objectName="OBTN AutoMode"]:hover { + image: url(qss:overlay/icons/mode_light.svg); +} + +Gui--OverlaySplitterHandle Gui--OverlayToolButton, +Gui--OverlayToolButton[objectName="OBTN Float"] { + image: url(qss:overlay/icons/float_dark.svg); +} + +Gui--OverlaySplitterHandle Gui--OverlayToolButton:hover, +Gui--OverlayToolButton[objectName="OBTN Float"]:hover { + image: url(qss:overlay/icons/float_light.svg); +} diff --git a/src/Gui/Stylesheets/overlay/Light-Modern_overlay.qss b/src/Gui/Stylesheets/overlay/Light-Modern_overlay.qss deleted file mode 100644 index db9f6ceb8b..0000000000 --- a/src/Gui/Stylesheets/overlay/Light-Modern_overlay.qss +++ /dev/null @@ -1,107 +0,0 @@ -/* The OverlayTabWidget is named as OverlayLeft, OverlayRight, OverlayTop, OverlayBottom. -To customize for each overlay docking site, use the following selector - -Gui--OverlayTabWidget#OverlayLeft {} -*/ -/* -* { - color: #f0f0f0; - alternate-background-color: rgba(255, 179, 0, 0.607); - background-color: rgba(0, 255, 132, 0.607); -}*/ - -Gui--OverlayTabWidget { - qproperty-effectColor: rgba(255, 255, 255, 0.394); - qproperty-effectBlurRadius: 1.0; - qproperty-effectOffsetX: 0.0; - qproperty-effectOffsetY: 0.0; - qproperty-effectWidth: 2; - qproperty-effectHeight: 2; - qproperty-enableEffect: 1; -} - -Gui--OverlayTabWidget::tab-bar:top, -Gui--OverlayTabWidget::tab-bar:bottom { - left: 10px; - alignment: left; -} - -Gui--OverlayTabWidget::tab-bar:left, -Gui--OverlayTabWidget::tab-bar:right { - top: 10px; - alignment: top; -} - -Gui--OverlayTabWidget::pane { - background-color: transparent; -} - -Gui--OverlayProxyWidget { - qproperty-hintColor: rgba(255, 255, 255, 0.6); -} - -Gui--OverlayToolButton { - background: #d4d4d4; - padding: -2px; - border: 0px outset rgb(255, 255, 255); - border-radius: 0px; -} - -Gui--OverlayToolButton:hover { - background: #ffffff; - padding: 0px; -} - -Gui--OverlayToolButton:focus { - background: #cfcfcf; - padding: 0px; -} - -Gui--OverlayToolButton::pressed { - background: rgb(159, 159, 159); - border: 2px inset rgb(196, 196, 196); - padding: 0px; -} - -Gui--OverlayToolButton:checked { - background: #bebebe; - border: 2px inset #bebebe; - padding: 0px; - border-radius: 2px; -} - -Gui--OverlayToolButton:checked:hover { - background: rgba(255, 255, 255, 0.8); - border: 2px inset rgb(255, 255, 255); - -} - -/* Use the following selector to customize title bar for each side */ -/* -Gui--OverlayTabWidget#OverlayBottom Gui--OverlayTitleBar, -Gui--OverlayTabWidget#OverlayBottom QSplitter Gui--OverlaySplitterHandle { - background-color: qlineargradient( - spread:pad, x1:0, y1:1, x2:0, y2:0, - stop:0 #80202020, stop:1 #00202020); -} -*/ - -Gui--OverlaySplitterHandle { - background-color: #d4d4d4; -} - -Gui--OverlayTitleBar { - background-color: #d4d4d4; -} - -QScrollArea#ClippingScrollArea, -QWidget#ClippingScrollAreaContents { - background-color: #ffdede; -} -QSint--ActionGroup QFrame[class="content"] { - background-color: #f6f6f6; /* Task Panel background color */ -} - -QAbstractItemView { - alternate-background-color: #ffffff; -} diff --git a/src/Gui/Stylesheets/overlay/Light-Outline.qss b/src/Gui/Stylesheets/overlay/Light-Outline.qss deleted file mode 100644 index b3c76bbfd3..0000000000 --- a/src/Gui/Stylesheets/overlay/Light-Outline.qss +++ /dev/null @@ -1,183 +0,0 @@ -* { - color: #202020; - alternate-background-color: rgba(250,250,250,120); -} - -QComboBox, -QComboBox:editable, -QComboBox:!editable, -QLineEdit, -QTextEdit, -QPlainTextEdit, -QAbstractSpinBox, -QDateEdit, -QDateTimeEdit, -Gui--PropertyEditor--PropertyEditor QLabel { - background-color: #e0e0e0; -} - -QComboBox:disabled, -QAbstractSpinBox:disabled, -QLineEdit:disabled, -QTextEdit:disabled, -QPlainTextEdit:disabled, -QTimeEdit:disabled, -QDateEdit:disabled, -QDateTimeEdit:disabled { - color: gray; -} - -QTabWidget::pane { - background-color: transparent; - border: transparent; -} - -QTabBar { - border : none; -} - -QTabBar::tab { - color: #202020; - background-color: rgba(100,100,100,50); - padding: 5px; -} - -QTabBar::tab:selected { - background-color: rgba(250,250,250,80); -} - -QTabBar::tab:hover { - background-color: rgba(250,250,250,200); -} - -/* The OverlayTabWidget is named as OverlayLeft, OverlayRight, OverlayTop, OverlayBottom. -To customize for each overlay docking site, use the following selector - -Gui--OverlayTabWidget#OverlayLeft {} -*/ - -Gui--OverlayTabWidget { - qproperty-effectColor: rgba(200, 200, 200, 100); - qproperty-effectBlurRadius: 2.0; - qproperty-effectOffsetX: 0.0; - qproperty-effectOffsetY: 0.0; - qproperty-effectWidth: 1; - qproperty-effectHeight: 1; - qproperty-enableEffect: 1; -} - -Gui--OverlayTabWidget::pane { - background-color: transparent -} - -Gui--OverlayTabWidget::tab-bar:top, -Gui--OverlayTabWidget::tab-bar:bottom { - left: 10px; - alignment: left; -} - -Gui--OverlayTabWidget::tab-bar:left, -Gui--OverlayTabWidget::tab-bar:right { - top: 10px; - alignment: top; -} - -QHeaderView { background:transparent } -QHeaderView::section { - color: rgb(80, 80, 80); - background-color: rgba(128,128,128,50); - border: 1px solid rgb(100,100,100); - padding: 2px; -} - -QToolTip { - background-color: rgba(250,250,250,180); - border: 1px solid rgb(80,80,80); - border-radius:2px; -} - -Gui--OverlayProxyWidget { - qproperty-hintColor: rgba(250, 250, 250, 0.6); -} - -Gui--OverlayToolButton { - background: transparent; - padding: 0px; - border: none; -} - -Gui--OverlayToolButton::hover { - background: rgba(250,250,250,200); -} - -Gui--OverlayToolButton::focus { - background: rgba(250,250,250,255); -} - -Gui--OverlayToolButton::pressed, -Gui--OverlayToolButton::checked { - background: rgba(150,150,150,80); - border: 1px inset #f5f5f5; -} - -Gui--OverlayToolButton::checked:hover { - background: rgba(150,150,150,200); - border: 1px inset #f5f5f5; -} - -QTreeView, -QListView, -QTableView { - background: rgb(250,250,250); - selection-background-color: rgba(94, 144, 250, 0.7); - border: transparent; -} - -QListView::item:selected, -QTreeView::item:selected { - background-color: rgba(94, 144, 250, 0.7); -} - -/* Property Editor QTreeView (FreeCAD custom widget) */ -Gui--PropertyEditor--PropertyEditor { - gridline-color: #20d2d2de; - qproperty-groupTextColor: rgb(100, 100, 100); - qproperty-groupBackground: rgba(180, 180, 180, 0.7); - qproperty-itemBackground: rgba(0, 0, 0, 0.01); -} - -Gui--CallTipsList::item { - background-color: rgba(200, 200, 200, 200); -} - -Gui--CallTipsList::item::selected { - background-color: rgba(94, 144, 250); -} - -/* Use the following selector to customize title bar for each side */ -/* -Gui--OverlayTabWidget#OverlayBottom Gui--OverlayTitleBar, -Gui--OverlayTabWidget#OverlayBottom QSplitter Gui--OverlaySplitterHandle { - background-color: qlineargradient( - spread:pad, x1:0, y1:1, x2:0, y2:0, - stop:0 #80202020, stop:1 #00202020); -} -*/ - -Gui--OverlayTitleBar, -Gui--OverlaySplitterHandle { - background-color: rgba(200, 200, 200, 150) -} - -QScrollArea#ClippingScrollArea, -QWidget#ClippingScrollAreaContents { - background-color: #80e6e6e6; -} - -QSint--ActionGroup QFrame[class="content"] { - background-color: #a0e6e6e6; /* Task Panel background color */ -} - -QSint--ActionGroup QFrame[class="content"] > QWidget { - background-color: #80e6e6e6; /* Task Panel background color */ -} diff --git a/src/Gui/Stylesheets/overlay/Light-off.qss b/src/Gui/Stylesheets/overlay/Light-off.qss deleted file mode 100644 index 0c5ec79e65..0000000000 --- a/src/Gui/Stylesheets/overlay/Light-off.qss +++ /dev/null @@ -1,33 +0,0 @@ -Gui--OverlayToolButton { - background: transparent; - padding: 0px; - border: none; -} - -Gui--OverlayToolButton::hover { - background: rgba(150,150,150,200); -} - -Gui--OverlayToolButton::focus { - background: rgba(150,150,150,155); -} - -Gui--OverlayToolButton::pressed { - background: rgba(50,50,50,80); - border: 1px inset palette(dark); -} - -Gui--OverlayToolButton::checked { - background: rgba(50,50,50,80); - border: 1px inset palette(dark); -} - -Gui--OverlayToolButton::checked:hover { - background: rgba(150,150,150,200); - border: 1px inset palette(dark); -} - -Gui--OverlayTitleBar, -Gui--OverlaySplitterHandle { - background-color: rgba(200, 200, 200, 150) -} diff --git a/src/Gui/Stylesheets/overlay/Light.qss b/src/Gui/Stylesheets/overlay/Light.qss deleted file mode 100644 index 6ee020ac01..0000000000 --- a/src/Gui/Stylesheets/overlay/Light.qss +++ /dev/null @@ -1,155 +0,0 @@ -* { - color: #202020; - alternate-background-color: rgba(250,250,250,120); -} - -QComboBox, -QComboBox:editable, -QComboBox:!editable, -QLineEdit, -QTextEdit, -QPlainTextEdit, -QAbstractSpinBox, -QDateEdit, -QDateTimeEdit, -Gui--PropertyEditor--PropertyEditor QLabel { - background-color: #e0e0e0; -} - -QComboBox:disabled, -QAbstractSpinBox:disabled, -QLineEdit:disabled, -QTextEdit:disabled, -QPlainTextEdit:disabled, -QTimeEdit:disabled, -QDateEdit:disabled, -QDateTimeEdit:disabled { - color: gray; -} - -QTabWidget::pane { - background-color: transparent; - border: transparent; -} - -Gui--OverlayTabWidget { - qproperty-enableEffect: 0; -} - -Gui--OverlayTabWidget::pane { - background-color: rgba(255,255,255,80) -} - -QTabBar { - border : none; -} - -QTabBar::tab { - color: #202020; - background-color: rgba(100,100,100,50); - padding: 5px; -} - -QTabBar::tab:selected { - background-color: rgba(250,250,250,80); -} - -QTabBar::tab:hover { - background-color: rgba(250,250,250,200); -} - -QHeaderView { background:transparent } -QHeaderView::section { - color: rgb(80, 80, 80); - background-color: rgba(128,128,128,50); - border: 1px solid darkgray; - padding: 2px; -} - -QToolTip { - background-color: rgba(250,250,250,180); - border: 1px solid rgb(80,80,80); - border-radius:2px; -} - -Gui--OverlayToolButton { - background: transparent; - padding: 0px; - border: none; -} - -Gui--OverlayToolButton::hover { - background: rgba(250,250,250,200); -} - -Gui--OverlayToolButton::focus { - background: rgba(250,250,250,255); -} - -Gui--OverlayToolButton::pressed, -Gui--OverlayToolButton::checked { - background: rgba(150,150,150,80); - border: 1px inset #f5f5f5; -} - -Gui--OverlayToolButton::checked:hover { - background: rgba(150,150,150,200); - border: 1px inset #f5f5f5; -} - -QTreeView, -QListView, -QTableView { - background: rgb(250,250,250); - selection-background-color: rgba(94, 144, 250, 0.7); - border: transparent; -} - -QListView::item:selected, -QTreeView::item:selected { - background-color: rgba(94, 144, 250, 0.7); -} - -/* Property Editor QTreeView (FreeCAD custom widget) */ -Gui--PropertyEditor--PropertyEditor { - /* gridline-color: #6e6e6e; */ - qproperty-groupTextColor: rgb(100, 100, 100); - qproperty-groupBackground: rgba(180, 180, 180, 0.7); - qproperty-itemBackground: rgba(0, 0, 0, 0.01); -} - -Gui--CallTipsList::item { - background-color: rgba(200, 200, 200, 200); -} - -Gui--CallTipsList::item::selected { - background-color: rgba(94, 144, 250); -} - -/* Use the following selector to customize title bar for each side */ -/* -Gui--OverlayTabWidget#OverlayBottom Gui--OverlayTitleBar, -Gui--OverlayTabWidget#OverlayBottom QSplitter Gui--OverlaySplitterHandle { - background-color: qlineargradient( - spread:pad, x1:0, y1:1, x2:0, y2:0, - stop:0 #80202020, stop:1 #00202020); -} -*/ - -Gui--OverlayTitleBar, -Gui--OverlaySplitterHandle { - background-color: rgba(200, 200, 200, 150) -} - -QScrollArea#ClippingScrollArea, -QWidget#ClippingScrollAreaContents { - background-color: #80e6e6e6 -} - -QSint--ActionGroup QFrame[class="content"] { - background-color: #80e6e6e6; /* Task Panel background color */ -} - -QSint--ActionGroup QFrame[class="content"] > QWidget { - background-color: #80e6e6e6; /* Task Panel background color */ -} diff --git a/src/Gui/Stylesheets/overlay/Light_overlay.qss b/src/Gui/Stylesheets/overlay/Light_overlay.qss deleted file mode 100644 index 1a5ef633c5..0000000000 --- a/src/Gui/Stylesheets/overlay/Light_overlay.qss +++ /dev/null @@ -1,107 +0,0 @@ -/* The OverlayTabWidget is named as OverlayLeft, OverlayRight, OverlayTop, OverlayBottom. -To customize for each overlay docking site, use the following selector - -Gui--OverlayTabWidget#OverlayLeft {} -*/ -/* -* { - color: #f0f0f0; - alternate-background-color: rgba(255, 179, 0, 0.607); - background-color: rgba(0, 255, 132, 0.607); -}*/ - -Gui--OverlayTabWidget { - qproperty-effectColor: rgba(255, 255, 255, 0.394); - qproperty-effectBlurRadius: 1.0; - qproperty-effectOffsetX: 0.0; - qproperty-effectOffsetY: 0.0; - qproperty-effectWidth: 2; - qproperty-effectHeight: 2; - qproperty-enableEffect: 1; -} - -Gui--OverlayTabWidget::tab-bar:top, -Gui--OverlayTabWidget::tab-bar:bottom { - left: 10px; - alignment: left; -} - -Gui--OverlayTabWidget::tab-bar:left, -Gui--OverlayTabWidget::tab-bar:right { - top: 10px; - alignment: top; -} - -Gui--OverlayTabWidget::pane { - background-color: transparent; -} - -Gui--OverlayProxyWidget { - qproperty-hintColor: rgba(255, 255, 255, 0.6); -} - -Gui--OverlayToolButton { - background: #f6f6f6; - padding: -2px; - border: 0px outset rgb(255, 255, 255); - border-radius: 0px; -} - -Gui--OverlayToolButton:hover { - background: #ffffff; - padding: 0px; -} - -Gui--OverlayToolButton:focus { - background: #cfcfcf; - padding: 0px; -} - -Gui--OverlayToolButton::pressed { - background: rgb(159, 159, 159); - border: 2px inset rgb(196, 196, 196); - padding: 0px; -} - -Gui--OverlayToolButton:checked { - background: #bebebe; - border: 2px inset #bebebe; - padding: 0px; - border-radius: 2px; -} - -Gui--OverlayToolButton:checked:hover { - background: rgba(255, 255, 255, 0.8); - border: 2px inset rgb(255, 255, 255); - -} - -/* Use the following selector to customize title bar for each side */ -/* -Gui--OverlayTabWidget#OverlayBottom Gui--OverlayTitleBar, -Gui--OverlayTabWidget#OverlayBottom QSplitter Gui--OverlaySplitterHandle { - background-color: qlineargradient( - spread:pad, x1:0, y1:1, x2:0, y2:0, - stop:0 #80202020, stop:1 #00202020); -} -*/ - -Gui--OverlaySplitterHandle { - background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #E2E2E2, stop:1 #EDEDED); -} - -Gui--OverlayTitleBar { - background-color: qlineargradient(x1:0, y1:0.3, x2:0, y2:1, stop:0 #E2E2E2, stop:1 #EDEDED); -} - -QScrollArea#ClippingScrollArea, -QWidget#ClippingScrollAreaContents { - background-color: #ffdede; -} -QSint--ActionGroup QFrame[class="content"] { - background-color: #f6f6f6; /* Task Panel background color */ -} - -QAbstractItemView { - alternate-background-color: #ffffff; -} diff --git a/src/Gui/Stylesheets/overlay/autohide.svg b/src/Gui/Stylesheets/overlay/icons/autohide.svg similarity index 100% rename from src/Gui/Stylesheets/overlay/autohide.svg rename to src/Gui/Stylesheets/overlay/icons/autohide.svg diff --git a/src/Gui/Stylesheets/overlay/close.svg b/src/Gui/Stylesheets/overlay/icons/close.svg similarity index 100% rename from src/Gui/Stylesheets/overlay/close.svg rename to src/Gui/Stylesheets/overlay/icons/close.svg diff --git a/src/Gui/Stylesheets/overlay/close_light.svg b/src/Gui/Stylesheets/overlay/icons/close_light.svg similarity index 100% rename from src/Gui/Stylesheets/overlay/close_light.svg rename to src/Gui/Stylesheets/overlay/icons/close_light.svg diff --git a/src/Gui/Stylesheets/overlay/close_lighter.svg b/src/Gui/Stylesheets/overlay/icons/close_lighter.svg similarity index 100% rename from src/Gui/Stylesheets/overlay/close_lighter.svg rename to src/Gui/Stylesheets/overlay/icons/close_lighter.svg diff --git a/src/Gui/Stylesheets/overlay/close_red.svg b/src/Gui/Stylesheets/overlay/icons/close_red.svg similarity index 100% rename from src/Gui/Stylesheets/overlay/close_red.svg rename to src/Gui/Stylesheets/overlay/icons/close_red.svg diff --git a/src/Gui/Stylesheets/overlay/edithide.svg b/src/Gui/Stylesheets/overlay/icons/edithide.svg similarity index 100% rename from src/Gui/Stylesheets/overlay/edithide.svg rename to src/Gui/Stylesheets/overlay/icons/edithide.svg diff --git a/src/Gui/Stylesheets/overlay/editshow.svg b/src/Gui/Stylesheets/overlay/icons/editshow.svg similarity index 100% rename from src/Gui/Stylesheets/overlay/editshow.svg rename to src/Gui/Stylesheets/overlay/icons/editshow.svg diff --git a/src/Gui/Stylesheets/overlay/float.svg b/src/Gui/Stylesheets/overlay/icons/float.svg similarity index 100% rename from src/Gui/Stylesheets/overlay/float.svg rename to src/Gui/Stylesheets/overlay/icons/float.svg diff --git a/src/Gui/Stylesheets/overlay/float_light.svg b/src/Gui/Stylesheets/overlay/icons/float_light.svg similarity index 100% rename from src/Gui/Stylesheets/overlay/float_light.svg rename to src/Gui/Stylesheets/overlay/icons/float_light.svg diff --git a/src/Gui/Stylesheets/overlay/float_lighter.svg b/src/Gui/Stylesheets/overlay/icons/float_lighter.svg similarity index 100% rename from src/Gui/Stylesheets/overlay/float_lighter.svg rename to src/Gui/Stylesheets/overlay/icons/float_lighter.svg diff --git a/src/Gui/Stylesheets/overlay/mode.svg b/src/Gui/Stylesheets/overlay/icons/mode.svg similarity index 100% rename from src/Gui/Stylesheets/overlay/mode.svg rename to src/Gui/Stylesheets/overlay/icons/mode.svg diff --git a/src/Gui/Stylesheets/overlay/mode_light.svg b/src/Gui/Stylesheets/overlay/icons/mode_light.svg similarity index 100% rename from src/Gui/Stylesheets/overlay/mode_light.svg rename to src/Gui/Stylesheets/overlay/icons/mode_light.svg diff --git a/src/Gui/Stylesheets/overlay/mode_lighter.svg b/src/Gui/Stylesheets/overlay/icons/mode_lighter.svg similarity index 100% rename from src/Gui/Stylesheets/overlay/mode_lighter.svg rename to src/Gui/Stylesheets/overlay/icons/mode_lighter.svg diff --git a/src/Gui/Stylesheets/overlay/overlay.svg b/src/Gui/Stylesheets/overlay/icons/overlay.svg similarity index 100% rename from src/Gui/Stylesheets/overlay/overlay.svg rename to src/Gui/Stylesheets/overlay/icons/overlay.svg diff --git a/src/Gui/Stylesheets/overlay/overlay_light.svg b/src/Gui/Stylesheets/overlay/icons/overlay_light.svg similarity index 100% rename from src/Gui/Stylesheets/overlay/overlay_light.svg rename to src/Gui/Stylesheets/overlay/icons/overlay_light.svg diff --git a/src/Gui/Stylesheets/overlay/overlay_lighter.svg b/src/Gui/Stylesheets/overlay/icons/overlay_lighter.svg similarity index 100% rename from src/Gui/Stylesheets/overlay/overlay_lighter.svg rename to src/Gui/Stylesheets/overlay/icons/overlay_lighter.svg diff --git a/src/Gui/Stylesheets/overlay/taskshow.svg b/src/Gui/Stylesheets/overlay/icons/taskshow.svg similarity index 100% rename from src/Gui/Stylesheets/overlay/taskshow.svg rename to src/Gui/Stylesheets/overlay/icons/taskshow.svg diff --git a/src/Gui/Stylesheets/overlay/taskshow_light.svg b/src/Gui/Stylesheets/overlay/icons/taskshow_light.svg similarity index 100% rename from src/Gui/Stylesheets/overlay/taskshow_light.svg rename to src/Gui/Stylesheets/overlay/icons/taskshow_light.svg diff --git a/src/Gui/Stylesheets/overlay/transparent.svg b/src/Gui/Stylesheets/overlay/icons/transparent.svg similarity index 100% rename from src/Gui/Stylesheets/overlay/transparent.svg rename to src/Gui/Stylesheets/overlay/icons/transparent.svg diff --git a/src/Gui/Stylesheets/overlay/transparent_light.svg b/src/Gui/Stylesheets/overlay/icons/transparent_light.svg similarity index 100% rename from src/Gui/Stylesheets/overlay/transparent_light.svg rename to src/Gui/Stylesheets/overlay/icons/transparent_light.svg diff --git a/src/Gui/Stylesheets/overlay/transparent_lighter.svg b/src/Gui/Stylesheets/overlay/icons/transparent_lighter.svg similarity index 100% rename from src/Gui/Stylesheets/overlay/transparent_lighter.svg rename to src/Gui/Stylesheets/overlay/icons/transparent_lighter.svg diff --git a/src/Gui/TaskView/TaskDialogPython.cpp b/src/Gui/TaskView/TaskDialogPython.cpp index dae98b5608..0ced4166b5 100644 --- a/src/Gui/TaskView/TaskDialogPython.cpp +++ b/src/Gui/TaskView/TaskDialogPython.cpp @@ -641,8 +641,9 @@ void TaskDialogPython::clicked(int i) try { if (dlg.hasAttr(std::string("clicked"))) { Py::Callable method(dlg.getAttr(std::string("clicked"))); + PythonWrapper wrap; Py::Tuple args(1); - args.setItem(0, Py::Int(i)); + args.setItem(0, wrap.toStandardButton(i)); method.apply(args); } } diff --git a/src/Gui/ToolBarManager.cpp b/src/Gui/ToolBarManager.cpp index 04876e39b3..b52197c307 100644 --- a/src/Gui/ToolBarManager.cpp +++ b/src/Gui/ToolBarManager.cpp @@ -164,165 +164,111 @@ QList ToolBarItem::getItems() const } // ----------------------------------------------------------- - -namespace Gui { - -class ToolBarAreaWidget : public QWidget +ToolBarAreaWidget::ToolBarAreaWidget(QWidget* parent, + ToolBarArea area, + const ParameterGrp::handle& hParam, + boost::signals2::scoped_connection& conn, + QTimer* timer) + : QWidget(parent) + , _sizingTimer(timer) + , _hParam(hParam) + , _conn(conn) + , _area(area) { - using inherited = QWidget; + _layout = new QHBoxLayout(this); + _layout->setContentsMargins(QMargins()); +} -public: - ToolBarAreaWidget(QWidget *parent, - ToolBarArea area, - const ParameterGrp::handle& hParam, - boost::signals2::scoped_connection &conn, - QTimer *timer = nullptr) - : QWidget(parent) - , _sizingTimer(timer) - , _hParam(hParam) - , _conn(conn) - , _area(area) - { - _layout = new QHBoxLayout(this); - _layout->setContentsMargins(QMargins()); +void ToolBarAreaWidget::addWidget(QWidget* widget) +{ + // if widget already exist don't do anything + if (_layout->indexOf(widget) >= 0) { + return; } - void addWidget(QWidget *widget) - { - // if widget already exist don't do anything - if (_layout->indexOf(widget) >= 0) { - return; - } + _layout->addWidget(widget); + adjustParent(); - _layout->addWidget(widget); - adjustParent(); + QString name = widget->objectName(); - QString name = widget->objectName(); - - if (!name.isEmpty()) { - Base::ConnectionBlocker block(_conn); - _hParam->SetInt(widget->objectName().toUtf8().constData(), _layout->count() - 1); - } - } - - void insertWidget(int index, QWidget *widget) - { - int currentIndex = _layout->indexOf(widget); - - // we are inserting widget at the same place, this is no-op - if (currentIndex == index) { - return; - } - - // widget already exists in the area, we need to first remove it and then recreate - if (currentIndex > 0) { - _layout->removeWidget(widget); - } - - _layout->insertWidget(index, widget); - - adjustParent(); - saveState(); - } - - void adjustParent() - { - if (_sizingTimer) { - _sizingTimer->start(10); - } - } - - void removeWidget(QWidget *widget) - { - _layout->removeWidget(widget); - - QString name = widget->objectName(); - if (!name.isEmpty()) { - Base::ConnectionBlocker block(_conn); - _hParam->RemoveInt(name.toUtf8().constData()); - } - - adjustParent(); - } - - QWidget *widgetAt(int index) const - { - auto item = _layout->itemAt(index); - - return item ? item->widget() : nullptr; - } - - int count() const - { - return _layout->count(); - } - - int indexOf(QWidget *widget) const - { - return _layout->indexOf(widget); - } - - ToolBarArea area() const - { - return _area; - } - - template - void foreachToolBar(FuncT &&func) - { - for (int i = 0, c = _layout->count(); i < c; ++i) { - auto toolbar = qobject_cast(widgetAt(i)); - - if (!toolbar || toolbar->objectName().isEmpty() - || toolbar->objectName().startsWith(QStringLiteral("*"))) { - continue; - } - - func(toolbar, i, this); - } - } - - void saveState() - { + if (!name.isEmpty()) { Base::ConnectionBlocker block(_conn); + _hParam->SetInt(widget->objectName().toUtf8().constData(), _layout->count() - 1); + } +} - for (auto &v : _hParam->GetIntMap()) { - _hParam->RemoveInt(v.first.c_str()); - } +void ToolBarAreaWidget::insertWidget(int index, QWidget* widget) +{ + int currentIndex = _layout->indexOf(widget); - foreachToolBar([this](QToolBar *toolbar, int idx, ToolBarAreaWidget*) { - _hParam->SetInt(toolbar->objectName().toUtf8().constData(), idx); - }); + // we are inserting widget at the same place, this is no-op + if (currentIndex == index) { + return; } - void restoreState(const std::map &toolbars) - { - for (const auto &[index, toolbar] : toolbars) { - bool visible = toolbar->isVisible(); - getMainWindow()->removeToolBar(toolbar); - toolbar->setOrientation(Qt::Horizontal); - insertWidget(index, toolbar); - toolbar->setVisible(visible); - } - - for (const auto &[name, visible] : _hParam->GetBoolMap()) { - auto widget = findChild(QString::fromUtf8(name.c_str())); - - if (widget) { - widget->setVisible(visible); - } - } + // widget already exists in the area, we need to first remove it and then recreate + if (currentIndex > 0) { + _layout->removeWidget(widget); } -private: - QHBoxLayout *_layout; - QPointer _sizingTimer; - ParameterGrp::handle _hParam; - boost::signals2::scoped_connection &_conn; - ToolBarArea _area; -}; + _layout->insertWidget(index, widget); + + adjustParent(); + saveState(); +} + +void ToolBarAreaWidget::removeWidget(QWidget* widget) +{ + _layout->removeWidget(widget); + + QString name = widget->objectName(); + if (!name.isEmpty()) { + Base::ConnectionBlocker block(_conn); + _hParam->RemoveInt(name.toUtf8().constData()); + } + + adjustParent(); +} + +void ToolBarAreaWidget::adjustParent() +{ + if (_sizingTimer) { + _sizingTimer->start(10); + } +} + +void ToolBarAreaWidget::saveState() +{ + Base::ConnectionBlocker block(_conn); + + for (auto &v : _hParam->GetIntMap()) { + _hParam->RemoveInt(v.first.c_str()); + } + + foreachToolBar([this](QToolBar *toolbar, int idx, ToolBarAreaWidget*) { + _hParam->SetInt(toolbar->objectName().toUtf8().constData(), idx); + }); +} + +void ToolBarAreaWidget::restoreState(const std::map& toolbars) +{ + for (const auto &[index, toolbar] : toolbars) { + bool visible = toolbar->isVisible(); + getMainWindow()->removeToolBar(toolbar); + toolbar->setOrientation(Qt::Horizontal); + insertWidget(index, toolbar); + toolbar->setVisible(visible); + } + + for (const auto &[name, visible] : _hParam->GetBoolMap()) { + auto widget = findChild(QString::fromUtf8(name.c_str())); + + if (widget) { + widget->setVisible(visible); + } + } +} -} // namespace Gui // ----------------------------------------------------------- diff --git a/src/Gui/ToolBarManager.h b/src/Gui/ToolBarManager.h index 5f26693911..5f7e34679a 100644 --- a/src/Gui/ToolBarManager.h +++ b/src/Gui/ToolBarManager.h @@ -29,6 +29,9 @@ #include #include +#include +#include +#include #include #include @@ -37,7 +40,6 @@ class QAction; class QLayout; class QMenu; class QMouseEvent; -class QToolBar; namespace Gui { @@ -54,7 +56,71 @@ enum class ToolBarArea { StatusBarToolBarArea, }; -class ToolBarAreaWidget; +class ToolBarAreaWidget : public QWidget +{ + Q_OBJECT + using inherited = QWidget; + +public: + ToolBarAreaWidget(QWidget *parent, + ToolBarArea area, + const ParameterGrp::handle& hParam, + boost::signals2::scoped_connection &conn, + QTimer *timer = nullptr); + + void addWidget(QWidget *widget); + void insertWidget(int index, QWidget *widget); + void removeWidget(QWidget *widget); + + void adjustParent(); + + QWidget *widgetAt(int index) const + { + auto item = _layout->itemAt(index); + + return item ? item->widget() : nullptr; + } + + int count() const + { + return _layout->count(); + } + + int indexOf(QWidget *widget) const + { + return _layout->indexOf(widget); + } + + ToolBarArea area() const + { + return _area; + } + + template + void foreachToolBar(FuncT &&func) + { + for (int i = 0, count = _layout->count(); i < count; ++i) { + auto toolbar = qobject_cast(widgetAt(i)); + + if (!toolbar || toolbar->objectName().isEmpty() + || toolbar->objectName().startsWith(QStringLiteral("*"))) { + continue; + } + + func(toolbar, i, this); + } + } + + void saveState(); + void restoreState(const std::map &toolbars); + +private: + QHBoxLayout *_layout; + QPointer _sizingTimer; + ParameterGrp::handle _hParam; + boost::signals2::scoped_connection &_conn; + ToolBarArea _area; +}; class GuiExport ToolBarItem { diff --git a/src/Gui/Tree.cpp b/src/Gui/Tree.cpp index d73edb1978..9ad8913110 100644 --- a/src/Gui/Tree.cpp +++ b/src/Gui/Tree.cpp @@ -1688,15 +1688,19 @@ void TreeWidget::mousePressEvent(QMouseEvent* event) // Rect occupied by the item relative to viewport auto iconRect = visualItemRect(objitem); + auto style = this->style(); + // If the checkboxes are visible, these are displayed before the icon // and we have to compensate for its width. if (isSelectionCheckBoxesEnabled()) { - auto style = this->style(); int checkboxWidth = style->pixelMetric(QStyle::PM_IndicatorWidth) + style->pixelMetric(QStyle::PM_LayoutHorizontalSpacing); iconRect.adjust(checkboxWidth, 0, 0, 0); } + int const margin = style->pixelMetric(QStyle::PM_FocusFrameHMargin) + 1; + iconRect.adjust(margin, 0, 0, 0); + // We are interested in the first icon (visibility icon) iconRect.setWidth(iconSize()); @@ -5308,7 +5312,7 @@ void DocumentObjectItem::testStatus(bool resetStatus, QIcon& icon1, QIcon& icon2 previousStatus = currentStatus; QIcon::Mode mode = QIcon::Normal; - if (isVisibilityIconEnabled() || (currentStatus & Status::Visible)) { + if (currentStatus & Status::Visible) { // Note: By default the foreground, i.e. text color is invalid // to make use of the default color of the tree widget's palette. // If we temporarily set this color to dark and reset to an invalid @@ -5426,17 +5430,19 @@ void DocumentObjectItem::testStatus(bool resetStatus, QIcon& icon1, QIcon& icon2 // Prepend the visibility pixmap to the final icon pixmaps and use these as the icon. QIcon new_icon; + auto style = this->getTree()->style(); + int const spacing = style->pixelMetric(QStyle::PM_LayoutHorizontalSpacing); for (auto state: {QIcon::On, QIcon::Off}) { QPixmap px_org = icon.pixmap(0xFFFF, 0xFFFF, QIcon::Normal, state); - QPixmap px(2*px_org.width(), px_org.height()); + QPixmap px(2*px_org.width() + spacing, px_org.height()); px.fill(Qt::transparent); QPainter pt; pt.begin(&px); pt.setPen(Qt::NoPen); pt.drawPixmap(0, 0, px_org.width(), px_org.height(), (currentStatus & Status::Visible) ? pxVisible : pxInvisible); - pt.drawPixmap(px_org.width(), 0, px_org.width(), px_org.height(), px_org); + pt.drawPixmap(px_org.width() + spacing, 0, px_org.width(), px_org.height(), px_org); pt.end(); new_icon.addPixmap(px, QIcon::Normal, state); diff --git a/src/Gui/TreeParams.cpp b/src/Gui/TreeParams.cpp index faede3d53b..50d7c0a110 100644 --- a/src/Gui/TreeParams.cpp +++ b/src/Gui/TreeParams.cpp @@ -163,7 +163,7 @@ public: funcs["ColumnSize3"] = &TreeParamsP::updateColumnSize3; TreeToolTipIcon = handle->GetBool("TreeToolTipIcon", false); funcs["TreeToolTipIcon"] = &TreeParamsP::updateTreeToolTipIcon; - VisibilityIcon = handle->GetBool("VisibilityIcon", false); + VisibilityIcon = handle->GetBool("VisibilityIcon", true); funcs["VisibilityIcon"] = &TreeParamsP::updateVisibilityIcon; } @@ -413,7 +413,7 @@ public: } // Auto generated code (Tools/params_utils.py:296) static void updateVisibilityIcon(TreeParamsP *self) { - auto v = self->handle->GetBool("VisibilityIcon", false); + auto v = self->handle->GetBool("VisibilityIcon", true); if (self->VisibilityIcon != v) { self->VisibilityIcon = v; TreeParams::onVisibilityIconChanged(); @@ -1480,7 +1480,7 @@ const bool & TreeParams::getVisibilityIcon() { // Auto generated code (Tools/params_utils.py:366) const bool & TreeParams::defaultVisibilityIcon() { - const static bool def = false; + const static bool def = true; return def; } diff --git a/src/Gui/TreeParams.py b/src/Gui/TreeParams.py index aa072e1566..8c06880cab 100644 --- a/src/Gui/TreeParams.py +++ b/src/Gui/TreeParams.py @@ -83,7 +83,7 @@ Params = [ ParamInt('ColumnSize2', 0), ParamInt('ColumnSize3', 0), ParamBool('TreeToolTipIcon', False, title='Show icon in tool tip'), - ParamBool('VisibilityIcon', False, on_change=True, title='Show visibility icon', + ParamBool('VisibilityIcon', True, on_change=True, title='Show visibility icon', doc = "If enabled, show an eye icon before the tree view items, showing the items visibility status. When clicked the visibility is toggled"), ] diff --git a/src/Gui/View3DInventorSelection.cpp b/src/Gui/View3DInventorSelection.cpp index ee641fdd76..a9d0cf6dba 100644 --- a/src/Gui/View3DInventorSelection.cpp +++ b/src/Gui/View3DInventorSelection.cpp @@ -34,6 +34,7 @@ #include "View3DInventorSelection.h" #include "ViewProviderDocumentObject.h" #include +#include #include #include @@ -113,6 +114,11 @@ void View3DInventorSelection::checkGroupOnTop(const SelectionChanges &Reason) std::string key(obj->getNameInDocument()); key += '.'; auto subname = Reason.pSubName; +#ifdef FC_USE_TNP_FIX + std::pair element; + App::GeoFeature::resolveElement(obj,Reason.pSubName,element); + subname = element.second.c_str(); +#endif if(subname) key += subname; if(Reason.Type == SelectionChanges::RmvSelection) { diff --git a/src/Gui/ViewProviderGeometryObject.cpp b/src/Gui/ViewProviderGeometryObject.cpp index aa35d76b02..d7c1754c15 100644 --- a/src/Gui/ViewProviderGeometryObject.cpp +++ b/src/Gui/ViewProviderGeometryObject.cpp @@ -133,11 +133,12 @@ void ViewProviderGeometryObject::onChanged(const App::Property* prop) } else if (prop == &Transparency) { long value = toPercent(ShapeAppearance.getTransparency()); + float trans = fromPercent(Transparency.getValue()); if (value != Transparency.getValue()) { - float trans = fromPercent(Transparency.getValue()); - pcShapeMaterial->transparency = trans; ShapeAppearance.setTransparency(trans); } + + pcShapeMaterial->transparency = trans; } else if (prop == &ShapeAppearance) { if (getObject() && getObject()->testStatus(App::ObjectStatus::TouchOnColorChange)) { diff --git a/src/Main/MainGui.cpp b/src/Main/MainGui.cpp index 560a3bb820..381888ec76 100644 --- a/src/Main/MainGui.cpp +++ b/src/Main/MainGui.cpp @@ -156,6 +156,9 @@ int main(int argc, char** argv) } argv_.push_back(0); // 0-terminated string } + + // https://www.qt.io/blog/dark-mode-on-windows-11-with-qt-6.5 + _putenv("QT_QPA_PLATFORM=windows:darkmode=1"); #endif // Name and Version of the Application diff --git a/src/Main/MainPy.cpp b/src/Main/MainPy.cpp index 5463ee63b3..a09c20f303 100644 --- a/src/Main/MainPy.cpp +++ b/src/Main/MainPy.cpp @@ -155,8 +155,8 @@ PyMOD_INIT_FUNC(FreeCAD) path += upDir; break; } - } // end for (i = PyList_Size(pySysPath) - 1; i >= 0 ; --i) { - } // end if ( PyList_Check(pySysPath) ) { + } + } if (path.isEmpty()) { PyErr_SetString(PyExc_ImportError, "Cannot get path of the FreeCAD module!"); @@ -192,7 +192,6 @@ PyMOD_INIT_FUNC(FreeCAD) std::clog.rdbuf(&stdclog); std::cerr.rdbuf(&stdcerr); - // PyObject* module = _PyImport_FindBuiltin("FreeCAD"); PyObject* modules = PyImport_GetModuleDict(); PyObject* module = PyDict_GetItemString(modules, "FreeCAD"); if (!module) { diff --git a/src/Mod/BIM/ArchBuildingPart.py b/src/Mod/BIM/ArchBuildingPart.py index 90eec6eb44..1ed2fdd242 100644 --- a/src/Mod/BIM/ArchBuildingPart.py +++ b/src/Mod/BIM/ArchBuildingPart.py @@ -299,7 +299,8 @@ class BuildingPart(ArchIFC.IfcProduct): def execute(self,obj): - # gather all the child shapes into a compound + "gather all the child shapes into a compound" + pl = obj.Placement shapes,materialstable = self.getShapes(obj) if shapes: @@ -322,12 +323,13 @@ class BuildingPart(ArchIFC.IfcProduct): obj.ViewObject.Proxy.onChanged(obj.ViewObject,"AutoGroupBox") def getMovableChildren(self, obj): + "recursively get movable children" result = [] for child in obj.Group: - if isinstance(child, "App::DocumentObjectGroup"): - result.extend(getMovableChildren(child)) + if child.isDerivedFrom("App::DocumentObjectGroup"): + result.extend(self.getMovableChildren(child)) if not hasattr(child,"MoveWithHost") or child.MoveWithHost: if hasattr(child,"Placement"): result.append(child) diff --git a/src/Mod/BIM/ArchPanel.py b/src/Mod/BIM/ArchPanel.py index 4d62a04dc0..1bf0e85b88 100644 --- a/src/Mod/BIM/ArchPanel.py +++ b/src/Mod/BIM/ArchPanel.py @@ -35,7 +35,6 @@ if FreeCAD.GuiUp: from PySide import QtCore, QtGui from draftutils.translate import translate from PySide.QtCore import QT_TRANSLATE_NOOP - import draftguitools.gui_trackers as DraftTrackers else: # \cond def translate(ctxt,txt): @@ -56,19 +55,6 @@ __title__ = "FreeCAD Panel" __author__ = "Yorik van Havre" __url__ = "https://www.freecad.org" -# Description l w t - -Presets = [None, - ["Plywood 12mm, 1220 x 2440",1220,2440,12], - ["Plywood 15mm, 1220 x 2440",1220,2440,15], - ["Plywood 18mm, 1220 x 2440",1220,2440,18], - ["Plywood 25mm, 1220 x 2440",1220,2440,25], - ["MDF 3mm, 900 x 600", 900, 600, 3], - ["MDF 6mm, 900 x 600", 900, 600, 6], - ["OSB 18mm, 1220 x 2440", 1220,2440,18], - ] - - class _Panel(ArchComponent.Component): diff --git a/src/Mod/BIM/ArchPrecast.py b/src/Mod/BIM/ArchPrecast.py index 7bb929b10e..138772679d 100644 --- a/src/Mod/BIM/ArchPrecast.py +++ b/src/Mod/BIM/ArchPrecast.py @@ -777,14 +777,14 @@ class _PrecastTaskPanel: def __init__(self): import FreeCADGui - from PySide import QtCore,QtGui,QtSvg + from PySide import QtCore, QtGui, QtSvgWidgets self.form = QtGui.QWidget() self.grid = QtGui.QGridLayout(self.form) self.PrecastTypes = ["Beam","I-Beam","Pillar","Panel","Slab","Stairs"] self.SlabTypes = ["Champagne","Hat"] # image display - self.preview = QtSvg.QSvgWidget(":/ui/ParametersBeam.svg") + self.preview = QtSvgWidgets.QSvgWidget(":/ui/ParametersBeam.svg") self.preview.setMaximumWidth(200) self.preview.setMinimumHeight(120) self.grid.addWidget(self.preview,0,0,1,2) @@ -1263,7 +1263,7 @@ class _DentsTaskPanel: def __init__(self): import FreeCADGui - from PySide import QtCore,QtGui,QtSvg + from PySide import QtCore, QtGui, QtSvgWidgets self.form = QtGui.QWidget() self.grid = QtGui.QGridLayout(self.form) self.Rotations = ["N","S","E","O"] @@ -1282,7 +1282,7 @@ class _DentsTaskPanel: self.grid.addWidget(self.buttonRemove,2,1,1,1) # image display - self.preview = QtSvg.QSvgWidget(":/ui/ParametersDent.svg") + self.preview = QtSvgWidgets.QSvgWidget(":/ui/ParametersDent.svg") self.preview.setMaximumWidth(200) self.preview.setMinimumHeight(120) self.grid.addWidget(self.preview,3,0,1,2) diff --git a/src/Mod/BIM/ArchWall.py b/src/Mod/BIM/ArchWall.py index e6e3bccbec..b096682d26 100644 --- a/src/Mod/BIM/ArchWall.py +++ b/src/Mod/BIM/ArchWall.py @@ -718,11 +718,10 @@ class _Wall(ArchComponent.Component): return None if obj.Normal == Vector(0,0,0): if obj.Base: - baseshape = obj.Base.Shape + normal = DraftGeomUtils.get_shape_normal(obj.Base.Shape) + if normal is None: + normal = Vector(0,0,1) else: - baseshape = Part.makeLine((0,0,0),(length,0,0)) - normal = DraftGeomUtils.get_shape_normal(baseshape) - if normal == None: normal = Vector(0,0,1) else: normal = Vector(obj.Normal) diff --git a/src/Mod/BIM/ArchWindow.py b/src/Mod/BIM/ArchWindow.py index 911b9bc4bb..753d8a661e 100644 --- a/src/Mod/BIM/ArchWindow.py +++ b/src/Mod/BIM/ArchWindow.py @@ -34,7 +34,7 @@ from draftutils.messages import _wrn if FreeCAD.GuiUp: import FreeCADGui - from PySide import QtCore, QtGui, QtSvg + from PySide import QtCore, QtGui from draftutils.translate import translate from PySide.QtCore import QT_TRANSLATE_NOOP import draftguitools.gui_trackers as DraftTrackers diff --git a/src/Mod/BIM/InitGui.py b/src/Mod/BIM/InitGui.py index 98e23d4487..653bbfd712 100644 --- a/src/Mod/BIM/InitGui.py +++ b/src/Mod/BIM/InitGui.py @@ -30,10 +30,10 @@ import Arch_rc class BIMWorkbench(Workbench): def __init__(self): - + def QT_TRANSLATE_NOOP(context, text): return text - + bdir = os.path.join(FreeCAD.getResourceDir(), "Mod", "BIM") tt = QT_TRANSLATE_NOOP("BIM","The BIM workbench is used to model buildings") self.__class__.MenuText = QT_TRANSLATE_NOOP("BIM", "BIM") @@ -46,10 +46,10 @@ class BIMWorkbench(Workbench): # add translations and icon paths FreeCADGui.addIconPath(":/icons") FreeCADGui.addLanguagePath(":/translations") - + # Create menus and toolbars self.createTools() - + # Load Arch & Draft preference pages self.loadPreferences() @@ -58,7 +58,7 @@ class BIMWorkbench(Workbench): def createTools(self): - + "Create tolbars and menus" def QT_TRANSLATE_NOOP(context, text): @@ -130,7 +130,7 @@ class BIMWorkbench(Workbench): "Arch_Equipment", "Arch_Rebar", ] - + self.generictools = [ "Arch_Profile", "BIM_Box", @@ -237,9 +237,9 @@ class BIMWorkbench(Workbench): "BIM_Nudge_Extend", "BIM_Nudge_Shrink", ] - + # append BIM snaps - + from draftutils import init_tools self.snapbar = init_tools.get_draft_snap_commands() self.snapmenu = self.snapbar + [ @@ -247,9 +247,9 @@ class BIMWorkbench(Workbench): "BIM_SetWPFront", "BIM_SetWPSide", ] - + # create generic tools command - + class BIM_GenericTools: def __init__(self, tools): self.tools = tools @@ -299,23 +299,6 @@ class BIMWorkbench(Workbench): RebarTools.updateLocale() #self.rebar = RebarTools.RebarCommands + ["Arch_Rebar"] - # try to load bimbots - - try: - import bimbots - except ImportError: - pass - else: - class BIMBots: - def GetResources(self): - return bimbots.get_plugin_info() - - def Activated(self): - bimbots.launch_ui() - - FreeCADGui.addCommand("BIMBots", BIMBots()) - self.utils.append("BIMBots") - # load Reporting try: @@ -392,7 +375,7 @@ class BIMWorkbench(Workbench): for c in FastenerBase.FSGetCommands("screws") if not isinstance(c, tuple) ] - + # load nativeifc tools ifctools = ifc_commands.get_commands() @@ -493,15 +476,17 @@ class BIMWorkbench(Workbench): from DraftGui import todo import BimStatusBar from nativeifc import ifc_observer - + from draftutils import grid_observer + PARAMS = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/BIM") if hasattr(FreeCADGui, "draftToolBar"): FreeCADGui.draftToolBar.Activated() if hasattr(FreeCADGui, "Snapper"): FreeCADGui.Snapper.show() - if hasattr(WorkingPlane, "_view_observer_start"): - WorkingPlane._view_observer_start() + WorkingPlane._view_observer_start() + grid_observer._view_observer_setup() + if PARAMS.GetBool("FirstTime", True) and (not hasattr(FreeCAD, "TestEnvironment")): todo.delay(FreeCADGui.runCommand, "BIM_Welcome") todo.delay(BimStatusBar.setStatusIcons, True) @@ -543,10 +528,10 @@ class BIMWorkbench(Workbench): w.toggleViewAction().setVisible(True) self.setupMultipleObjectSelection() - + # add NativeIFC document observer ifc_observer.add_observer() - + # adding a Help menu manipulator # https://github.com/FreeCAD/FreeCAD/pull/10933 class BIM_WBManipulator: @@ -565,13 +550,14 @@ class BIMWorkbench(Workbench): def Deactivated(self): - + from DraftGui import todo import BimStatusBar from bimcommands import BimViews import WorkingPlane from nativeifc import ifc_observer - + from draftutils import grid_observer + PARAMS = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/BIM") if hasattr(self, "BimSelectObserver"): @@ -582,9 +568,8 @@ class BIMWorkbench(Workbench): FreeCADGui.draftToolBar.Deactivated() if hasattr(FreeCADGui, "Snapper"): FreeCADGui.Snapper.hide() - - if hasattr(WorkingPlane, "_view_observer_stop"): - WorkingPlane._view_observer_stop() + WorkingPlane._view_observer_stop() + grid_observer._view_observer_setup() # print("Deactivating status icon") todo.delay(BimStatusBar.setStatusIcons, False) diff --git a/src/Mod/BIM/Resources/Arch.qrc b/src/Mod/BIM/Resources/Arch.qrc index 1e004311a9..417015ba01 100644 --- a/src/Mod/BIM/Resources/Arch.qrc +++ b/src/Mod/BIM/Resources/Arch.qrc @@ -1,6 +1,5 @@ - icons/ArchWorkbench.svg icons/Arch_3Views.svg icons/Arch_Add.svg icons/Arch_Axis.svg @@ -40,7 +39,6 @@ icons/Arch_MeshToShape.svg icons/Arch_MultipleStructures.svg icons/Arch_Nest.svg - icons/Arch_Opening_Experimental.svg icons/Arch_Panel.svg icons/Arch_Panel_Clone.svg icons/Arch_Panel_Cut.svg @@ -52,7 +50,6 @@ icons/Arch_Pipe_Tree.svg icons/Arch_Profile.svg icons/Arch_Project.svg - icons/Arch_Project_IFC.svg icons/Arch_Project_Tree.svg icons/Arch_Rebar.svg icons/Arch_Rebar_Tree.svg @@ -86,12 +83,10 @@ icons/Arch_Truss_Tree.svg icons/Arch_Wall.svg icons/Arch_Wall_Clone.svg - icons/Arch_Wall_Experimental.svg icons/Arch_Wall_Tree.svg icons/Arch_Wall_Tree_Assembly.svg icons/Arch_Window.svg icons/Arch_Window_Clone.svg - icons/Arch_Window_Experimental.svg icons/Arch_Window_Tree.svg icons/BIMWorkbench.svg icons/BIM_Background.svg @@ -106,13 +101,13 @@ icons/BIM_DimensionHorizontal.svg icons/BIM_DimensionVertical.svg icons/BIM_Door.svg - icons/BIM_Door_Experimental.svg icons/BIM_Glue.svg icons/BIM_Hatch.svg icons/BIM_Help.svg icons/BIM_IfcElements.svg icons/BIM_IfcProperties.svg icons/BIM_IfcQuantities.svg + icons/BIM_ImagePlane.svg icons/BIM_Layers.svg icons/BIM_Leader.svg icons/BIM_Levels.svg @@ -123,6 +118,7 @@ icons/BIM_Phases.svg icons/BIM_Preflight.svg icons/BIM_Project.svg + icons/BIM_ProjectManager.svg icons/BIM_Reextrude.svg icons/BIM_Reorder.svg icons/BIM_ResetCloneColors.svg @@ -141,12 +137,10 @@ icons/IFC_document.svg icons/IFC_mesh.svg icons/IFC_object.svg - icons/Image_CreateImagePlane.svg icons/Part_document.svg icons/Sketch.svg icons/Tree_Part.svg icons/banner.png - icons/preferences-arch.svg icons/preferences-bim.svg icons/techdraw-ArchView.svg icons/techdraw-PageDefault.svg diff --git a/src/Mod/BIM/Resources/icons/ArchWorkbench.svg b/src/Mod/BIM/Resources/icons/ArchWorkbench.svg deleted file mode 100755 index 2bd4ee58a3..0000000000 --- a/src/Mod/BIM/Resources/icons/ArchWorkbench.svg +++ /dev/null @@ -1,452 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - [triplus] - - - ArchWorkbench - 2016-02-26 - https://www.freecad.org/wiki/index.php?title=Artwork - - - FreeCAD - - - FreeCAD/src/Mod/Arch/Resources/icons/ArchWorkbench.svg - - - FreeCAD LGPL2+ - - - https://www.gnu.org/copyleft/lesser.html - - - [agryson] Alexander Gryson - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Mod/BIM/Resources/icons/Arch_Opening_Experimental.svg b/src/Mod/BIM/Resources/icons/Arch_Opening_Experimental.svg deleted file mode 100644 index c7f5d44fa2..0000000000 --- a/src/Mod/BIM/Resources/icons/Arch_Opening_Experimental.svg +++ /dev/null @@ -1,241 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - [wmayer] - - - Arch_Window - 2011-10-10 - http://www.freecadweb.org/wiki/index.php?title=Artwork - - - FreeCAD - - - FreeCAD/src/Mod/Arch/Resources/icons/Arch_Window.svg - - - FreeCAD LGPL2+ - - - https://www.gnu.org/copyleft/lesser.html - - - [agryson] Alexander Gryson - - - - - - - - - - - - - diff --git a/src/Mod/BIM/Resources/icons/Arch_Project_IFC.svg b/src/Mod/BIM/Resources/icons/Arch_Project_IFC.svg deleted file mode 100644 index dfeabb73bd..0000000000 --- a/src/Mod/BIM/Resources/icons/Arch_Project_IFC.svg +++ /dev/null @@ -1,148 +0,0 @@ - - - - - - - - - - - - - - - image/svg+xml - - - - FreeCAD LGPL2+ - - - - - FreeCAD - - - https://www.freecad.org/wiki/index.php?title=Artwork - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Mod/BIM/Resources/icons/Arch_Wall_Experimental.svg b/src/Mod/BIM/Resources/icons/Arch_Wall_Experimental.svg deleted file mode 100644 index b44f3358aa..0000000000 --- a/src/Mod/BIM/Resources/icons/Arch_Wall_Experimental.svg +++ /dev/null @@ -1,404 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - [wmayer] - - - Arch_Wall - 2011-10-10 - http://www.freecadweb.org/wiki/index.php?title=Artwork - - - FreeCAD - - - FreeCAD/src/Mod/Arch/Resources/icons/Arch_Wall.svg - - - FreeCAD LGPL2+ - - - https://www.gnu.org/copyleft/lesser.html - - - [agryson] Alexander Gryson - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Mod/BIM/Resources/icons/Arch_Window_Experimental.svg b/src/Mod/BIM/Resources/icons/Arch_Window_Experimental.svg deleted file mode 100644 index a839b76e7d..0000000000 --- a/src/Mod/BIM/Resources/icons/Arch_Window_Experimental.svg +++ /dev/null @@ -1,687 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - [wmayer] - - - Arch_Window - 2011-10-10 - http://www.freecadweb.org/wiki/index.php?title=Artwork - - - FreeCAD - - - FreeCAD/src/Mod/Arch/Resources/icons/Arch_Window.svg - - - FreeCAD LGPL2+ - - - https://www.gnu.org/copyleft/lesser.html - - - [agryson] Alexander Gryson - - - - - - - - - - - - - - - - - - - - diff --git a/src/Mod/BIM/Resources/icons/BIM_Door_Experimental.svg b/src/Mod/BIM/Resources/icons/BIM_Door_Experimental.svg deleted file mode 100644 index d2d1310810..0000000000 --- a/src/Mod/BIM/Resources/icons/BIM_Door_Experimental.svg +++ /dev/null @@ -1,576 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - [wmayer] - - - Arch_Window - 2011-10-10 - http://www.freecadweb.org/wiki/index.php?title=Artwork - - - FreeCAD - - - FreeCAD/src/Mod/Arch/Resources/icons/Arch_Window.svg - - - FreeCAD LGPL2+ - - - https://www.gnu.org/copyleft/lesser.html - - - [agryson] Alexander Gryson - - - - - - - - - - - - - - - diff --git a/src/Mod/BIM/Resources/icons/Image_CreateImagePlane.svg b/src/Mod/BIM/Resources/icons/BIM_ImagePlane.svg similarity index 99% rename from src/Mod/BIM/Resources/icons/Image_CreateImagePlane.svg rename to src/Mod/BIM/Resources/icons/BIM_ImagePlane.svg index 4f9e24faad..5e113dcba6 100644 --- a/src/Mod/BIM/Resources/icons/Image_CreateImagePlane.svg +++ b/src/Mod/BIM/Resources/icons/BIM_ImagePlane.svg @@ -13,7 +13,7 @@ id="svg3612" version="1.1" inkscape:version="1.0.2 (e86c870879, 2021-01-15)" - sodipodi:docname="Image_CreateImagePlane.svg"> + sodipodi:docname="BIM_ImagePlane.svg"> - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - + - + image/svg+xml - - - - - [yorikvanhavre] - - - Arch_Building_Tree - 2011-12-06 - http://www.freecadweb.org/wiki/index.php?title=Artwork - - - FreeCAD - - - FreeCAD/src/Mod/Arch/Resources/icons/Arch_Building_Tree.svg + FreeCAD LGPL2+ - https://www.gnu.org/copyleft/lesser.html - + - [agryson] Alexander Gryson + FreeCAD - + + https://www.freecad.org/wiki/index.php?title=Artwork + + + + + + + + + - - - - - - - - - - + + + + + + + + + + + + + + + + diff --git a/src/Mod/BIM/Resources/icons/BIM_ProjectManager.svg b/src/Mod/BIM/Resources/icons/BIM_ProjectManager.svg new file mode 100644 index 0000000000..c6903c7c7d --- /dev/null +++ b/src/Mod/BIM/Resources/icons/BIM_ProjectManager.svg @@ -0,0 +1,125 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + [yorikvanhavre] + + + Arch_Building_Tree + 2011-12-06 + http://www.freecadweb.org/wiki/index.php?title=Artwork + + + FreeCAD + + + FreeCAD/src/Mod/Arch/Resources/icons/Arch_Building_Tree.svg + + + FreeCAD LGPL2+ + + + https://www.gnu.org/copyleft/lesser.html + + + [agryson] Alexander Gryson + + + + + + + + + + + + + + + + + diff --git a/src/Mod/BIM/Resources/icons/preferences-arch.svg b/src/Mod/BIM/Resources/icons/preferences-arch.svg deleted file mode 100755 index 3efef7b927..0000000000 --- a/src/Mod/BIM/Resources/icons/preferences-arch.svg +++ /dev/null @@ -1,666 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - [triplus] - - - ArchWorkbench - 2016-02-26 - https://www.freecad.org/wiki/index.php?title=Artwork - - - FreeCAD - - - FreeCAD/src/Mod/Arch/Resources/icons/ArchWorkbench.svg - - - FreeCAD LGPL2+ - - - https://www.gnu.org/copyleft/lesser.html - - - [agryson] Alexander Gryson - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Mod/BIM/Resources/icons/warning.svg b/src/Mod/BIM/Resources/icons/warning.svg index f0bb851706..9aab3a965a 100644 --- a/src/Mod/BIM/Resources/icons/warning.svg +++ b/src/Mod/BIM/Resources/icons/warning.svg @@ -2,22 +2,22 @@ + version="1.1" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + inkscape:window-width="1920" + inkscape:window-height="986" + inkscape:window-x="0" + inkscape:window-y="32" + inkscape:window-maximized="1" + inkscape:pagecheckerboard="0"> image/svg+xml - @@ -106,18 +106,16 @@ id="path2644-3" inkscape:connector-curvature="0" sodipodi:nodetypes="cccc" /> - + + style="fill:#000000;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none" + id="path91" + cx="31.970903" + cy="48.55901" + r="2" /> diff --git a/src/Mod/BIM/bimcommands/BimImagePlane.py b/src/Mod/BIM/bimcommands/BimImagePlane.py index 04b0eb785d..f171639c09 100644 --- a/src/Mod/BIM/bimcommands/BimImagePlane.py +++ b/src/Mod/BIM/bimcommands/BimImagePlane.py @@ -35,7 +35,7 @@ translate = FreeCAD.Qt.translate class BIM_ImagePlane: def GetResources(self): return { - "Pixmap": "Image_CreateImagePlane.svg", + "Pixmap": "BIM_ImagePlane.svg", "MenuText": QT_TRANSLATE_NOOP("BIM_ImagePlane", "Image plane"), "ToolTip": QT_TRANSLATE_NOOP( "BIM_ImagePlane", "Creates a plane from an image" diff --git a/src/Mod/BIM/bimcommands/BimPanel.py b/src/Mod/BIM/bimcommands/BimPanel.py index 4c50c63ae0..c0cbb7352f 100644 --- a/src/Mod/BIM/bimcommands/BimPanel.py +++ b/src/Mod/BIM/bimcommands/BimPanel.py @@ -29,7 +29,19 @@ import FreeCADGui QT_TRANSLATE_NOOP = FreeCAD.Qt.QT_TRANSLATE_NOOP translate = FreeCAD.Qt.translate -PARAMS = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/BIM") + + +# Description l w t + +Presets = [None, + ["Plywood 12mm, 1220 x 2440",1220,2440,12], + ["Plywood 15mm, 1220 x 2440",1220,2440,15], + ["Plywood 18mm, 1220 x 2440",1220,2440,18], + ["Plywood 25mm, 1220 x 2440",1220,2440,25], + ["MDF 3mm, 900 x 600", 900, 600, 3], + ["MDF 6mm, 900 x 600", 900, 600, 6], + ["OSB 18mm, 1220 x 2440", 1220,2440,18], + ] class Arch_Panel: @@ -52,6 +64,7 @@ class Arch_Panel: import WorkingPlane import Draft + import draftguitools.gui_trackers as DraftTrackers from draftutils import params self.Length = params.get_param_arch("PanelLength") self.Width = params.get_param_arch("PanelWidth") @@ -89,6 +102,7 @@ class Arch_Panel: "this function is called by the snapper when it has a 3D point" + import DraftVecUtils self.tracker.finalize() if point is None: return @@ -113,6 +127,7 @@ class Arch_Panel: "sets up a taskbox widget" + from draftutils import params from PySide import QtCore, QtGui w = QtGui.QWidget() ui = FreeCADGui.UiLoader() @@ -191,19 +206,19 @@ class Arch_Panel: def setWidth(self,d): from draftutils import params - self.Width = d + self.Width = d.Value params.set_param_arch("PanelWidth",d) def setThickness(self,d): from draftutils import params - self.Thickness = d + self.Thickness = d.Value params.set_param_arch("PanelThickness",d) def setLength(self,d): from draftutils import params - self.Length = d + self.Length = d.Value params.set_param_arch("PanelLength",d) def setContinue(self,i): @@ -415,7 +430,7 @@ class NestTaskPanel: self.form.progressBar.setValue(value) def start(self): - + from PySide import QtGui import ArchNesting self.clearTemps() @@ -465,12 +480,12 @@ class Arch_PanelGroup: def GetCommands(self): return tuple(['Arch_Panel','Arch_Panel_Cut','Arch_Panel_Sheet','Arch_Nest']) - + def GetResources(self): return { 'MenuText': QT_TRANSLATE_NOOP("Arch_PanelTools",'Panel tools'), 'ToolTip': QT_TRANSLATE_NOOP("Arch_PanelTools",'Panel tools') } - + def IsActive(self): v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph") return v diff --git a/src/Mod/BIM/bimcommands/BimProject.py b/src/Mod/BIM/bimcommands/BimProject.py index b12c2cb214..348091fecd 100644 --- a/src/Mod/BIM/bimcommands/BimProject.py +++ b/src/Mod/BIM/bimcommands/BimProject.py @@ -35,7 +35,7 @@ class BIM_Project: def GetResources(self): return { - "Pixmap": "Arch_Project_IFC", + "Pixmap": "BIM_Project", "MenuText": QT_TRANSLATE_NOOP("BIM_Project", "Project"), "ToolTip": QT_TRANSLATE_NOOP("BIM_Project", "Create an empty NativeIFC project"), diff --git a/src/Mod/BIM/bimcommands/BimProjectManager.py b/src/Mod/BIM/bimcommands/BimProjectManager.py index 6e17092c4f..39c68a5426 100644 --- a/src/Mod/BIM/bimcommands/BimProjectManager.py +++ b/src/Mod/BIM/bimcommands/BimProjectManager.py @@ -35,7 +35,7 @@ translate = FreeCAD.Qt.translate class BIM_ProjectManager: def GetResources(self): return { - "Pixmap": "BIM_Project", + "Pixmap": "BIM_ProjectManager", "MenuText": QT_TRANSLATE_NOOP("BIM_ProjectManager", "Manage project..."), "ToolTip": QT_TRANSLATE_NOOP( "BIM_ProjectManager", "Setup your BIM project" @@ -62,7 +62,7 @@ class BIM_ProjectManager: import ArchBuildingPart self.form.buildingUse.addItems(ArchBuildingPart.BuildingTypes) - self.form.setWindowIcon(QtGui.QIcon(":/icons/BIM_Project.svg")) + self.form.setWindowIcon(QtGui.QIcon(":/icons/BIM_ProjectManager.svg")) QtCore.QObject.connect( self.form.buttonAdd, QtCore.SIGNAL("clicked()"), self.addGroup ) diff --git a/src/Mod/BIM/bimcommands/BimText.py b/src/Mod/BIM/bimcommands/BimText.py index 3fdc6814e9..f7b1fd3800 100644 --- a/src/Mod/BIM/bimcommands/BimText.py +++ b/src/Mod/BIM/bimcommands/BimText.py @@ -42,6 +42,10 @@ class BIM_Text: "Accel": "T, E", } + def IsActive(self): + act_win = FreeCADGui.getMainWindow().getActiveWindow() + return hasattr(act_win, "getSceneGraph") or hasattr(act_win, "getPage") + def Activated(self): import draftutils.utils as utils diff --git a/src/Mod/BIM/bimcommands/BimWindow.py b/src/Mod/BIM/bimcommands/BimWindow.py index a9ec5020a3..487bfe74c7 100644 --- a/src/Mod/BIM/bimcommands/BimWindow.py +++ b/src/Mod/BIM/bimcommands/BimWindow.py @@ -258,7 +258,7 @@ class Arch_Window: "sets up a taskbox widget" from draftutils import params - from PySide import QtCore, QtGui, QtSvg + from PySide import QtCore, QtGui, QtSvgWidgets from ArchWindowPresets import WindowPresets w = QtGui.QWidget() ui = FreeCADGui.UiLoader() @@ -322,7 +322,7 @@ class Arch_Window: self.pic.hide() # SVG display - self.im = QtSvg.QSvgWidget(":/ui/ParametersWindowFixed.svg") + self.im = QtSvgWidgets.QSvgWidget(":/ui/ParametersWindowFixed.svg") self.im.setMaximumWidth(200) self.im.setMinimumHeight(120) grid.addWidget(self.im,4,0,1,2) diff --git a/src/Mod/CAM/Gui/Resources/panels/PageOpDeburrEdit.ui b/src/Mod/CAM/Gui/Resources/panels/PageOpDeburrEdit.ui index b10d7c6c19..be4182f4f8 100644 --- a/src/Mod/CAM/Gui/Resources/panels/PageOpDeburrEdit.ui +++ b/src/Mod/CAM/Gui/Resources/panels/PageOpDeburrEdit.ui @@ -1,422 +1,422 @@ - Form - - - - 0 - 0 - 350 - 450 - - - - Form - - - - - - - 0 - 0 - - - - QFrame::StyledPanel - - - QFrame::Raised - - - - - - - 0 - 0 - + Form + + + + 0 + 0 + 350 + 450 + - - - 125 - 0 - + + Form - - - 16777215 - 16777215 - - - - Tool Controller - - - - - - - The tool and its settings to be used for this operation. - - - - - - - - 0 - 0 - - - - - 125 - 0 - - - - - 16777215 - 16777215 - - - - Coolant Mode - - - - - - - The tool and its settings to be used for this operation. - - - - + + + + + + 0 + 0 + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + + + + 0 + 0 + + + + + 125 + 0 + + + + + 16777215 + 16777215 + + + + Tool Controller + + + + + + + The tool and its settings to be used for this operation. + + + + + + + + 0 + 0 + + + + + 125 + 0 + + + + + 16777215 + 16777215 + + + + Coolant Mode + + + + + + + The tool and its settings to be used for this operation. + + + + + + + + + + 6 + + + 12 + + + 12 + + + + + + 0 + 0 + + + + + 125 + 0 + + + + + 16777215 + 16777215 + + + + Direction + + + + + + + The direction in which the profile is performed, clockwise or counterclockwise. + + + Climb + + + 0 + + + + Climb + + + + + Conventional + + + + + + + + + + + + + 125 + 0 + + + + + 16777215 + 16777215 + + + + + + + + + + 50 + 0 + + + + W = + + + + + + + Width of chamfer cut. + + + mm + + + + + + + + + + + + 50 + 0 + + + + h = + + + + + + + Extra depth of tool immersion. + + + mm + + + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 13 + + + + + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + 0 + + + 6 + + + 0 + + + 3 + + + 3 + + + + + + + + 50 + 0 + + + + Join: + + + + + + + Round joint + + + + + + true + + + true + + + true + + + + + + + Miter joint + + + + + + true + + + true + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + Qt::Vertical + + + + 20 + 154 + + + + + + + + + + + + + + + + + 0 + 0 + + + + + 150 + 150 + + + + + 150 + 150 + + + + TextLabel + + + true + + + Qt::AlignCenter + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + + - - - - - 6 - - - 12 - - - 12 - - - - - - 0 - 0 - - - - - 125 - 0 - - - - - 16777215 - 16777215 - - - - Direction - - - - - - - The direction in which the profile is performed, clockwise or counterclockwise. - - - CW - - - 0 - - - - CW - - - - - CCW - - - - - - - - - - - - - 125 - 0 - - - - - 16777215 - 16777215 - - - - - - - - - - 50 - 0 - - - - W = - - - - - - - Width of chamfer cut. - - - mm - - - - - - - - - - - - 50 - 0 - - - - h = - - - - - - - Extra depth of tool immersion. - - - mm - - - - - - - - - Qt::Vertical - - - QSizePolicy::Fixed - - - - 20 - 13 - - - - - - - - QFrame::StyledPanel - - - QFrame::Raised - - - - 0 - - - 6 - - - 0 - - - 3 - - - 3 - - - - - - - - 50 - 0 - - - - Join: - - - - - - - Round joint - - - - - - true - - - true - - - true - - - - - - - Miter joint - - - - - - true - - - true - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - - - - - Qt::Vertical - - - - 20 - 154 - - - - - - - - - - - - - - - - - 0 - 0 - - - - - 150 - 150 - - - - - 150 - 150 - - - - TextLabel - - - true - - - Qt::AlignCenter - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - - - - - - - - Gui::InputField - QLineEdit -
Gui/InputField.h
-
-
- - + + + Gui::InputField + QLineEdit +
Gui/InputField.h
+
+
+ +
diff --git a/src/Mod/CAM/Gui/Resources/panels/PageOpHelixEdit.ui b/src/Mod/CAM/Gui/Resources/panels/PageOpHelixEdit.ui index cdc8f842d8..69d4ee8e72 100644 --- a/src/Mod/CAM/Gui/Resources/panels/PageOpHelixEdit.ui +++ b/src/Mod/CAM/Gui/Resources/panels/PageOpHelixEdit.ui @@ -1,175 +1,175 @@ - Form - - - - 0 - 0 - 400 - 365 - - - - Form - - - - - - QFrame::StyledPanel - - - QFrame::Raised - - + Form + + + + 0 + 0 + 400 + 365 + + + + Form + + - - - Tool Controller - - - - - - - The tool and its settings to be used for this operation. - - + + + QFrame::StyledPanel + + + QFrame::Raised + + + + + + Tool Controller + + + + + + + The tool and its settings to be used for this operation. + + + + + + + Coolant + + + + + + + The tool and its settings to be used for this operation. + + + + + - - - Coolant - - + + + + + + Start from + + + + + + + Specify if the helix operation should start at the inside and work its way outwards, or start at the outside and work its way to the center. + + + + Inside + + + + + Outside + + + + + + + + Direction + + + + + + + The direction for the helix, clockwise or counterclockwise. + + + + Climb + + + + + Conventional + + + + + + + + Step over percent + + + + + + + Specify the percent of the tool diameter each helix will be offset to the previous one. A step over of 100% means no overlap of the individual cuts. + + + 1 + + + 100 + + + 10 + + + 100 + + + + + + + Extra Offset + + + + + + + + + + + + - - - - The tool and its settings to be used for this operation. - - + + + + Qt::Vertical + + + + 20 + 40 + + + - - - - - - - - - - Start from - - - - - - - Specify if the helix operation should start at the inside and work its way outwards, or start at the outside and work its way to the center. - - - - Inside - - - - - Outside - - - - - - - - Direction - - - - - - - The direction for the helix, clockwise or counterclockwise. - - - - CW - - - - - CCW - - - - - - - - Step over percent - - - - - - - Specify the percent of the tool diameter each helix will be offset to the previous one. A step over of 100% means no overlap of the individual cuts. - - - 1 - - - 100 - - - 10 - - - 100 - - - - - - - Extra Offset - - - - - - - - - - - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - Gui::InputField - QLineEdit -
Gui/InputField.h
-
-
- - + + + + + Gui::InputField + QLineEdit +
Gui/InputField.h
+
+
+ +
diff --git a/src/Mod/CAM/Path/Base/Generator/helix.py b/src/Mod/CAM/Path/Base/Generator/helix.py index 1ea355c518..982ce3957a 100644 --- a/src/Mod/CAM/Path/Base/Generator/helix.py +++ b/src/Mod/CAM/Path/Base/Generator/helix.py @@ -45,7 +45,7 @@ def generate( step_over, tool_diameter, inner_radius=0.0, - direction="CW", + direction="Climb", startAt="Outside", ): """generate(edge, hole_radius, inner_radius, step_over) ... generate helix commands. @@ -96,7 +96,7 @@ def generate( elif startAt not in ["Inside", "Outside"]: raise ValueError("Invalid value for parameter 'startAt'") - elif direction not in ["CW", "CCW"]: + elif direction not in ["Climb", "Conventional"]: raise ValueError("Invalid value for parameter 'direction'") if type(step_over) not in [float, int]: @@ -145,7 +145,7 @@ def generate( def helix_cut_r(r): commandlist = [] - arc_cmd = "G2" if direction == "CW" else "G3" + arc_cmd = "G2" if direction == "Climb" else "G3" commandlist.append( Path.Command("G0", {"X": startPoint.x + r, "Y": startPoint.y}) ) diff --git a/src/Mod/CAM/Path/Dressup/Gui/LeadInOut.py b/src/Mod/CAM/Path/Dressup/Gui/LeadInOut.py index f44b8b6b1f..ba7f389d3d 100644 --- a/src/Mod/CAM/Path/Dressup/Gui/LeadInOut.py +++ b/src/Mod/CAM/Path/Dressup/Gui/LeadInOut.py @@ -182,12 +182,12 @@ class ObjectDressup: def getDirectionOfPath(self, obj): op = PathDressup.baseOp(obj.Base) side = op.Side if hasattr(op, "Side") else "Inside" - direction = op.Direction if hasattr(op, "Direction") else "CCW" + direction = op.Direction if hasattr(op, "Direction") else "Conventional" if side == "Outside": - return "left" if direction == "CW" else "right" + return "left" if direction == "Climb" else "right" else: - return "right" if direction == "CW" else "left" + return "right" if direction == "Climb" else "left" def getArcDirection(self, obj): direction = self.getDirectionOfPath(obj) @@ -328,7 +328,7 @@ class ObjectDressup: else: # obj.StyleOff == "Perpendicular" append(self.createStraightMove(obj, end, end + normal)) - extend = obj.ExtendLeadOut.Value + extend = obj.ExtendLeadOut.Value if extend != 0: # append extension extendend = end + normal / length * extend diff --git a/src/Mod/CAM/Path/Geom.py b/src/Mod/CAM/Path/Geom.py index 1ad92a6f65..eeb00973dd 100644 --- a/src/Mod/CAM/Path/Geom.py +++ b/src/Mod/CAM/Path/Geom.py @@ -147,10 +147,10 @@ def getAngle(vector): return a -def diffAngle(a1, a2, direction="CW"): - """diffAngle(a1, a2, [direction='CW']) +def diffAngle(a1, a2, direction="Climb"): + """diffAngle(a1, a2, [direction='Climb']) Returns the difference between two angles (a1 -> a2) into a given direction.""" - if direction == "CW": + if direction == "Climb": while a1 < a2: a1 += 2 * math.pi a = a1 - a2 @@ -466,7 +466,7 @@ def edgeForCmd(cmd, startPoint): cw = True else: cw = False - angle = diffAngle(getAngle(A), getAngle(B), "CW" if cw else "CCW") + angle = diffAngle(getAngle(A), getAngle(B), "Climb" if cw else "CCW") height = endPoint.z - startPoint.z pitch = height * math.fabs(2 * math.pi / angle) if angle > 0: diff --git a/src/Mod/CAM/Path/Main/Gui/SimulatorGL.py b/src/Mod/CAM/Path/Main/Gui/SimulatorGL.py index f3867148e3..be96af3d9e 100644 --- a/src/Mod/CAM/Path/Main/Gui/SimulatorGL.py +++ b/src/Mod/CAM/Path/Main/Gui/SimulatorGL.py @@ -92,18 +92,24 @@ class CAMSimulation: for edge in edges: p1 = edge.FirstParameter p2 = edge.LastParameter - rad = RadiusAt(edge, p1) - z = edge.valueAt(p1).z - if IsSame(px, rad) and IsSame(pz, z): + rad1 = RadiusAt(edge, p1) + z1 = edge.valueAt(p1).z + if IsSame(px, rad1) and IsSame(pz, z1): return edge, p1, p2 - rad = RadiusAt(edge, p2) - z = edge.valueAt(p2).z - if IsSame(px, rad) and IsSame(pz, z): + rad2 = RadiusAt(edge, p2) + z2 = edge.valueAt(p2).z + if IsSame(px, rad2) and IsSame(pz, z2): return edge, p2, p1 + # sometimes a flat circle is without edge, so return edge with + # same height and later a connecting edge will be interpolated + if IsSame(pz, z1): + return edge, p1, p2 + if IsSame(pz, z2): + return edge, p2, p1 return None, 0.0, 0.0 def FindTopMostEdge(self, edges): - maxz = 0.0 + maxz = -99999999.0 topedge = None top_p1 = 0.0 top_p2 = 0.0 @@ -137,7 +143,6 @@ class CAMSimulation: sideEdgeList.append(edge) # sort edges as a single 3d line on the x-z plane - profile = [0.0, 0.0] # first find the topmost edge edge, p1, p2 = self.FindTopMostEdge(sideEdgeList) @@ -167,6 +172,12 @@ class CAMSimulation: edge, p1, p2 = self.FindClosestEdge(sideEdgeList, endrad, endz) if edge is None: break + startrad = RadiusAt(edge, p1) + if not IsSame(startrad, endrad): + profile.append(startrad) + startz = edge.valueAt(p1).z + profile.append(startz) + return profile def Activate(self): @@ -179,13 +190,14 @@ class CAMSimulation: self._populateJobSelection(form) form.comboJobs.currentIndexChanged.connect(self.onJobChange) self.onJobChange() + form.listOperations.itemChanged.connect(self.onOperationItemChange) FreeCADGui.Control.showDialog(self.taskForm) self.disableAnim = False self.firstDrill = True self.millSim = CAMSimulator.PathSim() self.initdone = True self.job = self.jobs[self.taskForm.form.comboJobs.currentIndex()] - self.SetupSimulation() + # self.SetupSimulation() def _populateJobSelection(self, form): # Make Job selection combobox @@ -250,8 +262,6 @@ class CAMSimulation: listItem.setCheckState(QtCore.Qt.CheckState.Checked) self.operations.append(op) form.listOperations.addItem(listItem) - if self.initdone: - self.SetupSimulation() def onAccuracyBarChange(self): form = self.taskForm.form @@ -263,7 +273,17 @@ class CAMSimulation: qualText = QtCore.QT_TRANSLATE_NOOP("CAM_Simulator", "Medium") form.labelAccuracy.setText(qualText) + def onOperationItemChange(self, _item): + playvalid = False + form = self.taskForm.form + for i in range(form.listOperations.count()): + if form.listOperations.item(i).checkState() == QtCore.Qt.CheckState.Checked: + playvalid = True + break + form.toolButtonPlay.setEnabled(playvalid) + def SimPlay(self): + self.SetupSimulation() self.millSim.ResetSimulation() for op in self.activeOps: tool = PathDressup.toolController(op).Tool diff --git a/src/Mod/CAM/Path/Op/Area.py b/src/Mod/CAM/Path/Op/Area.py index c887839b64..541fc19d6f 100644 --- a/src/Mod/CAM/Path/Op/Area.py +++ b/src/Mod/CAM/Path/Op/Area.py @@ -340,7 +340,7 @@ class ObjectOp(PathOp.ObjectOp): verts = hWire.Wires[0].Vertexes idx = 0 - if obj.Direction == "CCW": + if obj.Direction == "Conventional": idx = len(verts) - 1 x = verts[idx].X y = verts[idx].Y diff --git a/src/Mod/CAM/Path/Op/Deburr.py b/src/Mod/CAM/Path/Op/Deburr.py index 2bc04aed44..68860da4d2 100644 --- a/src/Mod/CAM/Path/Op/Deburr.py +++ b/src/Mod/CAM/Path/Op/Deburr.py @@ -144,7 +144,7 @@ class ObjectDeburr(PathEngraveBase.ObjectOp): "Deburr", QT_TRANSLATE_NOOP("App::Property", "Direction of toolpath"), ) - # obj.Direction = ["CW", "CCW"] + # obj.Direction = ["Climb", "Conventional"] obj.addProperty( "App::PropertyEnumeration", "Side", @@ -181,8 +181,8 @@ class ObjectDeburr(PathEngraveBase.ObjectOp): # Enumeration lists for App::PropertyEnumeration properties enums = { "Direction": [ - (translate("Path", "CW"), "CW"), - (translate("Path", "CCW"), "CCW"), + (translate("Path", "Climb"), "Climb"), + (translate("Path", "Conventional"), "Conventional"), ], # this is the direction that the profile runs "Join": [ (translate("PathDeburr", "Round"), "Round"), @@ -414,7 +414,7 @@ class ObjectDeburr(PathEngraveBase.ObjectOp): wires.append(wire) # Set direction of op - forward = obj.Direction == "CW" + forward = obj.Direction == "Climb" # Set value of side obj.Side = side[0] @@ -449,7 +449,7 @@ class ObjectDeburr(PathEngraveBase.ObjectOp): obj.Join = "Round" obj.setExpression("StepDown", "0 mm") obj.StepDown = "0 mm" - obj.Direction = "CW" + obj.Direction = "Climb" obj.Side = "Outside" obj.EntryPoint = 0 diff --git a/src/Mod/CAM/Path/Op/Helix.py b/src/Mod/CAM/Path/Op/Helix.py index 60026814f2..dbc1cdc0e5 100644 --- a/src/Mod/CAM/Path/Op/Helix.py +++ b/src/Mod/CAM/Path/Op/Helix.py @@ -68,8 +68,8 @@ class ObjectHelix(PathCircularHoleBase.ObjectOp): # Enumeration lists for App::PropertyEnumeration properties enums = { "Direction": [ - (translate("CAM_Helix", "CW"), "CW"), - (translate("CAM_Helix", "CCW"), "CCW"), + (translate("CAM_Helix", "Climb"), "Climb"), + (translate("CAM_Helix", "Conventional"), "Conventional"), ], # this is the direction that the profile runs "StartSide": [ (translate("PathProfile", "Outside"), "Outside"), @@ -105,7 +105,7 @@ class ObjectHelix(PathCircularHoleBase.ObjectOp): "Helix Drill", QT_TRANSLATE_NOOP( "App::Property", - "The direction of the circular cuts, ClockWise (CW), or CounterClockWise (CCW)", + "The direction of the circular cuts, ClockWise (Climb), or CounterClockWise (Conventional)", ), ) diff --git a/src/Mod/CAM/Path/Op/PocketBase.py b/src/Mod/CAM/Path/Op/PocketBase.py index 2c303e731c..e22ef75c89 100644 --- a/src/Mod/CAM/Path/Op/PocketBase.py +++ b/src/Mod/CAM/Path/Op/PocketBase.py @@ -124,7 +124,7 @@ class ObjectPocket(PathAreaOp.ObjectOp): "Pocket", QT_TRANSLATE_NOOP( "App::Property", - "The direction that the toolpath should go around the part ClockWise (CW) or CounterClockWise (CCW)", + "The direction that the toolpath should go around the part ClockWise (Climb) or CounterClockWise (Conventional)", ), ) obj.addProperty( diff --git a/src/Mod/CAM/Path/Op/Profile.py b/src/Mod/CAM/Path/Op/Profile.py index 00105ef1f2..5b7c0fc86c 100644 --- a/src/Mod/CAM/Path/Op/Profile.py +++ b/src/Mod/CAM/Path/Op/Profile.py @@ -104,7 +104,7 @@ class ObjectProfile(PathAreaOp.ObjectOp): "Profile", QT_TRANSLATE_NOOP( "App::Property", - "The direction that the toolpath should go around the part ClockWise (CW) or CounterClockWise (CCW)", + "The direction that the toolpath should go around the part ClockWise (Climb) or CounterClockWise (Conventional)", ), ), ( @@ -193,8 +193,8 @@ class ObjectProfile(PathAreaOp.ObjectOp): # Enumeration lists for App::PropertyEnumeration properties enums = { "Direction": [ - (translate("PathProfile", "CW"), "CW"), - (translate("PathProfile", "CCW"), "CCW"), + (translate("PathProfile", "Climb"), "Climb"), + (translate("PathProfile", "Conventional"), "Conventional"), ], # this is the direction that the profile runs "HandleMultipleFeatures": [ (translate("PathProfile", "Collectively"), "Collectively"), @@ -230,7 +230,7 @@ class ObjectProfile(PathAreaOp.ObjectOp): """areaOpPropertyDefaults(obj, job) ... returns a dictionary of default values for the operation's properties.""" return { - "Direction": "CW", + "Direction": "Climb", "HandleMultipleFeatures": "Collectively", "JoinType": "Round", "MiterLimit": 0.1, @@ -343,11 +343,11 @@ class ObjectProfile(PathAreaOp.ObjectOp): # Reverse the direction for holes if isHole: - direction = "CW" if obj.Direction == "CCW" else "CCW" + direction = "Climb" if obj.Direction == "Conventional" else "Conventional" else: direction = obj.Direction - if direction == "CCW": + if direction == "Conventional": params["orientation"] = 0 else: params["orientation"] = 1 @@ -356,7 +356,7 @@ class ObjectProfile(PathAreaOp.ObjectOp): if obj.UseComp: offset = self.radius + obj.OffsetExtra.Value if offset == 0.0: - if direction == "CCW": + if direction == "Conventional": params["orientation"] = 1 else: params["orientation"] = 0 diff --git a/src/Mod/CAM/Path/Post/scripts/heidenhain_post.py b/src/Mod/CAM/Path/Post/scripts/heidenhain_post.py index 570ad54f08..8cce063d03 100644 --- a/src/Mod/CAM/Path/Post/scripts/heidenhain_post.py +++ b/src/Mod/CAM/Path/Post/scripts/heidenhain_post.py @@ -378,11 +378,11 @@ def export(objectslist, filename, argstring): STORED_COMPENSATED_OBJ = commands # Find mill compensation if hasattr(obj, "Side") and hasattr(obj, "Direction"): - if obj.Side == "Outside" and obj.Direction == "CW": + if obj.Side == "Outside" and obj.Direction == "Climb": Compensation = "L" - elif obj.Side == "Outside" and obj.Direction == "CCW": + elif obj.Side == "Outside" and obj.Direction == "Conventional": Compensation = "R" - elif obj.Side != "Outside" and obj.Direction == "CW": + elif obj.Side != "Outside" and obj.Direction == "Climb": Compensation = "R" else: Compensation = "L" diff --git a/src/Mod/CAM/PathSimulator/AppGL/DlgCAMSimulator.cpp b/src/Mod/CAM/PathSimulator/AppGL/DlgCAMSimulator.cpp index bff77663bf..c1474d3b4e 100644 --- a/src/Mod/CAM/PathSimulator/AppGL/DlgCAMSimulator.cpp +++ b/src/Mod/CAM/PathSimulator/AppGL/DlgCAMSimulator.cpp @@ -205,6 +205,8 @@ DlgCAMSimulator* DlgCAMSimulator::GetInstance() { if (mInstance == nullptr) { QSurfaceFormat format; + format.setVersion(4, 1); // Request OpenGL 4.1 - for MacOS + format.setProfile(QSurfaceFormat::CoreProfile); // Use the core profile = for MacOS format.setSamples(16); format.setSwapInterval(2); format.setDepthBufferSize(24); diff --git a/src/Mod/CAM/PathSimulator/AppGL/EndMill.cpp b/src/Mod/CAM/PathSimulator/AppGL/EndMill.cpp index 49932830ec..829e4089f3 100644 --- a/src/Mod/CAM/PathSimulator/AppGL/EndMill.cpp +++ b/src/Mod/CAM/PathSimulator/AppGL/EndMill.cpp @@ -62,7 +62,8 @@ EndMill::EndMill(const std::vector& toolProfile, int toolid, float diamet profilePoints[i] = toolProfile[i] + 0.01F; // add some width to reduce simulation artifacts } if (missingCenterPoint) { - profilePoints[srcBuffSize] = profilePoints[srcBuffSize + 1] = 0.0F; + profilePoints[srcBuffSize] = 0.0F; + profilePoints[srcBuffSize + 1] = profilePoints[srcBuffSize - 1]; } MirrorPointBuffer(); diff --git a/src/Mod/CAM/Tests/PathTestUtils.py b/src/Mod/CAM/Tests/PathTestUtils.py index 5df774fd71..91749180dd 100644 --- a/src/Mod/CAM/Tests/PathTestUtils.py +++ b/src/Mod/CAM/Tests/PathTestUtils.py @@ -67,14 +67,14 @@ class PathTestBase(unittest.TestCase): for i in range(0, len(edges)): self.assertLine(edges[i], points[i], points[i + 1]) - def assertArc(self, edge, pt1, pt2, direction="CW"): + def assertArc(self, edge, pt1, pt2, direction="Climb"): """Verify that edge is an arc between pt1 and pt2 with the given direction.""" self.assertIs(type(edge.Curve), Part.Circle) self.assertCoincide(edge.valueAt(edge.FirstParameter), pt1) self.assertCoincide(edge.valueAt(edge.LastParameter), pt2) ptm = edge.valueAt((edge.LastParameter + edge.FirstParameter) / 2) side = Path.Geom.Side.of(pt2 - pt1, ptm - pt1) - if "CW" == direction: + if "Climb" == direction: self.assertEqual(side, Path.Geom.Side.Left) else: self.assertEqual(side, Path.Geom.Side.Right) diff --git a/src/Mod/CAM/Tests/TestPathDressupDogbone.py b/src/Mod/CAM/Tests/TestPathDressupDogbone.py index 8302966902..a7f8fd61d0 100644 --- a/src/Mod/CAM/Tests/TestPathDressupDogbone.py +++ b/src/Mod/CAM/Tests/TestPathDressupDogbone.py @@ -59,7 +59,7 @@ class TestDressupDogbone(PathTestBase): """Verify bones are inserted for simple moves.""" base = TestProfile( "Inside", - "CW", + "Climb", """ G0 X10 Y10 Z10 G1 Z0 @@ -84,7 +84,7 @@ class TestDressupDogbone(PathTestBase): """Verify bones are inserted if hole ends with rapid move out.""" base = TestProfile( "Inside", - "CW", + "Climb", """ G0 X10 Y10 Z10 G1 Z0 @@ -177,7 +177,7 @@ class TestDressupDogbone(PathTestBase): """Verify no bone is inserted for straight move interrupted by plunge.""" base = TestProfile( "Inside", - "CW", + "Climb", """ G0 X10 Y10 Z10 G1 Z0 @@ -199,7 +199,7 @@ class TestDressupDogbone(PathTestBase): """Verify can handle comments between moves""" base = TestProfile( "Inside", - "CW", + "Climb", """ G0 X10 Y10 Z10 G1 Z0 @@ -222,7 +222,7 @@ class TestDressupDogbone(PathTestBase): base = TestProfile( "Inside", - "CW", + "Climb", """ G0 X10 Y10 Z10 G1 Z0 @@ -248,7 +248,7 @@ class TestDressupDogbone(PathTestBase): """Verify can handle noops between moves""" base = TestProfile( "Inside", - "CW", + "Climb", """ G0 X10 Y10 Z10 G1 Z0 @@ -271,7 +271,7 @@ class TestDressupDogbone(PathTestBase): base = TestProfile( "Inside", - "CW", + "Climb", """ G0 X10 Y10 Z10 G1 Z0 diff --git a/src/Mod/CAM/Tests/TestPathGeom.py b/src/Mod/CAM/Tests/TestPathGeom.py index 93a37353d3..303b53d3a6 100644 --- a/src/Mod/CAM/Tests/TestPathGeom.py +++ b/src/Mod/CAM/Tests/TestPathGeom.py @@ -45,71 +45,71 @@ class TestPathGeom(PathTestBase): def test01(self): """Verify diffAngle functionality.""" self.assertRoughly( - Path.Geom.diffAngle(0, +0 * math.pi / 4, "CW") / math.pi, 0 / 4.0 + Path.Geom.diffAngle(0, +0 * math.pi / 4, "Climb") / math.pi, 0 / 4.0 ) self.assertRoughly( - Path.Geom.diffAngle(0, +3 * math.pi / 4, "CW") / math.pi, 5 / 4.0 + Path.Geom.diffAngle(0, +3 * math.pi / 4, "Climb") / math.pi, 5 / 4.0 ) self.assertRoughly( - Path.Geom.diffAngle(0, -3 * math.pi / 4, "CW") / math.pi, 3 / 4.0 + Path.Geom.diffAngle(0, -3 * math.pi / 4, "Climb") / math.pi, 3 / 4.0 ) self.assertRoughly( - Path.Geom.diffAngle(0, +4 * math.pi / 4, "CW") / math.pi, 4 / 4.0 + Path.Geom.diffAngle(0, +4 * math.pi / 4, "Climb") / math.pi, 4 / 4.0 ) self.assertRoughly( - Path.Geom.diffAngle(0, +0 * math.pi / 4, "CCW") / math.pi, 0 / 4.0 + Path.Geom.diffAngle(0, +0 * math.pi / 4, "Conventional") / math.pi, 0 / 4.0 ) self.assertRoughly( - Path.Geom.diffAngle(0, +3 * math.pi / 4, "CCW") / math.pi, 3 / 4.0 + Path.Geom.diffAngle(0, +3 * math.pi / 4, "Conventional") / math.pi, 3 / 4.0 ) self.assertRoughly( - Path.Geom.diffAngle(0, -3 * math.pi / 4, "CCW") / math.pi, 5 / 4.0 + Path.Geom.diffAngle(0, -3 * math.pi / 4, "Conventional") / math.pi, 5 / 4.0 ) self.assertRoughly( - Path.Geom.diffAngle(0, +4 * math.pi / 4, "CCW") / math.pi, 4 / 4.0 + Path.Geom.diffAngle(0, +4 * math.pi / 4, "Conventional") / math.pi, 4 / 4.0 ) self.assertRoughly( - Path.Geom.diffAngle(+math.pi / 4, +0 * math.pi / 4, "CW") / math.pi, 1 / 4.0 + Path.Geom.diffAngle(+math.pi / 4, +0 * math.pi / 4, "Climb") / math.pi, 1 / 4.0 ) self.assertRoughly( - Path.Geom.diffAngle(+math.pi / 4, +3 * math.pi / 4, "CW") / math.pi, 6 / 4.0 + Path.Geom.diffAngle(+math.pi / 4, +3 * math.pi / 4, "Climb") / math.pi, 6 / 4.0 ) self.assertRoughly( - Path.Geom.diffAngle(+math.pi / 4, -1 * math.pi / 4, "CW") / math.pi, 2 / 4.0 + Path.Geom.diffAngle(+math.pi / 4, -1 * math.pi / 4, "Climb") / math.pi, 2 / 4.0 ) self.assertRoughly( - Path.Geom.diffAngle(-math.pi / 4, +0 * math.pi / 4, "CW") / math.pi, 7 / 4.0 + Path.Geom.diffAngle(-math.pi / 4, +0 * math.pi / 4, "Climb") / math.pi, 7 / 4.0 ) self.assertRoughly( - Path.Geom.diffAngle(-math.pi / 4, +3 * math.pi / 4, "CW") / math.pi, 4 / 4.0 + Path.Geom.diffAngle(-math.pi / 4, +3 * math.pi / 4, "Climb") / math.pi, 4 / 4.0 ) self.assertRoughly( - Path.Geom.diffAngle(-math.pi / 4, -1 * math.pi / 4, "CW") / math.pi, 0 / 4.0 + Path.Geom.diffAngle(-math.pi / 4, -1 * math.pi / 4, "Climb") / math.pi, 0 / 4.0 ) self.assertRoughly( - Path.Geom.diffAngle(+math.pi / 4, +0 * math.pi / 4, "CCW") / math.pi, + Path.Geom.diffAngle(+math.pi / 4, +0 * math.pi / 4, "Conventional") / math.pi, 7 / 4.0, ) self.assertRoughly( - Path.Geom.diffAngle(+math.pi / 4, +3 * math.pi / 4, "CCW") / math.pi, + Path.Geom.diffAngle(+math.pi / 4, +3 * math.pi / 4, "Conventional") / math.pi, 2 / 4.0, ) self.assertRoughly( - Path.Geom.diffAngle(+math.pi / 4, -1 * math.pi / 4, "CCW") / math.pi, + Path.Geom.diffAngle(+math.pi / 4, -1 * math.pi / 4, "Conventional") / math.pi, 6 / 4.0, ) self.assertRoughly( - Path.Geom.diffAngle(-math.pi / 4, +0 * math.pi / 4, "CCW") / math.pi, + Path.Geom.diffAngle(-math.pi / 4, +0 * math.pi / 4, "Conventional") / math.pi, 1 / 4.0, ) self.assertRoughly( - Path.Geom.diffAngle(-math.pi / 4, +3 * math.pi / 4, "CCW") / math.pi, + Path.Geom.diffAngle(-math.pi / 4, +3 * math.pi / 4, "Conventional") / math.pi, 4 / 4.0, ) self.assertRoughly( - Path.Geom.diffAngle(-math.pi / 4, -1 * math.pi / 4, "CCW") / math.pi, + Path.Geom.diffAngle(-math.pi / 4, -1 * math.pi / 4, "Conventional") / math.pi, 0 / 4.0, ) @@ -499,7 +499,7 @@ class TestPathGeom(PathTestBase): ), p1, p2, - "CW", + "Climb", ) self.assertArc( Path.Geom.edgeForCmd( @@ -510,7 +510,7 @@ class TestPathGeom(PathTestBase): ), p2, p1, - "CCW", + "Conventional", ) def test30(self): diff --git a/src/Mod/CAM/Tests/TestPathHelixGenerator.py b/src/Mod/CAM/Tests/TestPathHelixGenerator.py index e3022ff36f..b2b3a380c0 100644 --- a/src/Mod/CAM/Tests/TestPathHelixGenerator.py +++ b/src/Mod/CAM/Tests/TestPathHelixGenerator.py @@ -44,7 +44,7 @@ def _resetArgs(): "step_over": 0.5, "tool_diameter": 5.0, "inner_radius": 0.0, - "direction": "CW", + "direction": "Climb", "startAt": "Inside", } diff --git a/src/Mod/CAM/Tests/TestPathProfile.py b/src/Mod/CAM/Tests/TestPathProfile.py index 8da8f2a9a9..c7549b91ec 100644 --- a/src/Mod/CAM/Tests/TestPathProfile.py +++ b/src/Mod/CAM/Tests/TestPathProfile.py @@ -121,7 +121,7 @@ class TestPathProfile(PathTestBase): profile.processCircles = True profile.processHoles = True profile.UseComp = True - profile.Direction = "CW" + profile.Direction = "Climb" _addViewProvider(profile) self.doc.recompute() @@ -158,7 +158,7 @@ class TestPathProfile(PathTestBase): profile.processCircles = True profile.processHoles = True profile.UseComp = False - profile.Direction = "CW" + profile.Direction = "Climb" _addViewProvider(profile) self.doc.recompute() @@ -179,9 +179,9 @@ class TestPathProfile(PathTestBase): self.assertTrue(expected_moves == operationMoves, "expected_moves: {}\noperationMoves: {}".format(expected_moves, operationMoves)) - + def test03(self): - """test03() Verify path generated on Face18, outside, + """test03() Verify path generated on Face18, outside, with compensation and extra offset -radius.""" # Instantiate a Profile operation and set Base Geometry @@ -196,7 +196,7 @@ class TestPathProfile(PathTestBase): profile.processCircles = True profile.processHoles = True profile.UseComp = True - profile.Direction = "CW" + profile.Direction = "Climb" profile.OffsetExtra = -profile.OpToolDiameter / 2.0 _addViewProvider(profile) self.doc.recompute() @@ -227,4 +227,3 @@ def _addViewProvider(profileOp): profileOp.ViewObject.Proxy = PathOpGui.ViewProvider( profileOp.ViewObject, cmdRes ) - diff --git a/src/Mod/CAM/libarea/kurve/Finite.cpp b/src/Mod/CAM/libarea/kurve/Finite.cpp index bc37792f45..48549e59b0 100644 --- a/src/Mod/CAM/libarea/kurve/Finite.cpp +++ b/src/Mod/CAM/libarea/kurve/Finite.cpp @@ -132,27 +132,10 @@ namespace geoff_geometry { FAILURE(L"OnSpan - properties no set, incorrect calling code"); } #endif -#if 0 - if(NullSpan) { - *t = 0.0; - return (p == p0); - } - if(p == p0) { - *t = 0.0; - return true; - } - - if(p == p1) { - *t = 1.0; - return true; - } -#endif bool ret; -// if(p == this->p0 || p == this->p1) return true; if(dir == LINEAR) { -#if 1 #if _DEBUG // check p is on line CLine cl(*this); @@ -160,19 +143,15 @@ namespace geoff_geometry { if( d > geoff_geometry::TOLERANCE) { FAILURE(L"OnSpan - point not on linear span, incorrect calling code"); } -#endif #endif Vector2d v0(p0, p); *t = vs * v0; -// ret = (*t > - geoff_geometry::TOLERANCE && *t < length + geoff_geometry::TOLERANCE); - *t = *t / length; ret = (*t >= 0 && *t <= 1.0 ); } else { // true if p lies on arc span sp (p must be on circle of span) -#if 1 #if _DEBUG // check that p lies on the arc double d = p.Dist(pc); @@ -180,7 +159,6 @@ namespace geoff_geometry { FAILURE(L"OnSpan - point not on circular span, incorrect calling code"); } -#endif #endif #if 0 // alt method (faster, but doesn't provide t) Vector2d v0(p0, p); @@ -390,14 +368,6 @@ namespace geoff_geometry { Vector3d vcp = *vl ^ v; double d = vcp.magnitude(); // l * sina return d; -#if 0 - // slower method requires 2 sqrts - Vector3d v(*p, *pf); - double magv = v.normalise(); - Vector3d cp = *vl ^ v; - double d = magv * cp.magnitude(); - return d; // l * sina -#endif } double Dist(const Span& sp, const Point& p , Point& pnear ) { @@ -431,12 +401,7 @@ namespace geoff_geometry { // check if projected point is on the arc if(sp.OnSpan(pnear)) return fabs(radiusp - sp.radius); - // double h1 = pnear.x - sp.p0.x ; - // double v1 = pnear.y - sp.p0.y ; - // double h2 = sp.p1.x - pnear.x ; - // double v2 = sp.p1.y - pnear.y ; - // if ( sp.dir * ( h1 * v2 - h2 * v1 ) >= 0 )return fabs(radiusp - sp.radius); - + // point not on arc so calc nearest end-point double ndist = p.Dist(sp.p0); double dist = p.Dist(sp.p1); @@ -609,55 +574,6 @@ namespace geoff_geometry { return true; return false; } -#if 0 - Span3d IsPtsSpan3d(const double* a, int n, double tolerance, double* deviation) { - // returns a span3d if all points are within tolerance - int np = n / 3; // number of points - if(np < 2) // Invalid span3d - return Span3d(); - Point3d sp = Point3d(&a[0]); - Point3d ep = Point3d(&a[n-3]); - Line line = IsPtsLine(a, n, tolerance, deviation); - if(line.ok) // it's a line - return Span3d(sp, ep); - - *deviation = 0; // cumulative deviation - Point3d mp = Point3d(&a[np / 2 * 3]); // mid point - Plane plane(sp, mp, ep); - if(plane.ok) { - // plane of the arc is ok - // calculate centre point - Vector3d vs(mp, sp); - vs.normalise(); - Vector3d ve(mp, ep); - ve.normalise(); - Vector3d rs = vs ^ plane.normal; - Vector3d re = ve ^ plane.normal; - - Line rsl(sp.Mid(mp), rs, false); - Line rel(ep.Mid(mp), re, false); - - Point3d pc; - Intof(rsl, rel, pc); - double radius = pc.Dist(sp); - - // check other points on circle - for(int i = 2; i < np - 1; i++) { - Point3d p(&a[i*3]); - double dp = fabs(plane.Dist(p)); - double dr = fabs(p.Dist(pc) - radius); -double tolerance = 10.0 * 1.0e-6; - if(dp > tolerance || dr > tolerance) { - return Span3d(); - } - - } - return Span3d(CW, plane.normal, sp, ep, pc); - - } - return Span3d(); - } -#endif Line IsPtsLine(const double* a, int n, double tolerance, double* deviation) { // returns a Line if all points are within tolerance diff --git a/src/Mod/Draft/CMakeLists.txt b/src/Mod/Draft/CMakeLists.txt index ec4d748304..3a70b64b33 100644 --- a/src/Mod/Draft/CMakeLists.txt +++ b/src/Mod/Draft/CMakeLists.txt @@ -79,6 +79,7 @@ SET(Draft_utilities draftutils/translate.py draftutils/messages.py draftutils/README.md + draftutils/grid_observer.py ) SET(Draft_functions diff --git a/src/Mod/Draft/InitGui.py b/src/Mod/Draft/InitGui.py index 8ed333f87a..72b2b09e0f 100644 --- a/src/Mod/Draft/InitGui.py +++ b/src/Mod/Draft/InitGui.py @@ -155,6 +155,8 @@ class DraftWorkbench(FreeCADGui.Workbench): dsb.show_draft_statusbar() import WorkingPlane WorkingPlane._view_observer_start() # Updates the draftToolBar when switching views. + from draftutils import grid_observer + grid_observer._view_observer_setup() FreeCAD.Console.PrintLog("Draft workbench activated.\n") def Deactivated(self): @@ -167,6 +169,8 @@ class DraftWorkbench(FreeCADGui.Workbench): dsb.hide_draft_statusbar() import WorkingPlane WorkingPlane._view_observer_stop() + from draftutils import grid_observer + grid_observer._view_observer_setup() FreeCAD.Console.PrintLog("Draft workbench deactivated.\n") def ContextMenu(self, recipient): diff --git a/src/Mod/Draft/WorkingPlane.py b/src/Mod/Draft/WorkingPlane.py index 2dadfe40d9..34d6480a6d 100644 --- a/src/Mod/Draft/WorkingPlane.py +++ b/src/Mod/Draft/WorkingPlane.py @@ -1246,7 +1246,7 @@ class PlaneGui(PlaneBase): if not FreeCAD.GuiUp: return False - sels = FreeCADGui.Selection.getSelectionEx("", 1) + sels = FreeCADGui.Selection.getSelectionEx("", 0) if not sels: return False diff --git a/src/Mod/Draft/draftobjects/shape2dview.py b/src/Mod/Draft/draftobjects/shape2dview.py index 8b7c9a363d..faed945a8c 100644 --- a/src/Mod/Draft/draftobjects/shape2dview.py +++ b/src/Mod/Draft/draftobjects/shape2dview.py @@ -198,6 +198,8 @@ class Shape2DView(DraftObject): def _get_shapes(self, shape, onlysolids=False): if onlysolids: return shape.Solids + if shape.isNull(): + return [] if shape.ShapeType == "Compound": return shape.SubShapes return [shape.copy()] diff --git a/src/Mod/Draft/draftutils/grid_observer.py b/src/Mod/Draft/draftutils/grid_observer.py new file mode 100644 index 0000000000..b873810393 --- /dev/null +++ b/src/Mod/Draft/draftutils/grid_observer.py @@ -0,0 +1,117 @@ +# *************************************************************************** +# * * +# * Copyright (c) 2024 Syres * +# * Copyright (c) 2024 Furgo * +# * * +# * This program is free software; you can redistribute it and/or modify * +# * it under the terms of the GNU Lesser General Public License (LGPL) * +# * as published by the Free Software Foundation; either version 2 of * +# * the License, or (at your option) any later version. * +# * for detail see the LICENCE text file. * +# * * +# * This program is distributed in the hope that it will be useful, * +# * but WITHOUT ANY WARRANTY; without even the implied warranty of * +# * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +# * GNU Library General Public License for more details. * +# * * +# * You should have received a copy of the GNU Library General Public * +# * License along with this program; if not, write to the Free Software * +# * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * +# * USA * +# * * +# *************************************************************************** +"""Provide the grid observer for the Draft and BIM workbenches. +""" + +import FreeCAD + + +# View observer code to update the Draft_ToggleGrid command button to reflect +# the grid's visibility status. +# Based on view observer code to update the Draft Tray. +if FreeCAD.GuiUp: + import FreeCADGui + from PySide import QtWidgets + from draftutils import gui_utils + from draftutils.todo import ToDo + + def _update_grid_gui(): + """Update function executed by the callback to refresh the Toggle Grid + button state on all toolbars and menus. + """ + + try: + # Get the active view. + view = gui_utils.get_3d_view() + + # If the active view is not a 3D view, uncheck the button. + if view is None: + _set_grid_button_state(False) + return + + # Otherwise, if there is a view, update the button's checked state. + + # Retrieve the associated grid for each MDI document. + # [1] is the index where the grid is stored in the + # trackers list. See setTrackers(). + view_idx = FreeCADGui.Snapper.trackers[0].index(view) + grid = FreeCADGui.Snapper.trackers[1][view_idx] + if grid.Visible: + _set_grid_button_state(True) + else: + _set_grid_button_state(False) + + except Exception: + pass + + def _view_observer_callback(): + """Callback function to update the Toggle Grid button. + + The update will only happen if either the Draft or BIM + workbenches are active. + """ + + ToDo.delay(_update_grid_gui, None) + + _view_observer_active = False + + def _view_observer_setup(): + """Start or stop the grid observer. + + Start: it is intended to happen when either the Draft or BIM workbench + are activated. The _view_observer_callback is connected to Qt's + subWindowActivated signal. The MDI area emits the subWindowActivated() + signal when the active window changes. + + Stop: This happens when either the Draft or BIM workbenches are + deactivated and is the reverse of the start operation. + """ + + mw = FreeCADGui.getMainWindow() + mdi = mw.findChild(QtWidgets.QMdiArea) + global _view_observer_active + if not _view_observer_active: + # Connect callback to subWindowActivated signal + mdi.subWindowActivated.connect(_view_observer_callback) + _view_observer_active = True + # Trigger initial grid button update + _view_observer_callback() + else: + mdi.subWindowActivated.disconnect(_view_observer_callback) + _view_observer_active = False + + def _set_grid_button_state(button_check): + """Sets the checked state of the Draft_ToggleGrid command. + This is then reflected on the associated "Toggle Grid" buttons of every + toolbar and menu. + + Args: + button_check (bool): if True, check the grid button. + + Returns: + None + """ + + action = FreeCADGui.Command.get("Draft_ToggleGrid").getAction()[0] + action.setCheckable(True) + action.setChecked(button_check) diff --git a/src/Mod/Fem/App/PreCompiled.h b/src/Mod/Fem/App/PreCompiled.h index 6985462aab..1adfb01bb4 100644 --- a/src/Mod/Fem/App/PreCompiled.h +++ b/src/Mod/Fem/App/PreCompiled.h @@ -125,6 +125,7 @@ #include #include #include +#include #include #include #include diff --git a/src/Mod/Fem/femsolver/calculix/write_constraint_rigidbody.py b/src/Mod/Fem/femsolver/calculix/write_constraint_rigidbody.py index 5d5e28c428..70d6933141 100644 --- a/src/Mod/Fem/femsolver/calculix/write_constraint_rigidbody.py +++ b/src/Mod/Fem/femsolver/calculix/write_constraint_rigidbody.py @@ -73,6 +73,11 @@ def write_constraint(f, femobj, rb_obj, ccxwriter): f.write("{},{},{},{}\n".format(ref_node_idx, *rb_obj.ReferenceNode)) f.write("{},{},{},{}\n".format(rot_node_idx, *rb_obj.ReferenceNode)) + f.write("*NSET,NSET={}_RefNode\n".format(rb_obj.Name)) + f.write("{},\n".format(ref_node_idx)) + f.write("*NSET,NSET={}_RotNode\n".format(rb_obj.Name)) + f.write("{},\n".format(rot_node_idx)) + kw_line = "*RIGID BODY, NSET={}, REF NODE={}, ROT NODE={}".format(rb_obj.Name, ref_node_idx, rot_node_idx) f.write(kw_line + "\n") diff --git a/src/Mod/Fem/femsolver/calculix/write_step_output.py b/src/Mod/Fem/femsolver/calculix/write_step_output.py index 2ad190e3cc..21819d7864 100644 --- a/src/Mod/Fem/femsolver/calculix/write_step_output.py +++ b/src/Mod/Fem/femsolver/calculix/write_step_output.py @@ -84,6 +84,25 @@ def write_step_output(f, ccxwriter): ): f.write("*NODE PRINT, NSET={}, TOTALS=ONLY\n".format(femobj["Object"].Name)) f.write("RF\n") + if ccxwriter.member.cons_rigidbody: + # reaction forces/moments for Constraint rigid body + f.write("** reaction forces/moments for Constraint rigid body\n") + for femobj in ccxwriter.member.cons_rigidbody: + # femobj --> dict, FreeCAD document object is femobj["Object"] + if ( + femobj["Object"].TranslationalModeX != "Free" + or femobj["Object"].TranslationalModeY != "Free" + or femobj["Object"].TranslationalModeZ != "Free" + ): + f.write("*NODE PRINT, NSET={}_RefNode, TOTALS=ONLY\n".format(femobj["Object"].Name)) + f.write("RF\n") + if ( + femobj["Object"].RotationalModeX != "Free" + or femobj["Object"].RotationalModeY != "Free" + or femobj["Object"].RotationalModeZ != "Free" + ): + f.write("*NODE PRINT, NSET={}_RotNode, TOTALS=ONLY\n".format(femobj["Object"].Name)) + f.write("RF\n") if ccxwriter.member.cons_fixed or ccxwriter.member.cons_displacement: f.write("\n") f.write("*OUTPUT, FREQUENCY={}".format(ccxwriter.solver_obj.OutputFrequency)) diff --git a/src/Mod/Import/App/AppImportPy.cpp b/src/Mod/Import/App/AppImportPy.cpp index ce5919f4c7..e233603d0a 100644 --- a/src/Mod/Import/App/AppImportPy.cpp +++ b/src/Mod/Import/App/AppImportPy.cpp @@ -157,9 +157,16 @@ private: hApp->NewDocument(TCollection_ExtendedString("MDTV-CAF"), hDoc); if (file.hasExtension({"stp", "step"})) { +#if OCC_VERSION_HEX >= 0x070800 + Resource_FormatType cp = Resource_FormatType_UTF8; +#endif try { Import::ReaderStep reader(file); +#if OCC_VERSION_HEX < 0x070800 reader.read(hDoc); +#else + reader.read(hDoc, cp); +#endif } catch (OSD_Exception& e) { Base::Console().Error("%s\n", e.GetMessageString()); diff --git a/src/Mod/Import/App/ReaderStep.cpp b/src/Mod/Import/App/ReaderStep.cpp index 47cbb48f5b..682a4dbf51 100644 --- a/src/Mod/Import/App/ReaderStep.cpp +++ b/src/Mod/Import/App/ReaderStep.cpp @@ -42,7 +42,11 @@ ReaderStep::ReaderStep(const Base::FileInfo& file) // NOLINT : file {file} {} +#if OCC_VERSION_HEX < 0x070800 void ReaderStep::read(Handle(TDocStd_Document) hDoc) // NOLINT +#else +void ReaderStep::read(Handle(TDocStd_Document) hDoc, Resource_FormatType codePage) // NOLINT +#endif { std::string utf8Name = file.filePath(); std::string name8bit = Part::encodeFilename(utf8Name); @@ -51,7 +55,14 @@ void ReaderStep::read(Handle(TDocStd_Document) hDoc) // NOLINT aReader.SetNameMode(true); aReader.SetLayerMode(true); aReader.SetSHUOMode(true); +#if OCC_VERSION_HEX < 0x070800 if (aReader.ReadFile(name8bit.c_str()) != IFSelect_RetDone) { +#else + Handle(StepData_StepModel) aStepModel = new StepData_StepModel; + aStepModel->InternalParameters.InitFromStatic(); + aStepModel->SetSourceCodePage(codePage); + if (aReader.ReadFile(name8bit.c_str(), aStepModel->InternalParameters) != IFSelect_RetDone) { +#endif throw Base::FileException("Cannot read STEP file", file); } diff --git a/src/Mod/Import/App/ReaderStep.h b/src/Mod/Import/App/ReaderStep.h index febd1760a3..7491c1f4d2 100644 --- a/src/Mod/Import/App/ReaderStep.h +++ b/src/Mod/Import/App/ReaderStep.h @@ -27,6 +27,8 @@ #include #include #include +#include +#include namespace Import { @@ -35,8 +37,11 @@ class ImportExport ReaderStep { public: explicit ReaderStep(const Base::FileInfo& file); - +#if OCC_VERSION_HEX < 0x070800 void read(Handle(TDocStd_Document) hDoc); +#else + void read(Handle(TDocStd_Document) hDoc, Resource_FormatType codePage); +#endif private: Base::FileInfo file; diff --git a/src/Mod/Import/Gui/AppImportGuiPy.cpp b/src/Mod/Import/Gui/AppImportGuiPy.cpp index 106cb0bd3b..5c45be8c50 100644 --- a/src/Mod/Import/Gui/AppImportGuiPy.cpp +++ b/src/Mod/Import/Gui/AppImportGuiPy.cpp @@ -164,6 +164,16 @@ private: if (mode < 0) { mode = ocaf.getMode(); } +#if OCC_VERSION_HEX >= 0x070800 + auto handle = App::GetApplication().GetParameterGroupByPath( + "User parameter:BaseApp/Preferences/Mod/Import/hSTEP"); + if (handle->GetBool("ReadShowDialogImport", false)) { + Gui::Command::doCommand(Gui::Command::Gui, + "Gui.showPreferences('Import-Export', 8)"); + } + Part::OCAF::ImportExportSettings settings; + Resource_FormatType cp = settings.getImportCodePage(); +#endif if (mode && !pcDoc->isSaved()) { auto gdoc = Gui::Application::Instance->getDocument(pcDoc); if (!gdoc->save()) { @@ -173,7 +183,11 @@ private: try { Import::ReaderStep reader(file); +#if OCC_VERSION_HEX < 0x070800 reader.read(hDoc); +#else + reader.read(hDoc, cp); +#endif } catch (OSD_Exception& e) { Base::Console().Error("%s\n", e.GetMessageString()); @@ -483,7 +497,11 @@ private: if (file.hasExtension({"stp", "step"})) { Import::ReaderStep reader(file); +#if OCC_VERSION_HEX < 0x070800 reader.read(hDoc); +#else + reader.read(hDoc, Resource_FormatType_UTF8); +#endif } else if (file.hasExtension({"igs", "iges"})) { Import::ReaderIges reader(file); diff --git a/src/Mod/Import/TestImportGui.py b/src/Mod/Import/TestImportGui.py index 9393c104e7..8f2d3f7d48 100644 --- a/src/Mod/Import/TestImportGui.py +++ b/src/Mod/Import/TestImportGui.py @@ -56,7 +56,7 @@ class ExportImportTest(unittest.TestCase): ImportGui.export([part], self.fileName) self.doc.clearDocument() - ImportGui.insert(name=self.fileName, docName=self.doc.Name, useLinkGroup=True) + ImportGui.insert(name=self.fileName, docName=self.doc.Name, merge=False, useLinkGroup=True) part_features = list(filter(lambda x: x.isDerivedFrom("Part::Feature"), self.doc.Objects)) self.assertEqual(len(part_features), 1) diff --git a/src/Mod/Part/App/OCAF/ImportExportSettings.cpp b/src/Mod/Part/App/OCAF/ImportExportSettings.cpp index b914de11fa..36dc9a7f71 100644 --- a/src/Mod/Part/App/OCAF/ImportExportSettings.cpp +++ b/src/Mod/Part/App/OCAF/ImportExportSettings.cpp @@ -22,7 +22,7 @@ #include "PreCompiled.h" #ifndef _PreComp_ -# include +#include #endif #include "ImportExportSettings.h" @@ -99,6 +99,48 @@ void ImportExportSettings::initIGES(Base::Reference hGrp) } } +#if OCC_VERSION_HEX >= 0x070800 + +void ImportExportSettings::setImportCodePage(int cpIndex) +{ + pGroup->SetInt("ImportCodePage", cpIndex); +} + +Resource_FormatType ImportExportSettings::getImportCodePage() const +{ + Resource_FormatType result; + int codePageIndex = pGroup->GetInt("ImportCodePage", 0); + int i=0; + for (const auto& codePageIt : codePageList) { + if (i == codePageIndex) + { + result = codePageIt.codePage; + break; + } + i++; + } + return result; +} + +std::list ImportExportSettings::getCodePageList() const +{ + return codePageList; +} + +void ImportExportSettings::setReadShowDialogImport(bool on) +{ + auto grp = pGroup->GetGroup("hSTEP"); + grp->SetBool("ReadShowDialogImport", on); +} + +bool ImportExportSettings::getReadShowDialogImport() const +{ + auto grp = pGroup->GetGroup("hSTEP"); + return grp->GetBool("ReadShowDialogImport", false); +} + +#endif + void ImportExportSettings::initSTEP(Base::Reference hGrp) { //STEP handling diff --git a/src/Mod/Part/App/OCAF/ImportExportSettings.h b/src/Mod/Part/App/OCAF/ImportExportSettings.h index 22c7294d2b..f9da619481 100644 --- a/src/Mod/Part/App/OCAF/ImportExportSettings.h +++ b/src/Mod/Part/App/OCAF/ImportExportSettings.h @@ -26,7 +26,10 @@ #include #include #include - +#include +#if OCC_VERSION_HEX >= 0x070800 +#include +#endif namespace Part { @@ -54,7 +57,12 @@ public: ObjectPerDocument = 3, ObjectPerDirectory = 4, }; - +#if OCC_VERSION_HEX >= 0x070800 + struct CodePage { + std::string codePageName; + Resource_FormatType codePage; + }; +#endif static void initialize(); ImportExportSettings(); @@ -94,6 +102,14 @@ public: void setImportMode(ImportMode); ImportMode getImportMode() const; +#if OCC_VERSION_HEX >= 0x070800 + void setReadShowDialogImport(bool); + bool getReadShowDialogImport() const; + + void setImportCodePage(int); + Resource_FormatType getImportCodePage() const; + std::list getCodePageList() const; +#endif private: static void initGeneral(Base::Reference hGrp); static void initSTEP(Base::Reference hGrp); @@ -103,6 +119,37 @@ private: mutable STEP::ImportExportSettingsPtr step; mutable IGES::ImportExportSettingsPtr iges; ParameterGrp::handle pGroup; +#if OCC_VERSION_HEX >= 0x070800 + std::list codePageList { + {"No conversion", Resource_FormatType_NoConversion}, + {"Multi-byte UTF-8 encoding", Resource_FormatType_UTF8}, + {"SJIS (Shift Japanese Industrial Standards) encoding", Resource_FormatType_SJIS}, + {"EUC (Extended Unix Code) ", Resource_FormatType_EUC}, + {"GB (Guobiao) encoding for Simplified Chinese", Resource_FormatType_GB}, + {"GBK (Unified Chinese) encoding", Resource_FormatType_GBK}, + {"Big5 (Traditional Chinese) encoding", Resource_FormatType_Big5}, + //{"active system-defined locale; this value is strongly NOT recommended to use", Resource_FormatType_SystemLocale}, + {"ISO 8859-1 (Western European) encoding", Resource_FormatType_iso8859_1}, + {"ISO 8859-2 (Central European) encoding", Resource_FormatType_iso8859_2}, + {"ISO 8859-3 (Turkish) encoding", Resource_FormatType_iso8859_3}, + {"ISO 8859-4 (Northern European) encoding", Resource_FormatType_iso8859_4}, + {"ISO 8859-5 (Cyrillic) encoding", Resource_FormatType_iso8859_5}, + {"ISO 8859-6 (Arabic) encoding", Resource_FormatType_iso8859_6}, + {"ISO 8859-7 (Greek) encoding", Resource_FormatType_iso8859_7}, + {"ISO 8859-8 (Hebrew) encoding", Resource_FormatType_iso8859_8}, + {"ISO 8859-9 (Turkish) encoding", Resource_FormatType_iso8859_9}, + {"ISO 850 (Western European) encoding", Resource_FormatType_CP850}, + {"CP1250 (Central European) encoding", Resource_FormatType_CP1250}, + {"CP1251 (Cyrillic) encoding", Resource_FormatType_CP1251}, + {"CP1252 (Western European) encoding", Resource_FormatType_CP1252}, + {"CP1253 (Greek) encoding", Resource_FormatType_CP1253}, + {"CP1254 (Turkish) encoding", Resource_FormatType_CP1254}, + {"CP1255 (Hebrew) encoding", Resource_FormatType_CP1255}, + {"CP1256 (Arabic) encoding", Resource_FormatType_CP1256}, + {"CP1257 (Baltic) encoding", Resource_FormatType_CP1257}, + {"CP1258 (Vietnamese) encoding", Resource_FormatType_CP1258}, + }; +#endif }; } //namespace OCAF diff --git a/src/Mod/Part/Gui/DlgImportStep.cpp b/src/Mod/Part/Gui/DlgImportStep.cpp index a0438fff90..6a0b9bd71a 100644 --- a/src/Mod/Part/Gui/DlgImportStep.cpp +++ b/src/Mod/Part/Gui/DlgImportStep.cpp @@ -27,7 +27,7 @@ #include "DlgImportStep.h" #include "ui_DlgImportStep.h" - +#include using namespace PartGui; @@ -36,7 +36,6 @@ DlgImportStep::DlgImportStep(QWidget* parent) , ui(new Ui_DlgImportStep) { ui->setupUi(this); - Part::OCAF::ImportExportSettings settings; ui->checkBoxMergeCompound->setChecked(settings.getReadShapeCompoundMode()); ui->checkBoxImportHiddenObj->setChecked(settings.getImportHiddenObject()); @@ -45,6 +44,20 @@ DlgImportStep::DlgImportStep(QWidget* parent) ui->checkBoxReduceObjects->setChecked(settings.getReduceObjects()); ui->checkBoxExpandCompound->setChecked(settings.getExpandCompound()); ui->checkBoxShowProgress->setChecked(settings.getShowProgress()); +#if OCC_VERSION_HEX >= 0x070800 + ui->checkBoxShowOnImport->setChecked(settings.getReadShowDialogImport()); + std::list codepagelist; + codepagelist = settings.getCodePageList(); + for (const auto& codePage : codepagelist) { + ui->comboBoxImportCodePage->addItem(QString::fromStdString(codePage.codePageName)); + } +#else + // hide options that not supported in this OCCT version (7.8.0) + ui->label_6->hide(); + ui->checkBoxShowOnImport->hide(); + ui->comboBoxImportCodePage->hide(); +#endif + } /** @@ -55,6 +68,10 @@ DlgImportStep::~DlgImportStep() = default; void DlgImportStep::saveSettings() { // (h)STEP of Import module +#if OCC_VERSION_HEX >= 0x070800 + ui->checkBoxShowOnImport->onSave(); + ui->comboBoxImportCodePage->onSave(); +#endif ui->checkBoxMergeCompound->onSave(); ui->checkBoxImportHiddenObj->onSave(); ui->checkBoxUseLinkGroup->onSave(); @@ -68,6 +85,10 @@ void DlgImportStep::saveSettings() void DlgImportStep::loadSettings() { // (h)STEP of Import module +#if OCC_VERSION_HEX >= 0x070800 + ui->checkBoxShowOnImport->onRestore(); + ui->comboBoxImportCodePage->onRestore(); +#endif ui->checkBoxMergeCompound->onRestore(); ui->checkBoxImportHiddenObj->onRestore(); ui->checkBoxUseLinkGroup->onRestore(); diff --git a/src/Mod/Part/Gui/DlgImportStep.ui b/src/Mod/Part/Gui/DlgImportStep.ui index 3c943c1c00..00661ca8b7 100644 --- a/src/Mod/Part/Gui/DlgImportStep.ui +++ b/src/Mod/Part/Gui/DlgImportStep.ui @@ -7,7 +7,7 @@ 0 0 445 - 292 + 365 @@ -20,6 +20,22 @@ Import + + + + If checked, this Dialog will be shown during Import + + + Show this Dialog when importing + + + ReadShowDialogImport + + + Mod/Import/hSTEP + + + @@ -133,6 +149,42 @@ during file reading (slower but higher details). + + + + + + true + + + + 197 + 0 + + + + CodePage + + + + + + + + 0 + 0 + + + + ImportCodePage + + + Mod/Import + + + + + @@ -208,7 +260,6 @@ during file reading (slower but higher details). checkBoxImportHiddenObj checkBoxReduceObjects checkBoxExpandCompound - checkBoxShowProgress checkBoxUseBaseName comboBoxImportMode diff --git a/src/Mod/PartDesign/App/FeatureLoft.cpp b/src/Mod/PartDesign/App/FeatureLoft.cpp index 2a3612d3ba..f77482a1ad 100644 --- a/src/Mod/PartDesign/App/FeatureLoft.cpp +++ b/src/Mod/PartDesign/App/FeatureLoft.cpp @@ -523,7 +523,7 @@ App::DocumentObjectExecReturn *Loft::execute(void) try { boolOp.makeElementBoolean(maker, {base,result}); } - catch(Standard_Failure &e) { + catch(Standard_Failure&) { return new App::DocumentObjectExecReturn(QT_TRANSLATE_NOOP("Exception", "Failed to perform boolean operation")); } boolOp = this->getSolid(boolOp); diff --git a/src/Mod/PartDesign/App/FeaturePrimitive.cpp b/src/Mod/PartDesign/App/FeaturePrimitive.cpp index a0b07ba9b1..24a51b3836 100644 --- a/src/Mod/PartDesign/App/FeaturePrimitive.cpp +++ b/src/Mod/PartDesign/App/FeaturePrimitive.cpp @@ -126,7 +126,7 @@ App::DocumentObjectExecReturn* FeaturePrimitive::execute(const TopoDS_Shape& pri try { boolOp.makeElementBoolean(maker, {base, primitiveShape}); } - catch (Standard_Failure& e) { + catch (Standard_Failure&) { return new App::DocumentObjectExecReturn( QT_TRANSLATE_NOOP("Exception", "Failed to perform boolean operation")); } diff --git a/src/Mod/PartDesign/Gui/TaskExtrudeParameters.cpp b/src/Mod/PartDesign/Gui/TaskExtrudeParameters.cpp index 7ab4272947..409e30c1a9 100644 --- a/src/Mod/PartDesign/Gui/TaskExtrudeParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskExtrudeParameters.cpp @@ -247,8 +247,6 @@ void TaskExtrudeParameters::connectSlots() this, &TaskExtrudeParameters::onUpdateView); connect(ui->buttonShapeFace, &QToolButton::toggled, this, &TaskExtrudeParameters::onSelectShapeFacesToggle); - connect(ui->listWidgetReferences, &QListWidget::item, - this, &TaskExtrudeParameters::onSelectShapeFacesToggle); connect(unselectShapeFaceAction, &QAction::triggered, this, &TaskExtrudeParameters::onUnselectShapeFacesTrigger); } diff --git a/src/Mod/Sketcher/Gui/DrawSketchHandlerCircle.h b/src/Mod/Sketcher/Gui/DrawSketchHandlerCircle.h index c9028a13cf..e7a5310acc 100644 --- a/src/Mod/Sketcher/Gui/DrawSketchHandlerCircle.h +++ b/src/Mod/Sketcher/Gui/DrawSketchHandlerCircle.h @@ -511,22 +511,22 @@ void DSHCircleController::adaptParameters(Base::Vector2d onSketchPos) case SelectMode::SeekSecond: { if (handler->constructionMethod() == DrawSketchHandlerCircle::ConstructionMethod::Center) { - if (!onViewParameters[OnViewParameter::Third]->isSet) { - ParameterGrp::handle hGrp = App::GetApplication().GetParameterGroupByPath( - "User parameter:BaseApp/Preferences/Mod/Sketcher/dimensioning"); - bool dimensioningDiameter = hGrp->GetBool("DimensioningDiameter", true); - bool dimensioningRadius = hGrp->GetBool("DimensioningRadius", true); + ParameterGrp::handle hGrp = App::GetApplication().GetParameterGroupByPath( + "User parameter:BaseApp/Preferences/Mod/Sketcher/dimensioning"); + bool dimDiameter = hGrp->GetBool("DimensioningDiameter", true); + bool dimRadius = hGrp->GetBool("DimensioningRadius", true); + bool useRadius = dimRadius && !dimDiameter; - if (dimensioningRadius && !dimensioningDiameter) { - setOnViewParameterValue(OnViewParameter::Third, handler->radius); - } - else { - setOnViewParameterValue(OnViewParameter::Third, handler->radius * 2); - } + if (!onViewParameters[OnViewParameter::Third]->isSet) { + double val = handler->radius * (useRadius ? 1 : 2); + setOnViewParameterValue(OnViewParameter::Third, val); } Base::Vector3d start = toVector3d(handler->centerPoint); Base::Vector3d end = toVector3d(onSketchPos); + if (!useRadius) { + start = toVector3d(handler->centerPoint - (onSketchPos - handler->centerPoint)); + } onViewParameters[OnViewParameter::Third]->setPoints(start, end); } diff --git a/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp b/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp index 2a2282fa91..404309ae82 100644 --- a/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp +++ b/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp @@ -632,8 +632,7 @@ void ViewProviderSketch::activateHandler(DrawSketchHandler* newHandler) // make sure receiver has focus so immediately pressing Escape will be handled by // ViewProviderSketch::keyPressed() and dismiss the active handler, and not the entire // sketcher editor - Gui::MDIView* mdi = Gui::Application::Instance->activeDocument()->getActiveView(); - mdi->setFocus(); + ensureFocus(); } void ViewProviderSketch::deactivateHandler() @@ -660,6 +659,9 @@ void ViewProviderSketch::purgeHandler() viewer = static_cast(view)->getViewer(); viewer->setSelectionEnabled(false); } + + // Give back the focus to the MDI to make sure VPSketch receive keyboard events. + ensureFocus(); } void ViewProviderSketch::setAxisPickStyle(bool on) @@ -700,9 +702,8 @@ void ViewProviderSketch::moveCursorToSketchPoint(Base::Vector2d point) void ViewProviderSketch::ensureFocus() { - Gui::MDIView* mdi = Gui::Application::Instance->activeDocument()->getActiveView(); - mdi->setFocus(); + mdi->setFocus(); } void ViewProviderSketch::preselectAtPoint(Base::Vector2d point) @@ -3140,6 +3141,10 @@ bool ViewProviderSketch::setEdit(int ModNum) Workbench::enterEditMode(); + // Give focus to the MDI so that keyboard events are caught after starting edit. + // Else pressing ESC right after starting edit will not be caught to exit edit mode. + ensureFocus(); + return true; } diff --git a/src/Mod/Start/Gui/CMakeLists.txt b/src/Mod/Start/Gui/CMakeLists.txt index a6417f89d1..cf1e8e2376 100644 --- a/src/Mod/Start/Gui/CMakeLists.txt +++ b/src/Mod/Start/Gui/CMakeLists.txt @@ -76,9 +76,9 @@ SET(StartGuiIcon_SVG ) SET(StartGuiThumbnail_PNG - Resources/thumbnails/Classic512.png - Resources/thumbnails/OpenDark512.png - Resources/thumbnails/OpenLight512.png + Resources/thumbnails/Theme_thumbnail_classic.png + Resources/thumbnails/Theme_thumbnail_dark.png + Resources/thumbnails/Theme_thumbnail_light.png ) # TODO: Evaluate PCH use with Qt6/QtQuick/Qml diff --git a/src/Mod/Start/Gui/Resources/Start.qrc b/src/Mod/Start/Gui/Resources/Start.qrc index bb09223edc..e02454d61d 100644 --- a/src/Mod/Start/Gui/Resources/Start.qrc +++ b/src/Mod/Start/Gui/Resources/Start.qrc @@ -2,8 +2,8 @@ icons/StartCommandIcon.svg icons/PartDesignWorkbench.svg - thumbnails/Classic512.png - thumbnails/OpenLight512.png - thumbnails/OpenDark512.png + thumbnails/Theme_thumbnail_classic.png + thumbnails/Theme_thumbnail_light.png + thumbnails/Theme_thumbnail_dark.png diff --git a/src/Mod/Start/Gui/Resources/thumbnails/Classic512.png b/src/Mod/Start/Gui/Resources/thumbnails/Classic512.png deleted file mode 100644 index 367c5159da..0000000000 Binary files a/src/Mod/Start/Gui/Resources/thumbnails/Classic512.png and /dev/null differ diff --git a/src/Mod/Start/Gui/Resources/thumbnails/OpenDark512.png b/src/Mod/Start/Gui/Resources/thumbnails/OpenDark512.png deleted file mode 100644 index 3dfef600a2..0000000000 Binary files a/src/Mod/Start/Gui/Resources/thumbnails/OpenDark512.png and /dev/null differ diff --git a/src/Mod/Start/Gui/Resources/thumbnails/OpenLight512.png b/src/Mod/Start/Gui/Resources/thumbnails/OpenLight512.png deleted file mode 100644 index 9d659d267c..0000000000 Binary files a/src/Mod/Start/Gui/Resources/thumbnails/OpenLight512.png and /dev/null differ diff --git a/src/Mod/Start/Gui/Resources/thumbnails/Theme_thumbnail_classic.png b/src/Mod/Start/Gui/Resources/thumbnails/Theme_thumbnail_classic.png new file mode 100644 index 0000000000..6d08925bd8 Binary files /dev/null and b/src/Mod/Start/Gui/Resources/thumbnails/Theme_thumbnail_classic.png differ diff --git a/src/Mod/Start/Gui/Resources/thumbnails/Theme_thumbnail_dark.png b/src/Mod/Start/Gui/Resources/thumbnails/Theme_thumbnail_dark.png new file mode 100644 index 0000000000..b1b518829e Binary files /dev/null and b/src/Mod/Start/Gui/Resources/thumbnails/Theme_thumbnail_dark.png differ diff --git a/src/Mod/Start/Gui/Resources/thumbnails/Theme_thumbnail_light.png b/src/Mod/Start/Gui/Resources/thumbnails/Theme_thumbnail_light.png new file mode 100644 index 0000000000..c137cd8869 Binary files /dev/null and b/src/Mod/Start/Gui/Resources/thumbnails/Theme_thumbnail_light.png differ diff --git a/src/Mod/Start/Gui/Resources/thumbnails/Thumbnails_themes.svg b/src/Mod/Start/Gui/Resources/thumbnails/Thumbnails_themes.svg new file mode 100644 index 0000000000..d184f6fac7 --- /dev/null +++ b/src/Mod/Start/Gui/Resources/thumbnails/Thumbnails_themes.svg @@ -0,0 +1,2845 @@ + + + +darklightclassic diff --git a/src/Mod/Start/Gui/ThemeSelectorWidget.cpp b/src/Mod/Start/Gui/ThemeSelectorWidget.cpp index e8eaadb6bc..5a11316979 100644 --- a/src/Mod/Start/Gui/ThemeSelectorWidget.cpp +++ b/src/Mod/Start/Gui/ThemeSelectorWidget.cpp @@ -56,12 +56,12 @@ void ThemeSelectorWidget::setupButtons(QBoxLayout* layout) return; } std::map themeMap {{Theme::Classic, tr("Classic")}, - {Theme::Light, tr("Light")}, - {Theme::Dark, tr("Dark")}}; + {Theme::Dark, tr("Dark theme")}, + {Theme::Light, tr("Light theme")}}; std::map iconMap { - {Theme::Classic, QIcon(QLatin1String(":/thumbnails/Classic512.png"))}, - {Theme::Light, QIcon(QLatin1String(":/thumbnails/OpenLight512.png"))}, - {Theme::Dark, QIcon(QLatin1String(":/thumbnails/OpenDark512.png"))}}; + {Theme::Classic, QIcon(QLatin1String(":/thumbnails/Theme_thumbnail_classic.png"))}, + {Theme::Light, QIcon(QLatin1String(":/thumbnails/Theme_thumbnail_light.png"))}, + {Theme::Dark, QIcon(QLatin1String(":/thumbnails/Theme_thumbnail_dark.png"))}}; auto hGrp = App::GetApplication().GetParameterGroupByPath( "User parameter:BaseApp/Preferences/MainWindow"); auto styleSheetName = QString::fromStdString(hGrp->GetASCII("StyleSheet")); @@ -77,12 +77,12 @@ void ThemeSelectorWidget::setupButtons(QBoxLayout* layout) button->setChecked(true); } else if (theme.first == Theme::Light - && styleSheetName.contains(QLatin1String("light"), + && styleSheetName.contains(QLatin1String("Light theme"), Qt::CaseSensitivity::CaseInsensitive)) { button->setChecked(true); } else if (theme.first == Theme::Dark - && styleSheetName.contains(QLatin1String("dark"), + && styleSheetName.contains(QLatin1String("Dark theme"), Qt::CaseSensitivity::CaseInsensitive)) { button->setChecked(true); } @@ -116,10 +116,10 @@ void ThemeSelectorWidget::themeChanged(Theme newTheme) prefPackManager->apply("Classic"); break; case Theme::Dark: - prefPackManager->apply("Dark"); + prefPackManager->apply("Dark theme"); break; case Theme::Light: - prefPackManager->apply("Light"); + prefPackManager->apply("Light theme"); break; } } @@ -136,7 +136,7 @@ void ThemeSelectorWidget::retranslateUi() { _titleLabel->setText(QLatin1String("

") + tr("Theme") + QLatin1String("

")); _descriptionLabel->setText(tr("More themes are available online using the Addon Manager")); + _buttons[static_cast(Theme::Dark)]->setText(tr("Dark theme", "Visual theme name")); + _buttons[static_cast(Theme::Light)]->setText(tr("Light theme", "Visual theme name")); _buttons[static_cast(Theme::Classic)]->setText(tr("Classic", "Visual theme name")); - _buttons[static_cast(Theme::Light)]->setText(tr("Light", "Visual theme name")); - _buttons[static_cast(Theme::Dark)]->setText(tr("Dark", "Visual theme name")); } diff --git a/src/Mod/Start/Gui/ThemeSelectorWidget.h b/src/Mod/Start/Gui/ThemeSelectorWidget.h index f7d079f7ae..d555c72bec 100644 --- a/src/Mod/Start/Gui/ThemeSelectorWidget.h +++ b/src/Mod/Start/Gui/ThemeSelectorWidget.h @@ -36,9 +36,9 @@ namespace StartGui enum class Theme { - Classic, + Dark, Light, - Dark + Classic }; /// A widget to allow selection of the UI theme (color scheme). diff --git a/src/Mod/TechDraw/App/DrawDimHelper.cpp b/src/Mod/TechDraw/App/DrawDimHelper.cpp index e07968d1a7..cb445b9811 100644 --- a/src/Mod/TechDraw/App/DrawDimHelper.cpp +++ b/src/Mod/TechDraw/App/DrawDimHelper.cpp @@ -336,7 +336,11 @@ DrawDimHelper::minMax3d(DrawViewPart* dvp, ReferenceVector references, int direc TopoDS_Compound comp; builder.MakeCompound(comp); for (auto& ref : references) { - builder.Add(comp, ref.getGeometry()); + auto tempGeom = ref.getGeometry(); + if (tempGeom.IsNull()) { + continue; + } + builder.Add(comp, tempGeom); } Base::Vector3d centroid = dvp->getOriginalCentroid(); TopoDS_Shape centeredShape =//this result is a throw away. We will work with comp. diff --git a/src/Mod/TechDraw/App/DrawViewPart.cpp b/src/Mod/TechDraw/App/DrawViewPart.cpp index 9e39ce5af5..544ef9837f 100644 --- a/src/Mod/TechDraw/App/DrawViewPart.cpp +++ b/src/Mod/TechDraw/App/DrawViewPart.cpp @@ -387,7 +387,12 @@ void DrawViewPart::onHlrFinished() m_tempGeometryObject = nullptr; //superfluous? } if (!geometryObject) { - throw Base::RuntimeError("DrawViewPart has lost its geometry"); + throw Base::RuntimeError("DrawViewPart has lost its geometry object"); + } + + if (!hasGeometry()) { + Base::Console().Error("TechDraw did not retrieve any geometry for %s/%s\n", + getNameInDocument(), Label.getValue()); } //the last hlr related task is to make a bbox of the results diff --git a/src/Mod/TechDraw/App/Geometry.cpp b/src/Mod/TechDraw/App/Geometry.cpp index d8fe538f30..749ba0d4ee 100644 --- a/src/Mod/TechDraw/App/Geometry.cpp +++ b/src/Mod/TechDraw/App/Geometry.cpp @@ -532,7 +532,7 @@ BaseGeomPtr BaseGeom::baseFactory(TopoDS_Edge edge) BSplinePtr bspline = std::make_shared(edge); if (bspline->isLine()) { result = std::make_shared(edge); - } else { + } else if (bspline->isCircle()) { circEdge = bspline->asCircle(isArc); if (!circEdge.IsNull()) { if (isArc) { @@ -540,20 +540,20 @@ BaseGeomPtr BaseGeom::baseFactory(TopoDS_Edge edge) } else { result = std::make_shared(circEdge); } - } else { -// Base::Console().Message("Geom::baseFactory - circEdge is Null\n"); - result = bspline; - } + } + } else { +// Base::Console().Message("Geom::baseFactory - circEdge is Null\n"); + result = bspline; } break; } catch (const Standard_Failure& e) { - Base::Console().Error("Geom::baseFactory - OCC error - %s - while making spline\n", + Base::Console().Log("Geom::baseFactory - OCC error - %s - while making spline\n", e.GetMessageString()); break; } catch (...) { - Base::Console().Error("Geom::baseFactory - unknown error occurred while making spline\n"); + Base::Console().Log("Geom::baseFactory - unknown error occurred while making spline\n"); break; } break; } // end bspline case @@ -1593,7 +1593,7 @@ bool GeometryUtils::getCircleParms(TopoDS_Edge occEdge, double& radius, Base::Ve sumCenter += DrawUtil::toVector3d(curveCenter); } catch (Standard_Failure&) { - Base::Console().Error("OCC error. Could not interpret BSpline as Circle\n"); + // Base::Console().Error("OCC error. Could not interpret BSpline as Circle\n"); return false; } Base::Vector3d avgCenter = sumCenter/testCount; diff --git a/src/Mod/TechDraw/Gui/CommandCreateDims.cpp b/src/Mod/TechDraw/Gui/CommandCreateDims.cpp index a6b1494f14..e388663b3b 100644 --- a/src/Mod/TechDraw/Gui/CommandCreateDims.cpp +++ b/src/Mod/TechDraw/Gui/CommandCreateDims.cpp @@ -2513,6 +2513,19 @@ void execExtent(Gui::Command* cmd, const std::string& dimType) TechDraw::DrawViewPart* partFeat = TechDraw::getReferencesFromSelection(references2d, references3d); + // if sticky selection is in use we may get confusing selections that appear to + // include both 2d and 3d geometry for the extent dim. + if (!references3d.empty()) { + for (auto& ref : references2d) { + if (!ref.getSubName().empty()) { + QMessageBox::warning(Gui::getMainWindow(), + QObject::tr("Incorrect selection"), + QObject::tr("Selection contains both 2d and 3d geometry")); + return; + } + } + } + //Define the geometric configuration required for a extent dimension StringVector acceptableGeometry({"Edge"}); std::vector minimumCounts({1}); diff --git a/src/Mod/TechDraw/Gui/DimensionValidators.cpp b/src/Mod/TechDraw/Gui/DimensionValidators.cpp index 0e2daadc29..2b7ffd02d5 100644 --- a/src/Mod/TechDraw/Gui/DimensionValidators.cpp +++ b/src/Mod/TechDraw/Gui/DimensionValidators.cpp @@ -59,6 +59,7 @@ TechDraw::DrawViewPart* TechDraw::getReferencesFromSelection(ReferenceVector& re //subName to a null string to avoid later misunderstandings. ReferenceEntry ref(dvp, std::string()); references2d.push_back(ref); + continue; } for (auto& sub : selItem.getSubNames()) { ReferenceEntry ref(dvp, sub); @@ -192,7 +193,6 @@ DimensionGeometryType TechDraw::validateDimSelection3d( } } - //check for invalid geometry descriptors in the subNames std::unordered_set acceptableGeometrySet(acceptableGeometry.begin(), acceptableGeometry.end()); diff --git a/src/Mod/TechDraw/Gui/Grabber3d.cpp b/src/Mod/TechDraw/Gui/Grabber3d.cpp index 85c8139352..d370c70bfb 100644 --- a/src/Mod/TechDraw/Gui/Grabber3d.cpp +++ b/src/Mod/TechDraw/Gui/Grabber3d.cpp @@ -55,14 +55,8 @@ void Grabber3d::quickView(View3DInventor* view3d, Base::Console().Warning("G3d::quickView - could not create viewer - returning\n"); return; } - //figure out the size of the active MdiView - SbViewportRegion vport(viewer->getSoRenderManager()->getViewportRegion()); - SbVec2s vpSize = vport.getViewportSizePixels(); - short width; - short height; - vpSize.getValue(width, height); int samples = 8; //magic number from Gui::View3DInventorViewer - viewer->savePicture(width, height, samples, bgColor, image); + viewer->savePicture(image.width(), image.height(), samples, bgColor, image); } diff --git a/src/Mod/TechDraw/Gui/TaskActiveView.cpp b/src/Mod/TechDraw/Gui/TaskActiveView.cpp index bcd2c7b657..75147a4d14 100644 --- a/src/Mod/TechDraw/Gui/TaskActiveView.cpp +++ b/src/Mod/TechDraw/Gui/TaskActiveView.cpp @@ -45,12 +45,16 @@ #include "ui_TaskActiveView.h" #include "Grabber3d.h" #include "ViewProviderImage.h" +#include "Rez.h" using namespace Gui; using namespace TechDraw; using namespace TechDrawGui; +constexpr int SXGAWidth{1280}; +constexpr int SXGAHeight{1024}; + //ctor for creation TaskActiveView::TaskActiveView(TechDraw::DrawPage* pageFeat) : ui(new Ui_TaskActiveView), m_pageFeat(pageFeat), m_imageFeat(nullptr), m_btnOK(nullptr), @@ -62,6 +66,7 @@ TaskActiveView::TaskActiveView(TechDraw::DrawPage* pageFeat) ui->qsbHeight->setUnit(Base::Unit::Length); setUiPrimary(); + connect(ui->cbCrop, &QCheckBox::clicked, this, &TaskActiveView::onCropChanged); } TaskActiveView::~TaskActiveView() {} @@ -84,6 +89,11 @@ void TaskActiveView::setUiPrimary() { // Base::Console().Message("TAV::setUiPrimary()\n"); setWindowTitle(QObject::tr("ActiveView to TD View")); + ui->cbCrop->setChecked(false); + enableCrop(false); + // cropping is in mm, but image size is in pixels/scene units + ui->qsbWidth->setValue(Rez::appX(SXGAWidth)); + ui->qsbHeight->setValue(Rez::appX(SXGAHeight)); } void TaskActiveView::blockButtons(bool b) { Q_UNUSED(b); } @@ -180,9 +190,15 @@ TechDraw::DrawViewImage* TaskActiveView::createActiveView() bg = QColor(Qt::transparent); } - QImage image(100, 100, - QImage::Format_RGB32); //arbitrary initial image size. quickView will use - //MdiView size in pixels + int imageWidth{SXGAWidth}; + int imageHeight{SXGAHeight}; + if (ui->cbCrop->isChecked()) { + imageWidth = Rez::guiX(ui->qsbWidth->rawValue()); + imageHeight = Rez::guiX(ui->qsbHeight->rawValue()); + } + + QImage image(imageWidth, imageHeight, + QImage::Format_RGB32); //arbitrary initial image size. image.fill(QColor(Qt::transparent)); Grabber3d::quickView(view3d, bg, image); bool success = image.save(Base::Tools::fromStdString(tempName)); @@ -220,6 +236,17 @@ TechDraw::DrawViewImage* TaskActiveView::createActiveView() return newImg; } +void TaskActiveView::onCropChanged() +{ + enableCrop(ui->cbCrop->isChecked()); +} + +void TaskActiveView::enableCrop(bool state) +{ + ui->qsbHeight->setEnabled(state); + ui->qsbWidth->setEnabled(state); +} + //****************************************************************************** void TaskActiveView::saveButtons(QPushButton* btnOK, QPushButton* btnCancel) diff --git a/src/Mod/TechDraw/Gui/TaskActiveView.h b/src/Mod/TechDraw/Gui/TaskActiveView.h index b07bff267d..556598440b 100644 --- a/src/Mod/TechDraw/Gui/TaskActiveView.h +++ b/src/Mod/TechDraw/Gui/TaskActiveView.h @@ -70,6 +70,10 @@ protected: void setUiPrimary(void); TechDraw::DrawViewImage* createActiveView(); + void enableCrop(bool state); + +private Q_SLOTS: + void onCropChanged(); private: std::unique_ptr ui; @@ -80,6 +84,7 @@ private: QPushButton* m_btnOK; QPushButton* m_btnCancel; + }; diff --git a/src/Tools/dmg_settings.py b/src/Tools/dmg_settings.py new file mode 100644 index 0000000000..5be8ee57b3 --- /dev/null +++ b/src/Tools/dmg_settings.py @@ -0,0 +1,6 @@ +files = [f"{containing_folder}/FreeCAD.app"] +symlinks = {"Applications": "/Applications"} +badge_icon = f"{containing_folder}/FreeCAD.app/Contents/Resources/freecad.icns" +window_rect = ((200, 200), (600, 400)) +icon_locations = {"FreeCAD.app": (180, 150), "Applications": (420, 150)} +size = "3g" diff --git a/src/Tools/macos_sign_and_notarize.sh b/src/Tools/macos_sign_and_notarize.sh index 77ee2d6028..4e3c18bfdc 100644 --- a/src/Tools/macos_sign_and_notarize.sh +++ b/src/Tools/macos_sign_and_notarize.sh @@ -53,7 +53,8 @@ run_codesign "${CONTAINING_FOLDER}/FreeCAD.app" # Create a disk image from the folder DMG_NAME="FreeCAD-${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}-mac-${ARCH}.dmg" echo "Creating disk image ${DMG_NAME}" -hdiutil create -srcfolder "${CONTAINING_FOLDER}" "${DMG_NAME}" +pip3 install "dmgbuild[badge_icons]>=1.6.0,<1.7.0" +dmgbuild -s dmg_settings.py -Dcontaining_folder="${CONTAINING_FOLDER}" "FreeCAD" "${DMG_NAME}.dmg" # Submit it for notarization (requires that an App Store API Key has been set up in the notarytool) xcrun notarytool submit --wait --keychain-profile "FreeCAD" ${DMG_NAME}