Logo Search packages:      
Sourcecode: dasher version File versions

SettingsStore.cpp

// SettingsStore.cpp
//
/////////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 2002 Iain Murray
//
/////////////////////////////////////////////////////////////////////////////


#include "SettingsStore.h"

using namespace std;

/* TODO: Consider using Template functions to make this neater. */


bool CSettingsStore::GetBoolOption(const string& Key)
{
      if (BoolMap.find(Key)==BoolMap.end()) {
            bool Value = false;
            LoadSetting(Key, &Value);
            BoolMap[Key] = Value;
      }
      
      return BoolMap[Key];
}


long CSettingsStore::GetLongOption(const string& Key)
{
      if (LongMap.find(Key)==LongMap.end()) {
            long Value = 0l;
            LoadSetting(Key, &Value);
            LongMap[Key] = Value;
      }
      
      return LongMap[Key];
}


string& CSettingsStore::GetStringOption(const string& Key)
{
      if (StringMap.find(Key)==StringMap.end()) {
            string Value = "";
            LoadSetting(Key, &Value);
            StringMap[Key] = Value;
      }
      
      return StringMap[Key];
}


void CSettingsStore::SetBoolOption(const string& Key, bool Value)
{
      BoolMap[Key] = Value;
      SaveSetting(Key, Value);
}


void CSettingsStore::SetLongOption(const string& Key, long Value)
{
      LongMap[Key] = Value;
      SaveSetting(Key, Value);
}


void CSettingsStore::SetStringOption(const string& Key, const string& Value)
{
      StringMap[Key] = Value;
      SaveSetting(Key, Value);
}


void CSettingsStore::SetBoolDefault(const string& Key, bool Value)
{
      bool TmpValue;
      if ( (BoolMap.find(Key)==BoolMap.end()) && (!LoadSetting(Key, &TmpValue)) )
            SetBoolOption(Key, Value);
}


void CSettingsStore::SetLongDefault(const string& Key, long Value)
{
      long TmpValue;
      if ( (LongMap.find(Key)==LongMap.end()) && (!LoadSetting(Key, &TmpValue)) )
            SetLongOption(Key, Value);
}


void CSettingsStore::SetStringDefault(const string& Key, const string& Value)
{
      string TmpValue;
      if ( (StringMap.find(Key)==StringMap.end()) && (!LoadSetting(Key, &TmpValue)) )
            SetStringOption(Key, Value);
}


/* Private functions -- Settings are not saved between sessions unless these
functions are over-ridden.
--------------------------------------------------------------------------*/


bool CSettingsStore::LoadSetting(const string& Key, bool* Value)
{
      return false;
}


bool CSettingsStore::LoadSetting(const string& Key, long* Value)
{
      return false;
}


bool CSettingsStore::LoadSetting(const string& Key, string* Value)
{
      return false;
}


void CSettingsStore::SaveSetting(const string& Key, bool Value)
{
}


void CSettingsStore::SaveSetting(const string& Key, long Value)
{
}


void CSettingsStore::SaveSetting(const string& Key, const string& Value)
{
}

Generated by  Doxygen 1.6.0   Back to index