Compare commits
3 Commits
b42595cbbc
...
2e50928c12
Author | SHA1 | Date |
---|---|---|
|
2e50928c12 | |
|
80dd3ebd35 | |
|
cb4ec62c1e |
|
@ -13,7 +13,7 @@ list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/.cmake/)
|
||||||
include(GetGitRevisionDescription)
|
include(GetGitRevisionDescription)
|
||||||
|
|
||||||
option(FLUENTUI_BUILD_EXAMPLES "Build FluentUI demo applications." ON)
|
option(FLUENTUI_BUILD_EXAMPLES "Build FluentUI demo applications." ON)
|
||||||
option(FLUENTUI_BUILD_STATIC_LIB "Build static library." OFF)
|
option(FLUENTUI_BUILD_STATIC_LIB "Build static library." ON)
|
||||||
|
|
||||||
find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core)
|
find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core)
|
||||||
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core)
|
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core)
|
||||||
|
|
|
@ -13,6 +13,6 @@ class AppInfo : public QObject {
|
||||||
explicit AppInfo(QObject *parent = nullptr);
|
explicit AppInfo(QObject *parent = nullptr);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
SINGLETON(AppInfo)
|
EXAMPLESINGLETON(AppInfo)
|
||||||
[[maybe_unused]] Q_INVOKABLE void testCrash();
|
[[maybe_unused]] Q_INVOKABLE void testCrash();
|
||||||
};
|
};
|
||||||
|
|
|
@ -15,7 +15,7 @@ private:
|
||||||
void templateToFile(const QString &source, const QString &dest, Args &&...args);
|
void templateToFile(const QString &source, const QString &dest, Args &&...args);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
SINGLETON(InitializrHelper)
|
EXAMPLESINGLETON(InitializrHelper)
|
||||||
~InitializrHelper() override;
|
~InitializrHelper() override;
|
||||||
[[maybe_unused]] Q_INVOKABLE void generate(const QString &name, const QString &path);
|
[[maybe_unused]] Q_INVOKABLE void generate(const QString &name, const QString &path);
|
||||||
Q_SIGNAL void error(const QString &message);
|
Q_SIGNAL void error(const QString &message);
|
||||||
|
|
|
@ -144,7 +144,7 @@ private:
|
||||||
explicit Network(QObject *parent = nullptr);
|
explicit Network(QObject *parent = nullptr);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
SINGLETON(Network)
|
EXAMPLESINGLETON(Network)
|
||||||
|
|
||||||
static Network *create(QQmlEngine *qmlEngine, QJSEngine *jsEngine) {
|
static Network *create(QQmlEngine *qmlEngine, QJSEngine *jsEngine) {
|
||||||
return getInstance();
|
return getInstance();
|
||||||
|
|
|
@ -15,7 +15,7 @@ private:
|
||||||
explicit SettingsHelper(QObject *parent = nullptr);
|
explicit SettingsHelper(QObject *parent = nullptr);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
SINGLETON(SettingsHelper)
|
EXAMPLESINGLETON(SettingsHelper)
|
||||||
~SettingsHelper() override;
|
~SettingsHelper() override;
|
||||||
void init(char *argv[]);
|
void init(char *argv[]);
|
||||||
Q_INVOKABLE void saveDarkMode(int darkModel) {
|
Q_INVOKABLE void saveDarkMode(int darkModel) {
|
||||||
|
|
|
@ -14,7 +14,7 @@ private:
|
||||||
[[maybe_unused]] explicit TranslateHelper(QObject *parent = nullptr);
|
[[maybe_unused]] explicit TranslateHelper(QObject *parent = nullptr);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
SINGLETON(TranslateHelper)
|
EXAMPLESINGLETON(TranslateHelper)
|
||||||
~TranslateHelper() override;
|
~TranslateHelper() override;
|
||||||
void init(QQmlEngine *engine);
|
void init(QQmlEngine *engine);
|
||||||
|
|
||||||
|
|
|
@ -90,7 +90,7 @@ int main(int argc, char *argv[]) {
|
||||||
engine.rootContext()->setContextProperty("TranslateHelper", TranslateHelper::getInstance());
|
engine.rootContext()->setContextProperty("TranslateHelper", TranslateHelper::getInstance());
|
||||||
engine.rootContext()->setContextProperty("Network", Network::getInstance());
|
engine.rootContext()->setContextProperty("Network", Network::getInstance());
|
||||||
#ifdef FLUENTUI_BUILD_STATIC_LIB
|
#ifdef FLUENTUI_BUILD_STATIC_LIB
|
||||||
FluentUI::getInstance()->registerTypes(&engine);
|
FluentUI::registerTypes(&engine);
|
||||||
#endif
|
#endif
|
||||||
const QUrl url(QStringLiteral("qrc:/example/qml/App.qml"));
|
const QUrl url(QStringLiteral("qrc:/example/qml/App.qml"));
|
||||||
QObject::connect(
|
QObject::connect(
|
||||||
|
|
|
@ -4,22 +4,22 @@
|
||||||
* @brief The Singleton class
|
* @brief The Singleton class
|
||||||
*/
|
*/
|
||||||
template <typename T>
|
template <typename T>
|
||||||
class Singleton {
|
class ExampleSingleton {
|
||||||
public:
|
public:
|
||||||
static T *getInstance();
|
static T *getInstance();
|
||||||
};
|
};
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
T *Singleton<T>::getInstance() {
|
T *ExampleSingleton<T>::getInstance() {
|
||||||
static T *instance = new T();
|
static T *instance = new T();
|
||||||
return instance;
|
return instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
#define SINGLETON(Class) \
|
#define EXAMPLESINGLETON(Class) \
|
||||||
private: \
|
private: \
|
||||||
friend class Singleton<Class>; \
|
friend class ExampleSingleton<Class>; \
|
||||||
\
|
\
|
||||||
public: \
|
public: \
|
||||||
static Class *getInstance() { \
|
static Class *getInstance() { \
|
||||||
return Singleton<Class>::getInstance(); \
|
return ExampleSingleton<Class>::getInstance(); \
|
||||||
}
|
}
|
||||||
|
|
|
@ -145,7 +145,7 @@ endif ()
|
||||||
if (QT_VERSION VERSION_GREATER_EQUAL "6.2")
|
if (QT_VERSION VERSION_GREATER_EQUAL "6.2")
|
||||||
#如果是Qt6.2版本以上,则使用qt_add_library,qt_add_qml_module函数添加资源文件
|
#如果是Qt6.2版本以上,则使用qt_add_library,qt_add_qml_module函数添加资源文件
|
||||||
if (FLUENTUI_BUILD_STATIC_LIB)
|
if (FLUENTUI_BUILD_STATIC_LIB)
|
||||||
set(FLUENTUI_QML_PLUGIN_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/FluentUI)
|
set(FLUENTUI_QML_PLUGIN_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/FluentUI)
|
||||||
endif ()
|
endif ()
|
||||||
qt_add_library(${PROJECT_NAME} ${LIB_TYPE})
|
qt_add_library(${PROJECT_NAME} ${LIB_TYPE})
|
||||||
qt_add_qml_module(${PROJECT_NAME}
|
qt_add_qml_module(${PROJECT_NAME}
|
||||||
|
|
|
@ -23,12 +23,14 @@
|
||||||
#include "qmlcustomplot/ticker.h"
|
#include "qmlcustomplot/ticker.h"
|
||||||
#include "qmlcustomplot/grid.h"
|
#include "qmlcustomplot/grid.h"
|
||||||
|
|
||||||
|
const char* FluentUI::_uri = "FluentUI";
|
||||||
|
|
||||||
void FluentUI::registerTypes(QQmlEngine *engine) {
|
void FluentUI::registerTypes(QQmlEngine *engine) {
|
||||||
initializeEngine(engine, _uri);
|
initializeEngine(engine, _uri);
|
||||||
registerTypes(_uri);
|
registerTypes(_uri);
|
||||||
}
|
}
|
||||||
|
|
||||||
void FluentUI::registerTypes(const char *uri) const {
|
void FluentUI::registerTypes(const char *uri) {
|
||||||
#if (QT_VERSION < QT_VERSION_CHECK(6, 2, 0))
|
#if (QT_VERSION < QT_VERSION_CHECK(6, 2, 0))
|
||||||
Q_INIT_RESOURCE(fluentui);
|
Q_INIT_RESOURCE(fluentui);
|
||||||
int major = _major;
|
int major = _major;
|
||||||
|
|
|
@ -2,25 +2,22 @@
|
||||||
|
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
#include <QQmlEngine>
|
#include <QQmlEngine>
|
||||||
#include "singleton.h"
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief The FluentUI class
|
* @brief The FluentUI class
|
||||||
*/
|
*/
|
||||||
class FluentUI : public QObject {
|
class FluentUI{
|
||||||
Q_OBJECT
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
SINGLETON(FluentUI)
|
|
||||||
|
|
||||||
Q_DECL_EXPORT void registerTypes(QQmlEngine *engine);
|
static Q_DECL_EXPORT void registerTypes(QQmlEngine *engine);
|
||||||
|
|
||||||
void registerTypes(const char *uri) const;
|
static void registerTypes(const char *uri);
|
||||||
|
|
||||||
void initializeEngine(QQmlEngine *engine, [[maybe_unused]] const char *uri);
|
static void initializeEngine(QQmlEngine *engine, [[maybe_unused]] const char *uri);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
const int _major = 1;
|
static const int _major = 1;
|
||||||
const int _minor = 0;
|
static const int _minor = 0;
|
||||||
const char *_uri = "FluentUI";
|
static const char *_uri;
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue