forked from github_mirror/framelesshelper
refactor
This commit is contained in:
parent
721f46307b
commit
1ba9c9c918
|
@ -33,7 +33,6 @@
|
|||
#include <QtWidgets/qboxlayout.h>
|
||||
#include <QtWidgets/qfileiconprovider.h>
|
||||
#include <FramelessHelper/Core/framelessmanager.h>
|
||||
#include <FramelessHelper/Core/utils.h>
|
||||
#include <FramelessHelper/Widgets/framelesswidgetshelper.h>
|
||||
#include <FramelessHelper/Widgets/standardtitlebar.h>
|
||||
#include <FramelessHelper/Widgets/standardsystembutton.h>
|
||||
|
@ -144,7 +143,7 @@ void Widget::initialize()
|
|||
|
||||
void Widget::updateStyleSheet()
|
||||
{
|
||||
const bool dark = Utils::shouldAppsUseDarkMode();
|
||||
const bool dark = (FramelessManager::instance()->systemTheme() == SystemTheme::Dark);
|
||||
const QColor clockLabelTextColor = (dark ? kDefaultWhiteColor : kDefaultBlackColor);
|
||||
m_clockLabel->setStyleSheet(FRAMELESSHELPER_STRING_LITERAL("background-color: transparent; color: %1;")
|
||||
.arg(clockLabelTextColor.name()));
|
||||
|
|
|
@ -81,7 +81,7 @@ const ChromePalettePrivate *ChromePalettePrivate::get(const ChromePalette *q)
|
|||
void ChromePalettePrivate::refresh()
|
||||
{
|
||||
const bool colorized = Utils::isTitleBarColorized();
|
||||
const bool dark = Utils::shouldAppsUseDarkMode();
|
||||
const bool dark = (FramelessManager::instance()->systemTheme() == SystemTheme::Dark);
|
||||
titleBarActiveBackgroundColor_sys = [colorized, dark]() -> QColor {
|
||||
if (colorized) {
|
||||
#ifdef Q_OS_WINDOWS
|
||||
|
|
|
@ -558,7 +558,7 @@ void FramelessHelperWin::addWindow(FramelessParamsConst params)
|
|||
// Tell DWM we may need dark theme non-client area (title bar & frame border).
|
||||
FramelessHelper::Core::setApplicationOSThemeAware();
|
||||
if (WindowsVersionHelper::isWin10RS5OrGreater()) {
|
||||
const bool dark = Utils::shouldAppsUseDarkMode();
|
||||
const bool dark = (FramelessManager::instance()->systemTheme() == SystemTheme::Dark);
|
||||
const auto isWidget = [params]() -> bool {
|
||||
const auto widget = params->getWidgetHandle();
|
||||
return (widget && widget->isWidgetType());
|
||||
|
@ -1336,7 +1336,7 @@ bool FramelessHelperWin::nativeEventFilter(const QByteArray &eventType, void *me
|
|||
&& (std::wcscmp(reinterpret_cast<LPCWSTR>(lParam), kThemeSettingChangeEventName) == 0)) {
|
||||
systemThemeChanged = true;
|
||||
if (WindowsVersionHelper::isWin10RS5OrGreater()) {
|
||||
const bool dark = Utils::shouldAppsUseDarkMode();
|
||||
const bool dark = (FramelessManager::instance()->systemTheme() == SystemTheme::Dark);
|
||||
const auto isWidget = [&data]() -> bool {
|
||||
const auto widget = data.params.getWidgetHandle();
|
||||
return (widget && widget->isWidgetType());
|
||||
|
|
|
@ -32,7 +32,6 @@
|
|||
# include "framelesshelper_win.h"
|
||||
# include "winverhelper_p.h"
|
||||
#endif
|
||||
#include <QtCore/qmutex.h>
|
||||
#include <QtCore/qvariant.h>
|
||||
#include <QtCore/qcoreapplication.h>
|
||||
#include <QtCore/qloggingcategory.h>
|
||||
|
@ -62,7 +61,6 @@ using namespace Global;
|
|||
|
||||
struct FramelessManagerHelper
|
||||
{
|
||||
QMutex mutex;
|
||||
QList<WId> windowIds = {};
|
||||
};
|
||||
|
||||
|
@ -170,28 +168,23 @@ SystemTheme FramelessManagerPrivate::systemTheme() const
|
|||
{
|
||||
// The user's choice has top priority.
|
||||
if (isThemeOverrided()) {
|
||||
const QMutexLocker locker(&g_helper()->mutex);
|
||||
return m_overrideTheme.value();
|
||||
}
|
||||
const QMutexLocker locker(&g_helper()->mutex);
|
||||
return m_systemTheme;
|
||||
}
|
||||
|
||||
QColor FramelessManagerPrivate::systemAccentColor() const
|
||||
{
|
||||
const QMutexLocker locker(&g_helper()->mutex);
|
||||
return m_accentColor;
|
||||
}
|
||||
|
||||
QString FramelessManagerPrivate::wallpaper() const
|
||||
{
|
||||
const QMutexLocker locker(&g_helper()->mutex);
|
||||
return m_wallpaper;
|
||||
}
|
||||
|
||||
WallpaperAspectStyle FramelessManagerPrivate::wallpaperAspectStyle() const
|
||||
{
|
||||
const QMutexLocker locker(&g_helper()->mutex);
|
||||
return m_wallpaperAspectStyle;
|
||||
}
|
||||
|
||||
|
@ -202,13 +195,10 @@ void FramelessManagerPrivate::addWindow(FramelessParamsConst params)
|
|||
return;
|
||||
}
|
||||
const WId windowId = params->getWindowId();
|
||||
g_helper()->mutex.lock();
|
||||
if (g_helper()->windowIds.contains(windowId)) {
|
||||
g_helper()->mutex.unlock();
|
||||
return;
|
||||
}
|
||||
g_helper()->windowIds.append(windowId);
|
||||
g_helper()->mutex.unlock();
|
||||
static const bool pureQt = usePureQtImplementation();
|
||||
if (pureQt) {
|
||||
FramelessHelperQt::addWindow(params);
|
||||
|
@ -227,13 +217,10 @@ void FramelessManagerPrivate::removeWindow(const WId windowId)
|
|||
if (!windowId) {
|
||||
return;
|
||||
}
|
||||
g_helper()->mutex.lock();
|
||||
if (!g_helper()->windowIds.contains(windowId)) {
|
||||
g_helper()->mutex.unlock();
|
||||
return;
|
||||
}
|
||||
g_helper()->windowIds.removeAll(windowId);
|
||||
g_helper()->mutex.unlock();
|
||||
static const bool pureQt = usePureQtImplementation();
|
||||
if (pureQt) {
|
||||
FramelessHelperQt::removeWindow(windowId);
|
||||
|
@ -248,7 +235,6 @@ void FramelessManagerPrivate::removeWindow(const WId windowId)
|
|||
|
||||
void FramelessManagerPrivate::notifySystemThemeHasChangedOrNot()
|
||||
{
|
||||
const QMutexLocker locker(&g_helper()->mutex);
|
||||
const SystemTheme currentSystemTheme = Utils::getSystemTheme();
|
||||
#ifdef Q_OS_WINDOWS
|
||||
const DwmColorizationArea currentColorizationArea = Utils::getDwmColorizationArea();
|
||||
|
@ -276,7 +262,7 @@ void FramelessManagerPrivate::notifySystemThemeHasChangedOrNot()
|
|||
}
|
||||
#endif
|
||||
// Don't emit the signal if the user has overrided the global theme.
|
||||
if (notify && (m_overrideTheme.value_or(SystemTheme::Unknown) == SystemTheme::Unknown)) {
|
||||
if (notify && !isThemeOverrided()) {
|
||||
Q_Q(FramelessManager);
|
||||
Q_EMIT q->systemThemeChanged();
|
||||
DEBUG.nospace() << "System theme changed. Current theme: " << m_systemTheme
|
||||
|
@ -290,7 +276,6 @@ void FramelessManagerPrivate::notifySystemThemeHasChangedOrNot()
|
|||
|
||||
void FramelessManagerPrivate::notifyWallpaperHasChangedOrNot()
|
||||
{
|
||||
const QMutexLocker locker(&g_helper()->mutex);
|
||||
const QString currentWallpaper = Utils::getWallpaperFilePath();
|
||||
const WallpaperAspectStyle currentWallpaperAspectStyle = Utils::getWallpaperAspectStyle();
|
||||
bool notify = false;
|
||||
|
@ -324,7 +309,6 @@ bool FramelessManagerPrivate::usePureQtImplementation()
|
|||
|
||||
void FramelessManagerPrivate::setOverrideTheme(const SystemTheme theme)
|
||||
{
|
||||
const QMutexLocker locker(&g_helper()->mutex);
|
||||
if (theme == SystemTheme::Unknown) {
|
||||
m_overrideTheme = std::nullopt;
|
||||
} else {
|
||||
|
@ -336,13 +320,11 @@ void FramelessManagerPrivate::setOverrideTheme(const SystemTheme theme)
|
|||
|
||||
bool FramelessManagerPrivate::isThemeOverrided() const
|
||||
{
|
||||
const QMutexLocker locker(&g_helper()->mutex);
|
||||
return (m_overrideTheme.value_or(SystemTheme::Unknown) != SystemTheme::Unknown);
|
||||
}
|
||||
|
||||
void FramelessManagerPrivate::initialize()
|
||||
{
|
||||
const QMutexLocker locker(&g_helper()->mutex);
|
||||
m_systemTheme = Utils::getSystemTheme();
|
||||
#ifdef Q_OS_WINDOWS
|
||||
m_colorizationArea = Utils::getDwmColorizationArea();
|
||||
|
|
|
@ -585,7 +585,7 @@ void MicaMaterialPrivate::updateMaterialBrush()
|
|||
static const QImage noiseTexture = QImage(kNoiseImageFilePath);
|
||||
#endif // FRAMELESSHELPER_CORE_NO_BUNDLE_RESOURCE
|
||||
QImage micaTexture = QImage(QSize(64, 64), QImage::Format_ARGB32_Premultiplied);
|
||||
QColor fillColor = (Utils::shouldAppsUseDarkMode() ? kDefaultSystemDarkColor : kDefaultSystemLightColor2);
|
||||
QColor fillColor = ((FramelessManager::instance()->systemTheme() == SystemTheme::Dark) ? kDefaultSystemDarkColor : kDefaultSystemLightColor2);
|
||||
fillColor.setAlphaF(0.9f);
|
||||
micaTexture.fill(fillColor);
|
||||
QPainter painter(&micaTexture);
|
||||
|
@ -673,7 +673,7 @@ void MicaMaterialPrivate::prepareGraphicsResources()
|
|||
|
||||
QColor MicaMaterialPrivate::systemFallbackColor()
|
||||
{
|
||||
return (Utils::shouldAppsUseDarkMode() ? kDefaultFallbackColorDark : kDefaultFallbackColorLight);
|
||||
return ((FramelessManager::instance()->systemTheme() == SystemTheme::Dark) ? kDefaultFallbackColorDark : kDefaultFallbackColorLight);
|
||||
}
|
||||
|
||||
MicaMaterial::MicaMaterial(QObject *parent)
|
||||
|
|
Loading…
Reference in New Issue