diff options
-rw-r--r-- | vcl/qt5/Qt5Frame.cxx | 119 | ||||
-rw-r--r-- | vcl/unx/kde5/KDE5SalFrame.cxx | 119 |
2 files changed, 121 insertions, 117 deletions
diff --git a/vcl/qt5/Qt5Frame.cxx b/vcl/qt5/Qt5Frame.cxx index cabee2b2d2dc..86854c9b3fd8 100644 --- a/vcl/qt5/Qt5Frame.cxx +++ b/vcl/qt5/Qt5Frame.cxx @@ -31,7 +31,10 @@ #include <QtGui/QIcon> #include <QtGui/QWindow> #include <QtGui/QScreen> +#include <QtWidgets/QStyle> +#include <QtWidgets/QToolTip> #include <QtWidgets/QApplication> +#include <QtWidgets/QMenuBar> #include <saldatabasic.hxx> #include <window.h> @@ -473,13 +476,129 @@ bool Qt5Frame::MapUnicodeToKeyCode(sal_Unicode /*aUnicode*/, LanguageType /*aLan LanguageType Qt5Frame::GetInputLanguage() { return LANGUAGE_DONTKNOW; } +static Color toColor(const QColor& rColor) +{ + return Color(rColor.red(), rColor.green(), rColor.blue()); +} + void Qt5Frame::UpdateSettings(AllSettings& rSettings) { StyleSettings style(rSettings.GetStyleSettings()); + // General settings + QPalette pal = QApplication::palette(); + + style.SetToolbarIconSize(ToolbarIconSize::Large); + + style.SetActiveColor(toColor(pal.color(QPalette::Active, QPalette::Window))); + style.SetDeactiveColor(toColor(pal.color(QPalette::Inactive, QPalette::Window))); + + style.SetActiveTextColor(toColor(pal.color(QPalette::Active, QPalette::WindowText))); + style.SetDeactiveTextColor(toColor(pal.color(QPalette::Inactive, QPalette::WindowText))); + + Color aFore = toColor(pal.color(QPalette::Active, QPalette::WindowText)); + Color aBack = toColor(pal.color(QPalette::Active, QPalette::Window)); + Color aText = toColor(pal.color(QPalette::Active, QPalette::Text)); + Color aBase = toColor(pal.color(QPalette::Active, QPalette::Base)); + Color aButn = toColor(pal.color(QPalette::Active, QPalette::ButtonText)); + Color aMid = toColor(pal.color(QPalette::Active, QPalette::Mid)); + Color aHigh = toColor(pal.color(QPalette::Active, QPalette::Highlight)); + Color aHighText = toColor(pal.color(QPalette::Active, QPalette::HighlightedText)); + + style.SetSkipDisabledInMenus(true); + + // Foreground + style.SetRadioCheckTextColor(aFore); + style.SetLabelTextColor(aFore); + style.SetDialogTextColor(aFore); + style.SetGroupTextColor(aFore); + + // Text + style.SetFieldTextColor(aText); + style.SetFieldRolloverTextColor(aText); + style.SetWindowTextColor(aText); + style.SetToolTextColor(aText); + + // Base + style.SetFieldColor(aBase); + style.SetWindowColor(aBase); + style.SetActiveTabColor(aBase); + + // Buttons + style.SetButtonTextColor(aButn); + style.SetButtonRolloverTextColor(aButn); + style.SetButtonPressedRolloverTextColor(aButn); + + // Tabs + style.SetTabTextColor(aButn); + style.SetTabRolloverTextColor(aButn); + style.SetTabHighlightTextColor(aButn); + + // Disable color + style.SetDisableColor(toColor(pal.color(QPalette::Disabled, QPalette::WindowText))); + + // Background + style.BatchSetBackgrounds(aBack); + style.SetInactiveTabColor(aBack); + + // Workspace + style.SetWorkspaceColor(aMid); + + // Selection + style.SetHighlightColor(aHigh); + style.SetHighlightTextColor(aHighText); + + // Tooltip + style.SetHelpColor(toColor(QToolTip::palette().color(QPalette::Active, QPalette::ToolTipBase))); + style.SetHelpTextColor( + toColor(QToolTip::palette().color(QPalette::Active, QPalette::ToolTipText))); + const int flash_time = QApplication::cursorFlashTime(); style.SetCursorBlinkTime(flash_time != 0 ? flash_time / 2 : STYLE_CURSOR_NOBLINKTIME); + // Menu + std::unique_ptr<QMenuBar> pMenuBar = std::unique_ptr<QMenuBar>(new QMenuBar()); + QPalette qMenuCG = pMenuBar->palette(); + + // Menu text and background color, theme specific + Color aMenuFore = toColor(qMenuCG.color(QPalette::WindowText)); + Color aMenuBack = toColor(qMenuCG.color(QPalette::Window)); + + style.SetMenuTextColor(aMenuFore); + style.SetMenuBarTextColor(style.GetPersonaMenuBarTextColor().get_value_or(aMenuFore)); + style.SetMenuColor(aMenuBack); + style.SetMenuBarColor(aMenuBack); + style.SetMenuHighlightColor(toColor(qMenuCG.color(QPalette::Highlight))); + style.SetMenuHighlightTextColor(toColor(qMenuCG.color(QPalette::HighlightedText))); + + // set special menubar highlight text color + if (QApplication::style()->inherits("HighContrastStyle")) + ImplGetSVData()->maNWFData.maMenuBarHighlightTextColor + = toColor(qMenuCG.color(QPalette::HighlightedText)); + else + ImplGetSVData()->maNWFData.maMenuBarHighlightTextColor = aMenuFore; + + // set menubar rollover color + if (pMenuBar->style()->styleHint(QStyle::SH_MenuBar_MouseTracking)) + { + style.SetMenuBarRolloverColor(toColor(qMenuCG.color(QPalette::Highlight))); + style.SetMenuBarRolloverTextColor(ImplGetSVData()->maNWFData.maMenuBarHighlightTextColor); + } + else + { + style.SetMenuBarRolloverColor(aMenuBack); + style.SetMenuBarRolloverTextColor(aMenuFore); + } + style.SetMenuBarHighlightTextColor(style.GetMenuHighlightTextColor()); + + // Scroll bar size + style.SetScrollBarSize(QApplication::style()->pixelMetric(QStyle::PM_ScrollBarExtent)); + style.SetMinThumbSize(QApplication::style()->pixelMetric(QStyle::PM_ScrollBarSliderMin)); + + // These colors are used for the ruler text and marks + style.SetShadowColor(toColor(pal.color(QPalette::Disabled, QPalette::WindowText))); + style.SetDarkShadowColor(toColor(pal.color(QPalette::Inactive, QPalette::WindowText))); + rSettings.SetStyleSettings(style); } diff --git a/vcl/unx/kde5/KDE5SalFrame.cxx b/vcl/unx/kde5/KDE5SalFrame.cxx index 0679ac0847b7..dffc759d44a2 100644 --- a/vcl/unx/kde5/KDE5SalFrame.cxx +++ b/vcl/unx/kde5/KDE5SalFrame.cxx @@ -52,13 +52,6 @@ KDE5SalFrame::KDE5SalFrame(KDE5SalFrame* pParent, SalFrameStyleFlags nState, boo { } -/** Helper function to convert colors. -*/ -static Color toColor(const QColor& rColor) -{ - return Color(rColor.red(), rColor.green(), rColor.blue()); -} - /** Helper function to add information to Font from QFont. Mostly grabbed from the Gtk+ vclplug (salnativewidgets-gtk.cxx). @@ -141,20 +134,11 @@ static vcl::Font toFont(const QFont& rQFont, const css::lang::Locale& rLocale) */ void KDE5SalFrame::UpdateSettings(AllSettings& rSettings) { + Qt5Frame::UpdateSettings(rSettings); + StyleSettings style(rSettings.GetStyleSettings()); bool bSetTitleFont = false; - // General settings - QPalette pal = QApplication::palette(); - - style.SetToolbarIconSize(ToolbarIconSize::Large); - - style.SetActiveColor(toColor(pal.color(QPalette::Active, QPalette::Window))); - style.SetDeactiveColor(toColor(pal.color(QPalette::Inactive, QPalette::Window))); - - style.SetActiveTextColor(toColor(pal.color(QPalette::Active, QPalette::WindowText))); - style.SetDeactiveTextColor(toColor(pal.color(QPalette::Inactive, QPalette::WindowText))); - // WM settings /*KConfig *pConfig = KGlobal::config().data(); if ( pConfig ) @@ -190,63 +174,6 @@ void KDE5SalFrame::UpdateSettings(AllSettings& rSettings) } }*/ - Color aFore = toColor(pal.color(QPalette::Active, QPalette::WindowText)); - Color aBack = toColor(pal.color(QPalette::Active, QPalette::Window)); - Color aText = toColor(pal.color(QPalette::Active, QPalette::Text)); - Color aBase = toColor(pal.color(QPalette::Active, QPalette::Base)); - Color aButn = toColor(pal.color(QPalette::Active, QPalette::ButtonText)); - Color aMid = toColor(pal.color(QPalette::Active, QPalette::Mid)); - Color aHigh = toColor(pal.color(QPalette::Active, QPalette::Highlight)); - Color aHighText = toColor(pal.color(QPalette::Active, QPalette::HighlightedText)); - - style.SetSkipDisabledInMenus(true); - - // Foreground - style.SetRadioCheckTextColor(aFore); - style.SetLabelTextColor(aFore); - style.SetDialogTextColor(aFore); - style.SetGroupTextColor(aFore); - - // Text - style.SetFieldTextColor(aText); - style.SetFieldRolloverTextColor(aText); - style.SetWindowTextColor(aText); - style.SetToolTextColor(aText); - - // Base - style.SetFieldColor(aBase); - style.SetWindowColor(aBase); - style.SetActiveTabColor(aBase); - - // Buttons - style.SetButtonTextColor(aButn); - style.SetButtonRolloverTextColor(aButn); - style.SetButtonPressedRolloverTextColor(aButn); - - // Tabs - style.SetTabTextColor(aButn); - style.SetTabRolloverTextColor(aButn); - style.SetTabHighlightTextColor(aButn); - - // Disable color - style.SetDisableColor(toColor(pal.color(QPalette::Disabled, QPalette::WindowText))); - - // Background - style.BatchSetBackgrounds(aBack); - style.SetInactiveTabColor(aBack); - - // Workspace - style.SetWorkspaceColor(aMid); - - // Selection - style.SetHighlightColor(aHigh); - style.SetHighlightTextColor(aHighText); - - // Tooltip - style.SetHelpColor(toColor(QToolTip::palette().color(QPalette::Active, QPalette::ToolTipBase))); - style.SetHelpTextColor( - toColor(QToolTip::palette().color(QPalette::Active, QPalette::ToolTipText))); - // Font vcl::Font aFont = toFont(QApplication::font(), rSettings.GetUILanguageTag().getLocale()); @@ -265,51 +192,9 @@ void KDE5SalFrame::UpdateSettings(AllSettings& rSettings) // Menu std::unique_ptr<QMenuBar> pMenuBar = std::unique_ptr<QMenuBar>(new QMenuBar()); - QPalette qMenuCG = pMenuBar->palette(); - - // Menu text and background color, theme specific - Color aMenuFore = toColor(qMenuCG.color(QPalette::WindowText)); - Color aMenuBack = toColor(qMenuCG.color(QPalette::Window)); - - style.SetMenuTextColor(aMenuFore); - style.SetMenuBarTextColor(style.GetPersonaMenuBarTextColor().get_value_or(aMenuFore)); - style.SetMenuColor(aMenuBack); - style.SetMenuBarColor(aMenuBack); - style.SetMenuHighlightColor(toColor(qMenuCG.color(QPalette::Highlight))); - style.SetMenuHighlightTextColor(toColor(qMenuCG.color(QPalette::HighlightedText))); - - // set special menubar highlight text color - if (QApplication::style()->inherits("HighContrastStyle")) - ImplGetSVData()->maNWFData.maMenuBarHighlightTextColor - = toColor(qMenuCG.color(QPalette::HighlightedText)); - else - ImplGetSVData()->maNWFData.maMenuBarHighlightTextColor = aMenuFore; - - // set menubar rollover color - if (pMenuBar->style()->styleHint(QStyle::SH_MenuBar_MouseTracking)) - { - style.SetMenuBarRolloverColor(toColor(qMenuCG.color(QPalette::Highlight))); - style.SetMenuBarRolloverTextColor(ImplGetSVData()->maNWFData.maMenuBarHighlightTextColor); - } - else - { - style.SetMenuBarRolloverColor(aMenuBack); - style.SetMenuBarRolloverTextColor(aMenuFore); - } - style.SetMenuBarHighlightTextColor(style.GetMenuHighlightTextColor()); - - // Font aFont = toFont(pMenuBar->font(), rSettings.GetUILanguageTag().getLocale()); style.SetMenuFont(aFont); - // Scroll bar size - style.SetScrollBarSize(QApplication::style()->pixelMetric(QStyle::PM_ScrollBarExtent)); - style.SetMinThumbSize(QApplication::style()->pixelMetric(QStyle::PM_ScrollBarSliderMin)); - - // These colors are used for the ruler text and marks - style.SetShadowColor(toColor(pal.color(QPalette::Disabled, QPalette::WindowText))); - style.SetDarkShadowColor(toColor(pal.color(QPalette::Inactive, QPalette::WindowText))); - rSettings.SetStyleSettings(style); } |