QCAD
Open Source 2D CAD
RSettings.h
Go to the documentation of this file.
1 
20 #ifndef RSETTINGS_H
21 #define RSETTINGS_H
22 
23 #include "core_global.h"
24 
25 #include <QDir>
26 #include <QSettings>
27 #include <QFont>
28 
29 #include "RColor.h"
30 #include "RBox.h"
31 
32 // workaround for src2srcml bug:
33 #ifndef RDEFAULT_RCOLOR
34 #define RDEFAULT_RCOLOR RColor()
35 #endif
36 
37 #ifndef RDEFAULT_RBOX
38 #define RDEFAULT_RBOX RBox()
39 #endif
40 
41 #ifndef RDEFAULT_QVARIANT
42 #define RDEFAULT_QVARIANT QVariant()
43 #endif
44 
45 #ifndef RDEFAULT_QSTRING
46 #define RDEFAULT_QSTRING QString()
47 #endif
48 
49 #ifndef RDEFAULT_QSTRINGLIST
50 #define RDEFAULT_QSTRINGLIST QStringList()
51 #endif
52 
53 #ifndef RDEFAULT_QLISTINT
54 #define RDEFAULT_QLISTINT QList<int>()
55 #endif
56 
62 public:
63  static void uninit();
64  static void setNoWrite(bool on = true);
65 
66  static QString getAppId();
67 
68  static double getDevicePixelRatio();
69 
70  static QString getLocale();
71  static void loadTranslations(const QString& module, const QStringList& dirs = RDEFAULT_QSTRINGLIST);
72  static QString translate(const QString& context, const QString& str);
73 
74  static QStringList getOriginalArguments();
75  static void setOriginalArguments(const QStringList& a);
76 
77  static QString getArgument(const QStringList& args, const QString& shortFlag, const QString& longFlag, const QString& def = RDEFAULT_QSTRING);
78  static QStringList getArguments(const QStringList& args, const QString& shortFlag, const QString& longFlag);
79  static int getIntArgument(const QStringList& args, const QString& shortFlag, const QString& longFlag, int def);
80  static QList<int> getIntListArgument(const QStringList& args, const QString& shortFlag, const QString& longFlag, QList<int> def = RDEFAULT_QLISTINT);
81  static double getFloatArgument(const QStringList& args, const QString& shortFlag, const QString& longFlag, double def = RNANDOUBLE);
82  static RColor getColorArgument(const QStringList& args, const QString& shortFlag, const QString& longFlag, const RColor& def = RDEFAULT_RCOLOR);
83  static RVector getVectorArgument(const QStringList& args, const QString& shortFlag, const QString& longFlag, const RVector& def = RDEFAULT_RVECTOR);
84  static RBox getBoxArgument(const QStringList& args, const QString& shortFlag, const QString& longFlag, const RBox& def = RDEFAULT_RBOX);
85  static bool testArgument(const QStringList& args, const QString& shortFlag, const QString& longFlag);
86 
87  static bool isDeployed();
88  static QString getApplicationPath();
89  static QStringList getPluginPaths();
90  static QString getPluginPath();
91  static QString getThemePath();
92 
93  static QString getStandardLocation(int sl);
94  static QString getCacheLocation();
95  static QString getDataLocation();
96  static QString getTempLocation();
97  static QString getDesktopLocation();
98  static QString getDocumentsLocation();
99  static QString getHomeLocation();
100 
101  //static void setEventBlocking(bool on);
102  //static bool isEventBlockingEnabled();
103  static bool isGuiEnabled();
104  static bool isDebuggerEnabled();
105  static bool hasQuitFlag();
106  static void setQuitFlag();
107 
108  static QString getFileName();
109  static QString getPath();
110  static QString getLaunchPath();
111  static void setLaunchPath(const QString& launchPath);
112 
113  //static QString getDefaultStyle();
114 
115  // GraphicsView Appearance Fonts
116  static void setRulerFont(const QFont& font);
117  static QFont getRulerFont();
118  static void setSnapLabelFont(const QFont& font);
119  static QFont getSnapLabelFont();
120  static QFont getInfoLabelFont();
121  static QFont getStatusBarFont();
122 
123  static RColor getSelectionColor();
124  static RColor getReferencePointColor();
125  static RColor getStartReferencePointColor();
126  static RColor getEndReferencePointColor();
127  static RColor getSecondaryReferencePointColor();
128  static RColor getTertiaryReferencePointColor();
129 
130  static bool getHighResolutionGraphicsView();
131  static bool getAutoScaleGrid();
132  static bool getAutoScaleMetaGrid();
133  static bool getAutoScalePatterns();
134  static bool getAutoZoomOnLoad();
135  static bool getColorCorrection();
136  static bool getColorCorrectionDisableForPrinting();
137  static int getColorThreshold();
138  static double getFadingFactor();
139  static int getTextHeightThreshold();
140  static double getArcAngleLengthThreshold();
141  static double getMinArcAngleStep();
142  static int getDashThreshold();
143  static int getQtVersion();
144  static QString getQtVersionString();
145  static bool isQt(int majorVersion);
146  static QString getCompilerVersion();
147  static QString getOSVersion();
148  static QString getReleaseDate();
149  static QString getVersionString();
150  static QString getNumericalVersionString();
151  static int getMajorVersion();
152  static int getMinorVersion();
153  static int getRevisionVersion();
154  static int getBuildVersion();
155  static QString getRevisionString();
156  static void setFirstStart(bool on) {
157  firstStart = on;
158  }
159  static bool isFirstStart() {
160  return firstStart;
161  }
162  static void setNewVersion(bool on) {
163  newVersion = on;
164  }
165  static bool isNewVersion() {
166  return newVersion;
167  }
168  static void setPreviousVersion(int pv) {
169  previousVersion = pv;
170  }
176  static int getCurrentVersion() {
177  return getMajorVersion()*1000000 +
178  getMinorVersion()*10000 +
179  getRevisionVersion()*100 +
180  getBuildVersion();
181  }
182  static int getPreviousVersion() {
183  return previousVersion;
184  }
192  static int isUpdated(int versionCheck=-1) {
193  if (isNewVersion()) {
194  return true;
195  }
196  if (versionCheck==-1) {
197  if (getCurrentVersion()>getPreviousVersion()) {
198  return true;
199  }
200  }
201  if (getCurrentVersion()>=versionCheck && getPreviousVersion()<versionCheck) {
202  return true;
203  }
204  return false;
205  }
206 
207  static int getSnapRange();
208  static int getPickRange();
209  static int getZeroWeightWeight();
210  static int getPreviewEntities();
211  static bool getLimitZoomAndScroll();
212  static bool getShowCrosshair();
213  static void setShowCrosshair(bool on);
214  static bool getShowLargeCrosshair();
215  static void setShowLargeCrosshair(bool on);
216  static bool getShowLargeOriginAxis();
217  static void setShowLargeOriginAxis(bool on);
218  static bool getConcurrentDrawing();
219  static void setConcurrentDrawing(bool on);
220  static QLocale getNumberLocale();
221 
222  static void initRecentFiles();
223  static void addRecentFile(const QString& fileName);
224  static void removeRecentFile(const QString& fileName);
225  static QStringList getRecentFiles();
226  static void clearRecentFiles();
227 
228  static RColor getColor(const QString& key, const RColor& defaultValue=RDEFAULT_RCOLOR);
229 
230  static bool hasValue(const QString& key);
231  static QVariant getValue(const QString& key, const QVariant& defaultValue=RDEFAULT_QVARIANT);
232  static RColor getColorValue(const QString& key, const RColor& defaultValue);
233  static bool getBoolValue(const QString& key, bool defaultValue);
234  static double getDoubleValue(const QString& key, double defaultValue);
235  static int getIntValue(const QString& key, int defaultValue);
236  static QString getStringValue(const QString& key, const QString& defaultValue);
237  static QStringList getStringListValue(const QString& key, const QStringList& defaultValue);
238 
242  static QChar getCharValue(const QString& key, const QChar& defaultValue);
243 
244  static void setValue(const QString& key, const QVariant& value, bool overwrite=true);
245  static void removeValue(const QString& key);
246 
247  static void setApplicationNameOverride(const QString& n);
248  static QString getApplicationNameOverride();
249  static bool hasApplicationNameOverride();
250 
251  static QStringList getAllKeys(const QString& group);
252 
253  static QSettings* getQSettings();
254 
255  static void resetCache();
256 
257  static void setXDataEnabled(bool on);
258  static bool isXDataEnabled();
259 
260  static void setNextVersionEnabled(bool on);
261  static bool isNextVersionEnabled();
262 
263  static bool getAutoScaleLinetypePatterns();
264  static bool getUseSecondarySelectionColor();
265  static bool getUseSolidLineSelection();
266 
267  static int getMouseThreshold();
268  static bool getPositionByMousePress();
269  static bool getAllowMouseMoveInterruptions();
270 
271  static bool isTextRenderedAsText();
272  static bool isLayer0CompatibilityOn();
273  static bool getSelectBlockWithAttribute();
274  static bool getHideAttributeWithBlock();
275  static bool getImportRecomputedDimBlocks();
276  static bool getIgnoreBlockReferencePoint();
277  static bool getIgnoreAllReferencePoints();
278  static int getReferencePointSize();
279  static int getReferencePointShape();
280  static bool getPropertyEditorShowOnRequest();
281  static QString getPolarCoordinateSeparator();
282  static QString getCartesianCoordinateSeparator();
283  static QString getRelativeCoordinatePrefix();
284 
285  static bool isDarkMode();
286  static bool hasDarkGuiBackground();
287  static bool hasCustomStyleSheet();
288 
289  static QStringList getPrinterNames();
290  static QString getDefaultPrinterName();
291 
292  static void appendOpenGLMessage(const QString& msg);
293  static QStringList getOpenGLMessages();
294 
295 private:
296  static bool isInitialized();
297  static void shortenRecentFiles();
298 
299 private:
300  static bool noWrite;
301  // cache for faster access:
302  static QVariantMap cache;
303 
304  // variables for very fast access:
305  static QFont* rulerFont;
306  static QFont* snapLabelFont;
307  static QFont* infoLabelFont;
308  static QFont* statusBarFont;
315  static int darkMode;
316  static int darkGuiBackground;
317  static int snapRange;
318  static int pickRange;
319  static int zeroWeightWeight;
320  static int showCrosshair;
321  static int showLargeCrosshair;
323  static int concurrentDrawing;
325  static int previewEntities;
326  static int limitZoomAndScroll;
330  static int mouseThreshold;
333  static double arcAngleLengthThreshold;
334  static double fadingFactor;
335  static double minArcAngleStep;
336  static int dashThreshold;
337  static int textRenderedAsText;
344  static int referencePointSize;
347  static QString polarCoordinateSeparator;
349  static QString relativeCoordinatePrefix;
350 
351  static QStringList recentFiles;
352  static QLocale* numberLocale;
353 
354  static QString applicationNameOverride;
355 
356  static QString launchPath;
357  static QString themePath;
358 
359  static QSettings* qSettings;
360 
361  static QStringList originalArguments;
362 
363  static bool quitFlag;
364 
365  static bool xDataEnabled;
366  static bool nextVersionEnabled;
367 
368  static bool firstStart;
369  static bool newVersion;
370  static int previousVersion;
371 
372  static QStringList openGLMessages;
373 };
374 
376 
377 #endif
RDEFAULT_QVARIANT
#define RDEFAULT_QVARIANT
Definition: RSettings.h:42
getIntArgument
void getIntArgument(void args, void shortFlag, void longFlag, void def)
Definition: arguments.js:24
RSettings::selectionColor
static RColor * selectionColor
Definition: RSettings.h:309
RSettings::infoLabelFont
static QFont * infoLabelFont
Definition: RSettings.h:307
RSettings::getPreviousVersion
static int getPreviousVersion()
Definition: RSettings.h:182
RSettings::ignoreBlockReferencePoint
static int ignoreBlockReferencePoint
Definition: RSettings.h:342
getColorArgument
void getColorArgument(void args, void shortFlag, void longFlag, void def)
Definition: arguments.js:28
RSettings::fadingFactor
static double fadingFactor
Definition: RSettings.h:334
RSettings::useSecondarySelectionColor
static int useSecondarySelectionColor
Definition: RSettings.h:329
RSettings::showLargeOriginAxis
static int showLargeOriginAxis
Definition: RSettings.h:322
RSettings::tertiaryReferencePointColor
static RColor * tertiaryReferencePointColor
Definition: RSettings.h:314
RSettings::minArcAngleStep
static double minArcAngleStep
Definition: RSettings.h:335
getBoxArgument
void getBoxArgument(void args, void shortFlag, void longFlag, void def)
Definition: arguments.js:32
RBox.h
RSettings::cache
static QVariantMap cache
Definition: RSettings.h:302
RSettings::relativeCoordinatePrefix
static QString relativeCoordinatePrefix
Definition: RSettings.h:349
RSettings::setFirstStart
static void setFirstStart(bool on)
Definition: RSettings.h:156
RDEFAULT_RCOLOR
#define RDEFAULT_RCOLOR
Copyright (c) 2011-2018 by Andrew Mustun.
Definition: RSettings.h:34
RVector
Represents a 3d vector (x/y/z).
Definition: RVector.h:46
RSettings::useSolidLineSelection
static int useSolidLineSelection
Definition: RSettings.h:328
RSettings::themePath
static QString themePath
Definition: RSettings.h:357
RSettings::secondaryReferencePointColor
static RColor * secondaryReferencePointColor
Definition: RSettings.h:313
RSettings::darkMode
static int darkMode
Definition: RSettings.h:315
RSettings::hideAttributeWithBlock
static int hideAttributeWithBlock
Definition: RSettings.h:340
RSettings::recentFiles
static QStringList recentFiles
Definition: RSettings.h:351
RDEFAULT_RBOX
#define RDEFAULT_RBOX
Definition: RSettings.h:38
RSettings::xDataEnabled
static bool xDataEnabled
Definition: RSettings.h:365
getIntListArgument
void getIntListArgument(void args, void shortFlag, void longFlag, void def)
Definition: arguments.js:25
RSettings::referencePointSize
static int referencePointSize
Definition: RSettings.h:344
RSettings::snapLabelFont
static QFont * snapLabelFont
Definition: RSettings.h:306
getArguments
void getArguments(void args, void shortFlag, void longFlag)
Definition: arguments.js:31
RSettings::limitZoomAndScroll
static int limitZoomAndScroll
Definition: RSettings.h:326
RSettings::numberLocale
static QLocale * numberLocale
Definition: RSettings.h:352
RSettings::statusBarFont
static QFont * statusBarFont
Definition: RSettings.h:308
RSettings::pickRange
static int pickRange
Definition: RSettings.h:318
RSettings::setPreviousVersion
static void setPreviousVersion(int pv)
Definition: RSettings.h:168
RSettings::layer0CompatibilityOn
static int layer0CompatibilityOn
Definition: RSettings.h:338
getFloatArgument
void getFloatArgument(void args, void shortFlag, void longFlag, void def)
Definition: arguments.js:30
RSettings::ignoreAllReferencePoints
static int ignoreAllReferencePoints
Definition: RSettings.h:343
RSettings
Definition: RSettings.h:61
RSettings::propertyEditorShowOnRequest
static int propertyEditorShowOnRequest
Definition: RSettings.h:346
RSettings::openGLMessages
static QStringList openGLMessages
Definition: RSettings.h:372
loadTranslations
void loadTranslations(void addOns, void splash)
Loads translations for all add-ons if appropriate.
Definition: autostart.js:6
testArgument
void testArgument(void args, void shortFlag, void longFlag)
Definition: arguments.js:29
RSettings::applicationNameOverride
static QString applicationNameOverride
Definition: RSettings.h:354
RDEFAULT_RVECTOR
#define RDEFAULT_RVECTOR
Definition: RVector.h:37
getVectorArgument
void getVectorArgument(void args, void shortFlag, void longFlag, void def)
Definition: arguments.js:23
RSettings::autoScaleLinetypePattern
static int autoScaleLinetypePattern
Definition: RSettings.h:327
Q_DECLARE_METATYPE
Q_DECLARE_METATYPE(RMath *)
RSettings::newVersion
static bool newVersion
Definition: RSettings.h:369
RSettings::referencePointShape
static int referencePointShape
Definition: RSettings.h:345
RSettings::isUpdated
static int isUpdated(int versionCheck=-1)
Definition: RSettings.h:192
RSettings::highResolutionGraphicsView
static int highResolutionGraphicsView
Definition: RSettings.h:324
RSettings::previousVersion
static int previousVersion
Definition: RSettings.h:370
RNANDOUBLE
#define RNANDOUBLE
Definition: RMath.h:71
RSettings::concurrentDrawing
static int concurrentDrawing
Definition: RSettings.h:323
RSettings::polarCoordinateSeparator
static QString polarCoordinateSeparator
Definition: RSettings.h:347
RSettings::darkGuiBackground
static int darkGuiBackground
Definition: RSettings.h:316
RDEFAULT_QLISTINT
#define RDEFAULT_QLISTINT
Definition: RSettings.h:54
RSettings::showCrosshair
static int showCrosshair
Definition: RSettings.h:320
RSettings::firstStart
static bool firstStart
Definition: RSettings.h:368
getArgument
void getArgument(void args, void shortFlag, void longFlag, void def)
Definition: arguments.js:27
RSettings::startReferencePointColor
static RColor * startReferencePointColor
Definition: RSettings.h:311
core_global.h
RSettings::previewEntities
static int previewEntities
Definition: RSettings.h:325
RSettings::setNewVersion
static void setNewVersion(bool on)
Definition: RSettings.h:162
RDEFAULT_QSTRING
#define RDEFAULT_QSTRING
Definition: RSettings.h:46
RSettings::snapRange
static int snapRange
Definition: RSettings.h:317
RSettings::qSettings
static QSettings * qSettings
Definition: RSettings.h:359
RDEFAULT_QSTRINGLIST
#define RDEFAULT_QSTRINGLIST
Definition: RSettings.h:50
RSettings::referencePointColor
static RColor * referencePointColor
Definition: RSettings.h:310
RColor.h
RSettings::dashThreshold
static int dashThreshold
Definition: RSettings.h:336
RSettings::getCurrentVersion
static int getCurrentVersion()
Definition: RSettings.h:176
RSettings::mouseThreshold
static int mouseThreshold
Definition: RSettings.h:330
RSettings::endReferencePointColor
static RColor * endReferencePointColor
Definition: RSettings.h:312
RSettings::zeroWeightWeight
static int zeroWeightWeight
Definition: RSettings.h:319
RSettings::launchPath
static QString launchPath
Definition: RSettings.h:356
RSettings::isFirstStart
static bool isFirstStart()
Definition: RSettings.h:159
RSettings::positionByMousePress
static int positionByMousePress
Definition: RSettings.h:331
RSettings::arcAngleLengthThreshold
static double arcAngleLengthThreshold
Definition: RSettings.h:333
RSettings::isNewVersion
static bool isNewVersion()
Definition: RSettings.h:165
RSettings::selectBlockWithAttribute
static int selectBlockWithAttribute
Definition: RSettings.h:339
RSettings::nextVersionEnabled
static bool nextVersionEnabled
Definition: RSettings.h:366
RSettings::importRecomputedDimBlocks
static int importRecomputedDimBlocks
Definition: RSettings.h:341
RSettings::rulerFont
static QFont * rulerFont
Definition: RSettings.h:305
RSettings::noWrite
static bool noWrite
Copyright (c) 2011-2018 by Andrew Mustun.
Definition: RSettings.h:300
RBox
Represents a box e.g.
Definition: RBox.h:43
RSettings::showLargeCrosshair
static int showLargeCrosshair
Definition: RSettings.h:321
RSettings::cartesianCoordinateSeparator
static QString cartesianCoordinateSeparator
Definition: RSettings.h:348
RSettings::textRenderedAsText
static int textRenderedAsText
Definition: RSettings.h:337
RSettings::originalArguments
static QStringList originalArguments
Definition: RSettings.h:361
QCADCORE_EXPORT
#define QCADCORE_EXPORT
Definition: core_global.h:10
RSettings::allowMouseMoveInterruptions
static int allowMouseMoveInterruptions
Definition: RSettings.h:332
RColor
Color.
Definition: RColor.h:44
RSettings::quitFlag
static bool quitFlag
Definition: RSettings.h:363