Gem Illuminator
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Macros
config.h
Go to the documentation of this file.
1 #ifndef CONFIG_H
2 #define CONFIG_H
3 
4 #include <QObject>
5 
6 #include "fileio.h"
7 
8 class QJSEngine;
9 class QQmlEngine;
10 
16 class Config : public FileIO
17 {
18  Q_OBJECT
19  Q_PROPERTY(int axisRange READ axisRange WRITE setAxisRange NOTIFY axisRangeChanged)
20  Q_PROPERTY(QString envMap READ envMap WRITE setEnvMap NOTIFY envMapChanged)
21  Q_PROPERTY(float maxGemSize READ maxGemSize WRITE setMaxGemSize NOTIFY maxGemSizeChanged)
22  Q_PROPERTY(float minGemSize READ minGemSize WRITE setMinGemSize NOTIFY minGemSizeChanged)
23 
24  Config(const Config &) = delete;
25  Config& operator=(const Config &) = delete;
26 public:
27  virtual ~Config();
28 
34  int axisRange();
38  static void drop();
43  QString envMap() const;
48  static Config *instance();
56  float maxGemSize() const;
63  float minGemSize() const;
68  void setAxisRange(int& axisRange);
73  void setEnvMap(const QString &envMap);
78  void setMaxGemSize(float maxGemSize);
83  void setMinGemSize(float minGemSize);
84 
85 signals:
86  void axisRangeChanged();
87  void envMapChanged();
88  void maxGemSizeChanged();
89  void minGemSizeChanged();
90 
91 protected:
92  Config();
93 
94 protected:
96  QString m_envMap;
97  static Config *m_instance;
98  float m_maxGemSize;
99  float m_minGemSize;
100 };
101 
108 QObject *configSingletontypeProvider(QQmlEngine *engine, QJSEngine *scriptEngine);
109 
110 #endif // CONFIG_H
int axisRange()
The axisRange describes how far the scene expands along all axis.
QObject * configSingletontypeProvider(QQmlEngine *engine, QJSEngine *scriptEngine)
Callback function used to get the current instance of Config within QML.
Definition: config.cpp:90
static Config * m_instance
Definition: config.h:97
Config()
Definition: config.cpp:7
float m_minGemSize
Definition: config.h:99
QString envMap() const
envMap is the name of our current environment. The name is the prefix of our environment texture name...
void setEnvMap(const QString &envMap)
Sets value of envMap();.
Definition: config.cpp:22
void minGemSizeChanged()
int m_axisRange
Definition: config.h:95
void maxGemSizeChanged()
void setMaxGemSize(float maxGemSize)
Sets value of maxGemSize();.
Definition: config.cpp:28
float minGemSize() const
minGemSize is the minimum size a gem could be. This is the same as minimum scale factor for a gem...
The Config class provides easy access to values read out of our config.json provided by ConfigView...
Definition: config.h:16
void setAxisRange(int &axisRange)
Sets value of axisRange();.
Definition: config.cpp:11
static Config * instance()
The instance of our Config.
Definition: config.cpp:64
void envMapChanged()
void setMinGemSize(float minGemSize)
Sets value of minGemSize();.
Definition: config.cpp:37
virtual ~Config()
Definition: config.cpp:46
static void drop()
Drops current instance of our Config.
Definition: config.cpp:55
QString m_envMap
Definition: config.h:96
void axisRangeChanged()
The FileIO class provides platform independent file reading for resource files used. The file that should be read is specified by name and FileIO will load it from platform dependent location.
Definition: fileio.h:10
float maxGemSize() const
maxGemSize is the maximum size a gem could be. This is the same as maximum scale factor for a gem...
float m_maxGemSize
Definition: config.h:98