From 8a1dcfb8084991d6ca7fa4d8302bcec4b84ede78 Mon Sep 17 00:00:00 2001 From: Yuhang Zhao <2546789017@qq.com> Date: Fri, 23 Dec 2022 10:11:59 +0800 Subject: [PATCH] minor refactor Signed-off-by: Yuhang Zhao <2546789017@qq.com> --- .../Core/private/framelessconfig_p.h | 13 ----- src/core/CMakeLists.txt | 3 - src/core/framelessconfig.cpp | 55 +++++++++---------- src/core/framelessmanager.cpp | 1 + 4 files changed, 26 insertions(+), 46 deletions(-) diff --git a/include/FramelessHelper/Core/private/framelessconfig_p.h b/include/FramelessHelper/Core/private/framelessconfig_p.h index 3a96fdd..a32a02e 100644 --- a/include/FramelessHelper/Core/private/framelessconfig_p.h +++ b/include/FramelessHelper/Core/private/framelessconfig_p.h @@ -25,7 +25,6 @@ #pragma once #include "framelesshelpercore_global.h" -#include FRAMELESSHELPER_BEGIN_NAMESPACE @@ -47,18 +46,6 @@ public: static void setLoadFromEnvironmentVariablesDisabled(const bool on = true); static void setLoadFromConfigurationFileDisabled(const bool on = true); - - Q_NODISCARD QVariant setInternal(const QString &key, const QVariant &value); - Q_NODISCARD QVariant getInternal(const QString &key) const; - template - Q_NODISCARD std::optional getInternal(const QString &key) const - { - const QVariant var = getInternal(key); - if (var.isValid()) { - return qvariant_cast(var); - } - return std::nullopt; - } }; FRAMELESSHELPER_END_NAMESPACE diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt index cf9d281..aab0cb6 100644 --- a/src/core/CMakeLists.txt +++ b/src/core/CMakeLists.txt @@ -199,9 +199,6 @@ elseif(UNIX) ) endif() if(GTK3_FOUND) - #target_include_directories(${SUB_PROJ_NAME} PRIVATE - # ${GTK3_INCLUDE_DIRS} - #) target_link_libraries(${SUB_PROJ_NAME} PRIVATE PkgConfig::GTK3 ) diff --git a/src/core/framelessconfig.cpp b/src/core/framelessconfig.cpp index 69e52d8..6d2c099 100644 --- a/src/core/framelessconfig.cpp +++ b/src/core/framelessconfig.cpp @@ -27,6 +27,7 @@ #include #include #include +#include FRAMELESSHELPER_BEGIN_NAMESPACE @@ -89,6 +90,28 @@ Q_GLOBAL_STATIC(ConfigData, g_data) Q_GLOBAL_STATIC(FramelessConfig, g_config) +static inline void warnInappropriateOptions() +{ + const FramelessConfig * const cfg = FramelessConfig::instance(); +#ifndef Q_OS_WINDOWS + if (cfg->isSet(Option::UseCrossPlatformQtImplementation)) { + WARNING << "Option::UseCrossPlatformQtImplementation is default on non-Windows platforms."; + } + if (cfg->isSet(Option::ForceHideWindowFrameBorder)) { + WARNING << "Option::ForceHideWindowFrameBorder is only available on Windows."; + } + if (cfg->isSet(Option::ForceShowWindowFrameBorder)) { + WARNING << "Option::ForceShowWindowFrameBorder is only available on Windows."; + } + if (cfg->isSet(Option::DisableWindowsSnapLayout)) { + WARNING << "Option::DisableWindowsSnapLayout is only available on Windows."; + } +#endif // Q_OS_WINDOWS + if (cfg->isSet(Option::WindowUseRoundCorners)) { + WARNING << "Option::WindowUseRoundCorners has not been implemented yet."; + } +} + FramelessConfig::FramelessConfig(QObject *parent) : QObject(parent) { reload(); @@ -123,6 +146,8 @@ void FramelessConfig::reload(const bool force) g_data()->options[i] = (envVar || cfgFile); } g_data()->loaded = true; + + QTimer::singleShot(0, qApp, [](){ warnInappropriateOptions(); }); } void FramelessConfig::set(const Option option, const bool on) @@ -149,34 +174,4 @@ void FramelessConfig::setLoadFromConfigurationFileDisabled(const bool on) g_data()->disableCfgFile = on; } -QVariant FramelessConfig::setInternal(const QString &key, const QVariant &value) -{ - Q_ASSERT(!key.isEmpty()); - Q_ASSERT(value.isValid()); - if (key.isEmpty() || !value.isValid()) { - return {}; - } - QVariant previous = {}; - const QMutexLocker locker(&g_data()->mutex); - if (g_data()->internals.contains(key)) { - previous = g_data()->internals.value(key); - g_data()->internals.remove(key); - } - g_data()->internals.insert(key, value); - return previous; -} - -QVariant FramelessConfig::getInternal(const QString &key) const -{ - Q_ASSERT(!key.isEmpty()); - if (key.isEmpty()) { - return {}; - } - const QMutexLocker locker(&g_data()->mutex); - if (g_data()->internals.contains(key)) { - return g_data()->internals.value(key); - } - return {}; -} - FRAMELESSHELPER_END_NAMESPACE diff --git a/src/core/framelessmanager.cpp b/src/core/framelessmanager.cpp index 7503137..0e50722 100644 --- a/src/core/framelessmanager.cpp +++ b/src/core/framelessmanager.cpp @@ -25,6 +25,7 @@ #include "framelessmanager.h" #include "framelessmanager_p.h" #include +#include #include #include #if (QT_VERSION >= QT_VERSION_CHECK(6, 5, 0))