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
filament::Texture::InternalFormat format
int size
#define signals
~ecvSettingManager() override
Destructor.
static const std::string path
Definition: PointCloud.cpp:59