settings.cpp

Go to the documentation of this file.
00001 //--------------------------------------------------
00012 //---------------------------------------------------
00013 
00014 #include "settings.h"
00015 
00016 #include <QSettings>
00017 #include <QString>
00018 #include <QVariant>
00019 
00020 #ifdef DEBUG
00021 #include <iostream>
00022 #endif
00023 
00024 namespace imedgine
00025 {
00026 
00027   // Initialization of settings_instance_
00028   Settings* Settings::settings_instance_ = 0;
00029 
00030   //---------------------------------------------------
00031   
00032   Settings::~Settings()
00033   {
00034     delete q_settings_;
00035   }
00036 
00037   //---------------------------------------------------
00038   
00039   Settings* const Settings::getInstance()
00040   {
00041     if (settings_instance_ == 0)
00042     {
00043       settings_instance_ = new Settings();
00044     }
00045 
00046     return settings_instance_;
00047   }
00048 
00049   //---------------------------------------------------
00050 
00051   void Settings::setValue(const QString& key, const QVariant& value)
00052   {
00053     q_settings_->setValue(key, value);
00054   }
00055 
00056   //---------------------------------------------------
00057 
00058   void Settings::setValue(const std::string& key, const std::string& value)
00059   {
00060     QString qt_key = QString::fromStdString(key);
00061     QVariant qt_value = QString::fromStdString(value);
00062     setValue(qt_key, qt_value);
00063 
00064   }
00065 
00066   //---------------------------------------------------
00067 
00068   void Settings::setValue(const std::string& key, const int value)
00069   {
00070     QString qt_key = QString::fromStdString(key);
00071     //QVariant qt_value = value;
00072     setValue(qt_key, value);
00073 
00074   }
00075 
00076   //---------------------------------------------------
00077 
00078   void Settings::setValue(const std::string& key, const double value)
00079   {
00080     QString qt_key = QString::fromStdString(key);
00081     //QVariant qt_value = value;
00082     setValue(qt_key, value);
00083 
00084   }
00085 
00086   //---------------------------------------------------
00087 
00088   QVariant Settings::getValue(const QString& key, const QVariant& default_value) const
00089   {
00090     return(q_settings_->value(key, default_value));
00091   }
00092 
00093   //---------------------------------------------------
00094 
00095   std::string Settings::getStringValue(const std::string& key, const std::string& default_value) const
00096   {
00097     QString qt_key = QString::fromStdString(key);
00098     QVariant qt_default_value = QString::fromStdString(default_value);
00099 
00100     return ((getValue(qt_key, qt_default_value)).toString()).toStdString();
00101   }
00102 
00103   //---------------------------------------------------
00104 
00105   int Settings::getIntValue(const std::string& key, const int default_value) const
00106   {
00107     QString qt_key = QString::fromStdString(key);
00108     //QVariant qt_default_value = QString::fromStdString(default_value);
00109 
00110     return (getValue(qt_key, default_value)).toInt();
00111   }
00112 
00113   //---------------------------------------------------
00114 
00115   double Settings::getDoubleValue(const std::string& key, const double default_value) const
00116   {
00117     QString qt_key = QString::fromStdString(key);
00118     //QVariant qt_default_value = QString::fromStdString(default_value);
00119 
00120     return (getValue(qt_key, default_value)).toDouble();
00121   }
00122   
00123   //---------------------------------------------------
00124 
00125   Settings::Settings()
00126   {
00127  
00128 
00129     #ifdef Q_OS_LINUX
00130     QString ini_path(getenv("HOME"));
00131     ini_path += "/.imedgine/";
00132     #endif
00133 
00134     #ifdef Q_OS_WIN32
00135     // TODO: Untested
00136     QString ini_path(getenv("APPDATA"));
00137     ini_path += "/imedgine/";
00138     #endif
00139 
00140     #ifdef DEBUG
00141     std::cout << "Save path: " << ini_path.toStdString() << std::endl;
00142     #endif
00143 
00144     QSettings::setPath(QSettings::IniFormat, QSettings::UserScope, ini_path);
00145     q_settings_ = new QSettings(QSettings::IniFormat,
00146                   QSettings::UserScope, "imedgine.org", "imedgine");
00147   } 
00148 
00149 
00150 
00151 }

Generated on Sun Aug 13 18:19:39 2006 for iMEDgine by  doxygen 1.4.6