-
Notifications
You must be signed in to change notification settings - Fork 16
/
Copy pathappglobal.h
140 lines (113 loc) · 3.4 KB
/
appglobal.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
#ifndef APPGLOBAL_H
#define APPGLOBAL_H
#include <QObject>
#include <QVariantMap>
#include <osg/Node>
#include <osg/Group>
#include <osgDB/ReaderWriter>
#include <osgDB/ReadFile>
#include <QFileInfo>
#include <QThread>
class QuickOSGViewer;
class AppWorker;
class AppGlobal : public QObject
{
Q_OBJECT
QString m_language = "en";
QString m_langToken;
QVariantMap m_busy = QVariantMap{{"status", false},{"reason", ""}};
QVariantMap m_progressInfo = QVariantMap{{"visible", false}, {"title", ""},{"from", 0}, {"to", 100}};
float m_progressValue = 0;
QThread* m_workerThread = nullptr;
AppWorker* m_worker = nullptr;
QuickOSGViewer* m_viewer = nullptr;
public:
Q_PROPERTY(QString language READ language WRITE setLanguage NOTIFY languageChanged)
Q_PROPERTY(QString langToken READ langToken NOTIFY langTokenChanged)
Q_PROPERTY(QVariantMap busy READ busy WRITE setBusy NOTIFY busyChanged)
Q_PROPERTY(QVariantMap progressInfo READ progressInfo WRITE setProgressInfo NOTIFY progressInfoChanged)
Q_PROPERTY(float progressValue READ progressValue WRITE setProgressValue NOTIFY progressValueChanged)
Q_PROPERTY(QuickOSGViewer* viewer READ viewer WRITE setViewer NOTIFY viewerChanged)
explicit AppGlobal(QObject *parent = nullptr);
~AppGlobal();
QString language() const
{
return m_language;
}
QString langToken() const
{
return m_langToken;
}
QVariantMap busy() const
{
return m_busy;
}
QVariantMap progressInfo() const
{
return m_progressInfo;
}
float progressValue() const
{
return m_progressValue;
}
QuickOSGViewer* viewer() const
{
return m_viewer;
}
signals:
void languageChanged(QString language);
void langTokenChanged(QString langToken);
void busyChanged(QVariantMap busy);
void progressInfoChanged(QVariantMap progressInfo);
void progressValueChanged(float progressValue);
void modelLoaded(osg::Node* node);
void errorHappened(QString msg);
void viewerChanged(QuickOSGViewer* viewer);
public slots:
void setLanguage(QString language)
{
if (m_language == language)
return;
m_language = language;
emit languageChanged(m_language);
}
void setBusy(QVariantMap busy)
{
if (m_busy == busy)
return;
m_busy = busy;
emit busyChanged(m_busy);
}
void setProgressInfo(QVariantMap progressInfo)
{
if (m_progressInfo == progressInfo)
return;
m_progressInfo = progressInfo;
emit progressInfoChanged(m_progressInfo);
}
void setProgressValue(float progressValue)
{
if (qFuzzyCompare(m_progressValue, progressValue))
return;
m_progressValue = progressValue;
emit progressValueChanged(m_progressValue);
}
osg::Node* loadModelFile(const QString &filePath){
auto node = osgDB::readNodeFile(filePath.toStdString());
return node;
}
QString fileSuffix(const QString &filePath) {
QFileInfo info(filePath);
return info.suffix();
}
void loadPointCloud(const QString& filePath);
void loadObj(const QString& filePath);
void setViewer(QuickOSGViewer* viewer)
{
if (m_viewer == viewer)
return;
m_viewer = viewer;
emit viewerChanged(m_viewer);
}
};
#endif // APPGLOBAL_H