diff --git a/src/DockManager.cpp b/src/DockManager.cpp index a7c639e5..b898b628 100644 --- a/src/DockManager.cpp +++ b/src/DockManager.cpp @@ -50,6 +50,7 @@ #include #include #include +#include #include "FloatingDockContainer.h" #include "DockOverlay.h" @@ -118,6 +119,7 @@ struct DockManagerPrivate QMap ViewMenuGroups; QMenu* ViewMenu; CDockManager::eViewMenuInsertionOrder MenuInsertionOrder = CDockManager::MenuAlphabeticallySorted; + CDockManager::eStylesheetColorSchemeBehavior StylesheetColorSchemeBehavior = CDockManager::FollowApplicationPalette; bool RestoringState = false; QVector UninitializedFloatingWidgets; CDockFocusController* FocusController = nullptr; @@ -129,6 +131,7 @@ struct DockManagerPrivate QSize ToolBarIconSizeFloating = QSize(24, 24); CDockWidget::DockWidgetFeatures LockedDockWidgetFeatures; QSharedPointer ComponentFactory {ads::CDockComponentsFactory::factory()}; + bool CurrentStylesheetDark; /** * Private data constructor @@ -215,6 +218,12 @@ void DockManagerPrivate::loadStylesheet() #if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) FileName += "_linux"; #endif + if (_this->isDesiredStylesheetDark()) { + CurrentStylesheetDark = true; + FileName += "_dark"; + } + else + CurrentStylesheetDark = false; FileName += ".css"; QFile StyleSheetFile(FileName); StyleSheetFile.open(QIODevice::ReadOnly); @@ -650,9 +659,9 @@ void CDockManager::setComponentsFactory(QSharedPointertype() == QEvent::WindowStateChange) { QWindowStateChangeEvent* ev = static_cast(e); @@ -740,9 +744,15 @@ bool CDockManager::eventFilter(QObject *obj, QEvent *e) QMetaObject::invokeMethod(this, "endLeavingMinimizedState", Qt::QueuedConnection); } } +#endif + if (e->type() == QEvent::ApplicationPaletteChange && d->StylesheetColorSchemeBehavior == CDockManager::FollowApplicationPalette) + { + if (d->CurrentStylesheetDark != isDesiredStylesheetDark()) { + d->loadStylesheet(); + } + } return Super::eventFilter(obj, e); } -#endif //============================================================================ @@ -1261,6 +1271,18 @@ void CDockManager::setViewMenuInsertionOrder(eViewMenuInsertionOrder Order) } +//============================================================================ +void CDockManager::setStylesheetColorSchemeBehavior(eStylesheetColorSchemeBehavior Behavior) +{ + d->StylesheetColorSchemeBehavior = Behavior; + + if (d->CurrentStylesheetDark != isDesiredStylesheetDark()) { + d->loadStylesheet(); + ensurePolished(); + } +} + + //=========================================================================== bool CDockManager::isRestoringState() const { @@ -1571,6 +1593,28 @@ void CDockManager::raise() } +//============================================================================ +bool CDockManager::isApplicationPaletteDark() +{ + QPalette appPalette = QGuiApplication::palette(); + + // Extract the background and foreground colors + QColor windowColor = appPalette.color(QPalette::Window); + QColor textColor = appPalette.color(QPalette::WindowText); + + // Check lightness values (0.0 = black, 1.0 = white) + // If text is lighter than the background, the app palette is dark + return textColor.lightnessF() > windowColor.lightnessF(); +} + + +//============================================================================ +bool CDockManager::isDesiredStylesheetDark() +{ + return ((isApplicationPaletteDark() && d->StylesheetColorSchemeBehavior == FollowApplicationPalette) || d->StylesheetColorSchemeBehavior == ForceDark); +} + + } // namespace ads //--------------------------------------------------------------------------- diff --git a/src/DockManager.h b/src/DockManager.h index 1ac9215f..7c63b737 100644 --- a/src/DockManager.h +++ b/src/DockManager.h @@ -179,6 +179,13 @@ public Q_SLOTS: MenuAlphabeticallySorted }; + enum eStylesheetColorSchemeBehavior + { + ForceLight, + ForceDark, + FollowApplicationPalette + }; + /** * These global configuration flags configure some global dock manager * settings. @@ -397,6 +404,16 @@ public Q_SLOTS: */ static CIconProvider& iconProvider(); + /** + * Returns if current application palette is dark + */ + static bool isApplicationPaletteDark(); + + /** + * Returns if currently applied stylesheet is supposed to be dark + */ + bool isDesiredStylesheetDark(); + /** * Adds dockwidget into the given area. * If DockAreaWidget is not null, then the area parameter indicates the area @@ -617,6 +634,17 @@ public Q_SLOTS: */ void setViewMenuInsertionOrder(eViewMenuInsertionOrder Order); + /** + * Define the behavior of stylesheet color scheme selection. + * The stylesheet can be fixed to either light or dark scheme, + * or it can follow the current application palette (default). + * Note: The fixed settings implement legacy behavior (before + * dark scheme was implemented) including problems like missing + * palette change propagation. They are implemented solely + * for compatibility reasons and manual stylesheet switching. + */ + void setStylesheetColorSchemeBehavior(eStylesheetColorSchemeBehavior Behavior); + /** * This function returns true between the restoringState() and * stateRestored() signals. diff --git a/src/DockOverlay.cpp b/src/DockOverlay.cpp index 3ae43a2d..dc405e05 100644 --- a/src/DockOverlay.cpp +++ b/src/DockOverlay.cpp @@ -129,7 +129,14 @@ struct DockOverlayCrossPrivate break; case CDockOverlayCross::ArrowColor: return pal.color(QPalette::Active, QPalette::Base); - case CDockOverlayCross::ShadowColor: return QColor(0, 0, 0, 64); + case CDockOverlayCross::ShadowColor: + { + QColor Color = pal.color(QPalette::Active, QPalette::Text); + Color.setAlpha(64); + return Color; + } + break; + default: return QColor(); } @@ -146,7 +153,6 @@ struct DockOverlayCrossPrivate if (!Color.isValid()) { Color = defaultIconColor(ColorIndex); - IconColors[ColorIndex] = Color; } return Color; } @@ -907,6 +913,20 @@ void CDockOverlayCross::showEvent(QShowEvent*) } +//============================================================================ +bool CDockOverlayCross::event(QEvent *e) +{ + bool Result = QWidget::event(e); + + if (e->type() == QEvent::ApplicationPaletteChange) + { + d->UpdateRequired = true; + } + + return Result; +} + + //============================================================================ void CDockOverlayCross::updatePosition() { diff --git a/src/DockOverlay.h b/src/DockOverlay.h index 36376f59..c2a8bc9b 100644 --- a/src/DockOverlay.h +++ b/src/DockOverlay.h @@ -273,6 +273,7 @@ class CDockOverlayCross : public QWidget protected: virtual void showEvent(QShowEvent* e) override; + virtual bool event(QEvent* e) override; void setAreaWidgets(const QHash& widgets); }; // CDockOverlayCross diff --git a/src/ads.qrc b/src/ads.qrc index 307e93b1..dad98f91 100644 --- a/src/ads.qrc +++ b/src/ads.qrc @@ -23,5 +23,28 @@ images/minimize-button.svg images/minimize-button-focused.svg images/vs-pin-button-disabled.svg + stylesheets/default_dark.css + images/close-button_dark.svg + images/pin-button_dark.svg + images/close-button-disabled_dark.svg + stylesheets/default_linux_dark.css + images/close-button-focused_dark.svg + stylesheets/focus_highlighting_dark.css + stylesheets/focus_highlighting_linux_dark.css + images/tabs-menu-button_dark.svg + images/detach-button_dark.svg + images/detach-button-disabled_dark.svg + images/maximize-button_dark.svg + images/maximize-button-focused_dark.svg + images/restore-button_dark.svg + images/restore-button-focused_dark.svg + images/vs-pin-button_dark.svg + images/vs-pin-button-pinned_dark.svg + images/vs-pin-button-pinned-focused_dark.svg + images/vs-pin-button_45_dark.svg + images/pin-button-big_dark.svg + images/minimize-button_dark.svg + images/minimize-button-focused_dark.svg + images/vs-pin-button-disabled_dark.svg diff --git a/src/images/close-button-disabled_dark.svg b/src/images/close-button-disabled_dark.svg new file mode 100644 index 00000000..9ff5e437 --- /dev/null +++ b/src/images/close-button-disabled_dark.svg @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Jemis Mali + + + + + image/svg+xml + + + + + + diff --git a/src/images/close-button-focused_dark.svg b/src/images/close-button-focused_dark.svg new file mode 100644 index 00000000..b9a6fad9 --- /dev/null +++ b/src/images/close-button-focused_dark.svg @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Jemis Mali + + + + + image/svg+xml + + + + + + diff --git a/src/images/close-button_dark.svg b/src/images/close-button_dark.svg new file mode 100644 index 00000000..5b3f282b --- /dev/null +++ b/src/images/close-button_dark.svg @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Jemis Mali + + + + + image/svg+xml + + + + + + diff --git a/src/images/detach-button-disabled_dark.svg b/src/images/detach-button-disabled_dark.svg new file mode 100644 index 00000000..82616c6b --- /dev/null +++ b/src/images/detach-button-disabled_dark.svg @@ -0,0 +1,205 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Jemis Mali + + + + + image/svg+xml + + + + + + + + diff --git a/src/images/detach-button_dark.svg b/src/images/detach-button_dark.svg new file mode 100644 index 00000000..d8f6f3af --- /dev/null +++ b/src/images/detach-button_dark.svg @@ -0,0 +1,175 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Jemis Mali + + + + + image/svg+xml + + + + + + + diff --git a/src/images/maximize-button-focused_dark.svg b/src/images/maximize-button-focused_dark.svg new file mode 100644 index 00000000..cdbb56d4 --- /dev/null +++ b/src/images/maximize-button-focused_dark.svg @@ -0,0 +1,145 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Jemis Mali + + + + + image/svg+xml + + + + + + diff --git a/src/images/maximize-button_dark.svg b/src/images/maximize-button_dark.svg new file mode 100644 index 00000000..4dc165eb --- /dev/null +++ b/src/images/maximize-button_dark.svg @@ -0,0 +1,145 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Jemis Mali + + + + + image/svg+xml + + + + + + diff --git a/src/images/minimize-button-focused_dark.svg b/src/images/minimize-button-focused_dark.svg new file mode 100644 index 00000000..c473a133 --- /dev/null +++ b/src/images/minimize-button-focused_dark.svg @@ -0,0 +1,2 @@ + + diff --git a/src/images/minimize-button_dark.svg b/src/images/minimize-button_dark.svg new file mode 100644 index 00000000..8c3aed76 --- /dev/null +++ b/src/images/minimize-button_dark.svg @@ -0,0 +1,2 @@ + + diff --git a/src/images/pin-button-big_dark.svg b/src/images/pin-button-big_dark.svg new file mode 100644 index 00000000..c99d4ba2 --- /dev/null +++ b/src/images/pin-button-big_dark.svg @@ -0,0 +1,2 @@ + + diff --git a/src/images/pin-button_dark.svg b/src/images/pin-button_dark.svg new file mode 100644 index 00000000..73c68857 --- /dev/null +++ b/src/images/pin-button_dark.svg @@ -0,0 +1,54 @@ + +image/svg+xml diff --git a/src/images/restore-button-focused_dark.svg b/src/images/restore-button-focused_dark.svg new file mode 100644 index 00000000..45b32e9b --- /dev/null +++ b/src/images/restore-button-focused_dark.svg @@ -0,0 +1,150 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + Jemis Mali + + + + + image/svg+xml + + + + + + diff --git a/src/images/restore-button_dark.svg b/src/images/restore-button_dark.svg new file mode 100644 index 00000000..d6fd5059 --- /dev/null +++ b/src/images/restore-button_dark.svg @@ -0,0 +1,150 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + Jemis Mali + + + + + image/svg+xml + + + + + + diff --git a/src/images/tabs-menu-button_dark.svg b/src/images/tabs-menu-button_dark.svg new file mode 100644 index 00000000..d5e2e2b4 --- /dev/null +++ b/src/images/tabs-menu-button_dark.svg @@ -0,0 +1,138 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Jemis Mali + + + + + image/svg+xml + + + + + + diff --git a/src/images/vs-pin-button-disabled_dark.svg b/src/images/vs-pin-button-disabled_dark.svg new file mode 100644 index 00000000..f5b31b9b --- /dev/null +++ b/src/images/vs-pin-button-disabled_dark.svg @@ -0,0 +1,2 @@ + + diff --git a/src/images/vs-pin-button-pinned-focused_dark.svg b/src/images/vs-pin-button-pinned-focused_dark.svg new file mode 100644 index 00000000..6608545e --- /dev/null +++ b/src/images/vs-pin-button-pinned-focused_dark.svg @@ -0,0 +1,2 @@ + + diff --git a/src/images/vs-pin-button-pinned_dark.svg b/src/images/vs-pin-button-pinned_dark.svg new file mode 100644 index 00000000..0e9c5d53 --- /dev/null +++ b/src/images/vs-pin-button-pinned_dark.svg @@ -0,0 +1,2 @@ + + diff --git a/src/images/vs-pin-button_45_dark.svg b/src/images/vs-pin-button_45_dark.svg new file mode 100644 index 00000000..7333762a --- /dev/null +++ b/src/images/vs-pin-button_45_dark.svg @@ -0,0 +1,2 @@ + + diff --git a/src/images/vs-pin-button_dark.svg b/src/images/vs-pin-button_dark.svg new file mode 100644 index 00000000..137eb441 --- /dev/null +++ b/src/images/vs-pin-button_dark.svg @@ -0,0 +1,2 @@ + + diff --git a/src/stylesheets/default_dark.css b/src/stylesheets/default_dark.css new file mode 100644 index 00000000..33f01ac2 --- /dev/null +++ b/src/stylesheets/default_dark.css @@ -0,0 +1,354 @@ +/* + * Default style sheet on Windows Platforms + */ + +/***************************************************************************** + * CDockContainerWidget + *****************************************************************************/ +ads--CDockContainerWidget { + background: palette(window); +} + + +/***************************************************************************** + * CDockSplitter + *****************************************************************************/ +ads--CDockContainerWidget > QSplitter { + padding: 1 0 1 0; +} + +ads--CDockContainerWidget ads--CDockSplitter::handle { + background: palette(light); +} + + +/***************************************************************************** + * CDockAreaWidget + *****************************************************************************/ +ads--CDockAreaWidget { + background: palette(window); +} + +ads--CTitleBarButton { + padding: 0px 0px; +} + + +#tabsMenuButton::menu-indicator { + image: none; +} + +#tabsMenuButton { + qproperty-icon: url(:/ads/images/tabs-menu-button_dark.svg); + qproperty-iconSize: 16px; +} + +#dockAreaCloseButton { + qproperty-icon: url(:/ads/images/close-button_dark.svg), + url(:/ads/images/close-button-disabled_dark.svg) disabled; + qproperty-iconSize: 16px; +} + +#detachGroupButton { + qproperty-icon: url(:/ads/images/detach-button_dark.svg), + url(:/ads/images/detach-button-disabled_dark.svg) disabled; + qproperty-iconSize: 16px; +} + + + +/***************************************************************************** + * CDockWidgetTab and close button styling + *****************************************************************************/ +ads--CDockWidgetTab { + background: palette(window); + border-color: palette(dark); + border-style: solid; + border-width: 0 1px 0 0; + padding: 0 0px; +} + +ads--CDockWidgetTab[activeTab="true"] { + background: qlineargradient(spread : pad, x1 : 0, y1 : 0, x2 : 0, y2 : 0.5, stop : 0 + palette(window), stop:1 palette(dark)); + /*background: palette(highlight);*/ +} + +ads--CDockWidgetTab QLabel { + color: palette(light); +} + +ads--CDockWidgetTab[activeTab="true"] QLabel { + color: palette(foreground); +} + +#autoHideTitleLabel { + padding-left: 4px; + color: palette(foreground); +} + +#tabCloseButton { + margin-top: 2px; + background: none; + border: none; + padding: 0px -2px; + qproperty-icon: url(:/ads/images/close-button_dark.svg), + url(:/ads/images/close-button-disabled_dark.svg) disabled; + qproperty-iconSize: 16px; +} + +#tabCloseButton:hover { + border: 1px solid rgba(255, 255, 255, 32); + background: rgba(255, 255, 255, 16); +} + +#tabCloseButton:pressed { + background: rgba(255, 255, 255, 32); +} + + +/***************************************************************************** + * CDockWidget + *****************************************************************************/ +ads--CDockWidget { + background: palette(dark); + border-color: palette(dark); + border-style: solid; + border-width: 1px 0 0 0; +} + + +QScrollArea#dockWidgetScrollArea { + padding: 0px; + border: none; +} + + +/***************************************************************************** + * + * Styling of auto hide functionality + * + *****************************************************************************/ + + +/***************************************************************************** + * CAutoHideTab + *****************************************************************************/ +ads--CAutoHideTab { + qproperty-iconSize: 16px 16px;/* this is optional in case you would like to change icon size*/ + background: none; + border: none; + padding-left: 2px; + padding-right: 0px; + text-align: center; + min-height: 20px; + padding-bottom: 2px; +} + + +ads--CAutoHideTab:hover +{ + color: palette(highlight); +} + + +ads--CAutoHideTab[iconOnly="false"][sideBarLocation="0"], +ads--CAutoHideTab[iconOnly="false"][sideBarLocation="2"] { + border-top: 6px solid rgba(255, 255, 255, 48); +} + + +ads--CAutoHideTab[iconOnly="false"][sideBarLocation="1"], +ads--CAutoHideTab[iconOnly="false"][sideBarLocation="3"] { + border-bottom: 6px solid rgba(255, 255, 255, 48); +} + + + +ads--CAutoHideTab:hover[iconOnly="false"][sideBarLocation="0"], +ads--CAutoHideTab:hover[iconOnly="false"][sideBarLocation="2"], +ads--CAutoHideTab[iconOnly="false"][sideBarLocation="0"][activeTab="true"], +ads--CAutoHideTab[iconOnly="false"][sideBarLocation="2"][activeTab="true"] { + border-top: 6px solid palette(highlight); +} + + +ads--CAutoHideTab:hover[iconOnly="false"][sideBarLocation="1"], +ads--CAutoHideTab:hover[iconOnly="false"][sideBarLocation="3"], +ads--CAutoHideTab[iconOnly="false"][sideBarLocation="1"][activeTab="true"], +ads--CAutoHideTab[iconOnly="false"][sideBarLocation="3"][activeTab="true"] { + border-bottom: 6px solid palette(highlight); +} + + +/** + * Auto hide tabs with icon only + */ +ads--CAutoHideTab[iconOnly="true"][sideBarLocation="0"] { + border-top: 6px solid rgba(255, 255, 255, 48); +} + +ads--CAutoHideTab[iconOnly="true"][sideBarLocation="1"] { + border-left: 6px solid rgba(255, 255, 255, 48); +} + +ads--CAutoHideTab[iconOnly="true"][sideBarLocation="2"] { + border-right: 6px solid rgba(255, 255, 255, 48); +} + +ads--CAutoHideTab[iconOnly="true"][sideBarLocation="3"] { + border-bottom: 6px solid rgba(255, 255, 255, 48); +} + + +/** + * Auto hide tabs with icon only hover + */ +ads--CAutoHideTab:hover[iconOnly="true"][sideBarLocation="0"], +ads--CAutoHideTab[iconOnly="true"][sideBarLocation="0"][activeTab="true"] { + border-top: 6px solid palette(highlight); +} + +ads--CAutoHideTab:hover[iconOnly="true"][sideBarLocation="1"], +ads--CAutoHideTab[iconOnly="true"][sideBarLocation="1"][activeTab="true"] { + border-left: 6px solid palette(highlight); +} + +ads--CAutoHideTab:hover[iconOnly="true"][sideBarLocation="2"], +ads--CAutoHideTab[iconOnly="true"][sideBarLocation="2"][activeTab="true"] { + border-right: 6px solid palette(highlight); +} + +ads--CAutoHideTab:hover[iconOnly="true"][sideBarLocation="3"], +ads--CAutoHideTab[iconOnly="true"][sideBarLocation="3"][activeTab="true"] { + border-bottom: 6px solid palette(highlight); +} + + +/***************************************************************************** + * CAutoHideSideBar + *****************************************************************************/ +ads--CAutoHideSideBar{ + background: palette(window); + border: none; + qproperty-spacing: 12; +} + +#sideTabsContainerWidget { + background: transparent; +} + + +ads--CAutoHideSideBar[sideBarLocation="0"] { + border-bottom: 1px solid palette(light); +} + +ads--CAutoHideSideBar[sideBarLocation="1"] { + border-right: 1px solid palette(light); +} + +ads--CAutoHideSideBar[sideBarLocation="2"] { + border-left: 1px solid palette(light); +} + +ads--CAutoHideSideBar[sideBarLocation="3"] { + border-top: 1px solid palette(light); +} + + +/***************************************************************************** + * CAutoHideDockContainer + *****************************************************************************/ +ads--CAutoHideDockContainer { + background: palette(window); +} + + +ads--CAutoHideDockContainer ads--CDockAreaTitleBar { + background: palette(highlight); + padding: 0px; + border: none; +} + + +/* + * This is required because the ads--CDockAreaWidget[focused="true"] will + * overwrite the ads--CAutoHideDockContainer ads--CDockAreaTitleBar rule + */ +ads--CAutoHideDockContainer ads--CDockAreaWidget[focused="true"] ads--CDockAreaTitleBar { + background: palette(highlight); + padding: 0px; + border: none; +} + + +ads--CAutoHideDockContainer #autoHideTitleLabel { + padding-left: 4px; + color: palette(dark); +} + + +/***************************************************************************** + * CAutoHideDockContainer titlebar buttons + *****************************************************************************/ +#dockAreaAutoHideButton { + qproperty-icon: url(:/ads/images/vs-pin-button_dark.svg), + url(:/ads/images/vs-pin-button-disabled_dark.svg) disabled; + qproperty-iconSize: 16px; +} + +ads--CAutoHideDockContainer #dockAreaAutoHideButton { + qproperty-icon: url(:/ads/images/vs-pin-button-pinned-focused_dark.svg); + qproperty-iconSize: 16px; +} + + +ads--CAutoHideDockContainer #dockAreaMinimizeButton { + qproperty-icon: url(:/ads/images/minimize-button-focused_dark.svg); + qproperty-iconSize: 16px; +} + + +ads--CAutoHideDockContainer #dockAreaCloseButton{ + qproperty-icon: url(:/ads/images/close-button-focused_dark.svg) +} + + +ads--CAutoHideDockContainer ads--CTitleBarButton:hover { + background: rgba(255, 255, 255, 48); +} + +ads--CAutoHideDockContainer ads--CTitleBarButton:pressed { + background: rgba(255, 255, 255, 96); +} + +/***************************************************************************** + * CAutoHideDockContainer Titlebar and Buttons + *****************************************************************************/ + + +/***************************************************************************** + * CResizeHandle + *****************************************************************************/ +ads--CResizeHandle { + background: palette(window); +} + + +ads--CAutoHideDockContainer[sideBarLocation="0"] ads--CResizeHandle { + border-top: 1px solid palette(light); +} + +ads--CAutoHideDockContainer[sideBarLocation="1"] ads--CResizeHandle { + border-left: 1px solid palette(light); +} + +ads--CAutoHideDockContainer[sideBarLocation="2"] ads--CResizeHandle { + border-right: 1px solid palette(light); +} + +ads--CAutoHideDockContainer[sideBarLocation="3"] ads--CResizeHandle { + border-top: 1px solid palette(light); +} + + diff --git a/src/stylesheets/default_linux_dark.css b/src/stylesheets/default_linux_dark.css new file mode 100644 index 00000000..1e6cf9c8 --- /dev/null +++ b/src/stylesheets/default_linux_dark.css @@ -0,0 +1,401 @@ +/* + * Default style sheet on Linux Platforms + */ + +/***************************************************************************** + * CDockContainerWidget + *****************************************************************************/ +ads--CDockContainerWidget { + background: palette(window); +} + + +/***************************************************************************** + * CDockSplitter + *****************************************************************************/ +ads--CDockContainerWidget > QSplitter{ + padding: 1 0 1 0; +} + +ads--CDockContainerWidget ads--CDockSplitter::handle { + background: palette(light); +} + + +/***************************************************************************** + * CDockAreaWidget + *****************************************************************************/ +ads--CDockAreaWidget { + background: palette(window); +} + +ads--CDockAreaWidget #tabsMenuButton::menu-indicator { + image: none; +} + + +ads--CTitleBarButton { + padding: 0px 0px; +} + + +#autoHideTitleLabel { + padding-left: 4px; + color: palette(foreground); +} + + +#tabsMenuButton { + qproperty-icon: url(:/ads/images/tabs-menu-button_dark.svg); + qproperty-iconSize: 16px; +} + + +#dockAreaCloseButton { + qproperty-icon: url(:/ads/images/close-button_dark.svg), + url(:/ads/images/close-button-disabled_dark.svg) disabled; + qproperty-iconSize: 16px; +} + + +#detachGroupButton { + qproperty-icon: url(:/ads/images/detach-button_dark.svg), + url(:/ads/images/detach-button-disabled_dark.svg) disabled; + qproperty-iconSize: 16px; +} + + +/***************************************************************************** + * CDockWidgetTab and close button styling + *****************************************************************************/ +ads--CDockWidgetTab { + background: palette(window); + border-color: palette(dark); + border-style: solid; + border-width: 0 1px 0 0; + padding: 0 0px; +} + + +ads--CDockWidgetTab[activeTab="true"] { + background: qlineargradient(spread : pad, x1 : 0, y1 : 0, x2 : 0, y2 : 0.5, stop : 0 + palette(window), stop:1 palette(dark)); + /*background: palette(highlight);*/ +} + + +ads--CDockWidgetTab QLabel { + color: palette(light); +} + + +ads--CDockWidgetTab[activeTab="true"] QLabel { + color: palette(foreground); +} + + +#autoHideTitleLabel { + padding-left: 4px; + color: palette(foreground); +} + + +#tabCloseButton { + margin-top: 2px; + background: none; + border: none; + padding: 0px -2px; + qproperty-icon: url(:/ads/images/close-button_dark.svg), + url(:/ads/images/close-button-disabled_dark.svg) disabled; + qproperty-iconSize: 16px; +} + +#tabCloseButton:hover { + border: 1px solid rgba(255, 255, 255, 32); + background: rgba(255, 255, 255, 16); +} + +#tabCloseButton:pressed { + background: rgba(255, 255, 255, 32); +} + + +/***************************************************************************** + * CDockWidget + *****************************************************************************/ +ads--CDockWidget { + background: palette(dark); + border-color: palette(dark); + border-style: solid; + border-width: 1px 0 0 0; +} + + +QScrollArea#dockWidgetScrollArea { + padding: 0px; + border: none; +} + + +/***************************************************************************** + * Floating widget styling + *****************************************************************************/ +ads--CFloatingWidgetTitleBar { + background: palette(mid); + qproperty-maximizeIcon: url(:/ads/images/maximize-button_dark.svg); + qproperty-normalIcon: url(:/ads/images/restore-button_dark.svg); +} + + +#floatingTitleCloseButton, #floatingTitleMaximizeButton { + qproperty-iconSize: 16px; + border: none; + margin: 3px; +} + + +#floatingTitleCloseButton { + qproperty-icon: url(:/ads/images/close-button_dark.svg); +} + +#floatingTitleCloseButton:hover { + background: rgba(255, 255, 255, 24); + border: none; +} + +#floatingTitleCloseButton:pressed { + background: rgba(255, 255, 255, 48); +} + + +/***************************************************************************** + * + * Styling of auto hide functionality + * + *****************************************************************************/ + + +/***************************************************************************** + * CAutoHideTab + *****************************************************************************/ +ads--CAutoHideTab { + qproperty-iconSize: 16px 16px;/* this is optional in case you would like to change icon size*/ + background: none; + border: none; + padding-left: 2px; + padding-right: 0px; + text-align: center; + min-height: 20px; + padding-bottom: 2px; +} + + +ads--CAutoHideTab:hover +{ + color: palette(highlight); +} + + +ads--CAutoHideTab[iconOnly="false"][sideBarLocation="0"], +ads--CAutoHideTab[iconOnly="false"][sideBarLocation="2"] { + border-top: 6px solid rgba(255, 255, 255, 48); +} + + +ads--CAutoHideTab[iconOnly="false"][sideBarLocation="1"], +ads--CAutoHideTab[iconOnly="false"][sideBarLocation="3"] { + border-bottom: 6px solid rgba(255, 255, 255, 48); +} + + + +ads--CAutoHideTab:hover[iconOnly="false"][sideBarLocation="0"], +ads--CAutoHideTab:hover[iconOnly="false"][sideBarLocation="2"], +ads--CAutoHideTab[iconOnly="false"][sideBarLocation="0"][activeTab="true"], +ads--CAutoHideTab[iconOnly="false"][sideBarLocation="2"][activeTab="true"] { + border-top: 6px solid palette(highlight); +} + + +ads--CAutoHideTab:hover[iconOnly="false"][sideBarLocation="1"], +ads--CAutoHideTab:hover[iconOnly="false"][sideBarLocation="3"], +ads--CAutoHideTab[iconOnly="false"][sideBarLocation="1"][activeTab="true"], +ads--CAutoHideTab[iconOnly="false"][sideBarLocation="3"][activeTab="true"] { + border-bottom: 6px solid palette(highlight); +} + + +/** + * Auto hide tabs with icon only + */ +ads--CAutoHideTab[iconOnly="true"][sideBarLocation="0"] { + border-top: 6px solid rgba(255, 255, 255, 48); +} + +ads--CAutoHideTab[iconOnly="true"][sideBarLocation="1"] { + border-left: 6px solid rgba(255, 255, 255, 48); +} + +ads--CAutoHideTab[iconOnly="true"][sideBarLocation="2"] { + border-right: 6px solid rgba(255, 255, 255, 48); +} + +ads--CAutoHideTab[iconOnly="true"][sideBarLocation="3"] { + border-bottom: 6px solid rgba(255, 255, 255, 48); +} + + +/** + * Auto hide tabs with icon only hover + */ +ads--CAutoHideTab:hover[iconOnly="true"][sideBarLocation="0"], +ads--CAutoHideTab[iconOnly="true"][sideBarLocation="0"][activeTab="true"] { + border-top: 6px solid palette(highlight); +} + +ads--CAutoHideTab:hover[iconOnly="true"][sideBarLocation="1"], +ads--CAutoHideTab[iconOnly="true"][sideBarLocation="1"][activeTab="true"] { + border-left: 6px solid palette(highlight); +} + +ads--CAutoHideTab:hover[iconOnly="true"][sideBarLocation="2"], +ads--CAutoHideTab[iconOnly="true"][sideBarLocation="2"][activeTab="true"] { + border-right: 6px solid palette(highlight); +} + +ads--CAutoHideTab:hover[iconOnly="true"][sideBarLocation="3"], +ads--CAutoHideTab[iconOnly="true"][sideBarLocation="3"][activeTab="true"] { + border-bottom: 6px solid palette(highlight); +} + + +/***************************************************************************** + * CAutoHideSideBar + *****************************************************************************/ +ads--CAutoHideSideBar{ + background: palette(window); + border: none; + qproperty-spacing: 12; +} + +#sideTabsContainerWidget { + background: transparent; +} + + +ads--CAutoHideSideBar[sideBarLocation="0"] { + border-bottom: 1px solid palette(light); +} + +ads--CAutoHideSideBar[sideBarLocation="1"] { + border-right: 1px solid palette(light); +} + +ads--CAutoHideSideBar[sideBarLocation="2"] { + border-left: 1px solid palette(light); +} + +ads--CAutoHideSideBar[sideBarLocation="3"] { + border-top: 1px solid palette(light); +} + + +/***************************************************************************** + * CAutoHideDockContainer + *****************************************************************************/ +ads--CAutoHideDockContainer { + background: palette(window); +} + + +ads--CAutoHideDockContainer ads--CDockAreaTitleBar { + background: palette(highlight); + padding: 0px; + border: none; +} + + +/* + * This is required because the ads--CDockAreaWidget[focused="true"] will + * overwrite the ads--CAutoHideDockContainer ads--CDockAreaTitleBar rule + */ +ads--CAutoHideDockContainer ads--CDockAreaWidget[focused="true"] ads--CDockAreaTitleBar { + background: palette(highlight); + padding: 0px; + border: none; +} + + +ads--CAutoHideDockContainer #autoHideTitleLabel { + padding-left: 4px; + color: palette(dark); +} + + +/***************************************************************************** + * CAutoHideDockContainer titlebar buttons + *****************************************************************************/ +#dockAreaAutoHideButton { + qproperty-icon: url(:/ads/images/vs-pin-button_dark.svg), + url(:/ads/images/vs-pin-button-disabled_dark.svg) disabled; + qproperty-iconSize: 16px; +} + +ads--CAutoHideDockContainer #dockAreaAutoHideButton { + qproperty-icon: url(:/ads/images/vs-pin-button-pinned-focused_dark.svg); + qproperty-iconSize: 16px; +} + + +ads--CAutoHideDockContainer #dockAreaMinimizeButton { + qproperty-icon: url(:/ads/images/minimize-button-focused_dark.svg); + qproperty-iconSize: 16px; +} + + +ads--CAutoHideDockContainer #dockAreaCloseButton{ + qproperty-icon: url(:/ads/images/close-button-focused_dark.svg) +} + + +ads--CAutoHideDockContainer ads--CTitleBarButton:hover { + background: rgba(255, 255, 255, 48); + border: none; +} + +ads--CAutoHideDockContainer ads--CTitleBarButton:pressed { + background: rgba(255, 255, 255, 96); + border: none; +} + +/***************************************************************************** + * CAutoHideDockContainer Titlebar and Buttons + *****************************************************************************/ + + +/***************************************************************************** + * CResizeHandle + *****************************************************************************/ +ads--CResizeHandle { + background: palette(window); +} + + +ads--CAutoHideDockContainer[sideBarLocation="0"] ads--CResizeHandle { + border-top: 1px solid palette(light); +} + +ads--CAutoHideDockContainer[sideBarLocation="1"] ads--CResizeHandle { + border-left: 1px solid palette(light); +} + +ads--CAutoHideDockContainer[sideBarLocation="2"] ads--CResizeHandle { + border-right: 1px solid palette(light); +} + +ads--CAutoHideDockContainer[sideBarLocation="3"] ads--CResizeHandle { + border-top: 1px solid palette(light); +} + + + diff --git a/src/stylesheets/focus_highlighting.css b/src/stylesheets/focus_highlighting.css index 44fe586f..96f6fe8f 100644 --- a/src/stylesheets/focus_highlighting.css +++ b/src/stylesheets/focus_highlighting.css @@ -54,6 +54,10 @@ ads--CTitleBarButton { image: none; } +#tabsMenuButton { + qproperty-icon: url(:/ads/images/tabs-menu-button.svg); + qproperty-iconSize: 16px; +} #dockAreaCloseButton { qproperty-icon: url(:/ads/images/close-button.svg), diff --git a/src/stylesheets/focus_highlighting_dark.css b/src/stylesheets/focus_highlighting_dark.css new file mode 100644 index 00000000..941a4b6b --- /dev/null +++ b/src/stylesheets/focus_highlighting_dark.css @@ -0,0 +1,395 @@ +/* + * Default style sheet on Windows Platforms with focus highlighting flag enabled + */ + + +/***************************************************************************** + * CDockContainerWidget + *****************************************************************************/ +ads--CDockContainerWidget { + background: palette(window); +} + + +/***************************************************************************** + * CDockSplitter + *****************************************************************************/ +ads--CDockContainerWidget > QSplitter { + padding: 1 0 1 0; +} + + +ads--CDockSplitter::handle { + background-color: palette(light); + /* uncomment the following line if you would like to change the size of + the splitter handles */ + /* height: 1px; */ +} + + +/***************************************************************************** + * CDockAreaWidget + *****************************************************************************/ +ads--CDockAreaWidget { + background: palette(window); +} + + +ads--CDockAreaTitleBar { + background: transparent; + border-bottom: 2px solid palette(dark); + padding-bottom: 0px; +} + +ads--CDockAreaWidget[focused="true"] ads--CDockAreaTitleBar { + border-bottom: 2px solid palette(highlight); +} + +ads--CTitleBarButton { + padding: 0px 0px; +} + + +#tabsMenuButton::menu-indicator { + image: none; +} + +#tabsMenuButton { + qproperty-icon: url(:/ads/images/tabs-menu-button_dark.svg); + qproperty-iconSize: 16px; +} + +#dockAreaCloseButton { + qproperty-icon: url(:/ads/images/close-button_dark.svg), + url(:/ads/images/close-button-disabled_dark.svg) disabled; + qproperty-iconSize: 16px; +} + +#detachGroupButton { + qproperty-icon: url(:/ads/images/detach-button_dark.svg), + url(:/ads/images/detach-button-disabled_dark.svg) disabled; + qproperty-iconSize: 16px; +} + + + +/***************************************************************************** + * CDockWidgetTab + *****************************************************************************/ +ads--CDockWidgetTab { + background: palette(window); + border-color: palette(dark); + border-style: solid; + border-width: 0 1px 0 0; + padding: 0 0px; + qproperty-iconSize: 16px 16px;/* this is optional in case you would like to change icon size*/ +} + +ads--CDockWidgetTab[activeTab="true"] { + background: qlineargradient(spread : pad, x1 : 0, y1 : 0, x2 : 0, y2 : 0.5, stop : 0 + palette(window), stop:1 palette(dark)); + /*background: palette(highlight);*/ +} + +ads--CDockWidgetTab QLabel { + color: palette(light); +} + +ads--CDockWidgetTab[activeTab="true"] QLabel { + color: palette(foreground); +} + +#autoHideTitleLabel { + padding-left: 4px; + color: palette(foreground); +} + +#tabCloseButton { + margin-top: 2px; + background: none; + border: none; + padding: 0px -2px; + qproperty-icon: url(:/ads/images/close-button_dark.svg), + url(:/ads/images/close-button-disabled_dark.svg) disabled; + qproperty-iconSize: 16px; +} + +#tabCloseButton:hover { + /*border: 1px solid rgba(0, 0, 0, 32);*/ + background: rgba(255, 255, 255, 24); +} + +#tabCloseButton:pressed { + background: rgba(255, 255, 255, 48); +} + +/* Focus related styling */ +ads--CDockWidgetTab[focused="true"] { + background: palette(highlight); + border-color: palette(highlight); +} + +ads--CDockWidgetTab[focused="true"] > #tabCloseButton { + qproperty-icon: url(:/ads/images/close-button-focused_dark.svg) +} + +ads--CDockWidgetTab[focused="true"] > #tabCloseButton:hover { + background: rgba(0, 0, 0, 48); +} + +ads--CDockWidgetTab[focused="true"] > #tabCloseButton:pressed { + background: rgba(0, 0, 0, 92); +} + +ads--CDockWidgetTab[focused="true"] QLabel { + color: palette(highlighted-text); +} + + + +/***************************************************************************** + * CDockWidget + *****************************************************************************/ +ads--CDockWidget { + background: palette(dark); + border-color: palette(dark); + border-style: solid; + border-width: 1px 0 0 0; +} + + +QScrollArea#dockWidgetScrollArea { + padding: 0px; + border: none; +} + + + +/***************************************************************************** + * + * Styling of auto hide functionality + * + *****************************************************************************/ + + +/***************************************************************************** + * CAutoHideTab + *****************************************************************************/ +ads--CAutoHideTab { + qproperty-iconSize: 16px 16px;/* this is optional in case you would like to change icon size*/ + background: none; + border: none; + padding-left: 2px; + padding-right: 0px; + text-align: center; + min-height: 20px; + padding-bottom: 2px; +} + + +ads--CAutoHideTab:hover +{ + color: palette(highlight); +} + + +ads--CAutoHideTab[iconOnly="false"][sideBarLocation="0"], +ads--CAutoHideTab[iconOnly="false"][sideBarLocation="2"] { + border-top: 6px solid rgba(255, 255, 255, 48); +} + + +ads--CAutoHideTab[iconOnly="false"][sideBarLocation="1"], +ads--CAutoHideTab[iconOnly="false"][sideBarLocation="3"] { + border-bottom: 6px solid rgba(255, 255, 255, 48); +} + + + +ads--CAutoHideTab:hover[iconOnly="false"][sideBarLocation="0"], +ads--CAutoHideTab:hover[iconOnly="false"][sideBarLocation="2"], +ads--CAutoHideTab[iconOnly="false"][sideBarLocation="0"][activeTab="true"], +ads--CAutoHideTab[iconOnly="false"][sideBarLocation="2"][activeTab="true"] { + border-top: 6px solid palette(highlight); +} + + +ads--CAutoHideTab:hover[iconOnly="false"][sideBarLocation="1"], +ads--CAutoHideTab:hover[iconOnly="false"][sideBarLocation="3"], +ads--CAutoHideTab[iconOnly="false"][sideBarLocation="1"][activeTab="true"], +ads--CAutoHideTab[iconOnly="false"][sideBarLocation="3"][activeTab="true"] { + border-bottom: 6px solid palette(highlight); +} + + +/** + * Auto hide tabs with icon only + */ +ads--CAutoHideTab[iconOnly="true"][sideBarLocation="0"] { + border-top: 6px solid rgba(255, 255, 255, 48); +} + +ads--CAutoHideTab[iconOnly="true"][sideBarLocation="1"] { + border-left: 6px solid rgba(255, 255, 255, 48); +} + +ads--CAutoHideTab[iconOnly="true"][sideBarLocation="2"] { + border-right: 6px solid rgba(255, 255, 255, 48); +} + +ads--CAutoHideTab[iconOnly="true"][sideBarLocation="3"] { + border-bottom: 6px solid rgba(255, 255, 255, 48); +} + + +/** + * Auto hide tabs with icon only hover + */ +ads--CAutoHideTab:hover[iconOnly="true"][sideBarLocation="0"], +ads--CAutoHideTab[iconOnly="true"][sideBarLocation="0"][activeTab="true"] { + border-top: 6px solid palette(highlight); +} + +ads--CAutoHideTab:hover[iconOnly="true"][sideBarLocation="1"], +ads--CAutoHideTab[iconOnly="true"][sideBarLocation="1"][activeTab="true"] { + border-left: 6px solid palette(highlight); +} + +ads--CAutoHideTab:hover[iconOnly="true"][sideBarLocation="2"], +ads--CAutoHideTab[iconOnly="true"][sideBarLocation="2"][activeTab="true"] { + border-right: 6px solid palette(highlight); +} + +ads--CAutoHideTab:hover[iconOnly="true"][sideBarLocation="3"], +ads--CAutoHideTab[iconOnly="true"][sideBarLocation="3"][activeTab="true"] { + border-bottom: 6px solid palette(highlight); +} + + + +/***************************************************************************** + * CAutoHideSideBar + *****************************************************************************/ +ads--CAutoHideSideBar{ + background: palette(window); + border: none; + qproperty-spacing: 12; +} + +#sideTabsContainerWidget { + background: transparent; +} + + +ads--CAutoHideSideBar[sideBarLocation="0"] { + border-bottom: 1px solid palette(light); +} + +ads--CAutoHideSideBar[sideBarLocation="1"] { + border-right: 1px solid palette(light); +} + +ads--CAutoHideSideBar[sideBarLocation="2"] { + border-left: 1px solid palette(light); +} + +ads--CAutoHideSideBar[sideBarLocation="3"] { + border-top: 1px solid palette(light); +} + + +/***************************************************************************** + * CAutoHideDockContainer + *****************************************************************************/ +ads--CAutoHideDockContainer { + background: palette(window); +} + + +ads--CAutoHideDockContainer ads--CDockAreaTitleBar { + background: palette(highlight); + padding: 0px; + border: none; +} + + +/* + * This is required because the ads--CDockAreaWidget[focused="true"] will + * overwrite the ads--CAutoHideDockContainer ads--CDockAreaTitleBar rule + */ +ads--CAutoHideDockContainer ads--CDockAreaWidget[focused="true"] ads--CDockAreaTitleBar { + background: palette(highlight); + padding: 0px; + border: none; +} + + +ads--CAutoHideDockContainer #autoHideTitleLabel { + padding-left: 4px; + color: palette(dark); +} + + +/***************************************************************************** + * CAutoHideDockContainer titlebar buttons + *****************************************************************************/ +#dockAreaAutoHideButton { + qproperty-icon: url(:/ads/images/vs-pin-button_dark.svg), + url(:/ads/images/vs-pin-button-disabled_dark.svg) disabled; + qproperty-iconSize: 16px; +} + + +ads--CAutoHideDockContainer #dockAreaAutoHideButton { + qproperty-icon: url(:/ads/images/vs-pin-button-pinned-focused_dark.svg); + qproperty-iconSize: 16px; +} + + +ads--CAutoHideDockContainer #dockAreaMinimizeButton { + qproperty-icon: url(:/ads/images/minimize-button-focused_dark.svg); + qproperty-iconSize: 16px; +} + + +ads--CAutoHideDockContainer #dockAreaCloseButton{ + qproperty-icon: url(:/ads/images/close-button-focused_dark.svg) +} + + +ads--CAutoHideDockContainer ads--CTitleBarButton:hover { + background: rgba(255, 255, 255, 48); +} + +ads--CAutoHideDockContainer ads--CTitleBarButton:pressed { + background: rgba(255, 255, 255, 96); +} + +/***************************************************************************** + * CAutoHideDockContainer Titlebar and Buttons + *****************************************************************************/ + + +/***************************************************************************** + * CResizeHandle + *****************************************************************************/ +ads--CResizeHandle { + background: palette(window); +} + + +ads--CAutoHideDockContainer[sideBarLocation="0"] ads--CResizeHandle { + border-top: 1px solid palette(light); +} + +ads--CAutoHideDockContainer[sideBarLocation="1"] ads--CResizeHandle { + border-left: 1px solid palette(light); +} + +ads--CAutoHideDockContainer[sideBarLocation="2"] ads--CResizeHandle { + border-right: 1px solid palette(light); +} + +ads--CAutoHideDockContainer[sideBarLocation="3"] ads--CResizeHandle { + border-top: 1px solid palette(light); +} diff --git a/src/stylesheets/focus_highlighting_linux_dark.css b/src/stylesheets/focus_highlighting_linux_dark.css new file mode 100644 index 00000000..d904ae0c --- /dev/null +++ b/src/stylesheets/focus_highlighting_linux_dark.css @@ -0,0 +1,470 @@ +/* + * Default style sheet on Linux Platforms with focus highlighting flag enabled + */ + +/***************************************************************************** + * CDockContainerWidget + *****************************************************************************/ +ads--CDockContainerWidget { + background: palette(window); +} + + +/***************************************************************************** + * CDockSplitter + *****************************************************************************/ +ads--CDockContainerWidget > QSplitter{ + padding: 1 0 1 0; +} + + +ads--CDockContainerWidget ads--CDockSplitter::handle { + background: palette(light); +} + + +/***************************************************************************** + * CDockAreaWidget + *****************************************************************************/ +ads--CDockAreaWidget { + background: palette(window); +} + +ads--CDockAreaWidget #tabsMenuButton::menu-indicator { + image: none; +} + + +ads--CTitleBarButton { + padding: 0px 0px; +} + + +#autoHideTitleLabel { + padding-left: 4px; + color: palette(foreground); +} + + +#tabsMenuButton { + qproperty-icon: url(:/ads/images/tabs-menu-button_dark.svg); + qproperty-iconSize: 16px; +} + + +#dockAreaCloseButton { + qproperty-icon: url(:/ads/images/close-button_dark.svg), + url(:/ads/images/close-button-disabled_dark.svg) disabled; + qproperty-iconSize: 16px; +} + + +#detachGroupButton { + qproperty-icon: url(:/ads/images/detach-button_dark.svg), + url(:/ads/images/detach-button-disabled_dark.svg) disabled; + qproperty-iconSize: 16px; +} + + + +/***************************************************************************** + * CDockAreaTitleBar + *****************************************************************************/ +ads--CDockAreaTitleBar { + background: transparent; + border-bottom: 2px solid palette(dark); + padding-bottom: 0px; +} + +ads--CDockAreaWidget[focused="true"] ads--CDockAreaTitleBar { + background: transparent; + border-bottom: 2px solid palette(highlight); + padding-bottom: 0px; +} + + +/***************************************************************************** + * CDockWidgetTab and close button styling + *****************************************************************************/ +ads--CDockWidgetTab { + background: palette(window); + border-color: palette(dark); + border-style: solid; + border-width: 0 1px 0 0; + padding: 0 0px; +} + +ads--CDockWidgetTab[activeTab="true"] { + background: qlineargradient(spread : pad, x1 : 0, y1 : 0, x2 : 0, y2 : 0.5, stop : 0 + palette(window), stop:1 palette(dark)); + /*background: palette(highlight);*/ +} + +ads--CDockWidgetTab QLabel { + color: palette(light); +} + +ads--CDockWidgetTab[activeTab="true"] QLabel { + color: palette(foreground); +} + + +#tabCloseButton { + margin-top: 2px; + background: none; + border: none; + padding: 0px -2px; + qproperty-icon: url(:/ads/images/close-button_dark.svg), + url(:/ads/images/close-button-disabled_dark.svg) disabled; + qproperty-iconSize: 16px; +} + +#tabCloseButton:hover { + /*border: 1px solid rgba(0, 0, 0, 32);*/ + background: rgba(255, 255, 255, 24); +} + +#tabCloseButton:pressed { + background: rgba(255, 255, 255, 48); +} + + +/* Focus related styling */ +ads--CDockWidgetTab[focused="true"] { + background: palette(highlight); + border-color: palette(highlight); +} + +ads--CDockWidgetTab[focused="true"] > #tabCloseButton { + qproperty-icon: url(:/ads/images/close-button-focused_dark.svg) +} + +ads--CDockWidgetTab[focused="true"] > #tabCloseButton:hover { + background: rgba(0, 0, 0, 48); +} + +ads--CDockWidgetTab[focused="true"] > #tabCloseButton:pressed { + background: rgba(0, 0, 0, 92); +} + +ads--CDockWidgetTab[focused="true"] QLabel { + color: palette(highlighted-text); +} + + +/***************************************************************************** + * CDockWidget + *****************************************************************************/ +ads--CDockWidget { + background: palette(dark); + border-color: palette(dark); + border-style: solid; + border-width: 1px 0 0 0; +} + + +QScrollArea#dockWidgetScrollArea { + padding: 0px; + border: none; +} + + + +/***************************************************************************** + * Floating widget styling + *****************************************************************************/ +ads--CFloatingWidgetTitleBar { + qproperty-maximizeIcon: url(:/ads/images/maximize-button_dark.svg); + qproperty-normalIcon: url(:/ads/images/restore-button_dark.svg); +} + + +/* does not properly work on KDE +ads--CFloatingDockContainer[isActiveWindow="true"] ads--CFloatingWidgetTitleBar { + background: palette(highlight); + qproperty-maximizeIcon: url(:/ads/images/maximize-button-focused_dark.svg); + qproperty-normalIcon: url(:/ads/images/restore-button-focused_dark.svg); +} + +ads--CFloatingDockContainer[isActiveWindow="true"] #floatingTitleLabel { + color: palette(light); +} +*/ + +#floatingTitleCloseButton, #floatingTitleMaximizeButton { + qproperty-iconSize: 16px; + border: none; + margin: 6px 3px 6px 3px; +} + + +#floatingTitleCloseButton { + qproperty-icon: url(:/ads/images/close-button_dark.svg); +} + + +#floatingTitleCloseButton:hover, #floatingTitleMaximizeButton:hover { + background: rgba(255, 255, 255, 24); + border: none; +} + + +#floatingTitleCloseButton:pressed, #floatingTitleMaximizeButton:pressed { + background: rgba(255, 255, 255, 48); +} + + +ads--CFloatingDockContainer[isActiveWindow="true"] #floatingTitleMaximizeButton { + qproperty-iconSize: 16px; +} + + +/* does not properly work on KDE +ads--CFloatingDockContainer[isActiveWindow="true"] #floatingTitleCloseButton { + qproperty-icon: url(:/ads/images/close-button-focused_dark.svg); + qproperty-iconSize: 16px; +} + +ads--CFloatingDockContainer[isActiveWindow="true"] #floatingTitleCloseButton:hover, +ads--CFloatingDockContainer[isActiveWindow="true"] #floatingTitleMaximizeButton:hover { + background: rgba(255, 255, 255, 48); +} + + +ads--CFloatingDockContainer[isActiveWindow="true"] #floatingTitleCloseButton:pressed, +ads--CFloatingDockContainer[isActiveWindow="true"] #floatingTitleMaximizeButton:pressed { + background: rgba(255, 255, 255, 92); +} +*/ + + +/***************************************************************************** + * + * Styling of auto hide functionality + * + *****************************************************************************/ + + +/***************************************************************************** + * CAutoHideTab + *****************************************************************************/ +ads--CAutoHideTab { + qproperty-iconSize: 16px 16px;/* this is optional in case you would like to change icon size*/ + background: none; + border: none; + padding-left: 2px; + padding-right: 0px; + text-align: center; + min-height: 20px; + padding-bottom: 2px; +} + + +ads--CAutoHideTab:hover +{ + color: palette(highlight); +} + + +ads--CAutoHideTab[iconOnly="false"][sideBarLocation="0"], +ads--CAutoHideTab[iconOnly="false"][sideBarLocation="2"] { + border-top: 6px solid rgba(255, 255, 255, 48); +} + + +ads--CAutoHideTab[iconOnly="false"][sideBarLocation="1"], +ads--CAutoHideTab[iconOnly="false"][sideBarLocation="3"] { + border-bottom: 6px solid rgba(255, 255, 255, 48); +} + + + +ads--CAutoHideTab:hover[iconOnly="false"][sideBarLocation="0"], +ads--CAutoHideTab:hover[iconOnly="false"][sideBarLocation="2"], +ads--CAutoHideTab[iconOnly="false"][sideBarLocation="0"][activeTab="true"], +ads--CAutoHideTab[iconOnly="false"][sideBarLocation="2"][activeTab="true"] { + border-top: 6px solid palette(highlight); +} + + +ads--CAutoHideTab:hover[iconOnly="false"][sideBarLocation="1"], +ads--CAutoHideTab:hover[iconOnly="false"][sideBarLocation="3"], +ads--CAutoHideTab[iconOnly="false"][sideBarLocation="1"][activeTab="true"], +ads--CAutoHideTab[iconOnly="false"][sideBarLocation="3"][activeTab="true"] { + border-bottom: 6px solid palette(highlight); +} + + +/** + * Auto hide tabs with icon only + */ +ads--CAutoHideTab[iconOnly="true"][sideBarLocation="0"] { + border-top: 6px solid rgba(255, 255, 255, 48); +} + +ads--CAutoHideTab[iconOnly="true"][sideBarLocation="1"] { + border-left: 6px solid rgba(255, 255, 255, 48); +} + +ads--CAutoHideTab[iconOnly="true"][sideBarLocation="2"] { + border-right: 6px solid rgba(255, 255, 255, 48); +} + +ads--CAutoHideTab[iconOnly="true"][sideBarLocation="3"] { + border-bottom: 6px solid rgba(255, 255, 255, 48); +} + + +/** + * Auto hide tabs with icon only hover + */ +ads--CAutoHideTab:hover[iconOnly="true"][sideBarLocation="0"], +ads--CAutoHideTab[iconOnly="true"][sideBarLocation="0"][activeTab="true"] { + border-top: 6px solid palette(highlight); +} + +ads--CAutoHideTab:hover[iconOnly="true"][sideBarLocation="1"], +ads--CAutoHideTab[iconOnly="true"][sideBarLocation="1"][activeTab="true"] { + border-left: 6px solid palette(highlight); +} + +ads--CAutoHideTab:hover[iconOnly="true"][sideBarLocation="2"], +ads--CAutoHideTab[iconOnly="true"][sideBarLocation="2"][activeTab="true"] { + border-right: 6px solid palette(highlight); +} + +ads--CAutoHideTab:hover[iconOnly="true"][sideBarLocation="3"], +ads--CAutoHideTab[iconOnly="true"][sideBarLocation="3"][activeTab="true"] { + border-bottom: 6px solid palette(highlight); +} + + + +/***************************************************************************** + * CAutoHideSideBar + *****************************************************************************/ +ads--CAutoHideSideBar{ + background: palette(window); + border: none; + qproperty-spacing: 12; +} + +#sideTabsContainerWidget { + background: transparent; +} + + +ads--CAutoHideSideBar[sideBarLocation="0"] { + border-bottom: 1px solid palette(light); +} + +ads--CAutoHideSideBar[sideBarLocation="1"] { + border-right: 1px solid palette(light); +} + +ads--CAutoHideSideBar[sideBarLocation="2"] { + border-left: 1px solid palette(light); +} + +ads--CAutoHideSideBar[sideBarLocation="3"] { + border-top: 1px solid palette(light); +} + + +/***************************************************************************** + * CAutoHideDockContainer + *****************************************************************************/ +ads--CAutoHideDockContainer { + background: palette(window); +} + + +ads--CAutoHideDockContainer ads--CDockAreaTitleBar { + background: palette(highlight); + padding: 0px; + border: none; +} + + +/* + * This is required because the ads--CDockAreaWidget[focused="true"] will + * overwrite the ads--CAutoHideDockContainer ads--CDockAreaTitleBar rule + */ +ads--CAutoHideDockContainer ads--CDockAreaWidget[focused="true"] ads--CDockAreaTitleBar { + background: palette(highlight); + padding: 0px; + border: none; +} + + +ads--CAutoHideDockContainer #autoHideTitleLabel { + padding-left: 4px; + color: palette(dark); +} + + +/***************************************************************************** + * CAutoHideDockContainer titlebar buttons + *****************************************************************************/ +#dockAreaAutoHideButton { + qproperty-icon: url(:/ads/images/vs-pin-button_dark.svg), + url(:/ads/images/vs-pin-button-disabled_dark.svg) disabled; + qproperty-iconSize: 16px; +} + +ads--CAutoHideDockContainer #dockAreaAutoHideButton { + qproperty-icon: url(:/ads/images/vs-pin-button-pinned-focused_dark.svg); + qproperty-iconSize: 16px; +} + + +ads--CAutoHideDockContainer #dockAreaMinimizeButton { + qproperty-icon: url(:/ads/images/minimize-button-focused_dark.svg); + qproperty-iconSize: 16px; +} + + +ads--CAutoHideDockContainer #dockAreaCloseButton{ + qproperty-icon: url(:/ads/images/close-button-focused_dark.svg) +} + + +ads--CAutoHideDockContainer ads--CTitleBarButton:hover { + background: rgba(255, 255, 255, 48); + border: none; +} + +ads--CAutoHideDockContainer ads--CTitleBarButton:pressed { + background: rgba(255, 255, 255, 96); + border: none; +} + +/***************************************************************************** + * CAutoHideDockContainer Titlebar and Buttons + *****************************************************************************/ + + +/***************************************************************************** + * CResizeHandle + *****************************************************************************/ +ads--CResizeHandle { + background: palette(window); +} + + +ads--CAutoHideDockContainer[sideBarLocation="0"] ads--CResizeHandle { + border-top: 1px solid palette(light); +} + +ads--CAutoHideDockContainer[sideBarLocation="1"] ads--CResizeHandle { + border-left: 1px solid palette(light); +} + +ads--CAutoHideDockContainer[sideBarLocation="2"] ads--CResizeHandle { + border-right: 1px solid palette(light); +} + +ads--CAutoHideDockContainer[sideBarLocation="3"] ads--CResizeHandle { + border-top: 1px solid palette(light); +} +