Flutter Engine
 
Loading...
Searching...
No Matches
fl_settings_portal.h File Reference

Go to the source code of this file.

Functions

G_BEGIN_DECLS G_DECLARE_FINAL_TYPE (FlSettingsPortal, fl_settings_portal, FL, SETTINGS_PORTAL, GObject)
 
FlSettingsPortal * fl_settings_portal_new ()
 
FlSettingsPortal * fl_settings_portal_new_with_values (GVariantDict *values)
 
gboolean fl_settings_portal_start (FlSettingsPortal *portal, GError **error)
 

Function Documentation

◆ fl_settings_portal_new()

FlSettingsPortal * fl_settings_portal_new ( )

FlSettingsPortal: #FlSettingsPortal reads settings from the XDG desktop portal. fl_settings_portal_new:

Creates a new settings portal instance.

Returns: a new #FlSettingsPortal.

Definition at line 267 of file fl_settings_portal.cc.

267 {
268 g_autoptr(GVariantDict) values = g_variant_dict_new(nullptr);
270}
g_autoptr(GMutexLocker) locker
FlSettingsPortal * fl_settings_portal_new_with_values(GVariantDict *values)

References fl_settings_portal_new_with_values(), and g_autoptr().

Referenced by fl_settings_new().

◆ fl_settings_portal_new_with_values()

FlSettingsPortal * fl_settings_portal_new_with_values ( GVariantDict *  values)

fl_settings_portal_new_with_values: @values: (nullable): a #GVariantDict.

Creates a new settings portal instance with initial values for testing.

Returns: a new #FlSettingsPortal.

Definition at line 272 of file fl_settings_portal.cc.

272 {
273 g_return_val_if_fail(values != nullptr, nullptr);
274 FlSettingsPortal* portal =
275 FL_SETTINGS_PORTAL(g_object_new(fl_settings_portal_get_type(), nullptr));
276 portal->values = g_variant_dict_ref(values);
277 return portal;
278}

Referenced by fl_settings_portal_new(), TEST(), TEST(), TEST(), TEST(), TEST(), and TEST().

◆ fl_settings_portal_start()

gboolean fl_settings_portal_start ( FlSettingsPortal *  portal,
GError **  error 
)

fl_settings_portal_start: @portal: an #FlSettingsPortal. @error: (allow-none): #GError location to store the error occurring, or NULL

Reads the current settings and starts monitoring for changes in the desktop portal settings.

Returns: TRUE on success, or FALSE if the portal is not available.

Definition at line 280 of file fl_settings_portal.cc.

280 {
281 g_return_val_if_fail(FL_IS_SETTINGS_PORTAL(self), false);
282 g_return_val_if_fail(self->dbus_proxy == nullptr, false);
283
284 self->dbus_proxy = g_dbus_proxy_new_for_bus_sync(
285 G_BUS_TYPE_SESSION, G_DBUS_PROXY_FLAGS_NONE, nullptr, kPortalName,
287
288 if (self->dbus_proxy == nullptr) {
289 return FALSE;
290 }
291
292 for (const FlSetting setting : kAllSettings) {
293 g_autoptr(GVariant) value = nullptr;
294 if (settings_portal_read(self->dbus_proxy, setting.ns, setting.key,
295 &value)) {
296 set_value(self, &setting, value);
297 }
298 }
299
300 g_signal_connect_object(self->dbus_proxy, "g-signal",
301 G_CALLBACK(settings_portal_changed_cb), self,
302 static_cast<GConnectFlags>(0));
303
304 return true;
305}
int32_t value
const uint8_t uint32_t uint32_t GError ** error
static gboolean settings_portal_read(GDBusProxy *proxy, const gchar *ns, const gchar *key, GVariant **out)
static void set_value(FlSettingsPortal *portal, const FlSetting *setting, GVariant *value)
static void settings_portal_changed_cb(GDBusProxy *proxy, const char *sender_name, const char *signal_name, GVariant *parameters, gpointer user_data)
static const FlSetting kAllSettings[]
static constexpr char kPortalPath[]
static constexpr char kPortalName[]
static constexpr char kPortalSettings[]

References error, g_autoptr(), kAllSettings, kPortalName, kPortalPath, kPortalSettings, self, set_value(), settings_portal_changed_cb(), settings_portal_read(), and value.

Referenced by fl_settings_new().

◆ G_DECLARE_FINAL_TYPE()

G_BEGIN_DECLS G_DECLARE_FINAL_TYPE ( FlSettingsPortal  ,
fl_settings_portal  ,
FL  ,
SETTINGS_PORTAL  ,
GObject   
)