3 Copyright (c) 2012 Jakob Leben & Tim Blechmann
4 http://www.audiosynth.com
6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2 of the License, or
9 (at your option) any later version.
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with this program; if not, write to the Free Software
18 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21 #ifndef SCIDE_CORE_SETTINGS_MANAGER_HPP_INCLUDED
22 #define SCIDE_CORE_SETTINGS_MANAGER_HPP_INCLUDED
24 #include "serialization.hpp" // to forward meta type declarations
27 #include <QKeySequence>
31 namespace ScIDE
{ namespace Settings
{
33 class Manager
: public QObject
38 Manager( const QString
& filename
, QObject
* parent
= 0 );
42 void beginGroup ( const QString
& prefix
) { mSettings
->beginGroup(prefix
); }
44 void endGroup () { mSettings
->endGroup(); }
46 QString
group() const { return mSettings
->group(); }
48 QStringList
childGroups () const { return mSettings
->childGroups(); }
50 QStringList
childKeys () const { return mSettings
->childKeys(); }
52 QStringList
allKeys() const { return mSettings
->allKeys(); }
54 void sync() { mSettings
->sync(); }
56 void remove ( const QString
&key
) { mSettings
->remove(key
); }
60 bool contains ( const QString
& key
) const;
62 bool isOverridden( const QString
& key
) const
64 return mSettings
->contains( key
);
67 QVariant
value ( const QString
& key
) const;
69 QVariant
defaultValue ( const QString
& key
) const
71 return mDefaults
.value(resolvedKey(key
));
74 void setValue ( const QString
& key
, const QVariant
& value
);
76 QKeySequence
shortcut( const QString
& key
);
78 const QList
<QAction
*> & actions() { return mActions
; }
79 void addAction ( QAction
*action
);
80 QString
keyForAction ( QAction
*action
);
85 void setDefault ( const QString
& key
, const QVariant
& value
)
87 mDefaults
.insert(resolvedKey(key
), value
);
90 typedef QSettings::SettingsMap SettingsMap
;
92 QString
resolvedKey( const QString
& key
) const
94 QString fullKey
= mSettings
->group();
95 if(!fullKey
.isEmpty()) fullKey
.append("/");
101 void initHighlightingDefaults();
103 QSettings
*mSettings
;
104 SettingsMap mDefaults
;
105 QList
<QAction
*> mActions
;
108 }} // namespace ScIDE::Settings