Compare commits

...

2 Commits

Author SHA1 Message Date
Mentalflow 201dec4d4d
Qt: Bump to 6.6.3.
Due to Qt 6.5.3's bug, it's better to use the latest Qt release(Qt 6.6.3).
2024-04-22 00:05:48 +08:00
Mentalflow 063e2d5bae
RibbonWindow: Improve blur behind window in Windows. 2024-04-21 23:23:23 +08:00
14 changed files with 51 additions and 43 deletions

View File

@ -22,7 +22,7 @@ jobs:
strategy: strategy:
matrix: matrix:
os: [macos-14] os: [macos-14]
qt_ver: [6.5.3] qt_ver: [6.7.0]
qt_arch: [clang_64] qt_arch: [clang_64]
env: env:
targetName: RibbonUI-APP targetName: RibbonUI-APP
@ -49,13 +49,13 @@ jobs:
cmake --version cmake --version
mkdir build mkdir build
cd build cd build
cmake -DCMAKE_MESSAGE_LOG_LEVEL=STATUS -DCMAKE_PREFIX_PATH=/Users/runner/work/RibbonUI/Qt/6.5.3/macos -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_BUILD_TYPE=Release -GNinja .. cmake -DCMAKE_MESSAGE_LOG_LEVEL=STATUS -DCMAKE_PREFIX_PATH=/Users/runner/work/RibbonUI/Qt/6.7.0/macos -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_BUILD_TYPE=Release -GNinja ..
cmake --build . --target all --config Release --parallel cmake --build . --target all --config Release --parallel
- name: package - name: package
run: | run: |
# 先删除所有dSYM文件减少包的体积 # 先删除所有dSYM文件减少包的体积
sudo find /Users/runner/work/RibbonUI/Qt/6.5.3/macos/qml -name "*.dSYM" | xargs rm -r sudo find /Users/runner/work/RibbonUI/Qt/6.7.0/macos/qml -name "*.dSYM" | xargs rm -r
# 拷贝依赖 # 拷贝依赖
sudo macdeployqt /Users/runner/work/RibbonUI/RibbonUI/build/app/release/${targetName}.app -qmldir=. -verbose=1 -dmg sudo macdeployqt /Users/runner/work/RibbonUI/RibbonUI/build/app/release/${targetName}.app -qmldir=. -verbose=1 -dmg

View File

@ -22,7 +22,7 @@ jobs:
strategy: strategy:
matrix: matrix:
os: [macos-14] os: [macos-14]
qt_ver: [6.5.3] qt_ver: [6.7.0]
qt_arch: [clang_64] qt_arch: [clang_64]
env: env:
targetName: RibbonUI-APP targetName: RibbonUI-APP
@ -49,13 +49,13 @@ jobs:
cmake --version cmake --version
mkdir build mkdir build
cd build cd build
cmake -DCMAKE_MESSAGE_LOG_LEVEL=STATUS -DCMAKE_PREFIX_PATH=/Users/runner/work/RibbonUI/Qt/6.5.3/macos -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_BUILD_TYPE=Release -DRIBBONUI_BUILD_STATIC_LIB=ON -GNinja .. cmake -DCMAKE_MESSAGE_LOG_LEVEL=STATUS -DCMAKE_PREFIX_PATH=/Users/runner/work/RibbonUI/Qt/6.7.0/macos -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_BUILD_TYPE=Release -DRIBBONUI_BUILD_STATIC_LIB=ON -GNinja ..
cmake --build . --target all --config Release --parallel cmake --build . --target all --config Release --parallel
- name: package - name: package
run: | run: |
# 先删除所有dSYM文件减少包的体积 # 先删除所有dSYM文件减少包的体积
sudo find /Users/runner/work/RibbonUI/Qt/6.5.3/macos/qml -name "*.dSYM" | xargs rm -r sudo find /Users/runner/work/RibbonUI/Qt/6.7.0/macos/qml -name "*.dSYM" | xargs rm -r
# 拷贝依赖 # 拷贝依赖
sudo macdeployqt /Users/runner/work/RibbonUI/RibbonUI/build/app/release/${targetName}.app -qmldir=. -verbose=1 -dmg sudo macdeployqt /Users/runner/work/RibbonUI/RibbonUI/build/app/release/${targetName}.app -qmldir=. -verbose=1 -dmg

View File

@ -23,7 +23,7 @@ jobs:
strategy: strategy:
matrix: matrix:
os: [ubuntu-latest] os: [ubuntu-latest]
qt_ver: [6.5.3] qt_ver: [6.6.3]
qt_arch: [gcc_64] qt_arch: [gcc_64]
env: env:
targetName: RibbonUI-APP targetName: RibbonUI-APP
@ -57,7 +57,7 @@ jobs:
cmake --version cmake --version
mkdir build mkdir build
cd build cd build
cmake -DCMAKE_MESSAGE_LOG_LEVEL=STATUS -DCMAKE_PREFIX_PATH=/home/runner/work/RibbonUI/Qt/6.5.3/gcc_64 -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DCMAKE_BUILD_TYPE=Release -GNinja .. cmake -DCMAKE_MESSAGE_LOG_LEVEL=STATUS -DCMAKE_PREFIX_PATH=/home/runner/work/RibbonUI/Qt/6.6.3/gcc_64 -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DCMAKE_BUILD_TYPE=Release -GNinja ..
cmake --build . --target all --config Release --parallel cmake --build . --target all --config Release --parallel
- name: install QT linux deploy - name: install QT linux deploy

View File

@ -23,7 +23,7 @@ jobs:
strategy: strategy:
matrix: matrix:
os: [ubuntu-latest] os: [ubuntu-latest]
qt_ver: [6.5.3] qt_ver: [6.6.3]
qt_arch: [gcc_64] qt_arch: [gcc_64]
env: env:
targetName: RibbonUI-APP targetName: RibbonUI-APP
@ -57,7 +57,7 @@ jobs:
cmake --version cmake --version
mkdir build mkdir build
cd build cd build
cmake -DCMAKE_MESSAGE_LOG_LEVEL=STATUS -DCMAKE_PREFIX_PATH=/home/runner/work/RibbonUI/Qt/6.5.3/gcc_64 -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DCMAKE_BUILD_TYPE=Release -DRIBBONUI_BUILD_STATIC_LIB=ON -GNinja .. cmake -DCMAKE_MESSAGE_LOG_LEVEL=STATUS -DCMAKE_PREFIX_PATH=/home/runner/work/RibbonUI/Qt/6.6.3/gcc_64 -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DCMAKE_BUILD_TYPE=Release -DRIBBONUI_BUILD_STATIC_LIB=ON -GNinja ..
cmake --build . --target all --config Release --parallel cmake --build . --target all --config Release --parallel
- name: install QT linux deploy - name: install QT linux deploy

View File

@ -23,7 +23,7 @@ jobs:
matrix: matrix:
include: include:
- qt_arch: win64_mingw - qt_arch: win64_mingw
qt_ver: 6.5.3 qt_ver: 6.7.0
qt_tools: "tools_mingw,9.0.0-1-202203221220,qt.tools.win64_mingw900" qt_tools: "tools_mingw,9.0.0-1-202203221220,qt.tools.win64_mingw900"
qt_tools_mingw_install: mingw900_64 qt_tools_mingw_install: mingw900_64
env: env:
@ -66,7 +66,7 @@ jobs:
run: | run: |
mkdir build mkdir build
cd build cd build
cmake -DCMAKE_MESSAGE_LOG_LEVEL=STATUS -DCMAKE_PREFIX_PATH=D:\a\RibbonUI\Qt\6.5.3\mingw_64 -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DCMAKE_BUILD_TYPE=Release -GNinja .. cmake -DCMAKE_MESSAGE_LOG_LEVEL=STATUS -DCMAKE_PREFIX_PATH=D:\a\RibbonUI\Qt\6.7.0\mingw_64 -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DCMAKE_BUILD_TYPE=Release -GNinja ..
cmake --build . --target all --config Release --parallel cmake --build . --target all --config Release --parallel
- name: package - name: package

View File

@ -23,7 +23,7 @@ jobs:
matrix: matrix:
include: include:
- qt_arch: win64_mingw - qt_arch: win64_mingw
qt_ver: 6.5.3 qt_ver: 6.6.3
qt_tools: "tools_mingw,9.0.0-1-202203221220,qt.tools.win64_mingw900" qt_tools: "tools_mingw,9.0.0-1-202203221220,qt.tools.win64_mingw900"
qt_tools_mingw_install: mingw900_64 qt_tools_mingw_install: mingw900_64
env: env:
@ -66,7 +66,7 @@ jobs:
run: | run: |
mkdir build mkdir build
cd build cd build
cmake -DCMAKE_MESSAGE_LOG_LEVEL=STATUS -DCMAKE_PREFIX_PATH=D:\a\RibbonUI\Qt\6.5.3\mingw_64 -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DCMAKE_BUILD_TYPE=Release -DRIBBONUI_BUILD_STATIC_LIB=ON -GNinja .. cmake -DCMAKE_MESSAGE_LOG_LEVEL=STATUS -DCMAKE_PREFIX_PATH=D:\a\RibbonUI\Qt\6.6.3\mingw_64 -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DCMAKE_BUILD_TYPE=Release -DRIBBONUI_BUILD_STATIC_LIB=ON -GNinja ..
cmake --build . --target all --config Release --parallel cmake --build . --target all --config Release --parallel
- name: package - name: package

View File

@ -23,7 +23,7 @@ jobs:
matrix: matrix:
os: [windows-latest] os: [windows-latest]
include: include:
- qt_ver: 6.5.3 - qt_ver: 6.7.0
qt_arch: win64_msvc2019_64 qt_arch: win64_msvc2019_64
msvc_arch: x64 msvc_arch: x64
qt_arch_install: msvc2019_64 qt_arch_install: msvc2019_64
@ -55,7 +55,7 @@ jobs:
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" ${{ matrix.msvc_arch }} call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" ${{ matrix.msvc_arch }}
mkdir build mkdir build
cd build cd build
cmake -DCMAKE_MESSAGE_LOG_LEVEL=STATUS -DCMAKE_PREFIX_PATH=D:\a\RibbonUI\Qt\6.5.3\msvc2019_64 -DCMAKE_C_COMPILER=cl -DCMAKE_CXX_COMPILER=cl -DCMAKE_BUILD_TYPE=Release -GNinja .. cmake -DCMAKE_MESSAGE_LOG_LEVEL=STATUS -DCMAKE_PREFIX_PATH=D:\a\RibbonUI\Qt\6.7.0\msvc2019_64 -DCMAKE_C_COMPILER=cl -DCMAKE_CXX_COMPILER=cl -DCMAKE_BUILD_TYPE=Release -GNinja ..
cmake --build . --target all --config Release --parallel cmake --build . --target all --config Release --parallel
echo winSdkDir=%WindowsSdkDir% >> %GITHUB_ENV% echo winSdkDir=%WindowsSdkDir% >> %GITHUB_ENV%
echo winSdkVer=%WindowsSdkVersion% >> %GITHUB_ENV% echo winSdkVer=%WindowsSdkVersion% >> %GITHUB_ENV%

View File

@ -23,7 +23,7 @@ jobs:
matrix: matrix:
os: [windows-latest] os: [windows-latest]
include: include:
- qt_ver: 6.5.3 - qt_ver: 6.7.0
qt_arch: win64_msvc2019_64 qt_arch: win64_msvc2019_64
msvc_arch: x64 msvc_arch: x64
qt_arch_install: msvc2019_64 qt_arch_install: msvc2019_64
@ -55,7 +55,7 @@ jobs:
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" ${{ matrix.msvc_arch }} call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" ${{ matrix.msvc_arch }}
mkdir build mkdir build
cd build cd build
cmake -DCMAKE_MESSAGE_LOG_LEVEL=STATUS -DCMAKE_PREFIX_PATH=D:\a\RibbonUI\Qt\6.5.3\msvc2019_64 -DCMAKE_C_COMPILER=cl -DCMAKE_CXX_COMPILER=cl -DCMAKE_BUILD_TYPE=Release -DRIBBONUI_BUILD_STATIC_LIB=ON -GNinja .. cmake -DCMAKE_MESSAGE_LOG_LEVEL=STATUS -DCMAKE_PREFIX_PATH=D:\a\RibbonUI\Qt\6.7.0\msvc2019_64 -DCMAKE_C_COMPILER=cl -DCMAKE_CXX_COMPILER=cl -DCMAKE_BUILD_TYPE=Release -DRIBBONUI_BUILD_STATIC_LIB=ON -GNinja ..
cmake --build . --target all --config Release --parallel cmake --build . --target all --config Release --parallel
echo winSdkDir=%WindowsSdkDir% >> %GITHUB_ENV% echo winSdkDir=%WindowsSdkDir% >> %GITHUB_ENV%
echo winSdkVer=%WindowsSdkVersion% >> %GITHUB_ENV% echo winSdkVer=%WindowsSdkVersion% >> %GITHUB_ENV%

View File

@ -14,11 +14,12 @@ if(NOT RIBBONUI_QML_PLUGIN_DIRECTORY)
set(RIBBONUI_QML_PLUGIN_DIRECTORY ${QT_SDK_DIR}/qml/RibbonUI CACHE PATH "RibbonUI Plugin Path") set(RIBBONUI_QML_PLUGIN_DIRECTORY ${QT_SDK_DIR}/qml/RibbonUI CACHE PATH "RibbonUI Plugin Path")
endif() endif()
add_subdirectory(lib_source)
if (RIBBONUI_BUILD_EXAMPLES) if (RIBBONUI_BUILD_EXAMPLES)
add_subdirectory(example) add_subdirectory(example)
endif() endif()
add_subdirectory(lib_source)
message("---------------------------- RibbonUI ----------------------------") message("---------------------------- RibbonUI ----------------------------")
message("Build RibbonUI APP: ${RIBBONUI_BUILD_EXAMPLES}") message("Build RibbonUI APP: ${RIBBONUI_BUILD_EXAMPLES}")
message("Build RibbonUI static library: ${RIBBONUI_BUILD_STATIC_LIB}") message("Build RibbonUI static library: ${RIBBONUI_BUILD_STATIC_LIB}")

View File

@ -81,7 +81,7 @@ RibbonUI是一个参考微软Ribbon风格即Office 2016后的风格设计
## 4. 如何使用? ## 4. 如何使用?
+ 安装前准备 + 安装前准备
安装Qt 6推荐通过官方在线安装器安装**Qt 6.5.3 LTS版本****通过brew等方式安装可能会出现问题**。**Qt Quick相关模块**和**qt5compat qtshadertools qtimageformats**组件是必要的。 安装Qt 6推荐通过官方在线安装器安装**Qt 6.6.3版本****通过brew等方式安装可能会出现问题**。**Qt Quick相关模块**和**qt5compat qtshadertools qtimageformats**组件是必要的。
+ 编译例程和库 + 编译例程和库
- 下载仓库并进入 - 下载仓库并进入
@ -98,7 +98,7 @@ RibbonUI是一个参考微软Ribbon风格即Office 2016后的风格设计
```shell ```shell
# 如果想进行Debug编译, 请配置 -DCMAKE_BUILD_TYPE=Debug和--config Debug参数 # 如果想进行Debug编译, 请配置 -DCMAKE_BUILD_TYPE=Debug和--config Debug参数
# 如果想编译静态库, 请在cmake参数中加入-DRIBBONUI_BUILD_STATIC_LIB=ON # 如果想编译静态库, 请在cmake参数中加入-DRIBBONUI_BUILD_STATIC_LIB=ON
cmake -DCMAKE_MESSAGE_LOG_LEVEL=STATUS -DCMAKE_PREFIX_PATH=/Users/runner/work/RibbonUI/Qt/6.5.3/macos -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_BUILD_TYPE=Release -GNinja .. cmake -DCMAKE_MESSAGE_LOG_LEVEL=STATUS -DCMAKE_PREFIX_PATH=/Users/runner/work/RibbonUI/Qt/6.6.3/macos -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_BUILD_TYPE=Release -GNinja ..
# -DCMAKE_PREFIX_PATH={你的Qt安装目录} # -DCMAKE_PREFIX_PATH={你的Qt安装目录}
cmake --build . --target all --config Release --parallel cmake --build . --target all --config Release --parallel
``` ```
@ -112,7 +112,7 @@ RibbonUI是一个参考微软Ribbon风格即Office 2016后的风格设计
```shell ```shell
# 如果想进行Debug编译, 请配置 -DCMAKE_BUILD_TYPE=Debug和--config Debug参数 # 如果想进行Debug编译, 请配置 -DCMAKE_BUILD_TYPE=Debug和--config Debug参数
# 如果想编译静态库, 请在cmake参数中加入-DRIBBONUI_BUILD_STATIC_LIB=ON # 如果想编译静态库, 请在cmake参数中加入-DRIBBONUI_BUILD_STATIC_LIB=ON
cmake -DCMAKE_MESSAGE_LOG_LEVEL=STATUS -DCMAKE_PREFIX_PATH=/Users/runner/work/RibbonUI/Qt/6.5.3/macos -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_BUILD_TYPE=Release -DRIBBONUI_BUILD_EXAMPLES=OFF -GNinja .. cmake -DCMAKE_MESSAGE_LOG_LEVEL=STATUS -DCMAKE_PREFIX_PATH=/Users/runner/work/RibbonUI/Qt/6.6.3/macos -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_BUILD_TYPE=Release -DRIBBONUI_BUILD_EXAMPLES=OFF -GNinja ..
# -DCMAKE_PREFIX_PATH={你的Qt安装目录} # -DCMAKE_PREFIX_PATH={你的Qt安装目录}
cmake --build . --target all --config Release --parallel cmake --build . --target all --config Release --parallel
``` ```

View File

@ -79,7 +79,7 @@ The current design is based on Qt 6, and support for Qt 5 will be added sometime
## 4. How to use it? ## 4. How to use it?
+ Before Install + Before Install
To install Qt 6, it is recommended to install the **Qt 6.5.3** LTS version via the official online installer, **installing via brew, etc. may cause problems**. **Qt Quick related modules** and the **qt5compat qtshadertools qtimageformats** component are required To install Qt 6, it is recommended to install the **Qt 6.6.3** version via the official online installer, **installing via brew, etc. may cause problems**. **Qt Quick related modules** and the **qt5compat qtshadertools qtimageformats** component are required
+ Compile the example and library + Compile the example and library
- Clone and enter the library folder - Clone and enter the library folder
@ -96,7 +96,7 @@ The current design is based on Qt 6, and support for Qt 5 will be added sometime
```shell ```shell
# if you want to make a Debug build, just let -DCMAKE_BUILD_TYPE=Debug, --config Debug # if you want to make a Debug build, just let -DCMAKE_BUILD_TYPE=Debug, --config Debug
# if you want a static build, add -DRIBBONUI_BUILD_STATIC_LIB=ON into command # if you want a static build, add -DRIBBONUI_BUILD_STATIC_LIB=ON into command
cmake -DCMAKE_MESSAGE_LOG_LEVEL=STATUS -DCMAKE_PREFIX_PATH=/Users/runner/work/RibbonUI/Qt/6.5.3/macos -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_BUILD_TYPE=Release -GNinja .. cmake -DCMAKE_MESSAGE_LOG_LEVEL=STATUS -DCMAKE_PREFIX_PATH=/Users/runner/work/RibbonUI/Qt/6.6.3/macos -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_BUILD_TYPE=Release -GNinja ..
# -DCMAKE_PREFIX_PATH={YOUR QT INSTALL FOLDER} # -DCMAKE_PREFIX_PATH={YOUR QT INSTALL FOLDER}
cmake --build . --target all --config Release --parallel cmake --build . --target all --config Release --parallel
``` ```
@ -110,7 +110,7 @@ The current design is based on Qt 6, and support for Qt 5 will be added sometime
```shell ```shell
# if you want to make a Debug build, just let -DCMAKE_BUILD_TYPE=Debug, --config Debug # if you want to make a Debug build, just let -DCMAKE_BUILD_TYPE=Debug, --config Debug
# if you want a static build, add -DRIBBONUI_BUILD_STATIC_LIB=ON into command # if you want a static build, add -DRIBBONUI_BUILD_STATIC_LIB=ON into command
cmake -DCMAKE_MESSAGE_LOG_LEVEL=STATUS -DCMAKE_PREFIX_PATH=/Users/runner/work/RibbonUI/Qt/6.5.3/macos -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_BUILD_TYPE=Release -DRIBBONUI_BUILD_EXAMPLES=OFF -GNinja .. cmake -DCMAKE_MESSAGE_LOG_LEVEL=STATUS -DCMAKE_PREFIX_PATH=/Users/runner/work/RibbonUI/Qt/6.6.3/macos -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_BUILD_TYPE=Release -DRIBBONUI_BUILD_EXAMPLES=OFF -GNinja ..
# -DCMAKE_PREFIX_PATH={YOUR QT INSTALL FOLDER} # -DCMAKE_PREFIX_PATH={YOUR QT INSTALL FOLDER}
cmake --build . --target all --config Release --parallel cmake --build . --target all --config Release --parallel
``` ```

View File

@ -10,7 +10,6 @@ RibbonWindow {
title: qsTr("RibbonUI APP") title: qsTr("RibbonUI APP")
comfirmed_quit: true comfirmed_quit: true
property bool modern_style: RibbonTheme.modern_style property bool modern_style: RibbonTheme.modern_style
RibbonTabBar { RibbonTabBar {
id: tab_bar id: tab_bar
modern_style: root.modern_style modern_style: root.modern_style

View File

@ -21,9 +21,6 @@ if(APPLE)
endif() endif()
if (RIBBONUI_BUILD_QWINDOWKIT) if (RIBBONUI_BUILD_QWINDOWKIT)
if(WIN32)
set(QWINDOWKIT_ENABLE_WINDOWS_SYSTEM_BORDERS OFF)
endif()
set(QWINDOWKIT_BUILD_STATIC ON) set(QWINDOWKIT_BUILD_STATIC ON)
set(QWINDOWKIT_BUILD_EXAMPLES OFF) set(QWINDOWKIT_BUILD_EXAMPLES OFF)
set(QWINDOWKIT_BUILD_QUICK ON) set(QWINDOWKIT_BUILD_QUICK ON)

View File

@ -17,10 +17,11 @@ Window {
property alias popup: pop property alias popup: pop
property bool comfirmed_quit: false property bool comfirmed_quit: false
property bool blurBehindWindow: true property bool blurBehindWindow: true
property int windows_top_fix: Qt.platform.os === 'windows' ? 1 : 0 // a trick to fix Qt or QWindowKit's bug
visible: false visible: false
color: { color: {
if (blurBehindWindow) { if (blurBehindWindow) {
return "transparent"; return "transparent"
} }
if (RibbonTheme.dark_mode) { if (RibbonTheme.dark_mode) {
return '#2C2B29' return '#2C2B29'
@ -29,7 +30,7 @@ Window {
} }
onBlurBehindWindowChanged: { onBlurBehindWindowChanged: {
if (Qt.platform.os === 'windows') if (Qt.platform.os === 'windows')
windowAgent.setWindowAttribute("mica", blurBehindWindow) windowAgent.setWindowAttribute("dwm-blur", blurBehindWindow)
else if (Qt.platform.os === 'osx') else if (Qt.platform.os === 'osx')
windowAgent.setWindowAttribute("blur-effect", blurBehindWindow ? RibbonTheme.dark_mode ? "dark" : "light" : "none") windowAgent.setWindowAttribute("blur-effect", blurBehindWindow ? RibbonTheme.dark_mode ? "dark" : "light" : "none")
} }
@ -38,13 +39,14 @@ Window {
windowAgent.setup(window) windowAgent.setup(window)
if (Qt.platform.os === 'windows') if (Qt.platform.os === 'windows')
{ {
windowAgent.setWindowAttribute("mica", blurBehindWindow) windowAgent.setWindowAttribute("dwm-blur", blurBehindWindow)
windowAgent.setSystemButton(WindowAgent.Minimize, titleBar.minimizeBtn); windowAgent.setSystemButton(WindowAgent.Minimize, titleBar.minimizeBtn);
windowAgent.setSystemButton(WindowAgent.Maximize, titleBar.maximizeBtn); windowAgent.setSystemButton(WindowAgent.Maximize, titleBar.maximizeBtn);
windowAgent.setSystemButton(WindowAgent.Close, titleBar.closeBtn); windowAgent.setSystemButton(WindowAgent.Close, titleBar.closeBtn);
} }
if(Qt.platform.os === "osx") if(Qt.platform.os === "osx")
{ {
windowAgent.setWindowAttribute("dark-mode", RibbonTheme.dark_mode)
windowAgent.setWindowAttribute("blur-effect", blurBehindWindow ? RibbonTheme.dark_mode ? "dark" : "light" : "none") windowAgent.setWindowAttribute("blur-effect", blurBehindWindow ? RibbonTheme.dark_mode ? "dark" : "light" : "none")
PlatformSupport.showSystemTitleBtns(window, true) PlatformSupport.showSystemTitleBtns(window, true)
} }
@ -52,29 +54,27 @@ Window {
windowAgent.setHitTestVisible(titleBar.right_container) windowAgent.setHitTestVisible(titleBar.right_container)
windowAgent.setTitleBar(titleBar) windowAgent.setTitleBar(titleBar)
windowAgent.centralize() windowAgent.centralize()
window.flags ^= Qt.WA_AlwaysShowToolTips // It's a trick for Windows
window.visible = true window.visible = true
window.flags ^= Qt.WA_AlwaysShowToolTips // It's a trick for Windows
} }
Item{ Item{
id: window_items id: window_items
anchors.fill: parent anchors{
fill: parent
topMargin: border_rect.border.width + windows_top_fix
leftMargin: border_rect.border.width
rightMargin: border_rect.border.width
bottomMargin: border_rect.border.width
}
RibbonTitleBar { RibbonTitleBar {
id: titleBar id: titleBar
anchors.topMargin: border_rect.border.width
anchors.leftMargin: border_rect.border.width
anchors.rightMargin: border_rect.border.width
} }
Item{ Item{
id:container id:container
anchors{ anchors{
top: titleBar.bottom top: titleBar.bottom
left: parent.left left: parent.left
leftMargin: border_rect.border.width
right: parent.right right: parent.right
rightMargin: border_rect.border.width
bottom: parent.bottom bottom: parent.bottom
bottomMargin: border_rect.border.width
} }
clip: true clip: true
} }
@ -95,12 +95,23 @@ Window {
} }
Rectangle{ Rectangle{
id: border_rect id: border_rect
z: -1
anchors.fill: parent anchors.fill: parent
color: 'transparent' anchors.topMargin: windows_top_fix
color: {
if (Qt.platform.os === 'windows')
{
if (RibbonTheme.dark_mode) {
return Qt.alpha('#2C2B29', 0.8)
}
return Qt.alpha('#FFFFFF',0.8)
}
return 'transparent'
}
border.color: RibbonTheme.dark_mode ? "#7A7A7A" : "#2C59B7" border.color: RibbonTheme.dark_mode ? "#7A7A7A" : "#2C59B7"
border.width: RibbonTheme.modern_style ? 1 : 0 border.width: RibbonTheme.modern_style ? 1 : 0
radius: Qt.platform.os === 'windows' ? 7 : 10 radius: Qt.platform.os === 'windows' ? 7 : 10
visible: RibbonTheme.modern_style visible: RibbonTheme.modern_style || blurBehindWindow
} }
RibbonPopup{ RibbonPopup{
id: pop id: pop