update
parent
afeb6daea5
commit
a70ddf7087
|
@ -36,7 +36,7 @@ FluExpander{
|
||||||
topMargin: 5
|
topMargin: 5
|
||||||
}
|
}
|
||||||
onClicked:{
|
onClicked:{
|
||||||
FluApp.clipText(content.text)
|
FluTools.clipText(content.text)
|
||||||
showSuccess("复制成功")
|
showSuccess("复制成功")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -55,7 +55,7 @@ FluContentPage {
|
||||||
anchors.horizontalCenter: parent.horizontalCenter
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
onClicked: {
|
onClicked: {
|
||||||
var text ="FluentIcons."+modelData.name;
|
var text ="FluentIcons."+modelData.name;
|
||||||
FluApp.clipText(text)
|
FluTools.clipText(text)
|
||||||
showSuccess("您复制了 "+text)
|
showSuccess("您复制了 "+text)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,6 +7,7 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||||
#设置版本号
|
#设置版本号
|
||||||
add_definitions(-DVERSION=1,2,9,0)
|
add_definitions(-DVERSION=1,2,9,0)
|
||||||
|
|
||||||
|
#设置插件输出目录
|
||||||
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
|
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin/debug)
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin/debug)
|
||||||
else()
|
else()
|
||||||
|
@ -15,29 +16,34 @@ endif()
|
||||||
|
|
||||||
find_package(Qt6 REQUIRED COMPONENTS Core Quick Qml)
|
find_package(Qt6 REQUIRED COMPONENTS Core Quick Qml)
|
||||||
|
|
||||||
|
#遍历所有Cpp文件
|
||||||
file(GLOB_RECURSE CPP_FILES *.cpp *.h)
|
file(GLOB_RECURSE CPP_FILES *.cpp *.h)
|
||||||
foreach(filepath ${CPP_FILES})
|
foreach(filepath ${CPP_FILES})
|
||||||
string(REPLACE "${CMAKE_CURRENT_SOURCE_DIR}/" "" filename ${filepath})
|
string(REPLACE "${CMAKE_CURRENT_SOURCE_DIR}/" "" filename ${filepath})
|
||||||
list(APPEND sources_files ${filename})
|
list(APPEND sources_files ${filename})
|
||||||
endforeach(filepath)
|
endforeach(filepath)
|
||||||
|
|
||||||
|
#遍历所有qml文件
|
||||||
file(GLOB_RECURSE QML_PATHS *.qml)
|
file(GLOB_RECURSE QML_PATHS *.qml)
|
||||||
foreach(filepath ${QML_PATHS})
|
foreach(filepath ${QML_PATHS})
|
||||||
string(REPLACE "${CMAKE_CURRENT_SOURCE_DIR}/" "" filename ${filepath})
|
string(REPLACE "${CMAKE_CURRENT_SOURCE_DIR}/" "" filename ${filepath})
|
||||||
list(APPEND qml_files ${filename})
|
list(APPEND qml_files ${filename})
|
||||||
endforeach(filepath)
|
endforeach(filepath)
|
||||||
|
|
||||||
|
#遍历所有资源文件
|
||||||
file(GLOB_RECURSE RES_PATHS *.png *.jpg *.svg *.ico *.ttf *.webp)
|
file(GLOB_RECURSE RES_PATHS *.png *.jpg *.svg *.ico *.ttf *.webp)
|
||||||
foreach(filepath ${RES_PATHS})
|
foreach(filepath ${RES_PATHS})
|
||||||
string(REPLACE "${CMAKE_CURRENT_SOURCE_DIR}/" "" filename ${filepath})
|
string(REPLACE "${CMAKE_CURRENT_SOURCE_DIR}/" "" filename ${filepath})
|
||||||
list(APPEND resource_files ${filename})
|
list(APPEND resource_files ${filename})
|
||||||
endforeach(filepath)
|
endforeach(filepath)
|
||||||
|
|
||||||
|
#修改资源文件导出路径
|
||||||
foreach(filepath IN LISTS qml_files resource_files)
|
foreach(filepath IN LISTS qml_files resource_files)
|
||||||
string(REPLACE "imports/FluentUI/" "" filename ${filepath})
|
string(REPLACE "imports/FluentUI/" "" filename ${filepath})
|
||||||
set_source_files_properties(${filepath} PROPERTIES QT_RESOURCE_ALIAS ${filename})
|
set_source_files_properties(${filepath} PROPERTIES QT_RESOURCE_ALIAS ${filename})
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
|
#添加qml模块
|
||||||
qt_add_qml_module(fluentui
|
qt_add_qml_module(fluentui
|
||||||
OUTPUT_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/FluentUI
|
OUTPUT_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/FluentUI
|
||||||
VERSION 1.0
|
VERSION 1.0
|
||||||
|
@ -47,17 +53,20 @@ qt_add_qml_module(fluentui
|
||||||
RESOURCES ${resource_files}
|
RESOURCES ${resource_files}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
#设置属性
|
||||||
set_target_properties(fluentui PROPERTIES
|
set_target_properties(fluentui PROPERTIES
|
||||||
WIN32_EXECUTABLE TRUE
|
WIN32_EXECUTABLE TRUE
|
||||||
MACOSX_BUNDLE TRUE
|
MACOSX_BUNDLE TRUE
|
||||||
)
|
)
|
||||||
|
|
||||||
|
#链接库
|
||||||
target_link_libraries(fluentui PUBLIC
|
target_link_libraries(fluentui PUBLIC
|
||||||
Qt::Core
|
Qt::Core
|
||||||
Qt::Quick
|
Qt::Quick
|
||||||
Qt::Qml
|
Qt::Qml
|
||||||
)
|
)
|
||||||
|
|
||||||
|
#链接库 win32库 不然mingw会编译错误
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
target_link_libraries(fluentui PRIVATE dwmapi user32)
|
target_link_libraries(fluentui PRIVATE dwmapi user32)
|
||||||
endif()
|
endif()
|
||||||
|
|
|
@ -8,9 +8,7 @@
|
||||||
#include <QUuid>
|
#include <QUuid>
|
||||||
#include <QFontDatabase>
|
#include <QFontDatabase>
|
||||||
#include <QClipboard>
|
#include <QClipboard>
|
||||||
#include "FluTheme.h"
|
|
||||||
#include "Def.h"
|
#include "Def.h"
|
||||||
|
|
||||||
#ifdef Q_OS_WIN
|
#ifdef Q_OS_WIN
|
||||||
#pragma comment(lib, "Dwmapi.lib")
|
#pragma comment(lib, "Dwmapi.lib")
|
||||||
#pragma comment(lib, "User32.lib")
|
#pragma comment(lib, "User32.lib")
|
||||||
|
@ -26,18 +24,12 @@ static bool isCompositionEnabled()
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
FluApp* FluApp::fluApp = nullptr;
|
FluApp* FluApp::fluApp = nullptr;
|
||||||
FluTheme* FluApp::fluTheme = nullptr;
|
|
||||||
FluColors* FluApp::flutColors = nullptr;
|
|
||||||
|
|
||||||
void FluApp::setFluApp(FluApp* val){
|
FluTheme* FluApp::fluTheme = nullptr;
|
||||||
FluApp::fluApp = val;
|
|
||||||
}
|
FluColors* FluApp::fluColors = nullptr;
|
||||||
void FluApp::setFluTheme(FluTheme* val){
|
|
||||||
FluApp::fluTheme = val;
|
FluTools* FluApp::fluTools = nullptr;
|
||||||
}
|
|
||||||
void FluApp::setFluColors(FluColors* val){
|
|
||||||
FluApp::flutColors = val;
|
|
||||||
}
|
|
||||||
|
|
||||||
FluApp::FluApp(QObject *parent)
|
FluApp::FluApp(QObject *parent)
|
||||||
: QObject{parent}
|
: QObject{parent}
|
||||||
|
@ -45,6 +37,29 @@ FluApp::FluApp(QObject *parent)
|
||||||
QFontDatabase::addApplicationFont(":/FluentUI/Font/Segoe_Fluent_Icons.ttf");
|
QFontDatabase::addApplicationFont(":/FluentUI/Font/Segoe_Fluent_Icons.ttf");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
FluApp::~FluApp(){
|
||||||
|
if (nativeEvent != Q_NULLPTR) {
|
||||||
|
delete nativeEvent;
|
||||||
|
nativeEvent = Q_NULLPTR;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void FluApp::setFluApp(FluApp* val){
|
||||||
|
FluApp::fluApp = val;
|
||||||
|
}
|
||||||
|
|
||||||
|
void FluApp::setFluTheme(FluTheme* val){
|
||||||
|
FluApp::fluTheme = val;
|
||||||
|
}
|
||||||
|
|
||||||
|
void FluApp::setFluColors(FluColors* val){
|
||||||
|
FluApp::fluColors = val;
|
||||||
|
}
|
||||||
|
|
||||||
|
void FluApp::setFluTools(FluTools* val){
|
||||||
|
FluApp::fluTools = val;
|
||||||
|
}
|
||||||
|
|
||||||
void FluApp::init(QQuickWindow *window){
|
void FluApp::init(QQuickWindow *window){
|
||||||
this->appWindow = window;
|
this->appWindow = window;
|
||||||
QQmlEngine *engine = qmlEngine(appWindow);
|
QQmlEngine *engine = qmlEngine(appWindow);
|
||||||
|
@ -133,14 +148,6 @@ QJsonArray FluApp::awesomelist(const QString& keyword)
|
||||||
return arr;
|
return arr;
|
||||||
}
|
}
|
||||||
|
|
||||||
void FluApp::clipText(const QString& text){
|
|
||||||
QGuiApplication::clipboard()->setText(text);
|
|
||||||
}
|
|
||||||
|
|
||||||
QString FluApp::uuid(){
|
|
||||||
return QUuid::createUuid().toString();
|
|
||||||
}
|
|
||||||
|
|
||||||
void FluApp::closeApp(){
|
void FluApp::closeApp(){
|
||||||
qApp->exit(0);
|
qApp->exit(0);
|
||||||
}
|
}
|
||||||
|
|
101
src/FluApp.h
101
src/FluApp.h
|
@ -9,44 +9,125 @@
|
||||||
#include <QJsonObject>
|
#include <QJsonObject>
|
||||||
#include <QQmlEngine>
|
#include <QQmlEngine>
|
||||||
#include "FluTheme.h"
|
#include "FluTheme.h"
|
||||||
|
#include "FluTools.h"
|
||||||
#include "FluColors.h"
|
#include "FluColors.h"
|
||||||
#include "NativeEventFilter.h"
|
#include "NativeEventFilter.h"
|
||||||
#include "FluRegister.h"
|
#include "FluRegister.h"
|
||||||
#include "stdafx.h"
|
#include "stdafx.h"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief The FluApp class
|
||||||
|
*/
|
||||||
class FluApp : public QObject
|
class FluApp : public QObject
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
/**
|
||||||
|
* @brief initialRoute 初始路由
|
||||||
|
*/
|
||||||
Q_PROPERTY_AUTO(QString,initialRoute);
|
Q_PROPERTY_AUTO(QString,initialRoute);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief routes 路由表
|
||||||
|
*/
|
||||||
Q_PROPERTY_AUTO(QJsonObject,routes);
|
Q_PROPERTY_AUTO(QJsonObject,routes);
|
||||||
|
|
||||||
QML_NAMED_ELEMENT(FluApp)
|
QML_NAMED_ELEMENT(FluApp)
|
||||||
QML_SINGLETON
|
QML_SINGLETON
|
||||||
|
|
||||||
public:
|
public:
|
||||||
static FluApp *getInstance();
|
|
||||||
explicit FluApp(QObject *parent = nullptr);
|
explicit FluApp(QObject *parent = nullptr);
|
||||||
~FluApp(){
|
~FluApp();
|
||||||
if (nativeEvent != Q_NULLPTR) {
|
|
||||||
delete nativeEvent;
|
/**
|
||||||
nativeEvent = Q_NULLPTR;
|
* @brief run
|
||||||
}
|
*/
|
||||||
}
|
|
||||||
Q_INVOKABLE void run();
|
Q_INVOKABLE void run();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief navigate
|
||||||
|
* @param route
|
||||||
|
* @param argument
|
||||||
|
* @param fluRegister
|
||||||
|
*/
|
||||||
Q_INVOKABLE void navigate(const QString& route,const QJsonObject& argument = {},FluRegister* fluRegister = nullptr);
|
Q_INVOKABLE void navigate(const QString& route,const QJsonObject& argument = {},FluRegister* fluRegister = nullptr);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief init
|
||||||
|
* @param window
|
||||||
|
*/
|
||||||
Q_INVOKABLE void init(QQuickWindow *window);
|
Q_INVOKABLE void init(QQuickWindow *window);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief awesomelist
|
||||||
|
* @param keyword
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
Q_INVOKABLE QJsonArray awesomelist(const QString& keyword = "");
|
Q_INVOKABLE QJsonArray awesomelist(const QString& keyword = "");
|
||||||
Q_INVOKABLE void clipText(const QString& text);
|
|
||||||
Q_INVOKABLE QString uuid();
|
/**
|
||||||
|
* @brief closeApp
|
||||||
|
*/
|
||||||
Q_INVOKABLE void closeApp();
|
Q_INVOKABLE void closeApp();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief setFluApp 在FluSingleton.qml调用,拿到QML中FluApp的单例
|
||||||
|
* @param val
|
||||||
|
*/
|
||||||
Q_INVOKABLE void setFluApp(FluApp* val);
|
Q_INVOKABLE void setFluApp(FluApp* val);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief setFluTheme 在FluSingleton.qml调用,拿到QML中FluTheme的单例
|
||||||
|
* @param val
|
||||||
|
*/
|
||||||
Q_INVOKABLE void setFluTheme(FluTheme* val);
|
Q_INVOKABLE void setFluTheme(FluTheme* val);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief setFluColors 在FluSingleton.qml调用,拿到QML中FluColors的单例
|
||||||
|
* @param val
|
||||||
|
*/
|
||||||
Q_INVOKABLE void setFluColors(FluColors* val);
|
Q_INVOKABLE void setFluColors(FluColors* val);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief setFluColors 在FluSingleton.qml调用,拿到QML中FluTools的单例
|
||||||
|
* @param val
|
||||||
|
*/
|
||||||
|
Q_INVOKABLE void setFluTools(FluTools* val);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
/**
|
||||||
|
* @brief wnds
|
||||||
|
*/
|
||||||
QMap<quint64, QQuickWindow*> wnds;
|
QMap<quint64, QQuickWindow*> wnds;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief fluApp
|
||||||
|
*/
|
||||||
static FluApp* fluApp;
|
static FluApp* fluApp;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief fluTheme
|
||||||
|
*/
|
||||||
static FluTheme* fluTheme;
|
static FluTheme* fluTheme;
|
||||||
static FluColors* flutColors;
|
|
||||||
|
/**
|
||||||
|
* @brief fluColors
|
||||||
|
*/
|
||||||
|
static FluColors* fluColors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief fluTools
|
||||||
|
*/
|
||||||
|
static FluTools* fluTools;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
/**
|
||||||
|
* @brief nativeEvent
|
||||||
|
*/
|
||||||
NativeEventFilter *nativeEvent = Q_NULLPTR;
|
NativeEventFilter *nativeEvent = Q_NULLPTR;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief appWindow
|
||||||
|
*/
|
||||||
QWindow *appWindow;
|
QWindow *appWindow;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -4,9 +4,11 @@
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
#include "stdafx.h"
|
#include "stdafx.h"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief The FluColorSet class
|
||||||
|
*/
|
||||||
class FluColorSet : public QObject
|
class FluColorSet : public QObject
|
||||||
{
|
{
|
||||||
|
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
Q_PROPERTY_AUTO(QString,darkest)
|
Q_PROPERTY_AUTO(QString,darkest)
|
||||||
Q_PROPERTY_AUTO(QString,darker)
|
Q_PROPERTY_AUTO(QString,darker)
|
||||||
|
|
|
@ -6,6 +6,9 @@
|
||||||
#include "FluColorSet.h"
|
#include "FluColorSet.h"
|
||||||
#include "stdafx.h"
|
#include "stdafx.h"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief The FluColors class
|
||||||
|
*/
|
||||||
class FluColors : public QObject
|
class FluColors : public QObject
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
@ -33,7 +36,6 @@ class FluColors : public QObject
|
||||||
Q_PROPERTY_AUTO(QString,Grey200);
|
Q_PROPERTY_AUTO(QString,Grey200);
|
||||||
Q_PROPERTY_AUTO(QString,Grey210);
|
Q_PROPERTY_AUTO(QString,Grey210);
|
||||||
Q_PROPERTY_AUTO(QString,Grey220);
|
Q_PROPERTY_AUTO(QString,Grey220);
|
||||||
|
|
||||||
Q_PROPERTY_AUTO(FluColorSet*,Yellow);
|
Q_PROPERTY_AUTO(FluColorSet*,Yellow);
|
||||||
Q_PROPERTY_AUTO(FluColorSet*,Orange);
|
Q_PROPERTY_AUTO(FluColorSet*,Orange);
|
||||||
Q_PROPERTY_AUTO(FluColorSet*,Red);
|
Q_PROPERTY_AUTO(FluColorSet*,Red);
|
||||||
|
|
|
@ -6,6 +6,9 @@
|
||||||
#include <QJsonObject>
|
#include <QJsonObject>
|
||||||
#include "stdafx.h"
|
#include "stdafx.h"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief The FluRegister class
|
||||||
|
*/
|
||||||
class FluRegister : public QObject
|
class FluRegister : public QObject
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
@ -15,8 +18,22 @@ class FluRegister : public QObject
|
||||||
public:
|
public:
|
||||||
explicit FluRegister(QObject *parent = nullptr);
|
explicit FluRegister(QObject *parent = nullptr);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief launch 窗口跳转
|
||||||
|
* @param argument 跳转携带参数
|
||||||
|
*/
|
||||||
Q_INVOKABLE void launch(const QJsonObject& argument = {});
|
Q_INVOKABLE void launch(const QJsonObject& argument = {});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief onResult 将结果数据回传到上一个窗口
|
||||||
|
* @param data 结果数据
|
||||||
|
*/
|
||||||
Q_INVOKABLE void onResult(const QJsonObject& data = {});
|
Q_INVOKABLE void onResult(const QJsonObject& data = {});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief result 收到结果数据的信号
|
||||||
|
* @param data 结果数据
|
||||||
|
*/
|
||||||
Q_SIGNAL void result(const QJsonObject& data);
|
Q_SIGNAL void result(const QJsonObject& data);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -11,7 +11,7 @@ FluTheme::FluTheme(QObject *parent)
|
||||||
connect(this,&FluTheme::darkModeChanged,this,[=]{
|
connect(this,&FluTheme::darkModeChanged,this,[=]{
|
||||||
Q_EMIT darkChanged();
|
Q_EMIT darkChanged();
|
||||||
});
|
});
|
||||||
primaryColor(FluApp::flutColors->Blue());
|
primaryColor(FluApp::fluColors->Blue());
|
||||||
textSize(13);
|
textSize(13);
|
||||||
nativeText(false);
|
nativeText(false);
|
||||||
frameless(true);
|
frameless(true);
|
||||||
|
|
|
@ -6,15 +6,42 @@
|
||||||
#include "FluColorSet.h"
|
#include "FluColorSet.h"
|
||||||
#include "stdafx.h"
|
#include "stdafx.h"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief The FluTheme class
|
||||||
|
*/
|
||||||
class FluTheme : public QObject
|
class FluTheme : public QObject
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
/**
|
||||||
|
* @brief dark 改变窗口夜间样式,只读属性,可以通过darkMode切换
|
||||||
|
*/
|
||||||
Q_PROPERTY(bool dark READ dark NOTIFY darkChanged)
|
Q_PROPERTY(bool dark READ dark NOTIFY darkChanged)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief primaryColor 主题颜色
|
||||||
|
*/
|
||||||
Q_PROPERTY_AUTO(FluColorSet*,primaryColor)
|
Q_PROPERTY_AUTO(FluColorSet*,primaryColor)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief frameless 是否是无边框窗口,只支持windows部分电脑
|
||||||
|
*/
|
||||||
Q_PROPERTY_AUTO(bool,frameless);
|
Q_PROPERTY_AUTO(bool,frameless);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief darkMode 夜间模式,支持System=0、Light=1、Dark=2
|
||||||
|
*/
|
||||||
Q_PROPERTY_AUTO(int,darkMode);
|
Q_PROPERTY_AUTO(int,darkMode);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief nativeText 本地渲染文本
|
||||||
|
*/
|
||||||
Q_PROPERTY_AUTO(bool,nativeText);
|
Q_PROPERTY_AUTO(bool,nativeText);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief textSize 文字大小
|
||||||
|
*/
|
||||||
Q_PROPERTY_AUTO(int,textSize);
|
Q_PROPERTY_AUTO(int,textSize);
|
||||||
|
|
||||||
QML_NAMED_ELEMENT(FluTheme)
|
QML_NAMED_ELEMENT(FluTheme)
|
||||||
QML_SINGLETON
|
QML_SINGLETON
|
||||||
public:
|
public:
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
#include "FluTools.h"
|
||||||
|
#include <QGuiApplication>
|
||||||
|
#include <QClipboard>
|
||||||
|
#include <QUuid>
|
||||||
|
|
||||||
|
FluTools::FluTools(QObject *parent)
|
||||||
|
: QObject{parent}
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void FluTools::clipText(const QString& text){
|
||||||
|
QGuiApplication::clipboard()->setText(text);
|
||||||
|
}
|
||||||
|
|
||||||
|
QString FluTools::uuid(){
|
||||||
|
return QUuid::createUuid().toString();
|
||||||
|
}
|
|
@ -0,0 +1,34 @@
|
||||||
|
#ifndef FLUTOOLS_H
|
||||||
|
#define FLUTOOLS_H
|
||||||
|
|
||||||
|
#include <QObject>
|
||||||
|
#include <QtQml/qqml.h>
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief The FluTools class
|
||||||
|
*/
|
||||||
|
class FluTools : public QObject
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
QML_NAMED_ELEMENT(FluTools)
|
||||||
|
QML_SINGLETON
|
||||||
|
|
||||||
|
public:
|
||||||
|
explicit FluTools(QObject *parent = nullptr);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief clipText 将字符串添加到剪切板
|
||||||
|
* @param text
|
||||||
|
*/
|
||||||
|
Q_INVOKABLE void clipText(const QString& text);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief uuid 获取uuid
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Q_INVOKABLE QString uuid();
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // FLUTOOLS_H
|
|
@ -4,6 +4,9 @@
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
#include <QAbstractNativeEventFilter>
|
#include <QAbstractNativeEventFilter>
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief The NativeEventFilter class
|
||||||
|
*/
|
||||||
class NativeEventFilter : public QAbstractNativeEventFilter
|
class NativeEventFilter : public QAbstractNativeEventFilter
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
|
@ -28,21 +28,17 @@ void WindowHelper::initWindow(QQuickWindow* window){
|
||||||
}
|
}
|
||||||
|
|
||||||
void WindowHelper::firstUpdate(){
|
void WindowHelper::firstUpdate(){
|
||||||
if(isFisrt){
|
|
||||||
#ifdef Q_OS_WIN
|
#ifdef Q_OS_WIN
|
||||||
if(FluApp::fluTheme->frameless()){
|
if(FluApp::fluTheme->frameless()){
|
||||||
HWND wnd = (HWND)window->winId();
|
HWND wnd = (HWND)window->winId();
|
||||||
SetWindowLongPtr(wnd, GWL_STYLE, static_cast<LONG>(Style::aero_borderless));
|
SetWindowLongPtr(wnd, GWL_STYLE, static_cast<LONG>(Style::aero_borderless));
|
||||||
const MARGINS shadow_on = { 1, 1, 1, 1 };
|
const MARGINS shadow_on = { 1, 1, 1, 1 };
|
||||||
DwmExtendFrameIntoClientArea(wnd, &shadow_on);
|
DwmExtendFrameIntoClientArea(wnd, &shadow_on);
|
||||||
SetWindowPos(wnd, Q_NULLPTR, 0, 0, 0, 0, SWP_FRAMECHANGED | SWP_NOMOVE | SWP_NOSIZE);
|
SetWindowPos(wnd, Q_NULLPTR, 0, 0, 0, 0, SWP_FRAMECHANGED | SWP_NOMOVE | SWP_NOSIZE);
|
||||||
ShowWindow(wnd, SW_SHOW);
|
ShowWindow(wnd, SW_SHOW);
|
||||||
window->setFlag(Qt::FramelessWindowHint,false);
|
window->setFlag(Qt::FramelessWindowHint,false);
|
||||||
}
|
|
||||||
#endif
|
|
||||||
isFisrt = false;
|
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
QVariant WindowHelper::createRegister(QQuickWindow* window,const QString& path){
|
QVariant WindowHelper::createRegister(QQuickWindow* window,const QString& path){
|
||||||
|
|
|
@ -8,6 +8,9 @@
|
||||||
#include <QWindow>
|
#include <QWindow>
|
||||||
#include <QJsonObject>
|
#include <QJsonObject>
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief The WindowHelper class
|
||||||
|
*/
|
||||||
class WindowHelper : public QObject
|
class WindowHelper : public QObject
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
@ -15,14 +18,32 @@ class WindowHelper : public QObject
|
||||||
public:
|
public:
|
||||||
explicit WindowHelper(QObject *parent = nullptr);
|
explicit WindowHelper(QObject *parent = nullptr);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief initWindow FluWindow中初始化调用
|
||||||
|
* @param window
|
||||||
|
*/
|
||||||
Q_INVOKABLE void initWindow(QQuickWindow* window);
|
Q_INVOKABLE void initWindow(QQuickWindow* window);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief destoryWindow 销毁窗口,释放资源,QML中的Window close并不会销毁窗口,只是把窗口隐藏了
|
||||||
|
*/
|
||||||
Q_INVOKABLE void destoryWindow();
|
Q_INVOKABLE void destoryWindow();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief createRegister 创建一个FluRegsiter对象,在FluWindow中registerForWindowResult方法调用
|
||||||
|
* @param window
|
||||||
|
* @param path
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
Q_INVOKABLE QVariant createRegister(QQuickWindow* window,const QString& path);
|
Q_INVOKABLE QVariant createRegister(QQuickWindow* window,const QString& path);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief firstUpdate 窗口创建成功后调用,只调用一次
|
||||||
|
*/
|
||||||
Q_INVOKABLE void firstUpdate();
|
Q_INVOKABLE void firstUpdate();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QQuickWindow* window;
|
QQuickWindow* window;
|
||||||
bool isFisrt=true;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // WINDOWHELPER_H
|
#endif // WINDOWHELPER_H
|
||||||
|
|
|
@ -3,7 +3,7 @@ import QtQuick.Controls
|
||||||
import FluentUI
|
import FluentUI
|
||||||
|
|
||||||
QtObject {
|
QtObject {
|
||||||
readonly property string key : FluApp.uuid()
|
readonly property string key : FluTools.uuid()
|
||||||
readonly property int flag : 0
|
readonly property int flag : 0
|
||||||
property string title
|
property string title
|
||||||
property int order : 0
|
property int order : 0
|
||||||
|
|
|
@ -3,7 +3,7 @@ import QtQuick.Controls
|
||||||
import FluentUI
|
import FluentUI
|
||||||
|
|
||||||
QtObject {
|
QtObject {
|
||||||
readonly property string key : FluApp.uuid()
|
readonly property string key : FluTools.uuid()
|
||||||
property var parent
|
property var parent
|
||||||
property int idx
|
property int idx
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,7 @@ import QtQuick.Controls
|
||||||
import FluentUI
|
import FluentUI
|
||||||
|
|
||||||
FluObject {
|
FluObject {
|
||||||
readonly property string key : FluApp.uuid()
|
readonly property string key : FluTools.uuid()
|
||||||
property string title
|
property string title
|
||||||
property var icon
|
property var icon
|
||||||
property Component cusIcon
|
property Component cusIcon
|
||||||
|
|
|
@ -3,7 +3,7 @@ import QtQuick.Controls
|
||||||
import FluentUI
|
import FluentUI
|
||||||
|
|
||||||
QtObject {
|
QtObject {
|
||||||
readonly property string key : FluApp.uuid()
|
readonly property string key : FluTools.uuid()
|
||||||
property string title
|
property string title
|
||||||
property var parent
|
property var parent
|
||||||
property int idx
|
property int idx
|
||||||
|
|
|
@ -3,7 +3,7 @@ import QtQuick.Controls
|
||||||
import FluentUI
|
import FluentUI
|
||||||
|
|
||||||
QtObject {
|
QtObject {
|
||||||
readonly property string key : FluApp.uuid()
|
readonly property string key : FluTools.uuid()
|
||||||
property var parent
|
property var parent
|
||||||
property int idx
|
property int idx
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,6 +10,7 @@ QtObject {
|
||||||
FluApp.setFluApp(FluApp)
|
FluApp.setFluApp(FluApp)
|
||||||
FluApp.setFluColors(FluColors)
|
FluApp.setFluColors(FluColors)
|
||||||
FluApp.setFluTheme(FluTheme)
|
FluApp.setFluTheme(FluTheme)
|
||||||
|
FluApp.setFluTools(FluTools)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,6 +28,11 @@ ApplicationWindow {
|
||||||
}
|
}
|
||||||
signal initArgument(var argument)
|
signal initArgument(var argument)
|
||||||
|
|
||||||
|
QtObject{
|
||||||
|
id:d
|
||||||
|
property bool firstFlag: true
|
||||||
|
}
|
||||||
|
|
||||||
id:window
|
id:window
|
||||||
background: Rectangle{
|
background: Rectangle{
|
||||||
color: {
|
color: {
|
||||||
|
@ -51,8 +56,9 @@ ApplicationWindow {
|
||||||
}
|
}
|
||||||
|
|
||||||
onActiveChanged: {
|
onActiveChanged: {
|
||||||
if(active){
|
if(d.firstFlag){
|
||||||
helper.firstUpdate()
|
helper.firstUpdate()
|
||||||
|
d.firstFlag = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue