Extend Settings to allow value restoration via message.
This commit is contained in:
parent
2b9c68af5d
commit
ba2c3d57f6
@ -1,4 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
|
* Copyright 2013, Rene Gollent, rene@gollent.com.
|
||||||
* Copyright 2009, Ingo Weinhold, ingo_weinhold@gmx.de.
|
* Copyright 2009, Ingo Weinhold, ingo_weinhold@gmx.de.
|
||||||
* Distributed under the terms of the MIT License.
|
* Distributed under the terms of the MIT License.
|
||||||
*/
|
*/
|
||||||
@ -81,6 +82,24 @@ Settings::SetValue(Setting* setting, const BVariant& value)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool
|
||||||
|
Settings::RestoreValues(const BMessage& message)
|
||||||
|
{
|
||||||
|
AutoLocker<BLocker> locker(fLock);
|
||||||
|
|
||||||
|
for (int32 i = 0; i < fDescription->CountSettings(); i++) {
|
||||||
|
Setting* setting = fDescription->SettingAt(i);
|
||||||
|
BVariant value;
|
||||||
|
if (value.SetFromMessage(message, setting->ID()) == B_OK) {
|
||||||
|
if (!SetValue(setting, value))
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
SettingsOption*
|
SettingsOption*
|
||||||
Settings::OptionValue(OptionsSetting* setting) const
|
Settings::OptionValue(OptionsSetting* setting) const
|
||||||
{
|
{
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
|
* Copyright 2013, Rene Gollent, rene@gollent.com.
|
||||||
* Copyright 2009, Ingo Weinhold, ingo_weinhold@gmx.de.
|
* Copyright 2009, Ingo Weinhold, ingo_weinhold@gmx.de.
|
||||||
* Distributed under the terms of the MIT License.
|
* Distributed under the terms of the MIT License.
|
||||||
*/
|
*/
|
||||||
@ -40,6 +41,8 @@ public:
|
|||||||
bool SetValue(Setting* setting,
|
bool SetValue(Setting* setting,
|
||||||
const BVariant& value);
|
const BVariant& value);
|
||||||
|
|
||||||
|
bool RestoreValues(const BMessage& message);
|
||||||
|
|
||||||
bool BoolValue(BoolSetting* setting) const
|
bool BoolValue(BoolSetting* setting) const
|
||||||
{ return Value(setting).ToBool(); }
|
{ return Value(setting).ToBool(); }
|
||||||
SettingsOption* OptionValue(OptionsSetting* setting) const;
|
SettingsOption* OptionValue(OptionsSetting* setting) const;
|
||||||
|
Loading…
Reference in New Issue
Block a user