From 7b769a71a0408764d833beb07327aac823d587ac Mon Sep 17 00:00:00 2001 From: Yuhang Zhao <2546789017@qq.com> Date: Sun, 26 Jun 2022 14:57:18 +0800 Subject: [PATCH] minor tweaks Signed-off-by: Yuhang Zhao <2546789017@qq.com> --- CMakeLists.txt | 15 ++++++- .../Core/framelesshelpercore_global.h | 17 +++++--- .../Core/private/framelessconfig_p.h | 3 ++ src/core/CMakeLists.txt | 11 ++++- src/core/framelessconfig.cpp | 24 +++++++++-- src/core/framelesshelper_version.inc.in | 33 +++++++++++++++ src/core/framelesshelper_win.cpp | 41 +++++++++---------- ...elpercore.rc => framelesshelpercore.rc.in} | 21 +++++----- src/core/framelessmanager.cpp | 40 +++++++++++++++++- src/core/utils_linux.cpp | 27 ++++++++---- src/quick/CMakeLists.txt | 7 +++- ...perquick.rc => framelesshelperquick.rc.in} | 21 +++++----- src/quick/quickstandardsystembutton.cpp | 2 +- src/widgets/CMakeLists.txt | 7 +++- ...idgets.rc => framelesshelperwidgets.rc.in} | 21 +++++----- src/widgets/standardsystembutton.cpp | 2 +- 16 files changed, 215 insertions(+), 77 deletions(-) create mode 100644 src/core/framelesshelper_version.inc.in rename src/core/{framelesshelpercore.rc => framelesshelpercore.rc.in} (70%) rename src/quick/{framelesshelperquick.rc => framelesshelperquick.rc.in} (73%) rename src/widgets/{framelesshelperwidgets.rc => framelesshelperwidgets.rc.in} (75%) diff --git a/CMakeLists.txt b/CMakeLists.txt index a93fe54..297da3d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -25,7 +25,7 @@ cmake_minimum_required(VERSION 3.20) project(FramelessHelper - VERSION 2.1.7.0 + VERSION 2.1.8.0 DESCRIPTION "Cross-platform window customization framework for Qt Widgets and Qt Quick." HOMEPAGE_URL "https://github.com/wangwenx190/framelesshelper/" LANGUAGES CXX @@ -80,6 +80,19 @@ set(CMAKE_AUTORCC ON) set(CMAKE_INCLUDE_CURRENT_DIR ON) +set(PROJECT_VERSION_COMMIT "UNKNOWN") +find_program(GIT_EXECUTABLE_PATH git) +if(GIT_EXECUTABLE_PATH AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.git") + execute_process( + COMMAND ${GIT_EXECUTABLE_PATH} rev-parse HEAD + OUTPUT_VARIABLE PROJECT_VERSION_COMMIT + OUTPUT_STRIP_TRAILING_WHITESPACE + WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}") +endif() + +set(PROJECT_COMPILE_DATETIME "UNKNOWN") +string(TIMESTAMP PROJECT_COMPILE_DATETIME UTC) + find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core Gui) find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core Gui) diff --git a/include/FramelessHelper/Core/framelesshelpercore_global.h b/include/FramelessHelper/Core/framelesshelpercore_global.h index d630f2e..a9d4d60 100644 --- a/include/FramelessHelper/Core/framelesshelpercore_global.h +++ b/include/FramelessHelper/Core/framelesshelpercore_global.h @@ -173,10 +173,8 @@ QT_END_NAMESPACE FRAMELESSHELPER_BEGIN_NAMESPACE -[[maybe_unused]] static constexpr const int FRAMELESSHELPER_VERSION_MAJOR = 2; -[[maybe_unused]] static constexpr const int FRAMELESSHELPER_VERSION_MINOR = 1; -[[maybe_unused]] static constexpr const int FRAMELESSHELPER_VERSION_PATCH = 7; -[[maybe_unused]] static constexpr const int FRAMELESSHELPER_VERSION_TWEAK = 0; +#include + [[maybe_unused]] static constexpr const int FRAMELESSHELPER_VERSION = FRAMELESSHELPER_MAKE_VERSION(FRAMELESSHELPER_VERSION_MAJOR, FRAMELESSHELPER_VERSION_MINOR, FRAMELESSHELPER_VERSION_PATCH, FRAMELESSHELPER_VERSION_TWEAK); @@ -495,16 +493,25 @@ struct SystemParameters }; static_assert(std::size(WindowsVersions) == (static_cast(WindowsVersion::_11_22H2) + 1)); +struct VersionInfo +{ + VersionNumber version = {}; + QString commit = {}; + QString compileDateTime = {}; + QString compiler = {}; +}; + } // namespace Global namespace FramelessHelper::Core { FRAMELESSHELPER_CORE_API void initialize(); FRAMELESSHELPER_CORE_API void uninitialize(); -[[nodiscard]] FRAMELESSHELPER_CORE_API int version(); +[[nodiscard]] FRAMELESSHELPER_CORE_API Global::VersionInfo version(); } // namespace FramelessHelper::Core FRAMELESSHELPER_END_NAMESPACE Q_DECLARE_METATYPE(FRAMELESSHELPER_PREPEND_NAMESPACE(Global)::VersionNumber) Q_DECLARE_METATYPE(FRAMELESSHELPER_PREPEND_NAMESPACE(Global)::SystemParameters) +Q_DECLARE_METATYPE(FRAMELESSHELPER_PREPEND_NAMESPACE(Global)::VersionInfo) diff --git a/include/FramelessHelper/Core/private/framelessconfig_p.h b/include/FramelessHelper/Core/private/framelessconfig_p.h index de71fbc..ff44783 100644 --- a/include/FramelessHelper/Core/private/framelessconfig_p.h +++ b/include/FramelessHelper/Core/private/framelessconfig_p.h @@ -44,6 +44,9 @@ public: void set(const Global::Option option, const bool on = true); Q_NODISCARD bool isSet(const Global::Option option) const; + + static void setLoadFromEnvironmentVariablesDisabled(const bool on = true); + static void setLoadFromConfigurationFileDisabled(const bool on = true); }; FRAMELESSHELPER_END_NAMESPACE diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt index cc1c3c8..c78c01e 100644 --- a/src/core/CMakeLists.txt +++ b/src/core/CMakeLists.txt @@ -33,7 +33,11 @@ set(SUB_PROJ_NAME ${PROJECT_NAME}${SUB_MOD_NAME}) set(INCLUDE_PREFIX ../../include/${PROJECT_NAME}/${SUB_MOD_NAME}) +configure_file(framelesshelper_version.inc.in + ${PROJECT_BINARY_DIR}/framelesshelper_version.inc @ONLY) + set(SOURCES + ${PROJECT_BINARY_DIR}/framelesshelper_version.inc ${INCLUDE_PREFIX}/framelesshelpercore_global.h ${INCLUDE_PREFIX}/framelesshelper_qt.h ${INCLUDE_PREFIX}/framelessmanager.h @@ -62,7 +66,11 @@ endif() if(WIN32 AND NOT FRAMELESSHELPER_BUILD_STATIC) enable_language(RC) - list(APPEND SOURCES framelesshelpercore.rc) + configure_file(framelesshelpercore.rc.in + ${CMAKE_CURRENT_BINARY_DIR}/framelesshelpercore.rc @ONLY) + list(APPEND SOURCES + ${CMAKE_CURRENT_BINARY_DIR}/framelesshelpercore.rc + ) endif() if(FRAMELESSHELPER_BUILD_STATIC) @@ -132,4 +140,5 @@ target_link_libraries(${SUB_PROJ_NAME} PRIVATE target_include_directories(${SUB_PROJ_NAME} PUBLIC "$/${INCLUDE_PREFIX}" "$/${INCLUDE_PREFIX}/private" + "$" ) diff --git a/src/core/framelessconfig.cpp b/src/core/framelessconfig.cpp index b60780d..aee8d15 100644 --- a/src/core/framelessconfig.cpp +++ b/src/core/framelessconfig.cpp @@ -60,6 +60,8 @@ struct ConfigData QMutex mutex; bool loaded = false; bool options[OptionCount] = {}; + bool disableEnvVar = false; + bool disableCfgFile = false; }; Q_GLOBAL_STATIC(ConfigData, g_data) @@ -92,10 +94,12 @@ void FramelessConfig::reload(const bool force) return new QSettings(appDir.filePath(kConfigFileName), QSettings::IniFormat); }()); for (int i = 0; i != OptionCount; ++i) { - const bool on = (qEnvironmentVariableIsSet(OptionsTable[i].env.constData()) - && (qEnvironmentVariableIntValue(OptionsTable[i].env.constData()) > 0)) - || (!configFile.isNull() && configFile->value(QUtf8String(OptionsTable[i].cfg), false).toBool()); - g_data()->options[i] = on; + const bool envVar = (!g_data()->disableEnvVar + && qEnvironmentVariableIsSet(OptionsTable[i].env.constData()) + && (qEnvironmentVariableIntValue(OptionsTable[i].env.constData()) > 0)); + const bool cfgFile = (!g_data()->disableCfgFile && !configFile.isNull() + && configFile->value(QUtf8String(OptionsTable[i].cfg), false).toBool()); + g_data()->options[i] = (envVar || cfgFile); } g_data()->loaded = true; } @@ -112,4 +116,16 @@ bool FramelessConfig::isSet(const Option option) const return g_data()->options[static_cast(option)]; } +void FramelessConfig::setLoadFromEnvironmentVariablesDisabled(const bool on) +{ + QMutexLocker locker(&g_data()->mutex); + g_data()->disableEnvVar = on; +} + +void FramelessConfig::setLoadFromConfigurationFileDisabled(const bool on) +{ + QMutexLocker locker(&g_data()->mutex); + g_data()->disableCfgFile = on; +} + FRAMELESSHELPER_END_NAMESPACE diff --git a/src/core/framelesshelper_version.inc.in b/src/core/framelesshelper_version.inc.in new file mode 100644 index 0000000..1a995d8 --- /dev/null +++ b/src/core/framelesshelper_version.inc.in @@ -0,0 +1,33 @@ +/* + * MIT License + * + * Copyright (C) 2022 by wangwenx190 (Yuhang Zhao) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#pragma once + +[[maybe_unused]] static constexpr const int FRAMELESSHELPER_VERSION_MAJOR = @PROJECT_VERSION_MAJOR@; +[[maybe_unused]] static constexpr const int FRAMELESSHELPER_VERSION_MINOR = @PROJECT_VERSION_MINOR@; +[[maybe_unused]] static constexpr const int FRAMELESSHELPER_VERSION_PATCH = @PROJECT_VERSION_PATCH@; +[[maybe_unused]] static constexpr const int FRAMELESSHELPER_VERSION_TWEAK = @PROJECT_VERSION_TWEAK@; +[[maybe_unused]] static constexpr const char FRAMELESSHELPER_VERSION_STR[] = "@PROJECT_VERSION@\0"; +[[maybe_unused]] static constexpr const char FRAMELESSHELPER_COMMIT_STR[] = "@PROJECT_VERSION_COMMIT@\0"; +[[maybe_unused]] static constexpr const char FRAMELESSHELPER_COMPILE_DATETIME[] = "@PROJECT_COMPILE_DATETIME@\0"; diff --git a/src/core/framelesshelper_win.cpp b/src/core/framelesshelper_win.cpp index 69e8087..82cf190 100644 --- a/src/core/framelesshelper_win.cpp +++ b/src/core/framelesshelper_win.cpp @@ -476,28 +476,27 @@ void FramelessHelperWin::addWindow(const SystemParameters ¶ms) Utils::fixupQtInternals(windowId); Utils::updateInternalWindowFrameMargins(params.getWindowHandle(), true); Utils::updateWindowFrameMargins(windowId, false); - static const bool isWin10OrGreater = Utils::isWindowsVersionOrGreater(WindowsVersion::_10_1507); - if (isWin10OrGreater) { - const FramelessConfig * const config = FramelessConfig::instance(); - if (!config->isSet(Option::DisableWindowsSnapLayouts)) { - if (!createFallbackTitleBarWindow(windowId, data.params.isWindowFixedSize())) { - qWarning() << "Failed to create the fallback title bar window."; + static const bool isWin10RS1OrGreater = Utils::isWindowsVersionOrGreater(WindowsVersion::_10_1607); + if (isWin10RS1OrGreater) { + const bool dark = Utils::shouldAppsUseDarkMode(); + Utils::updateWindowFrameBorderColor(windowId, dark); + static const bool isWin10RS5OrGreater = Utils::isWindowsVersionOrGreater(WindowsVersion::_10_1809); + if (isWin10RS5OrGreater) { + static const bool isQtQuickApplication = (params.getCurrentApplicationType() == ApplicationType::Quick); + if (isQtQuickApplication) { + // Causes some QtWidgets paint incorrectly, so only apply to Qt Quick applications. + Utils::updateGlobalWin32ControlsTheme(windowId, dark); } - } - static const bool isWin10RS1OrGreater = Utils::isWindowsVersionOrGreater(WindowsVersion::_10_1607); - if (isWin10RS1OrGreater) { - const bool dark = Utils::shouldAppsUseDarkMode(); - Utils::updateWindowFrameBorderColor(windowId, dark); - static const bool isWin10RS5OrGreater = Utils::isWindowsVersionOrGreater(WindowsVersion::_10_1809); - if (isWin10RS5OrGreater) { - static const bool isQtQuickApplication = (params.getCurrentApplicationType() == ApplicationType::Quick); - if (isQtQuickApplication) { - // Causes some QtWidgets paint incorrectly, so only apply to Qt Quick applications. - Utils::updateGlobalWin32ControlsTheme(windowId, dark); - } - static const bool isWin11OrGreater = Utils::isWindowsVersionOrGreater(WindowsVersion::_11_21H2); - if (isWin11OrGreater) { - Utils::forceSquareCornersForWindow(windowId, !config->isSet(Option::WindowUseRoundCorners)); + static const bool isWin11OrGreater = Utils::isWindowsVersionOrGreater(WindowsVersion::_11_21H2); + if (isWin11OrGreater) { + const FramelessConfig * const config = FramelessConfig::instance(); + Utils::forceSquareCornersForWindow(windowId, !config->isSet(Option::WindowUseRoundCorners)); + // The fallback title bar window is only used to activate the Snap Layout feature + // introduced in Windows 11, so it's not necessary to create it on systems below Win11. + if (!config->isSet(Option::DisableWindowsSnapLayouts)) { + if (!createFallbackTitleBarWindow(windowId, data.params.isWindowFixedSize())) { + qWarning() << "Failed to create the fallback title bar window."; + } } } } diff --git a/src/core/framelesshelpercore.rc b/src/core/framelesshelpercore.rc.in similarity index 70% rename from src/core/framelesshelpercore.rc rename to src/core/framelesshelpercore.rc.in index fccaa3d..aa81e4b 100644 --- a/src/core/framelesshelpercore.rc +++ b/src/core/framelesshelpercore.rc.in @@ -26,7 +26,7 @@ VS_VERSION_INFO VERSIONINFO FILEVERSION 0,0,0,0 -PRODUCTVERSION 2,1,7,0 +PRODUCTVERSION @PROJECT_VERSION_MAJOR@,@PROJECT_VERSION_MINOR@,@PROJECT_VERSION_PATCH@,@PROJECT_VERSION_TWEAK@ FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS VS_FF_DEBUG @@ -41,18 +41,19 @@ BEGIN BEGIN BLOCK "040904b0" BEGIN - VALUE "CompanyName", "wangwenx190" - VALUE "FileDescription", "FramelessHelper Core Module" - VALUE "FileVersion", "0.0.0.0" - VALUE "LegalCopyright", "MIT License" + VALUE "CompanyName", "wangwenx190\0" + VALUE "FileDescription", "FramelessHelper Core Module\0" + VALUE "FileVersion", "0.0.0.0\0" + VALUE "LegalCopyright", "MIT License\0" #ifdef _DEBUG - VALUE "OriginalFilename", "FramelessHelperCored.dll" + VALUE "OriginalFilename", "FramelessHelperCored.dll\0" #else - VALUE "OriginalFilename", "FramelessHelperCore.dll" + VALUE "OriginalFilename", "FramelessHelperCore.dll\0" #endif - VALUE "ProductName", "FramelessHelper" - VALUE "ProductVersion", "2.1.7.0" - VALUE "InternalName", "FramelessHelperCore" + VALUE "ProductName", "FramelessHelper\0" + VALUE "ProductVersion", "@PROJECT_VERSION@\0" + VALUE "InternalName", "FramelessHelperCore\0" + VALUE "Comments", "Built from commit @PROJECT_VERSION_COMMIT@ on @PROJECT_COMPILE_DATETIME@ (UTC).\0" END END BLOCK "VarFileInfo" diff --git a/src/core/framelessmanager.cpp b/src/core/framelessmanager.cpp index 8861072..365a68b 100644 --- a/src/core/framelessmanager.cpp +++ b/src/core/framelessmanager.cpp @@ -36,6 +36,30 @@ # include "framelesshelper_win.h" #endif +#ifndef COMPILER_STRING +# ifdef Q_CC_CLANG // Must be before GNU, because Clang claims to be GNU too. +# define COMPILER_STRING __VERSION__ // Already includes the compiler's name. +# elif defined(Q_CC_GHS) +# define COMPILER_STRING "GHS " QT_STRINGIFY(__GHS_VERSION_NUMBER) +# elif defined(Q_CC_GNU) +# define COMPILER_STRING "GCC " __VERSION__ +# elif defined(Q_CC_MSVC) +# if (_MSC_VER < 1910) +# define COMPILER_STRING "MSVC 2015" +# elif (_MSC_VER < 1917) +# define COMPILER_STRING "MSVC 2017" +# elif (_MSC_VER < 1930) +# define COMPILER_STRING "MSVC 2019" +# elif (_MSC_VER < 2000) +# define COMPILER_STRING "MSVC 2022" +# else +# define COMPILER_STRING "MSVC version " QT_STRINGIFY(_MSC_VER) +# endif +# else +# define COMPILER_STRING "UNKNOWN" +# endif +#endif + // The "Q_INIT_RESOURCE()" macro can't be used within a namespace, // so we wrap it into a separate function outside of the namespace and // then call it instead inside the namespace, that's also the recommended @@ -325,6 +349,7 @@ void FramelessHelper::Core::initialize() qRegisterMetaType(); qRegisterMetaType(); qRegisterMetaType(); + qRegisterMetaType(); } void FramelessHelper::Core::uninitialize() @@ -332,9 +357,20 @@ void FramelessHelper::Core::uninitialize() // Currently nothing to do here. } -int FramelessHelper::Core::version() +VersionInfo FramelessHelper::Core::version() { - return FRAMELESSHELPER_VERSION; + static const VersionInfo result = []() -> VersionInfo { + VersionInfo ver = {}; + ver.version.major = FRAMELESSHELPER_VERSION_MAJOR; + ver.version.minor = FRAMELESSHELPER_VERSION_MINOR; + ver.version.patch = FRAMELESSHELPER_VERSION_PATCH; + ver.version.tweak = FRAMELESSHELPER_VERSION_TWEAK; + ver.commit = QUtf8String(FRAMELESSHELPER_COMMIT_STR); + ver.compileDateTime = QUtf8String(FRAMELESSHELPER_COMPILE_DATETIME); + ver.compiler = QUtf8String(COMPILER_STRING); + return ver; + }(); + return result; } FRAMELESSHELPER_END_NAMESPACE diff --git a/src/core/utils_linux.cpp b/src/core/utils_linux.cpp index 9d873c3..2220f44 100644 --- a/src/core/utils_linux.cpp +++ b/src/core/utils_linux.cpp @@ -65,6 +65,15 @@ using Display = struct _XDisplay; [[maybe_unused]] static constexpr const char GTK_THEME_PREFER_DARK_PROP[] = "gtk-application-prefer-dark-theme"; FRAMELESSHELPER_STRING_CONSTANT2(GTK_THEME_DARK_REGEX, "[:-]dark") +FRAMELESSHELPER_BYTEARRAY_CONSTANT(rootwindow) +FRAMELESSHELPER_BYTEARRAY_CONSTANT(x11screen) +FRAMELESSHELPER_BYTEARRAY_CONSTANT(apptime) +FRAMELESSHELPER_BYTEARRAY_CONSTANT(appusertime) +FRAMELESSHELPER_BYTEARRAY_CONSTANT(gettimestamp) +FRAMELESSHELPER_BYTEARRAY_CONSTANT(startupid) +FRAMELESSHELPER_BYTEARRAY_CONSTANT(display) +FRAMELESSHELPER_BYTEARRAY_CONSTANT(connection) + template [[nodiscard]] static inline T gtkSetting(const gchar *propertyName) { @@ -167,11 +176,11 @@ template if (!native) { return 0; } - QScreen *scr = ((screen == -1) ? QGuiApplication::primaryScreen() : x11_findScreenForVirtualDesktop(screen)); + QScreen *scr = ((screen == -1) ? QGuiApplication::primaryScreen() : x11_findScreenForVirtualDesktop(screen)); if (!scr) { return 0; } - return static_cast(reinterpret_cast(native->nativeResourceForScreen(QByteArrayLiteral("rootwindow"), scr))); + return static_cast(reinterpret_cast(native->nativeResourceForScreen(krootwindow, scr))); } [[maybe_unused]] [[nodiscard]] static inline int x11_appScreen() @@ -183,7 +192,7 @@ template if (!native) { return 0; } - return reinterpret_cast(native->nativeResourceForIntegration(QByteArrayLiteral("x11screen"))); + return reinterpret_cast(native->nativeResourceForIntegration(kx11screen)); } [[maybe_unused]] [[nodiscard]] static inline quint32 x11_appTime() @@ -199,7 +208,7 @@ template if (!screen) { return 0; } - return static_cast(reinterpret_cast(native->nativeResourceForScreen(QByteArrayLiteral("apptime"), screen))); + return static_cast(reinterpret_cast(native->nativeResourceForScreen(kapptime, screen))); } [[maybe_unused]] [[nodiscard]] static inline quint32 x11_appUserTime() @@ -215,7 +224,7 @@ template if (!screen) { return 0; } - return static_cast(reinterpret_cast(native->nativeResourceForScreen(QByteArrayLiteral("appusertime"), screen))); + return static_cast(reinterpret_cast(native->nativeResourceForScreen(kappusertime, screen))); } [[maybe_unused]] [[nodiscard]] static inline quint32 x11_getTimestamp() @@ -231,7 +240,7 @@ template if (!screen) { return 0; } - return static_cast(reinterpret_cast(native->nativeResourceForScreen(QByteArrayLiteral("gettimestamp"), screen))); + return static_cast(reinterpret_cast(native->nativeResourceForScreen(kgettimestamp, screen))); } [[maybe_unused]] [[nodiscard]] static inline QByteArray x11_nextStartupId() @@ -243,7 +252,7 @@ template if (!native) { return {}; } - return static_cast(native->nativeResourceForIntegration(QByteArrayLiteral("startupid"))); + return static_cast(native->nativeResourceForIntegration(kstartupid)); } [[maybe_unused]] [[nodiscard]] static inline Display *x11_display() @@ -263,7 +272,7 @@ template #if (QT_VERSION >= QT_VERSION_CHECK(6, 2, 0)) return native->display(); #else - return reinterpret_cast(native->nativeResourceForIntegration(QByteArrayLiteral("display"))); + return reinterpret_cast(native->nativeResourceForIntegration(kdisplay)); #endif } @@ -284,7 +293,7 @@ template #if (QT_VERSION >= QT_VERSION_CHECK(6, 2, 0)) return native->connection(); #else - return reinterpret_cast(native->nativeResourceForIntegration(QByteArrayLiteral("connection"))); + return reinterpret_cast(native->nativeResourceForIntegration(kconnection)); #endif } diff --git a/src/quick/CMakeLists.txt b/src/quick/CMakeLists.txt index c85d0b1..923d2af 100644 --- a/src/quick/CMakeLists.txt +++ b/src/quick/CMakeLists.txt @@ -50,7 +50,11 @@ set(SOURCES if(WIN32 AND NOT FRAMELESSHELPER_BUILD_STATIC) enable_language(RC) - list(APPEND SOURCES framelesshelperquick.rc) + configure_file(framelesshelperquick.rc.in + ${CMAKE_CURRENT_BINARY_DIR}/framelesshelperquick.rc @ONLY) + list(APPEND SOURCES + ${CMAKE_CURRENT_BINARY_DIR}/framelesshelperquick.rc + ) endif() if(FRAMELESSHELPER_BUILD_STATIC) @@ -112,4 +116,5 @@ target_link_libraries(${SUB_PROJ_NAME} PUBLIC target_include_directories(${SUB_PROJ_NAME} PUBLIC "$/${INCLUDE_PREFIX}" "$/${INCLUDE_PREFIX}/private" + "$" ) diff --git a/src/quick/framelesshelperquick.rc b/src/quick/framelesshelperquick.rc.in similarity index 73% rename from src/quick/framelesshelperquick.rc rename to src/quick/framelesshelperquick.rc.in index 94b50f9..2014009 100644 --- a/src/quick/framelesshelperquick.rc +++ b/src/quick/framelesshelperquick.rc.in @@ -26,7 +26,7 @@ VS_VERSION_INFO VERSIONINFO FILEVERSION 0,0,0,0 -PRODUCTVERSION 2,1,7,0 +PRODUCTVERSION @PROJECT_VERSION_MAJOR@,@PROJECT_VERSION_MINOR@,@PROJECT_VERSION_PATCH@,@PROJECT_VERSION_TWEAK@ FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS VS_FF_DEBUG @@ -41,18 +41,19 @@ BEGIN BEGIN BLOCK "040904b0" BEGIN - VALUE "CompanyName", "wangwenx190" - VALUE "FileDescription", "FramelessHelper Quick Module" - VALUE "FileVersion", "0.0.0.0" - VALUE "LegalCopyright", "MIT License" + VALUE "CompanyName", "wangwenx190\0" + VALUE "FileDescription", "FramelessHelper Quick Module\0" + VALUE "FileVersion", "0.0.0.0\0" + VALUE "LegalCopyright", "MIT License\0" #ifdef _DEBUG - VALUE "OriginalFilename", "FramelessHelperQuickd.dll" + VALUE "OriginalFilename", "FramelessHelperQuickd.dll\0" #else - VALUE "OriginalFilename", "FramelessHelperQuick.dll" + VALUE "OriginalFilename", "FramelessHelperQuick.dll\0" #endif - VALUE "ProductName", "FramelessHelper" - VALUE "ProductVersion", "2.1.7.0" - VALUE "InternalName", "FramelessHelperQuick" + VALUE "ProductName", "FramelessHelper\0" + VALUE "ProductVersion", "@PROJECT_VERSION@\0" + VALUE "InternalName", "FramelessHelperQuick\0" + VALUE "Comments", "Built from commit @PROJECT_VERSION_COMMIT@ on @PROJECT_COMPILE_DATETIME@ (UTC).\0" END END BLOCK "VarFileInfo" diff --git a/src/quick/quickstandardsystembutton.cpp b/src/quick/quickstandardsystembutton.cpp index 87d7e99..4a9308e 100644 --- a/src/quick/quickstandardsystembutton.cpp +++ b/src/quick/quickstandardsystembutton.cpp @@ -24,7 +24,7 @@ #include "quickstandardsystembutton_p.h" #if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)) -#include +#include #include #include #include diff --git a/src/widgets/CMakeLists.txt b/src/widgets/CMakeLists.txt index aa0b519..dd06902 100644 --- a/src/widgets/CMakeLists.txt +++ b/src/widgets/CMakeLists.txt @@ -50,7 +50,11 @@ set(SOURCES if(WIN32 AND NOT FRAMELESSHELPER_BUILD_STATIC) enable_language(RC) - list(APPEND SOURCES framelesshelperwidgets.rc) + configure_file(framelesshelperwidgets.rc.in + ${CMAKE_CURRENT_BINARY_DIR}/framelesshelperwidgets.rc @ONLY) + list(APPEND SOURCES + ${CMAKE_CURRENT_BINARY_DIR}/framelesshelperwidgets.rc + ) endif() if(FRAMELESSHELPER_BUILD_STATIC) @@ -101,4 +105,5 @@ target_link_libraries(${SUB_PROJ_NAME} PUBLIC target_include_directories(${SUB_PROJ_NAME} PUBLIC "$/${INCLUDE_PREFIX}" "$/${INCLUDE_PREFIX}/private" + "$" ) diff --git a/src/widgets/framelesshelperwidgets.rc b/src/widgets/framelesshelperwidgets.rc.in similarity index 75% rename from src/widgets/framelesshelperwidgets.rc rename to src/widgets/framelesshelperwidgets.rc.in index 9b77dfc..480a117 100644 --- a/src/widgets/framelesshelperwidgets.rc +++ b/src/widgets/framelesshelperwidgets.rc.in @@ -26,7 +26,7 @@ VS_VERSION_INFO VERSIONINFO FILEVERSION 0,0,0,0 -PRODUCTVERSION 2,1,7,0 +PRODUCTVERSION @PROJECT_VERSION_MAJOR@,@PROJECT_VERSION_MINOR@,@PROJECT_VERSION_PATCH@,@PROJECT_VERSION_TWEAK@ FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS VS_FF_DEBUG @@ -41,18 +41,19 @@ BEGIN BEGIN BLOCK "040904b0" BEGIN - VALUE "CompanyName", "wangwenx190" - VALUE "FileDescription", "FramelessHelper Widgets Module" - VALUE "FileVersion", "0.0.0.0" - VALUE "LegalCopyright", "MIT License" + VALUE "CompanyName", "wangwenx190\0" + VALUE "FileDescription", "FramelessHelper Widgets Module\0" + VALUE "FileVersion", "0.0.0.0\0" + VALUE "LegalCopyright", "MIT License\0" #ifdef _DEBUG - VALUE "OriginalFilename", "FramelessHelperWidgetsd.dll" + VALUE "OriginalFilename", "FramelessHelperWidgetsd.dll\0" #else - VALUE "OriginalFilename", "FramelessHelperWidgets.dll" + VALUE "OriginalFilename", "FramelessHelperWidgets.dll\0" #endif - VALUE "ProductName", "FramelessHelper" - VALUE "ProductVersion", "2.1.7.0" - VALUE "InternalName", "FramelessHelperWidgets" + VALUE "ProductName", "FramelessHelper\0" + VALUE "ProductVersion", "@PROJECT_VERSION@\0" + VALUE "InternalName", "FramelessHelperWidgets\0" + VALUE "Comments", "Built from commit @PROJECT_VERSION_COMMIT@ on @PROJECT_COMPILE_DATETIME@ (UTC).\0" END END BLOCK "VarFileInfo" diff --git a/src/widgets/standardsystembutton.cpp b/src/widgets/standardsystembutton.cpp index d916066..f0381c4 100644 --- a/src/widgets/standardsystembutton.cpp +++ b/src/widgets/standardsystembutton.cpp @@ -27,7 +27,7 @@ #include #include #include -#include +#include #include FRAMELESSHELPER_BEGIN_NAMESPACE