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