CMakeList and RibbonTitleBar: Optimization and bug fix.
This commit is contained in:
parent
bcf9a3e03a
commit
8275fe1093
|
@ -2,6 +2,10 @@ cmake_minimum_required(VERSION 3.16)
|
|||
|
||||
project(RibbonUI_Project VERSION 1.0.2 LANGUAGES CXX)
|
||||
|
||||
find_package(Qt6 REQUIRED COMPONENTS Core)
|
||||
set(QT_SDK_DIR ${Qt6_DIR}/../../..)
|
||||
cmake_path(SET QT_SDK_DIR NORMALIZE ${QT_SDK_DIR})
|
||||
|
||||
option(RIBBONUI_BUILD_EXAMPLES "Build RibbonUI APP." ON)
|
||||
option(RIBBONUI_BUILD_FRAMELESSHEPLER "Build FramelessHelper." ON)
|
||||
option(RIBBONUI_BUILD_STATIC_LIB "Build RibbonUI static library." OFF)
|
||||
|
@ -18,10 +22,15 @@ if (RIBBONUI_BUILD_FRAMELESSHEPLER)
|
|||
add_subdirectory(3rdparty/framelesshelper)
|
||||
endif()
|
||||
|
||||
if(NOT RIBBONUI_QML_PLUGIN_DIRECTORY)
|
||||
set(RIBBONUI_QML_PLUGIN_DIRECTORY ${QT_SDK_DIR}/qml/RibbonUI CACHE PATH "RibbonUI Plugin Path")
|
||||
endif()
|
||||
|
||||
add_subdirectory(lib_source)
|
||||
|
||||
message("---------------------------- RibbonUI ----------------------------")
|
||||
message("Build RibbonUI APP: ${RIBBONUI_BUILD_EXAMPLES}")
|
||||
message("Build FramelessHelper: ${RIBBONUI_BUILD_FRAMELESSHEPLER}")
|
||||
message("Build RibbonUI static library: ${RIBBONUI_BUILD_STATIC_LIB}")
|
||||
message("RibbonUI QML Plugin Path: ${RIBBONUI_QML_PLUGIN_DIRECTORY}")
|
||||
message("------------------------------------------------------------------")
|
||||
|
|
|
@ -2,9 +2,17 @@ cmake_minimum_required(VERSION 3.21)
|
|||
|
||||
project(RibbonUIAPP VERSION ${CMAKE_PROJECT_VERSION} LANGUAGES CXX)
|
||||
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
if(QT_VERSION VERSION_GREATER_EQUAL "6.3")
|
||||
qt_standard_project_setup()
|
||||
qt_policy(SET QTP0001 NEW)
|
||||
else()
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
set(CMAKE_AUTORCC ON)
|
||||
set(CMAKE_AUTOUIC ON)
|
||||
endif()
|
||||
|
||||
if(APPLE)
|
||||
set(CMAKE_OSX_ARCHITECTURES "arm64;x86_64" CACHE STRING "" FORCE)
|
||||
endif()
|
||||
|
|
|
@ -19,17 +19,10 @@ int main(int argc, char *argv[])
|
|||
#endif
|
||||
FramelessConfig::instance()->set(Global::Option::DisableLazyInitializationForMicaMaterial);
|
||||
FramelessConfig::instance()->set(Global::Option::CenterWindowBeforeShow);
|
||||
FramelessConfig::instance()->set(Global::Option::ForceNonNativeBackgroundBlur);
|
||||
FramelessConfig::instance()->set(Global::Option::EnableBlurBehindWindow);
|
||||
#ifdef Q_OS_MACOS
|
||||
FramelessConfig::instance()->set(Global::Option::ForceNonNativeBackgroundBlur,false);
|
||||
#endif
|
||||
|
||||
QQmlApplicationEngine engine;
|
||||
FramelessHelper::Quick::registerTypes(&engine);
|
||||
#ifdef RIBBONUI_BUILD_STATIC_LIB
|
||||
engine.addImportPath("qrc:/");
|
||||
#endif
|
||||
const QUrl url(u"qrc:/qt/qml/RibbonUIAPP/example.qml"_qs);
|
||||
QObject::connect(&engine, &QQmlApplicationEngine::objectCreated,
|
||||
&app, [url](QObject *obj, const QUrl &objUrl) {
|
||||
|
|
|
@ -573,7 +573,7 @@ RibbonWindow {
|
|||
}
|
||||
}
|
||||
Image {
|
||||
source: "qrc:/RibbonUI/resources/imgs/icon.png"
|
||||
source: "qrc:/qt/qml/RibbonUI/resources/imgs/icon.png"
|
||||
fillMode:Image.PreserveAspectFit
|
||||
Layout.preferredHeight: 300
|
||||
Layout.preferredWidth: height
|
||||
|
|
|
@ -2,14 +2,22 @@ cmake_minimum_required(VERSION 3.21)
|
|||
|
||||
project(RibbonUI VERSION ${CMAKE_PROJECT_VERSION} LANGUAGES CXX)
|
||||
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
if(QT_VERSION VERSION_GREATER_EQUAL "6.3")
|
||||
qt_standard_project_setup()
|
||||
qt_policy(SET QTP0001 NEW)
|
||||
else()
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
set(CMAKE_AUTORCC ON)
|
||||
set(CMAKE_AUTOUIC ON)
|
||||
endif()
|
||||
|
||||
if(APPLE)
|
||||
set(CMAKE_OSX_ARCHITECTURES "arm64;x86_64" CACHE STRING "" FORCE)
|
||||
endif()
|
||||
|
||||
find_package(Qt6 COMPONENTS Core Quick Qml ShaderTools REQUIRED)
|
||||
find_package(Qt6 COMPONENTS Core Quick Qml REQUIRED)
|
||||
|
||||
set(version_str "${CMAKE_PROJECT_VERSION_MAJOR},${CMAKE_PROJECT_VERSION_MINOR},${CMAKE_PROJECT_VERSION_PATCH}")
|
||||
add_definitions(-DRIBBONUI_VERSION=${version_str})
|
||||
|
@ -17,7 +25,7 @@ add_definitions(-DRIBBONUI_VERSION=${version_str})
|
|||
if (RIBBONUI_BUILD_STATIC_LIB)
|
||||
set(LIB_TYPE "STATIC")
|
||||
set(PLUGIN_TARGET_NAME "")
|
||||
qt_add_resources(${PROJECT_NAME} RibbonUI.qmltypes qmldir)
|
||||
set(RIBBONUI_QML_PLUGIN_DIRECTORY ${CMAKE_BINARY_DIR}/RibbonUI)
|
||||
else()
|
||||
set(LIB_TYPE "SHARED")
|
||||
set(PLUGIN_TARGET_NAME ${PROJECT_NAME})
|
||||
|
@ -40,26 +48,17 @@ foreach(qmlfile ${qml_files})
|
|||
string(REPLACE "qml/" "" fixedfile ${qmlfile})
|
||||
set_source_files_properties(${qmlfile} PROPERTIES QT_RESOURCE_ALIAS ${fixedfile})
|
||||
endforeach(qmlfile)
|
||||
|
||||
message(${RIBBONUI_QML_PLUGIN_DIRECTORY})
|
||||
qt_add_library(${PROJECT_NAME} ${LIB_TYPE})
|
||||
qt_add_qml_module(${PROJECT_NAME}
|
||||
PLUGIN_TARGET ${PLUGIN_TARGET_NAME}
|
||||
OUTPUT_DIRECTORY ${CMAKE_PREFIX_PATH}/qml/RibbonUI
|
||||
OUTPUT_DIRECTORY ${RIBBONUI_QML_PLUGIN_DIRECTORY}
|
||||
URI ${PROJECT_NAME}
|
||||
VERSION ${CMAKE_PROJECT_VERSION_MAJOR}.${CMAKE_PROJECT_VERSION_MINOR}
|
||||
QML_FILES ${qml_files}
|
||||
SOURCES ribbonui.cpp ribbonui.h definitions.h ribbontheme.h ribbontheme.cpp
|
||||
RESOURCES resources/FluentSystemIcons-Resizable.ttf resources/imgs/icon.png
|
||||
)
|
||||
|
||||
qt_add_shaders(${PROJECT_NAME} "shaders"
|
||||
BATCHABLE
|
||||
PRECOMPILE
|
||||
OPTIMIZED
|
||||
PREFIX
|
||||
"RibbonUI"
|
||||
FILES
|
||||
"effects/gaussianblur.frag"
|
||||
RESOURCE_PREFIX "/qt/qml/"
|
||||
)
|
||||
|
||||
target_compile_definitions(${PROJECT_NAME}
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,42 +0,0 @@
|
|||
#version 440
|
||||
|
||||
layout(location = 0) in vec2 qt_TexCoord0;
|
||||
layout(location = 0) out vec4 fragColor;
|
||||
|
||||
layout(std140, binding = 0) uniform buf {
|
||||
mat4 qt_Matrix;
|
||||
float qt_Opacity;
|
||||
vec2 pixelStep;
|
||||
int radius;
|
||||
float deviation;
|
||||
};
|
||||
layout(binding = 1) uniform sampler2D src;
|
||||
|
||||
#define PI 3.1415926538
|
||||
|
||||
float gaussianWeight(vec2 coords)
|
||||
{
|
||||
float x2 = pow(coords.x, 2.0);
|
||||
float y2 = pow(coords.y, 2.0);
|
||||
float deviation2 = pow(deviation, 2.0);
|
||||
|
||||
return (1.0 / (2.0 * PI * deviation2)) * exp(-(x2 + y2) / (2.0 * deviation2));
|
||||
}
|
||||
|
||||
void main(void)
|
||||
{
|
||||
vec4 sum = vec4(0.0);
|
||||
|
||||
float gaussianSum = 0.0;
|
||||
for (int x = -radius; x <= radius; ++x) {
|
||||
for (int y = -radius; y <= radius; ++y) {
|
||||
vec2 c = qt_TexCoord0 + vec2(x, y) * pixelStep;
|
||||
float w = gaussianWeight(vec2(x, y));
|
||||
vec4 color = texture(src, c);
|
||||
sum += color * w;
|
||||
gaussianSum += w;
|
||||
}
|
||||
}
|
||||
|
||||
fragColor = sum / gaussianSum * qt_Opacity;
|
||||
}
|
|
@ -23,7 +23,7 @@ Text {
|
|||
|
||||
FontLoader{
|
||||
id: loader
|
||||
source: "qrc:/RibbonUI/resources/FluentSystemIcons-Resizable.ttf"
|
||||
source: "qrc:/qt/qml/RibbonUI/resources/FluentSystemIcons-Resizable.ttf"
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -11,7 +11,7 @@ Item {
|
|||
property bool show_darkmode_btn: true
|
||||
property bool dark_mode: RibbonTheme.dark_mode
|
||||
property bool modern_style: RibbonTheme.modern_style
|
||||
property string title_color: modern_style ? "transparent" : dark_mode ? "#282828" : "#2C59B7"
|
||||
property string title_color: modern_style ? Qt.platform.os === "windows" ? dark_mode ? "#141414" : "#F5F5F5" :"transparent" : dark_mode ? "#282828" : "#2C59B7"
|
||||
property string title_text_color: modern_style ? dark_mode ? "white" : "black" : "white"
|
||||
default property alias content: left_container.data
|
||||
property alias left_content: left_container.data
|
||||
|
@ -112,6 +112,7 @@ Item {
|
|||
RibbonButton{
|
||||
id: maximizeBtn
|
||||
show_bg:false
|
||||
show_tooltip: Qt.platform.os !== "windows"
|
||||
icon_source: Window.window.visibility === Window.Maximized ? RibbonIcons.ArrowMinimize : RibbonIcons.ArrowMaximize
|
||||
text_color: titleBar.title_text_color
|
||||
hover_color: "#61C554"
|
||||
|
|
|
@ -1,36 +0,0 @@
|
|||
module RibbonUI
|
||||
linktarget RibbonUI
|
||||
optional plugin RibbonUI
|
||||
classname RibbonUIPlugin
|
||||
typeinfo RibbonUI.qmltypes
|
||||
prefer :/RibbonUI/
|
||||
RibbonTabBar 1.0 qml/RibbonTabBar.qml
|
||||
RibbonTabButton 1.0 qml/RibbonTabButton.qml
|
||||
RibbonView 1.0 qml/RibbonView.qml
|
||||
RibbonTabPage 1.0 qml/RibbonTabPage.qml
|
||||
RibbonTabGroup 1.0 qml/RibbonTabGroup.qml
|
||||
RibbonButton 1.0 qml/RibbonButton.qml
|
||||
RibbonBottomBar 1.0 qml/RibbonBottomBar.qml
|
||||
RibbonIcon 1.0 qml/RibbonIcon.qml
|
||||
RibbonToolTip 1.0 qml/RibbonToolTip.qml
|
||||
RibbonTitleBar 1.0 qml/RibbonTitleBar.qml
|
||||
RibbonSlider 1.0 qml/RibbonSlider.qml
|
||||
RibbonSwitchButton 1.0 qml/RibbonSwitchButton.qml
|
||||
RibbonCheckBox 1.0 qml/RibbonCheckBox.qml
|
||||
RibbonMenu 1.0 qml/RibbonMenu.qml
|
||||
RibbonMenuItem 1.0 qml/RibbonMenuItem.qml
|
||||
RibbonShadow 1.0 qml/RibbonShadow.qml
|
||||
RibbonBlur 1.0 qml/RibbonBlur.qml
|
||||
RibbonMenuSeparator 1.0 qml/RibbonMenuSeparator.qml
|
||||
RibbonPaperView 1.0 qml/RibbonPaperView.qml
|
||||
RibbonPushButton 1.0 qml/RibbonPushButton.qml
|
||||
RibbonRectangle 1.0 qml/RibbonRectangle.qml
|
||||
RibbonText 1.0 qml/RibbonText.qml
|
||||
RibbonTextBoxMenu 1.0 qml/RibbonTextBoxMenu.qml
|
||||
RibbonPopup 1.0 qml/RibbonPopup.qml
|
||||
RibbonPopupDialog 1.0 qml/RibbonPopupDialog.qml
|
||||
RibbonLineEdit 1.0 qml/RibbonLineEdit.qml
|
||||
RibbonTextEdit 1.0 qml/RibbonTextEdit.qml
|
||||
RibbonComboBox 1.0 qml/RibbonComboBox.qml
|
||||
RibbonSpinBox 1.0 qml/RibbonSpinBox.qml
|
||||
|
Loading…
Reference in New Issue