7a551570fe
Following
commit 4f08a15f3b
Author: lovatico21 <lorenzo04lovato@gmail.com>
Date: Wed Nov 13 18:12:58 2024 +0100
updated vim footers in vcl/qt6/*.cxx
, update vim header/trailers to those in current
`TEMPLATE.SOURCECODE.HEADER` for other qt5/qt6
headers and sources as well (i.e. for directories
`vcl/inc/qt5`, `vcl/inc/qt6` and `vcl/qt5/`).
Change-Id: If9fea8f4ce955396f064dbd9fd706e76d947bce1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/176705
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
150 lines
6 KiB
C++
150 lines
6 KiB
C++
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */
|
|
/*
|
|
* This file is part of the LibreOffice project.
|
|
*
|
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
*/
|
|
|
|
#include <IconThemeSelector.hxx>
|
|
#include <QtCustomStyle.hxx>
|
|
#include <QtFrame.hxx>
|
|
#include <QtWidgets/qdrawutil.h>
|
|
#include <QtWidgets/QApplication>
|
|
#include <vcl/themecolors.hxx>
|
|
#include <vcl/qt/QtUtils.hxx>
|
|
|
|
void QtCustomStyle::drawPrimitive(PrimitiveElement element, const QStyleOption* option,
|
|
QPainter* painter, const QWidget* widget) const
|
|
{
|
|
if (!ThemeColors::IsThemeLoaded() || IsSystemThemeChanged())
|
|
{
|
|
QProxyStyle::drawPrimitive(element, option, painter, widget);
|
|
return;
|
|
}
|
|
|
|
const ThemeColors& aThemeColors = ThemeColors::GetThemeColors();
|
|
switch (element)
|
|
{
|
|
case PE_FrameTabWidget:
|
|
{
|
|
painter->save();
|
|
QBrush aFillBrush(toQColor(aThemeColors.GetWindowColor()));
|
|
QStyleOption aOpt = *option;
|
|
qDrawWinPanel(painter, option->rect, option->palette, false, &aFillBrush);
|
|
painter->restore();
|
|
break;
|
|
}
|
|
case PE_FrameFocusRect:
|
|
break;
|
|
default:
|
|
QProxyStyle::drawPrimitive(element, option, painter, widget);
|
|
}
|
|
}
|
|
|
|
QPalette QtCustomStyle::customPalette()
|
|
{
|
|
if (!ThemeColors::IsThemeLoaded())
|
|
return QApplication::palette();
|
|
|
|
const ThemeColors& aThemeColors = ThemeColors::GetThemeColors();
|
|
QPalette aPal;
|
|
|
|
aPal.setColor(QPalette::Base, toQColor(aThemeColors.GetBaseColor()));
|
|
aPal.setColor(QPalette::Window, toQColor(aThemeColors.GetWindowColor()));
|
|
|
|
aPal.setColor(QPalette::WindowText, toQColor(aThemeColors.GetWindowTextColor()));
|
|
aPal.setColor(QPalette::Disabled, QPalette::WindowText,
|
|
toQColor(aThemeColors.GetSeparatorColor()));
|
|
aPal.setColor(QPalette::Text, toQColor(aThemeColors.GetButtonTextColor()));
|
|
aPal.setColor(QPalette::ButtonText, toQColor(aThemeColors.GetButtonTextColor()));
|
|
aPal.setColor(QPalette::Disabled, QPalette::ButtonText,
|
|
toQColor(aThemeColors.GetDisabledTextColor()));
|
|
aPal.setColor(QPalette::PlaceholderText, toQColor(aThemeColors.GetWindowTextColor()));
|
|
aPal.setColor(QPalette::Button, toQColor(aThemeColors.GetButtonColor()));
|
|
aPal.setColor(QPalette::Highlight, toQColor(aThemeColors.GetAccentColor()));
|
|
|
|
aPal.setColor(QPalette::Dark, toQColor(aThemeColors.GetShadeColor()));
|
|
aPal.setColor(QPalette::Midlight, toQColor(aThemeColors.GetShadeColor()));
|
|
aPal.setColor(QPalette::Light, toQColor(aThemeColors.GetWindowColor()));
|
|
aPal.setColor(QPalette::Shadow, toQColor(aThemeColors.GetWindowColor()));
|
|
|
|
return aPal;
|
|
}
|
|
|
|
QPalette QtCustomStyle::GetMenuBarPalette()
|
|
{
|
|
if (!ThemeColors::IsThemeLoaded() || IsSystemThemeChanged())
|
|
return QApplication::palette();
|
|
|
|
QPalette aPal;
|
|
const ThemeColors& aThemeColors = ThemeColors::GetThemeColors();
|
|
|
|
aPal.setColor(QPalette::Text, toQColor(aThemeColors.GetMenuBarTextColor()));
|
|
aPal.setColor(QPalette::ButtonText, toQColor(aThemeColors.GetMenuBarTextColor()));
|
|
aPal.setColor(QPalette::Window, toQColor(aThemeColors.GetMenuBarColor()));
|
|
aPal.setColor(QPalette::Highlight, toQColor(aThemeColors.GetMenuBarHighlightColor()));
|
|
aPal.setColor(QPalette::HighlightedText, toQColor(aThemeColors.GetMenuBarHighlightTextColor()));
|
|
|
|
return aPal;
|
|
}
|
|
|
|
QPalette QtCustomStyle::GetMenuPalette()
|
|
{
|
|
if (!ThemeColors::IsThemeLoaded() || IsSystemThemeChanged())
|
|
return QApplication::palette();
|
|
|
|
QPalette aPal;
|
|
const ThemeColors& aThemeColors = ThemeColors::GetThemeColors();
|
|
|
|
aPal.setColor(QPalette::Base, toQColor(aThemeColors.GetMenuColor()));
|
|
aPal.setColor(QPalette::Highlight, toQColor(aThemeColors.GetMenuHighlightColor()));
|
|
aPal.setColor(QPalette::HighlightedText, toQColor(aThemeColors.GetMenuHighlightTextColor()));
|
|
aPal.setColor(QPalette::Disabled, QPalette::WindowText,
|
|
toQColor(aThemeColors.GetDisabledTextColor()));
|
|
aPal.setColor(QPalette::Window, toQColor(aThemeColors.GetMenuColor()));
|
|
|
|
aPal.setColor(QPalette::Text, toQColor(aThemeColors.GetMenuTextColor()));
|
|
aPal.setColor(QPalette::Disabled, QPalette::Text,
|
|
toQColor(aThemeColors.GetDisabledTextColor()));
|
|
aPal.setColor(QPalette::ButtonText, toQColor(aThemeColors.GetMenuTextColor()));
|
|
aPal.setColor(QPalette::WindowText, toQColor(aThemeColors.GetMenuTextColor()));
|
|
aPal.setColor(QPalette::Button, toQColor(aThemeColors.GetButtonColor()));
|
|
aPal.setColor(QPalette::Disabled, QPalette::ButtonText,
|
|
toQColor(aThemeColors.GetDisabledTextColor()));
|
|
|
|
aPal.setColor(QPalette::Dark, toQColor(aThemeColors.GetMenuColor()));
|
|
aPal.setColor(QPalette::Midlight, toQColor(aThemeColors.GetMenuColor()));
|
|
aPal.setColor(QPalette::Light, toQColor(aThemeColors.GetMenuColor()));
|
|
aPal.setColor(QPalette::Shadow, toQColor(aThemeColors.GetMenuColor()));
|
|
|
|
return aPal;
|
|
}
|
|
|
|
bool QtCustomStyle::IsSystemThemeChanged()
|
|
{
|
|
return QApplication::palette() != QtCustomStyle::customPalette();
|
|
}
|
|
|
|
void QtCustomStyle::LoadCustomStyle(bool bDarkMode)
|
|
{
|
|
if (!ThemeColors::IsThemeLoaded()
|
|
|| ThemeColors::IsAutomaticTheme(ThemeColors::GetThemeColors().GetThemeName()))
|
|
return;
|
|
|
|
// don't set custom palette in case the system theme has been changed.
|
|
if (!(m_bIsCustomStyleSet && IsSystemThemeChanged()))
|
|
QApplication::setPalette(QtCustomStyle::customPalette());
|
|
|
|
QIcon::setThemeName(toQString(vcl::IconThemeSelector::GetIconThemeForDesktopEnvironment(
|
|
Application::GetDesktopEnvironment(), bDarkMode)));
|
|
|
|
if (m_bIsCustomStyleSet)
|
|
return;
|
|
|
|
QApplication::setStyle(new QtCustomStyle);
|
|
m_bIsCustomStyleSet = true;
|
|
}
|
|
|
|
/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */
|