forked from mrkite/minutor
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdimensionidentifier.h
63 lines (50 loc) · 1.47 KB
/
dimensionidentifier.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
/** Copyright (c) 2013, Sean Kasun */
#ifndef DIMENSIONIDENTIFIER_H_
#define DIMENSIONIDENTIFIER_H_
#include <QString>
#include <QList>
#include <QHash>
#include <QDir>
class QMenu;
class QAction;
class QActionGroup;
class JSONArray;
class DimensionInfo {
public:
DimensionInfo(QString path, int scale, QString name) : path(path),
scale(scale), name(name) {}
QString path;
int scale;
QString name;
};
class DimensionDef;
class DimensionIdentifier : public QObject {
Q_OBJECT
public:
// singleton: access to global usable instance
static DimensionIdentifier &Instance();
int addDefinitions(JSONArray *, int pack = -1);
void enableDefinitions(int id);
void disableDefinitions(int id);
void getDimensions(QDir path, QMenu *menu, QObject *parent);
void removeDimensions(QMenu *menu);
signals:
void dimensionChanged(const DimensionInfo &dim);
private slots:
void viewDimension();
private:
// singleton: prevent access to constructor and copyconstructor
DimensionIdentifier();
~DimensionIdentifier();
DimensionIdentifier(const DimensionIdentifier &);
DimensionIdentifier &operator=(const DimensionIdentifier &);
void addDimension(QDir path, QString dir, QString name, int scale,
QObject *parent);
QList<QAction *> items;
QList<DimensionInfo> dimensions;
QList<DimensionDef*> definitions;
QList<QList<DimensionDef*> > packs;
QActionGroup *group;
QHash<QString, bool> foundDimensions;
};
#endif // DIMENSIONIDENTIFIER_H_