mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 14:07:46 +00:00
LibConfig: Add removal/notifcation for keys
This commit is contained in:
parent
a4a89a63cb
commit
b97f9f8e17
4 changed files with 24 additions and 0 deletions
|
@ -60,6 +60,11 @@ void Client::write_bool(StringView domain, StringView group, StringView key, boo
|
|||
async_write_bool_value(domain, group, key, value);
|
||||
}
|
||||
|
||||
void Client::remove_key(StringView domain, StringView group, StringView key)
|
||||
{
|
||||
async_remove_key(domain, group, key);
|
||||
}
|
||||
|
||||
void Client::notify_changed_string_value(String const& domain, String const& group, String const& key, String const& value)
|
||||
{
|
||||
Listener::for_each([&](auto& listener) {
|
||||
|
@ -81,4 +86,11 @@ void Client::notify_changed_bool_value(String const& domain, String const& group
|
|||
});
|
||||
}
|
||||
|
||||
void Client::notify_removed_key(const String& domain, const String& group, const String& key)
|
||||
{
|
||||
Listener::for_each([&](auto& listener) {
|
||||
listener.config_key_was_removed(domain, group, key);
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -31,6 +31,7 @@ public:
|
|||
void write_string(StringView domain, StringView group, StringView key, StringView value);
|
||||
void write_i32(StringView domain, StringView group, StringView key, i32 value);
|
||||
void write_bool(StringView domain, StringView group, StringView key, bool value);
|
||||
void remove_key(StringView domain, StringView group, StringView key);
|
||||
|
||||
static Client& the();
|
||||
|
||||
|
@ -43,6 +44,7 @@ private:
|
|||
void notify_changed_string_value(String const& domain, String const& group, String const& key, String const& value) override;
|
||||
void notify_changed_i32_value(String const& domain, String const& group, String const& key, i32 value) override;
|
||||
void notify_changed_bool_value(String const& domain, String const& group, String const& key, bool value) override;
|
||||
void notify_removed_key(String const& domain, String const& group, String const& key) override;
|
||||
};
|
||||
|
||||
inline String read_string(StringView domain, StringView group, StringView key, StringView fallback = {})
|
||||
|
@ -75,6 +77,11 @@ inline void write_bool(StringView domain, StringView group, StringView key, bool
|
|||
Client::the().write_bool(domain, group, key, value);
|
||||
}
|
||||
|
||||
inline void remove_key(StringView domain, StringView group, StringView key)
|
||||
{
|
||||
Client::the().remove_key(domain, group, key);
|
||||
}
|
||||
|
||||
inline void pledge_domains(Vector<String> const& domains)
|
||||
{
|
||||
Client::the().pledge_domains(domains);
|
||||
|
|
|
@ -41,4 +41,8 @@ void Listener::config_bool_did_change(String const&, String const&, String const
|
|||
{
|
||||
}
|
||||
|
||||
void Listener::config_key_was_removed(String const&, String const&, String const&)
|
||||
{
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -19,6 +19,7 @@ public:
|
|||
virtual void config_string_did_change(String const& domain, String const& group, String const& key, String const& value);
|
||||
virtual void config_i32_did_change(String const& domain, String const& group, String const& key, i32 value);
|
||||
virtual void config_bool_did_change(String const& domain, String const& group, String const& key, bool value);
|
||||
virtual void config_key_was_removed(String const& domain, String const& group, String const& key);
|
||||
|
||||
protected:
|
||||
Listener();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue