Audacity  3.0.3
FileConfig.h
Go to the documentation of this file.
1 /**********************************************************************
2 
3  Audacity: A Digital Audio Editor
4 
5  FileConfig.h
6 
7  Leland Lucius
8 
9 **********************************************************************/
10 
11 #ifndef __AUDACITY_WIDGETS_FILECONFIG__
12 #define __AUDACITY_WIDGETS_FILECONFIG__
13 
14 #include <memory>
15 
16 #include <wx/defs.h>
17 #include <wx/fileconf.h>
18 #include "Identifier.h"
19 
20 class PREFERENCES_API FileConfig : public wxConfigBase
21 {
22 public:
23  FileConfig(const wxString& appName = wxEmptyString,
24  const wxString& vendorName = wxEmptyString,
25  const wxString& localFilename = wxEmptyString,
26  const wxString& globalFilename = wxEmptyString,
27  long style = wxCONFIG_USE_LOCAL_FILE | wxCONFIG_USE_GLOBAL_FILE,
28  const wxMBConv& conv = wxConvAuto());
29  void Init();
30  virtual ~FileConfig();
31 
32  virtual void SetPath(const wxString& strPath) wxOVERRIDE;
33  virtual const wxString& GetPath() const wxOVERRIDE;
34  virtual bool GetFirstGroup(wxString& str, long& lIndex) const wxOVERRIDE;
35  virtual bool GetNextGroup(wxString& str, long& lIndex) const wxOVERRIDE;
36  virtual bool GetFirstEntry(wxString& str, long& lIndex) const wxOVERRIDE;
37  virtual bool GetNextEntry(wxString& str, long& lIndex) const wxOVERRIDE;
38  virtual size_t GetNumberOfEntries(bool bRecursive = false) const wxOVERRIDE;
39  virtual size_t GetNumberOfGroups(bool bRecursive = false) const wxOVERRIDE;
40  virtual bool HasGroup(const wxString& strName) const wxOVERRIDE;
41  virtual bool HasEntry(const wxString& strName) const wxOVERRIDE;
42  virtual bool Flush(bool bCurrentOnly = false) wxOVERRIDE;
43  virtual bool RenameEntry(const wxString& oldName, const wxString& newName) wxOVERRIDE;
44  virtual bool RenameGroup(const wxString& oldName, const wxString& newName) wxOVERRIDE;
45  virtual bool DeleteEntry(const wxString& key, bool bDeleteGroupIfEmpty = true) wxOVERRIDE;
46  virtual bool DeleteGroup(const wxString& key) wxOVERRIDE;
47  virtual bool DeleteAll() wxOVERRIDE;
48 
49  // Set and Get values of the version major/minor/micro keys in audacity.cfg when Audacity first opens
50  void SetVersionKeysInit( int major, int minor, int micro)
51  {
52  mVersionMajorKeyInit = major;
53  mVersionMinorKeyInit = minor;
54  mVersionMicroKeyInit = micro;
55  }
56  void GetVersionKeysInit( int& major, int& minor, int& micro) const
57  {
58  major = mVersionMajorKeyInit;
59  minor = mVersionMinorKeyInit;
60  micro = mVersionMicroKeyInit;
61  }
62 
63 protected:
64  virtual bool DoReadString(const wxString& key, wxString *pStr) const wxOVERRIDE;
65  virtual bool DoReadLong(const wxString& key, long *pl) const wxOVERRIDE;
66 #if wxUSE_BASE64
67  virtual bool DoReadBinary(const wxString& key, wxMemoryBuffer* buf) const wxOVERRIDE;
68 #endif // wxUSE_BASE64
69 
70  virtual bool DoWriteString(const wxString& key, const wxString& szValue) wxOVERRIDE;
71  virtual bool DoWriteLong(const wxString& key, long lValue) wxOVERRIDE;
72 #if wxUSE_BASE64
73  virtual bool DoWriteBinary(const wxString& key, const wxMemoryBuffer& buf) wxOVERRIDE;
74 #endif // wxUSE_BASE64
75 
76 protected:
78  virtual void Warn() = 0;
79 
80  const FilePath &GetFilePath() const { return mLocalFilename; }
81 
82 private:
83  const wxString mAppName;
84  const wxString mVendorName;
85  const wxString mLocalFilename;
86  const wxString mGlobalFilename;
87  const long mStyle;
88  const wxMBConv & mConv;
89 
90  std::unique_ptr<wxFileConfig> mConfig;
91 
92  // values of the version major/minor/micro keys in audacity.cfg
93  // when Audacity first opens
94  int mVersionMajorKeyInit{};
95  int mVersionMinorKeyInit{};
96  int mVersionMicroKeyInit{};
97 
98  bool mDirty;
99 };
100 
101 #endif
102 
Init
Definition: ModuleManager.h:152
FileConfig::mDirty
bool mDirty
Definition: FileConfig.h:98
FileConfig::mAppName
const wxString mAppName
Definition: FileConfig.h:83
FileConfig::mVendorName
const wxString mVendorName
Definition: FileConfig.h:84
FileConfig::GetFilePath
const FilePath & GetFilePath() const
Definition: FileConfig.h:80
FileConfig::mLocalFilename
const wxString mLocalFilename
Definition: FileConfig.h:85
FilePath
wxString FilePath
Definition: Project.h:20
FileConfig::mConfig
std::unique_ptr< wxFileConfig > mConfig
Definition: FileConfig.h:90
FileConfig::mStyle
const long mStyle
Definition: FileConfig.h:87
Identifier.h
FileConfig::SetVersionKeysInit
void SetVersionKeysInit(int major, int minor, int micro)
Definition: FileConfig.h:50
FileConfig::GetVersionKeysInit
void GetVersionKeysInit(int &major, int &minor, int &micro) const
Definition: FileConfig.h:56
FileConfig
Definition: FileConfig.h:21
FileConfig::mGlobalFilename
const wxString mGlobalFilename
Definition: FileConfig.h:86
key
static const AudacityProject::AttachedObjects::RegisteredFactory key
Definition: CommandManager.cpp:201
FileConfig::Warn
virtual void Warn()=0
Override to notify the user of error conditions involving writability of config files.
FileConfig::mConv
const wxMBConv & mConv
Definition: FileConfig.h:88