You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
102 lines
2.1 KiB
C++
102 lines
2.1 KiB
C++
|
|
#include "setting.hpp"
|
|
|
|
#include <QColor>
|
|
#include <QMutexLocker>
|
|
|
|
#include "category.hpp"
|
|
#include "state.hpp"
|
|
|
|
Settings::Manager& CSMPrefs::Setting::getValues()
|
|
{
|
|
return *mValues;
|
|
}
|
|
|
|
QMutex *CSMPrefs::Setting::getMutex()
|
|
{
|
|
return mMutex;
|
|
}
|
|
|
|
CSMPrefs::Setting::Setting (Category *parent, Settings::Manager *values, QMutex *mutex,
|
|
const std::string& key, const std::string& label)
|
|
: QObject (parent->getState()), mParent (parent), mValues (values), mMutex (mutex), mKey (key),
|
|
mLabel (label)
|
|
{}
|
|
|
|
CSMPrefs::Setting:: ~Setting() {}
|
|
|
|
std::pair<QWidget *, QWidget *> CSMPrefs::Setting::makeWidgets (QWidget *parent)
|
|
{
|
|
return std::pair<QWidget *, QWidget *> (0, 0);
|
|
}
|
|
|
|
void CSMPrefs::Setting::updateWidget()
|
|
{
|
|
}
|
|
|
|
const CSMPrefs::Category *CSMPrefs::Setting::getParent() const
|
|
{
|
|
return mParent;
|
|
}
|
|
|
|
const std::string& CSMPrefs::Setting::getKey() const
|
|
{
|
|
return mKey;
|
|
}
|
|
|
|
const std::string& CSMPrefs::Setting::getLabel() const
|
|
{
|
|
return mLabel;
|
|
}
|
|
|
|
int CSMPrefs::Setting::toInt() const
|
|
{
|
|
QMutexLocker lock (mMutex);
|
|
return mValues->getInt (mKey, mParent->getKey());
|
|
}
|
|
|
|
double CSMPrefs::Setting::toDouble() const
|
|
{
|
|
QMutexLocker lock (mMutex);
|
|
return mValues->getFloat (mKey, mParent->getKey());
|
|
}
|
|
|
|
std::string CSMPrefs::Setting::toString() const
|
|
{
|
|
QMutexLocker lock (mMutex);
|
|
return mValues->getString (mKey, mParent->getKey());
|
|
}
|
|
|
|
bool CSMPrefs::Setting::isTrue() const
|
|
{
|
|
QMutexLocker lock (mMutex);
|
|
return mValues->getBool (mKey, mParent->getKey());
|
|
}
|
|
|
|
QColor CSMPrefs::Setting::toColor() const
|
|
{
|
|
// toString() handles lock
|
|
return QColor (QString::fromUtf8 (toString().c_str()));
|
|
}
|
|
|
|
bool CSMPrefs::operator== (const Setting& setting, const std::string& key)
|
|
{
|
|
std::string fullKey = setting.getParent()->getKey() + "/" + setting.getKey();
|
|
return fullKey==key;
|
|
}
|
|
|
|
bool CSMPrefs::operator== (const std::string& key, const Setting& setting)
|
|
{
|
|
return setting==key;
|
|
}
|
|
|
|
bool CSMPrefs::operator!= (const Setting& setting, const std::string& key)
|
|
{
|
|
return !(setting==key);
|
|
}
|
|
|
|
bool CSMPrefs::operator!= (const std::string& key, const Setting& setting)
|
|
{
|
|
return !(key==setting);
|
|
}
|