X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2FConfiguration.cc;h=237b4a63670fe4e45ddf97e65a100ceaa1b79863;hb=20bc088a998a362977233086577d74d00eea8765;hp=5517790f862baa9bd6418e9307fd5ea304a215d4;hpb=9d2f88e05a392ecf97d3d312806ff701c5514f14;p=chaz%2Fopenbox diff --git a/src/Configuration.cc b/src/Configuration.cc index 5517790f..237b4a63 100644 --- a/src/Configuration.cc +++ b/src/Configuration.cc @@ -35,21 +35,21 @@ using std::string; bool Configuration::m_initialized = False; -Configuration::Configuration(const string &file) { +Configuration::Configuration(const string &file, bool autosave) { setFile(file); m_modified = False; m_database = NULL; - m_autosave = True; + m_autosave = autosave; if (! m_initialized) { XrmInitialize(); m_initialized = True; } } -Configuration::Configuration() { +Configuration::Configuration(bool autosave) { m_modified = False; m_database = NULL; - m_autosave = True; + m_autosave = autosave; if (! m_initialized) { XrmInitialize(); m_initialized = True; @@ -84,6 +84,15 @@ bool Configuration::load() { return True; } +bool Configuration::merge(const string &file, bool overwrite) { + if (XrmCombineFileDatabase(file.c_str(), &m_database, overwrite) == 0) + return False; + m_modified = True; + if (m_autosave) + save(); + return True; +} + void Configuration::create() { if (m_database != NULL) XrmDestroyDatabase(m_database);