ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
ecvSettingManager.h
Go to the documentation of this file.
1 // ----------------------------------------------------------------------------
2 // - CloudViewer: www.cloudViewer.org -
3 // ----------------------------------------------------------------------------
4 // Copyright (c) 2018-2024 www.cloudViewer.org
5 // SPDX-License-Identifier: MIT
6 // ----------------------------------------------------------------------------
7 
8 #pragma once
9 
10 #include <QCoreApplication>
11 #include <QSettings>
12 #include <QSharedPointer>
13 // Qt5/Qt6 Compatibility
14 #include <QtCompat.h>
15 
16 #include "CVAppCommon.h"
17 
19 class QDialog;
20 class QMainWindow;
21 class QDockWidget;
22 class CVAPPCOMMON_LIB_API ecvSettingManager : public QSettings {
23  Q_OBJECT
24  typedef QSettings Superclass;
25 
26 public:
28  ~ecvSettingManager() override {}
29 
31 
34  static ecvSettingManager *TheInstance(bool autoInit = true);
35 
37  static void ReleaseInstance();
38 
39  static void Init(const QString &path); //
40  static void setValue(const QString &section,
41  const QString &key,
42  const QVariant &value); //
43  static void removeNode(const QString &section); //
44  static void removeKey(const QString &section, const QString &key); //
45  static QVariant getValue(const QString &section,
46  const QString &key,
47  const QVariant &defaultValue = QVariant()); //
48 
49  virtual void saveState(const QMainWindow &window, const QString &key);
50  virtual void saveState(const QDialog &dialog, const QString &key);
51 
52  virtual void restoreState(const QString &key, QMainWindow &window);
53  virtual void restoreState(const QString &key, QDialog &dialog);
54 
58  virtual void alertSettingsModified();
59 
66  QString backup(const QString &filename = QString());
67 
68 public:
69  virtual void clear();
70  virtual void sync();
71  virtual Status status() const;
72  virtual bool isAtomicSyncRequired() const;
73  virtual void setAtomicSyncRequired(bool enable);
74 
75  virtual void beginGroup(const QString &prefix);
76  virtual void endGroup();
77  virtual QString group() const;
78 
79  virtual int beginReadArray(const QString &prefix);
80  virtual void beginWriteArray(const QString &prefix, int size = -1);
81  virtual void endArray();
82  virtual void setArrayIndex(int i);
83 
84  virtual QStringList allKeys() const;
85  virtual QStringList childKeys() const;
86  virtual QStringList childGroups() const;
87  virtual bool isWritable() const;
88 
89  virtual void setValue(const QString &key, const QVariant &value);
90  virtual QVariant value(const QString &key,
91  const QVariant &defaultValue = QVariant()) const;
92 
93  virtual void remove(const QString &key);
94  virtual bool contains(const QString &key) const;
95 
96  virtual void setFallbacksEnabled(bool b);
97  virtual bool fallbacksEnabled() const;
98 
99  virtual QString fileName() const;
100  virtual Format format() const;
101  virtual Scope scope() const;
102  virtual QString organizationName() const;
103  virtual QString applicationName() const;
104 
105 #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
106 #if defined(QT_CONFIG) && QT_CONFIG(textcodec)
107  void setIniCodec(QTextCodec *codec);
108  void setIniCodec(const char *codecName);
109  QTextCodec *iniCoxdec() const;
110 #endif
111 #endif
112 protected:
117  virtual void sanityCheckDock(QDockWidget *docke_widget);
118 
119 private:
121 
124  ecvSettingManager() {}
125 
126  QSharedPointer<QSettings> m_iniFile;
127 
128 signals:
129  void modified();
130 };
#define CVAPPCOMMON_LIB_API
Definition: CVAppCommon.h:15
std::string filename
int size
#define signals
virtual void clear()
static void removeKey(const QString &section, const QString &key)
virtual void saveState(const QMainWindow &window, const QString &key)
virtual bool fallbacksEnabled() const
virtual QString fileName() const
virtual bool isWritable() const
static ecvSettingManager * TheInstance(bool autoInit=true)
Returns the (unique) static instance.
virtual bool isAtomicSyncRequired() const
virtual void endArray()
virtual QString applicationName() const
virtual void sync()
virtual void alertSettingsModified()
virtual QVariant value(const QString &key, const QVariant &defaultValue=QVariant()) const
virtual void setArrayIndex(int i)
virtual void restoreState(const QString &key, QDialog &dialog)
static void ReleaseInstance()
Releases unique instance.
virtual void setValue(const QString &key, const QVariant &value)
~ecvSettingManager() override
Destructor.
virtual Status status() const
virtual void saveState(const QDialog &dialog, const QString &key)
virtual void sanityCheckDock(QDockWidget *docke_widget)
virtual QStringList childKeys() const
virtual void setFallbacksEnabled(bool b)
virtual void setAtomicSyncRequired(bool enable)
static void removeNode(const QString &section)
virtual void beginGroup(const QString &prefix)
virtual QStringList allKeys() const
static QVariant getValue(const QString &section, const QString &key, const QVariant &defaultValue=QVariant())
static void setValue(const QString &section, const QString &key, const QVariant &value)
virtual void remove(const QString &key)
virtual void endGroup()
virtual bool contains(const QString &key) const
QString backup(const QString &filename=QString())
static void Init(const QString &path)
virtual QString organizationName() const
virtual void restoreState(const QString &key, QMainWindow &window)
virtual void beginWriteArray(const QString &prefix, int size=-1)
virtual int beginReadArray(const QString &prefix)
virtual QStringList childGroups() const
virtual Format format() const
virtual QString group() const
virtual Scope scope() const
static const std::string path
Definition: PointCloud.cpp:59