diff --git a/src/Gui/OverlayWidgets.cpp b/src/Gui/OverlayWidgets.cpp index 9bfe867238..a0f3fd38d1 100644 --- a/src/Gui/OverlayWidgets.cpp +++ b/src/Gui/OverlayWidgets.cpp @@ -440,29 +440,34 @@ OverlayTabWidget::OverlayTabWidget(QWidget *parent, Qt::DockWidgetArea pos) void OverlayTabWidget::refreshIcons() { - 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); - break; - case Qt::RightDockWidgetArea: - actAutoHide.setIcon(pxAutoHide.transformed(QTransform().scale(-1,1))); - break; - case Qt::TopDockWidgetArea: - actAutoHide.setIcon(pxAutoHide.transformed(QTransform().rotate(90))); - break; - case Qt::BottomDockWidgetArea: - actAutoHide.setIcon(pxAutoHide.transformed(QTransform().rotate(-90))); - break; - default: - break; + auto curStyleSheet = + App::GetApplication() + .GetParameterGroupByPath("User parameter:BaseApp/Preferences/MainWindow") + ->GetASCII("StyleSheet", "None"); + + QPixmap pxAutoHide; + + if (isStyleSheetDark(curStyleSheet)) { + actOverlay.setIcon(BitmapFactory().pixmap("qss:overlay/icons/overlay_light.svg")); + actNoAutoMode.setIcon(BitmapFactory().pixmap("qss:overlay/icons/mode_light.svg")); + actTaskShow.setIcon(BitmapFactory().pixmap("qss:overlay/icons/taskshow_light.svg")); + actEditShow.setIcon(BitmapFactory().pixmap("qss:overlay/icons/editshow_light.svg")); + actEditHide.setIcon(BitmapFactory().pixmap("qss:overlay/icons/edithide_light.svg")); + actTransparent.setIcon(BitmapFactory().pixmap("qss:overlay/icons/transparent_light.svg")); + pxAutoHide = BitmapFactory().pixmap("qss:overlay/icons/autohide_light.svg"); } + else { + 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")); + pxAutoHide = BitmapFactory().pixmap("qss:overlay/icons/autohide.svg"); + } + + actAutoHide.setIcon(rotateAutoHideIcon(pxAutoHide, dockArea)); + syncAutoMode(); } @@ -870,29 +875,162 @@ void OverlayTabWidget::retranslate() void OverlayTabWidget::syncAutoMode() { - QAction *action = nullptr; - switch(autoMode) { - case AutoMode::AutoHide: - action = &actAutoHide; - break; - case AutoMode::EditShow: - action = &actEditShow; - break; - case AutoMode::TaskShow: - action = &actTaskShow; - break; - case AutoMode::EditHide: - action = &actEditHide; - break; - default: - action = &actNoAutoMode; - break; + auto curStyleSheet = + App::GetApplication() + .GetParameterGroupByPath("User parameter:BaseApp/Preferences/MainWindow") + ->GetASCII("StyleSheet", "None"); + + QAction* action = nullptr; + switch (autoMode) { + case AutoMode::AutoHide: + action = &actAutoHide; + if (isStyleSheetDark(curStyleSheet)) { + QPixmap pxAutoHideMode = + BitmapFactory().pixmap("qss:overlay/icons/autohide_lighter.svg"); + pxAutoHideMode = rotateAutoHideIcon(pxAutoHideMode, dockArea); + action->setIcon(pxAutoHideMode); + actNoAutoMode.setIcon(BitmapFactory().pixmap("qss:overlay/icons/mode_light.svg")); + actTaskShow.setIcon(BitmapFactory().pixmap("qss:overlay/icons/taskshow_light.svg")); + actEditShow.setIcon(BitmapFactory().pixmap("qss:overlay/icons/editshow_light.svg")); + actEditHide.setIcon(BitmapFactory().pixmap("qss:overlay/icons/edithide_light.svg")); + } + else { + QPixmap pxAutoHideMode = BitmapFactory().pixmap("qss:overlay/icons/autohide.svg"); + pxAutoHideMode = rotateAutoHideIcon(pxAutoHideMode, dockArea); + action->setIcon(pxAutoHideMode); + actNoAutoMode.setIcon( + BitmapFactory().pixmap("qss:overlay/icons/mode_lightgray.svg")); + actTaskShow.setIcon( + BitmapFactory().pixmap("qss:overlay/icons/taskshow_lightgray.svg")); + actEditShow.setIcon( + BitmapFactory().pixmap("qss:overlay/icons/editshow_lightgray.svg")); + actEditHide.setIcon( + BitmapFactory().pixmap("qss:overlay/icons/edithide_lightgray.svg")); + } + break; + case AutoMode::EditShow: + action = &actEditShow; + if (isStyleSheetDark(curStyleSheet)) { + QPixmap pxEditShowMode = + BitmapFactory().pixmap("qss:overlay/icons/editshow_lighter.svg"); + action->setIcon(pxEditShowMode); + QPixmap pxAutoHideMode = + BitmapFactory().pixmap("qss:overlay/icons/autohide_light.svg"); + pxAutoHideMode = rotateAutoHideIcon(pxAutoHideMode, dockArea); + actAutoHide.setIcon(pxAutoHideMode); + actNoAutoMode.setIcon(BitmapFactory().pixmap("qss:overlay/icons/mode_light.svg")); + actTaskShow.setIcon(BitmapFactory().pixmap("qss:overlay/icons/taskshow_light.svg")); + actEditHide.setIcon(BitmapFactory().pixmap("qss:overlay/icons/edithide_light.svg")); + } + else { + QPixmap pxEditShowMode = BitmapFactory().pixmap("qss:overlay/icons/editshow.svg"); + action->setIcon(pxEditShowMode); + QPixmap pxAutoHideMode = + BitmapFactory().pixmap("qss:overlay/icons/autohide_lightgray.svg"); + pxAutoHideMode = rotateAutoHideIcon(pxAutoHideMode, dockArea); + actAutoHide.setIcon(pxAutoHideMode); + actNoAutoMode.setIcon( + BitmapFactory().pixmap("qss:overlay/icons/mode_lightgray.svg")); + actTaskShow.setIcon( + BitmapFactory().pixmap("qss:overlay/icons/taskshow_lightgray.svg")); + actEditHide.setIcon( + BitmapFactory().pixmap("qss:overlay/icons/edithide_lightgray.svg")); + } + break; + case AutoMode::TaskShow: + action = &actTaskShow; + if (isStyleSheetDark(curStyleSheet)) { + QPixmap pxTaskShowMode = + BitmapFactory().pixmap("qss:overlay/icons/taskshow_lighter.svg"); + action->setIcon(pxTaskShowMode); + QPixmap pxAutoHideMode = + BitmapFactory().pixmap("qss:overlay/icons/autohide_light.svg"); + pxAutoHideMode = rotateAutoHideIcon(pxAutoHideMode, dockArea); + actNoAutoMode.setIcon(BitmapFactory().pixmap("qss:overlay/icons/mode_light.svg")); + actEditShow.setIcon(BitmapFactory().pixmap("qss:overlay/icons/editshow_light.svg")); + actAutoHide.setIcon(pxAutoHideMode); + actEditHide.setIcon(BitmapFactory().pixmap("qss:overlay/icons/edithide_light.svg")); + } + else { + QPixmap pxTaskShowMode = BitmapFactory().pixmap("qss:overlay/icons/taskshow.svg"); + action->setIcon(pxTaskShowMode); + QPixmap pxAutoHideMode = + BitmapFactory().pixmap("qss:overlay/icons/autohide_lightgray.svg"); + pxAutoHideMode = rotateAutoHideIcon(pxAutoHideMode, dockArea); + actNoAutoMode.setIcon( + BitmapFactory().pixmap("qss:overlay/icons/mode_lightgray.svg")); + actEditShow.setIcon( + BitmapFactory().pixmap("qss:overlay/icons/editshow_lightgray.svg")); + actAutoHide.setIcon(pxAutoHideMode); + actEditHide.setIcon( + BitmapFactory().pixmap("qss:overlay/icons/edithide_lightgray.svg")); + } + break; + case AutoMode::EditHide: + action = &actEditHide; + if (isStyleSheetDark(curStyleSheet)) { + QPixmap pxEditHideMode = + BitmapFactory().pixmap("qss:overlay/icons/edithide_lighter.svg"); + action->setIcon(pxEditHideMode); + QPixmap pxAutoHideMode = + BitmapFactory().pixmap("qss:overlay/icons/autohide_light.svg"); + pxAutoHideMode = rotateAutoHideIcon(pxAutoHideMode, dockArea); + actNoAutoMode.setIcon(BitmapFactory().pixmap("qss:overlay/icons/mode_light.svg")); + actEditShow.setIcon(BitmapFactory().pixmap("qss:overlay/icons/editshow_light.svg")); + actAutoHide.setIcon(pxAutoHideMode); + actTaskShow.setIcon(BitmapFactory().pixmap("qss:overlay/icons/taskshow_light.svg")); + } + else { + QPixmap pxEditHideMode = BitmapFactory().pixmap("qss:overlay/icons/edithide.svg"); + action->setIcon(pxEditHideMode); + QPixmap pxAutoHideMode = + BitmapFactory().pixmap("qss:overlay/icons/autohide_lightgray.svg"); + pxAutoHideMode = rotateAutoHideIcon(pxAutoHideMode, dockArea); + actNoAutoMode.setIcon( + BitmapFactory().pixmap("qss:overlay/icons/mode_lightgray.svg")); + actEditShow.setIcon( + BitmapFactory().pixmap("qss:overlay/icons/editshow_lightgray.svg")); + actAutoHide.setIcon(pxAutoHideMode); + actTaskShow.setIcon( + BitmapFactory().pixmap("qss:overlay/icons/taskshow_lightgray.svg")); + } + break; + default: + action = &actNoAutoMode; + if (isStyleSheetDark(curStyleSheet)) { + QPixmap pxNoAutoMode = BitmapFactory().pixmap("qss:overlay/icons/mode_lighter.svg"); + action->setIcon(pxNoAutoMode); + QPixmap pxAutoHideMode = + BitmapFactory().pixmap("qss:overlay/icons/autohide_light.svg"); + pxAutoHideMode = rotateAutoHideIcon(pxAutoHideMode, dockArea); + actTaskShow.setIcon(BitmapFactory().pixmap("qss:overlay/icons/taskshow_light.svg")); + actEditShow.setIcon(BitmapFactory().pixmap("qss:overlay/icons/editshow_light.svg")); + actAutoHide.setIcon(pxAutoHideMode); + actEditHide.setIcon(BitmapFactory().pixmap("qss:overlay/icons/edithide_light.svg")); + } + else { + QPixmap pxNoAutoMode = BitmapFactory().pixmap("qss:overlay/icons/mode.svg"); + action->setIcon(pxNoAutoMode); + QPixmap pxAutoHideMode = + BitmapFactory().pixmap("qss:overlay/icons/autohide_lightgray.svg"); + pxAutoHideMode = rotateAutoHideIcon(pxAutoHideMode, dockArea); + actTaskShow.setIcon( + BitmapFactory().pixmap("qss:overlay/icons/taskshow_lightgray.svg")); + actEditShow.setIcon( + BitmapFactory().pixmap("qss:overlay/icons/editshow_lightgray.svg")); + actAutoHide.setIcon(pxAutoHideMode); + actEditHide.setIcon( + BitmapFactory().pixmap("qss:overlay/icons/edithide_lightgray.svg")); + } + break; } actAutoMode.setIcon(action->icon()); - if (action == &actNoAutoMode) + if (action == &actNoAutoMode) { actAutoMode.setToolTip(tr("Select auto show/hide mode")); - else + } + else { actAutoMode.setToolTip(action->toolTip()); + } } void OverlayTabWidget::onAction(QAction *action) @@ -1770,6 +1908,36 @@ QLayoutItem *OverlayTabWidget::prepareTitleWidget(QWidget *widget, const QList + + + + + + + + + image/svg+xml + + + + + Pablo Gil + + + + + SVG + template + + + + + + + + + diff --git a/src/Gui/Stylesheets/overlay/icons/autohide_lighter.svg b/src/Gui/Stylesheets/overlay/icons/autohide_lighter.svg new file mode 100644 index 0000000000..578ee3f01d --- /dev/null +++ b/src/Gui/Stylesheets/overlay/icons/autohide_lighter.svg @@ -0,0 +1,86 @@ + + + + + + + + + + image/svg+xml + + + + + Pablo Gil + + + + + SVG + template + + + + + + + + + diff --git a/src/Gui/Stylesheets/overlay/icons/autohide_lightgray.svg b/src/Gui/Stylesheets/overlay/icons/autohide_lightgray.svg new file mode 100644 index 0000000000..0dffc6f718 --- /dev/null +++ b/src/Gui/Stylesheets/overlay/icons/autohide_lightgray.svg @@ -0,0 +1,86 @@ + + + + + + + + + + image/svg+xml + + + + + Pablo Gil + + + + + SVG + template + + + + + + + + + diff --git a/src/Gui/Stylesheets/overlay/icons/edithide_light.svg b/src/Gui/Stylesheets/overlay/icons/edithide_light.svg new file mode 100644 index 0000000000..106d2710e6 --- /dev/null +++ b/src/Gui/Stylesheets/overlay/icons/edithide_light.svg @@ -0,0 +1,44 @@ + + + + + + image/svg+xml + + + + + + + + + + + + diff --git a/src/Gui/Stylesheets/overlay/icons/edithide_lighter.svg b/src/Gui/Stylesheets/overlay/icons/edithide_lighter.svg new file mode 100644 index 0000000000..bf0e2c0401 --- /dev/null +++ b/src/Gui/Stylesheets/overlay/icons/edithide_lighter.svg @@ -0,0 +1,44 @@ + + + + + + image/svg+xml + + + + + + + + + + + + diff --git a/src/Gui/Stylesheets/overlay/icons/edithide_lightgray.svg b/src/Gui/Stylesheets/overlay/icons/edithide_lightgray.svg new file mode 100644 index 0000000000..88f223c672 --- /dev/null +++ b/src/Gui/Stylesheets/overlay/icons/edithide_lightgray.svg @@ -0,0 +1,44 @@ + + + + + + image/svg+xml + + + + + + + + + + + + diff --git a/src/Gui/Stylesheets/overlay/icons/editshow_light.svg b/src/Gui/Stylesheets/overlay/icons/editshow_light.svg new file mode 100644 index 0000000000..637bfd3ec6 --- /dev/null +++ b/src/Gui/Stylesheets/overlay/icons/editshow_light.svg @@ -0,0 +1,34 @@ + + + + + + image/svg+xml + + + + + + + + + diff --git a/src/Gui/Stylesheets/overlay/icons/editshow_lighter.svg b/src/Gui/Stylesheets/overlay/icons/editshow_lighter.svg new file mode 100644 index 0000000000..b657024d6b --- /dev/null +++ b/src/Gui/Stylesheets/overlay/icons/editshow_lighter.svg @@ -0,0 +1,34 @@ + + + + + + image/svg+xml + + + + + + + + + diff --git a/src/Gui/Stylesheets/overlay/icons/editshow_lightgray.svg b/src/Gui/Stylesheets/overlay/icons/editshow_lightgray.svg new file mode 100644 index 0000000000..673c9b5990 --- /dev/null +++ b/src/Gui/Stylesheets/overlay/icons/editshow_lightgray.svg @@ -0,0 +1,34 @@ + + + + + + image/svg+xml + + + + + + + + + diff --git a/src/Gui/Stylesheets/overlay/icons/mode_light.svg b/src/Gui/Stylesheets/overlay/icons/mode_light.svg index ee07548058..a5346b3d59 100644 --- a/src/Gui/Stylesheets/overlay/icons/mode_light.svg +++ b/src/Gui/Stylesheets/overlay/icons/mode_light.svg @@ -341,6 +341,6 @@ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none;marker-end:none" d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z" id="path14329" /> diff --git a/src/Gui/Stylesheets/overlay/icons/mode_lightgray.svg b/src/Gui/Stylesheets/overlay/icons/mode_lightgray.svg new file mode 100644 index 0000000000..9f75c407b9 --- /dev/null +++ b/src/Gui/Stylesheets/overlay/icons/mode_lightgray.svg @@ -0,0 +1,346 @@ + + + +image/svg+xml diff --git a/src/Gui/Stylesheets/overlay/icons/taskshow_light.svg b/src/Gui/Stylesheets/overlay/icons/taskshow_light.svg index c2516d9abb..fa27735198 100644 --- a/src/Gui/Stylesheets/overlay/icons/taskshow_light.svg +++ b/src/Gui/Stylesheets/overlay/icons/taskshow_light.svg @@ -24,6 +24,6 @@ id="defs6536" /> diff --git a/src/Gui/Stylesheets/overlay/icons/taskshow_lighter.svg b/src/Gui/Stylesheets/overlay/icons/taskshow_lighter.svg new file mode 100644 index 0000000000..bb495ce47d --- /dev/null +++ b/src/Gui/Stylesheets/overlay/icons/taskshow_lighter.svg @@ -0,0 +1,29 @@ + + + + + + image/svg+xml + + + + + + + diff --git a/src/Gui/Stylesheets/overlay/icons/taskshow_lightgray.svg b/src/Gui/Stylesheets/overlay/icons/taskshow_lightgray.svg new file mode 100644 index 0000000000..4259fb5247 --- /dev/null +++ b/src/Gui/Stylesheets/overlay/icons/taskshow_lightgray.svg @@ -0,0 +1,29 @@ + + + + + + image/svg+xml + + + + + + +