mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-09-20 01:37:39 +03:00
LibConfig: Add removal/notifcation for keys
This commit is contained in:
parent
a4a89a63cb
commit
b97f9f8e17
Notes:
sideshowbarker
2024-07-19 01:59:31 +09:00
Author: https://github.com/faxe1008 Commit: https://github.com/SerenityOS/serenity/commit/b97f9f8e17e Pull-request: https://github.com/SerenityOS/serenity/pull/10843 Reviewed-by: https://github.com/trflynn89
@ -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…
Reference in New Issue
Block a user