special-location-bar: Factor out Settings launch code

We are going to change from GtkInfoBar to AdwBanner.

So, the GtkInfoBar::response signal is going away. In preparation,
isolate the reusable parts of its callback in functions that can
be used as calbacks to the AdwBanner::button-clicked signal.

(Factored out by António Fernandes <antoniof@gnome.org> from Peter's
original commit.)
This commit is contained in:
Peter Eisenmann 2023-01-21 00:59:55 +01:00 committed by António Fernandes
parent 6a20c86588
commit a22f86f679

View file

@ -52,39 +52,50 @@ enum
G_DEFINE_TYPE (NautilusSpecialLocationBar, nautilus_special_location_bar, ADW_TYPE_BIN)
static void
on_sharing_clicked (GtkInfoBar *infobar)
{
GtkWindow *window = GTK_WINDOW (gtk_widget_get_root (GTK_WIDGET (infobar)));
GVariant *parameters = g_variant_new_parsed (
"('launch-panel', [<('sharing', @av [])>], @a{sv} {})");
nautilus_dbus_launcher_call (nautilus_dbus_launcher_get (),
NAUTILUS_DBUS_LAUNCHER_SETTINGS,
"Activate",
parameters, window);
}
static void
on_trash_auto_emptied_clicked (GtkInfoBar *infobar)
{
GtkWindow *window = GTK_WINDOW (gtk_widget_get_root (GTK_WIDGET (infobar)));
GVariant *parameters = g_variant_new_parsed (
"('launch-panel', [<('usage', @av [])>], @a{sv} {})");
nautilus_dbus_launcher_call (nautilus_dbus_launcher_get (),
NAUTILUS_DBUS_LAUNCHER_SETTINGS,
"Activate",
parameters, window);
}
static void
on_info_bar_response (GtkInfoBar *infobar,
gint response_id,
gpointer user_data)
{
NautilusSpecialLocationBar *bar = user_data;
GtkRoot *window = gtk_widget_get_root (GTK_WIDGET (bar));
switch (bar->button_response)
{
case SPECIAL_LOCATION_SHARING_RESPONSE:
{
GVariant *parameters;
parameters = g_variant_new_parsed ("('launch-panel', [<('sharing', @av [])>], "
"@a{sv} {})");
nautilus_dbus_launcher_call (nautilus_dbus_launcher_get (),
NAUTILUS_DBUS_LAUNCHER_SETTINGS,
"Activate",
parameters, GTK_WINDOW (window));
on_sharing_clicked (infobar);
}
break;
case SPECIAL_LOCATION_TRASH_RESPONSE:
{
GVariant *parameters;
parameters = g_variant_new_parsed ("('launch-panel', [<('usage', @av [])>], "
"@a{sv} {})");
nautilus_dbus_launcher_call (nautilus_dbus_launcher_get (),
NAUTILUS_DBUS_LAUNCHER_SETTINGS,
"Activate",
parameters, GTK_WINDOW (window));
on_trash_auto_emptied_clicked (infobar);
}
break;