[gnome-panel/wip/muktupavels/launcher] add gp_initital_setup_dialog_set_settings
- From: Alberts Muktupāvels <muktupavels src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-panel/wip/muktupavels/launcher] add gp_initital_setup_dialog_set_settings
- Date: Mon, 13 Apr 2020 12:52:15 +0000 (UTC)
commit d0fab534d09d7873ced514a583e32bea2f904af2
Author: Alberts Muktupāvels <alberts muktupavels gmail com>
Date: Mon Apr 13 15:51:40 2020 +0300
add gp_initital_setup_dialog_set_settings
.../libpanel-applet-private/gp-applet-manager.c | 3 ++
gnome-panel/panel-addto-dialog.c | 1 +
gnome-panel/panel-applets-manager.c | 2 ++
gnome-panel/panel-applets-manager.h | 2 ++
gnome-panel/panel.c | 4 +--
libgnome-panel/gp-initial-setup-dialog-private.h | 3 ++
libgnome-panel/gp-initial-setup-dialog.c | 37 ++++++++++++++++++++++
libgnome-panel/gp-initial-setup-dialog.h | 21 ++++++------
modules/launcher/gp-custom-launcher-applet.c | 8 +++++
9 files changed, 70 insertions(+), 11 deletions(-)
---
diff --git a/gnome-panel/libpanel-applet-private/gp-applet-manager.c
b/gnome-panel/libpanel-applet-private/gp-applet-manager.c
index 6bb2879e4..f3b4e9584 100644
--- a/gnome-panel/libpanel-applet-private/gp-applet-manager.c
+++ b/gnome-panel/libpanel-applet-private/gp-applet-manager.c
@@ -351,6 +351,7 @@ gp_applet_manager_get_new_iid (PanelAppletsManager *manager,
static gboolean
gp_applet_manager_open_initial_setup_dialog (PanelAppletsManager *manager,
const gchar *iid,
+ GVariant *settings,
GtkWindow *parent,
GpInitialSetupCallback callback,
gpointer user_data,
@@ -387,6 +388,8 @@ gp_applet_manager_open_initial_setup_dialog (PanelAppletsManager *manager,
dialog = gp_initital_setup_dialog_new ();
gp_initital_setup_dialog_add_callback (dialog, callback, user_data, free_func);
+ gp_initital_setup_dialog_set_settings (dialog, settings);
+
info->initial_setup_dialog_func (dialog);
if (parent)
diff --git a/gnome-panel/panel-addto-dialog.c b/gnome-panel/panel-addto-dialog.c
index 1163a6047..b4631f44a 100644
--- a/gnome-panel/panel-addto-dialog.c
+++ b/gnome-panel/panel-addto-dialog.c
@@ -435,6 +435,7 @@ panel_addto_add_item (PanelAddtoDialog *dialog,
data = initial_setup_data_new (dialog, item_info->iid);
if (!panel_applets_manager_open_initial_setup_dialog (item_info->iid,
+ NULL,
GTK_WINDOW (dialog),
initial_setup_dialog_cb,
data, initial_setup_data_free)) {
diff --git a/gnome-panel/panel-applets-manager.c b/gnome-panel/panel-applets-manager.c
index 17a058299..e0b3b329e 100644
--- a/gnome-panel/panel-applets-manager.c
+++ b/gnome-panel/panel-applets-manager.c
@@ -179,6 +179,7 @@ panel_applets_manager_get_new_iid (const gchar *old_iid)
gboolean
panel_applets_manager_open_initial_setup_dialog (const gchar *iid,
+ GVariant *settings,
GtkWindow *parent,
GpInitialSetupCallback callback,
gpointer user_data,
@@ -198,6 +199,7 @@ panel_applets_manager_open_initial_setup_dialog (const gchar *iid,
ret = PANEL_APPLETS_MANAGER_GET_CLASS (manager)->open_initial_setup_dialog (manager,
iid,
+ settings,
parent,
callback,
user_data,
diff --git a/gnome-panel/panel-applets-manager.h b/gnome-panel/panel-applets-manager.h
index c1cfa037d..b82ace307 100644
--- a/gnome-panel/panel-applets-manager.h
+++ b/gnome-panel/panel-applets-manager.h
@@ -63,6 +63,7 @@ struct _PanelAppletsManagerClass {
gboolean (*open_initial_setup_dialog) (PanelAppletsManager *manager,
const gchar *iid,
+ GVariant *settings,
GtkWindow *parent,
GpInitialSetupCallback callback,
gpointer user_data,
@@ -90,6 +91,7 @@ gboolean panel_applets_manager_load_applet (const gchar
gchar *panel_applets_manager_get_new_iid (const gchar *old_iid);
gboolean panel_applets_manager_open_initial_setup_dialog (const gchar *iid,
+ GVariant *settings,
GtkWindow *parent,
GpInitialSetupCallback callback,
gpointer user_data,
diff --git a/gnome-panel/panel.c b/gnome-panel/panel.c
index 289dcd124..372681320 100644
--- a/gnome-panel/panel.c
+++ b/gnome-panel/panel.c
@@ -528,9 +528,8 @@ ask_about_launcher (const char *file,
settings = g_variant_builder_end (&builder);
g_variant_ref_sink (settings);
- // FIXME: pass initial data to inital dialog :D
-
panel_applets_manager_open_initial_setup_dialog (iid,
+ settings,
NULL,
initial_setup_dialog_cb,
initial_setup_data,
@@ -1147,6 +1146,7 @@ panel_receive_dnd_data (PanelWidget *panel,
(char *) data);
if (!panel_applets_manager_open_initial_setup_dialog ((char *) data,
+ NULL,
NULL,
initial_setup_dialog_cb,
initial_setup_data,
diff --git a/libgnome-panel/gp-initial-setup-dialog-private.h
b/libgnome-panel/gp-initial-setup-dialog-private.h
index fc23740c7..fc603c389 100644
--- a/libgnome-panel/gp-initial-setup-dialog-private.h
+++ b/libgnome-panel/gp-initial-setup-dialog-private.h
@@ -39,6 +39,9 @@ void gp_initital_setup_dialog_add_callback (GpInitialSetupDialo
GVariant *gp_initital_setup_dialog_get_settings (GpInitialSetupDialog *dialog);
+void gp_initital_setup_dialog_set_settings (GpInitialSetupDialog *dialog,
+ GVariant *settings);
+
G_END_DECLS
#endif
diff --git a/libgnome-panel/gp-initial-setup-dialog.c b/libgnome-panel/gp-initial-setup-dialog.c
index e46456d49..a7c93d1fd 100644
--- a/libgnome-panel/gp-initial-setup-dialog.c
+++ b/libgnome-panel/gp-initial-setup-dialog.c
@@ -176,6 +176,22 @@ gp_initital_setup_dialog_add_content_widget (GpInitialSetupDialog *dialog,
gtk_widget_show (content);
}
+/**
+ * gp_initital_setup_dialog_get_setting:
+ * @dialog: a #GpInitialSetupDialog
+ * @key: the setting key
+ *
+ * Gets a setting for @key.
+ *
+ * Returns: (transfer none): a #GVariant, or %NULL.
+ */
+GVariant *
+gp_initital_setup_dialog_get_setting (GpInitialSetupDialog *dialog,
+ const char *key)
+{
+ return g_hash_table_lookup (dialog->settings, key);
+}
+
/**
* gp_initital_setup_dialog_set_setting:
* @dialog: a #GpInitialSetupDialog
@@ -223,6 +239,27 @@ gp_initital_setup_dialog_get_settings (GpInitialSetupDialog *dialog)
return g_variant_ref_sink (settings);
}
+void
+gp_initital_setup_dialog_set_settings (GpInitialSetupDialog *dialog,
+ GVariant *settings)
+{
+ GVariantIter iter;
+ char *key;
+ GVariant *value;
+
+ if (settings == NULL)
+ return;
+
+ g_variant_iter_init (&iter, settings);
+ while (g_variant_iter_next (&iter, "{sv}", &key, &value))
+ {
+ gp_initital_setup_dialog_set_setting (dialog, key, value);
+
+ g_free (key);
+ g_variant_unref (value);
+ }
+}
+
void
gp_initital_setup_dialog_set_done (GpInitialSetupDialog *dialog,
gboolean done)
diff --git a/libgnome-panel/gp-initial-setup-dialog.h b/libgnome-panel/gp-initial-setup-dialog.h
index 69b5708e0..217de46ea 100644
--- a/libgnome-panel/gp-initial-setup-dialog.h
+++ b/libgnome-panel/gp-initial-setup-dialog.h
@@ -29,17 +29,20 @@ G_BEGIN_DECLS
*/
typedef struct _GpInitialSetupDialog GpInitialSetupDialog;
-void gp_initital_setup_dialog_add_content_widget (GpInitialSetupDialog *dialog,
- GtkWidget *content,
- gpointer user_data,
- GDestroyNotify free_func);
+void gp_initital_setup_dialog_add_content_widget (GpInitialSetupDialog *dialog,
+ GtkWidget *content,
+ gpointer user_data,
+ GDestroyNotify free_func);
-void gp_initital_setup_dialog_set_setting (GpInitialSetupDialog *dialog,
- const gchar *key,
- GVariant *value);
+GVariant *gp_initital_setup_dialog_get_setting (GpInitialSetupDialog *dialog,
+ const char *key);
-void gp_initital_setup_dialog_set_done (GpInitialSetupDialog *dialog,
- gboolean done);
+void gp_initital_setup_dialog_set_setting (GpInitialSetupDialog *dialog,
+ const gchar *key,
+ GVariant *value);
+
+void gp_initital_setup_dialog_set_done (GpInitialSetupDialog *dialog,
+ gboolean done);
G_END_DECLS
diff --git a/modules/launcher/gp-custom-launcher-applet.c b/modules/launcher/gp-custom-launcher-applet.c
index 8985bf721..d29724686 100644
--- a/modules/launcher/gp-custom-launcher-applet.c
+++ b/modules/launcher/gp-custom-launcher-applet.c
@@ -208,6 +208,7 @@ gp_custom_launcher_applet_initial_setup_dialog (GpInitialSetupDialog *dialog)
{
GtkWidget *editor;
LauncherData *data;
+ GVariant *variant;
editor = gp_editor_new (FALSE);
@@ -220,6 +221,13 @@ gp_custom_launcher_applet_initial_setup_dialog (GpInitialSetupDialog *dialog)
g_signal_connect (editor, "command-changed", G_CALLBACK (command_changed_cb), data);
g_signal_connect (editor, "comment-changed", G_CALLBACK (comment_changed_cb), data);
+ variant = gp_initital_setup_dialog_get_setting (dialog, "command");
+ if (variant != NULL)
+ {
+ gp_editor_set_command (GP_EDITOR (editor),
+ g_variant_get_string (variant, NULL));
+ }
+
icon_changed_cb (data->editor, data);
type_changed_cb (data->editor, data);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]