Всем доброго времени.
Делаю обертку над QSettings. Хочу чтобы имя ключа в реестре соответствовало имени проперти.
Т.е. чтобы при работе с реестром автоматом подставлялся ключ с именем проперти.:
C++ (Qt)
class Foo: public QObject
{
Q_OBJECT
Q_PROPERTY(bool foo READ foo WRITE setFoo)
public:
explicit MySettings(QObject *parent = 0)
: QObject(parent)
{
}
void setFoo(bool set)
{
QSettings settings;
settings.setValue("foo", set); // здесь хочу чтобы ключ "foo" брался автоматом из имени проперти "foo"
}
bool foo() const
{
QSettings settings;
return settings.value("foo").toBool(); // здесь хочу чтобы ключ "foo" брался автоматом из имени проперти "foo"
}
}
Почитал про мета-объектную систему, но что-то не соображу, как получить взаимосвязь между именами геттера foo(), сететра setFoo() и свойства foo.
Нужно накатать некий метод, который бы автоматом позвращал имя проперти из сеттера/геттера, как-то так:
C++ (Qt)
QString propertyName(const QString methodName)
{
QString propName;
// тут надо что-то делать
return propName;
}
void Foo::setFoo(bool set)
{
QSettings settings;
settings.setValue(propertyName(__FUNCTION__), set);
}
bool foo() const
{
QSettings settings;
return settings.value(propertyName(__FUNCTION__)).toBool();
}
Или, может быть, есть более простой метод как это сделать?