Libsource: Fix the multithread bug in QML engine.
This commit is contained in:
parent
73ebc786a8
commit
ee6ea7840d
|
@ -23,8 +23,14 @@ RibbonTheme::RibbonTheme()
|
|||
}
|
||||
|
||||
RibbonTheme* RibbonTheme::instance(){
|
||||
static RibbonTheme instance;
|
||||
return &instance;
|
||||
static QMutex mutex;
|
||||
QMutexLocker locker(&mutex);
|
||||
|
||||
static RibbonTheme *singleton = nullptr;
|
||||
if (!singleton) {
|
||||
singleton = new RibbonTheme();
|
||||
}
|
||||
return singleton;
|
||||
}
|
||||
|
||||
bool RibbonTheme::eventFilter(QObject *obj, QEvent *event)
|
||||
|
|
|
@ -10,16 +10,18 @@ class RibbonTheme : public QQuickItem
|
|||
QML_ELEMENT
|
||||
QML_SINGLETON
|
||||
QML_NAMED_ELEMENT(RibbonTheme)
|
||||
Q_DISABLE_COPY(RibbonTheme)
|
||||
|
||||
Q_PROPERTY(bool dark_mode READ dark_mode() NOTIFY dark_modeChanged FINAL)
|
||||
Q_PROPERTY_RW(RibbonThemeType::ThemeMode,theme_mode)
|
||||
Q_PROPERTY_RW(bool,modern_style)
|
||||
public:
|
||||
RibbonTheme();
|
||||
static RibbonTheme* create(QQmlEngine *qmlEngine, QJSEngine *jsEngine){return instance();}
|
||||
static RibbonTheme* instance();
|
||||
Q_SIGNAL void dark_modeChanged();
|
||||
bool dark_mode();
|
||||
private:
|
||||
RibbonTheme();
|
||||
bool eventFilter(QObject *obj, QEvent *event);
|
||||
RibbonThemeType::ThemeMode current_theme();
|
||||
RibbonThemeType::ThemeMode _system_theme_mode;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#include "ribbonui.h"
|
||||
|
||||
#include <QMutex>
|
||||
#define STR(x) #x
|
||||
#define JOIN(a,b,c,d) STR(a.b.c.d)
|
||||
#define VER_JOIN(x) JOIN x
|
||||
|
@ -11,6 +11,12 @@ RibbonUI::RibbonUI(QQuickItem *parent)
|
|||
}
|
||||
|
||||
RibbonUI* RibbonUI::instance(){
|
||||
static RibbonUI instance;
|
||||
return &instance;
|
||||
static QMutex mutex;
|
||||
QMutexLocker locker(&mutex);
|
||||
|
||||
static RibbonUI *singleton = nullptr;
|
||||
if (!singleton) {
|
||||
singleton = new RibbonUI();
|
||||
}
|
||||
return singleton;
|
||||
}
|
||||
|
|
|
@ -10,10 +10,13 @@ class RibbonUI : public QQuickItem
|
|||
QML_ELEMENT
|
||||
QML_SINGLETON
|
||||
QML_NAMED_ELEMENT(RibbonUI)
|
||||
Q_DISABLE_COPY(RibbonUI)
|
||||
Q_PROPERTY_RW(QString, version)
|
||||
public:
|
||||
explicit RibbonUI(QQuickItem *parent = nullptr);
|
||||
static RibbonUI* instance();
|
||||
static RibbonUI* create(QQmlEngine *qmlEngine, QJSEngine *jsEngine){return instance();}
|
||||
private:
|
||||
explicit RibbonUI(QQuickItem *parent = nullptr);
|
||||
};
|
||||
|
||||
#endif // RIBBONUI_H
|
||||
|
|
Loading…
Reference in New Issue