[gnome-applets] sticky-notes: per-applet preferences dialog
- From: Alberts Muktupāvels <muktupavels src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-applets] sticky-notes: per-applet preferences dialog
- Date: Mon, 6 Apr 2020 20:53:33 +0000 (UTC)
commit 4977aef35d71852f207d0cb1227ec1a0fdc64c90
Author: Alberts Muktupāvels <alberts muktupavels gmail com>
Date: Mon Apr 6 23:44:10 2020 +0300
sticky-notes: per-applet preferences dialog
.../sticky-notes/sticky-notes-applet-callbacks.c | 24 ------------
.../sticky-notes/sticky-notes-applet-callbacks.h | 1 -
gnome-applets/sticky-notes/sticky-notes-applet.c | 44 ++++++++++++++++++----
gnome-applets/sticky-notes/sticky-notes-applet.h | 4 +-
4 files changed, 38 insertions(+), 35 deletions(-)
---
diff --git a/gnome-applets/sticky-notes/sticky-notes-applet-callbacks.c
b/gnome-applets/sticky-notes/sticky-notes-applet-callbacks.c
index e5af82559..9321da30c 100644
--- a/gnome-applets/sticky-notes/sticky-notes-applet-callbacks.c
+++ b/gnome-applets/sticky-notes/sticky-notes-applet-callbacks.c
@@ -416,27 +416,3 @@ void preferences_apply_cb (GSettings *settings,
stickynotes_applet_update_menus();
}
-
-/* Preferences Callback : Response. */
-void preferences_response_cb(GtkWidget *dialog, gint response, gpointer data)
-{
- if (response == GTK_RESPONSE_HELP) {
- GError *error = NULL;
- gtk_show_uri (gtk_widget_get_screen (GTK_WIDGET (dialog)),
- "help:stickynotes_applet/stickynotes-advanced-settings",
- gtk_get_current_event_time (),
- &error);
- if (error) {
- dialog = gtk_message_dialog_new(NULL, GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR,
GTK_BUTTONS_CLOSE,
- _("There was an error displaying help:
%s"), error->message);
- g_signal_connect(G_OBJECT(dialog), "response", G_CALLBACK(gtk_widget_destroy), NULL);
- gtk_window_set_resizable(GTK_WINDOW(dialog), FALSE);
- gtk_window_set_screen (GTK_WINDOW(dialog), gtk_widget_get_screen(GTK_WIDGET(dialog)));
- gtk_widget_show(dialog);
- g_error_free(error);
- }
- }
-
- else if (response == GTK_RESPONSE_CLOSE)
- gtk_widget_destroy(GTK_WIDGET(dialog));
-}
diff --git a/gnome-applets/sticky-notes/sticky-notes-applet-callbacks.h
b/gnome-applets/sticky-notes/sticky-notes-applet-callbacks.h
index e033c9633..36b1f7c00 100644
--- a/gnome-applets/sticky-notes/sticky-notes-applet-callbacks.h
+++ b/gnome-applets/sticky-notes/sticky-notes-applet-callbacks.h
@@ -39,6 +39,5 @@ void menu_toggle_lock_state(GSimpleAction *action, GVariant *value, gpointer use
/* Callbacks for sticky notes preferences dialog */
void preferences_apply_cb(GSettings *settings, const gchar *key, gpointer user_data);
-void preferences_response_cb(GtkWidget *dialog, gint response, gpointer data);
#endif /* __STICKYNOTES_APPLET_CALLBACKS_H__ */
diff --git a/gnome-applets/sticky-notes/sticky-notes-applet.c
b/gnome-applets/sticky-notes/sticky-notes-applet.c
index a76f07485..6d14e377b 100644
--- a/gnome-applets/sticky-notes/sticky-notes-applet.c
+++ b/gnome-applets/sticky-notes/sticky-notes-applet.c
@@ -35,27 +35,42 @@ StickyNotes *stickynotes = NULL;
static void sticky_notes_init (GpApplet *applet);
static void sticky_notes_applet_new (StickyNotesApplet *self);
+static void
+preferences_response_cb (GtkWidget *widget,
+ gint response_id,
+ StickyNotesApplet *self)
+{
+ if (response_id == GTK_RESPONSE_HELP)
+ gp_applet_show_help (GP_APPLET (self), "stickynotes-advanced-settings");
+ else if (response_id == GTK_RESPONSE_CLOSE)
+ gtk_widget_destroy (widget);
+}
+
static void
menu_preferences_cb (GSimpleAction *action,
GVariant *parameter,
gpointer user_data)
{
- if (stickynotes->w_prefs != NULL)
+ StickyNotesApplet *self;
+
+ self = STICKY_NOTES_APPLET (user_data);
+
+ if (self->w_prefs != NULL)
{
- gtk_window_present (GTK_WINDOW (stickynotes->w_prefs));
+ gtk_window_present (GTK_WINDOW (self->w_prefs));
return;
}
- stickynotes->w_prefs = sticky_notes_preferences_new (stickynotes->settings);
- g_object_add_weak_pointer (G_OBJECT (stickynotes->w_prefs),
- (gpointer *) &stickynotes->w_prefs);
+ self->w_prefs = sticky_notes_preferences_new (stickynotes->settings);
+ g_object_add_weak_pointer (G_OBJECT (self->w_prefs),
+ (gpointer *) &self->w_prefs);
- g_signal_connect (stickynotes->w_prefs,
+ g_signal_connect (self->w_prefs,
"response",
G_CALLBACK (preferences_response_cb),
- NULL);
+ self);
- gtk_window_present (GTK_WINDOW (stickynotes->w_prefs));
+ gtk_window_present (GTK_WINDOW (self->w_prefs));
}
static void
@@ -107,6 +122,18 @@ sticky_notes_applet_constructed (GObject *object)
sticky_notes_applet_setup (STICKY_NOTES_APPLET (object));
}
+static void
+sticky_notes_applet_dispose (GObject *object)
+{
+ StickyNotesApplet *self;
+
+ self = STICKY_NOTES_APPLET (object);
+
+ g_clear_pointer (&self->w_prefs, gtk_widget_destroy);
+
+ G_OBJECT_CLASS (sticky_notes_applet_parent_class)->dispose (object);
+}
+
static void
sticky_notes_applet_class_init (StickyNotesAppletClass *self_class)
{
@@ -115,6 +142,7 @@ sticky_notes_applet_class_init (StickyNotesAppletClass *self_class)
object_class = G_OBJECT_CLASS (self_class);
object_class->constructed = sticky_notes_applet_constructed;
+ object_class->dispose = sticky_notes_applet_dispose;
}
static void
diff --git a/gnome-applets/sticky-notes/sticky-notes-applet.h
b/gnome-applets/sticky-notes/sticky-notes-applet.h
index e3bc072b2..eac0e4638 100644
--- a/gnome-applets/sticky-notes/sticky-notes-applet.h
+++ b/gnome-applets/sticky-notes/sticky-notes-applet.h
@@ -32,8 +32,6 @@ G_DECLARE_FINAL_TYPE (StickyNotesApplet, sticky_notes_applet,
/* Global Sticky Notes instance */
typedef struct
{
- GtkWidget *w_prefs; /* The prefs dialog */
-
GList *notes; /* Linked-List of all the sticky notes */
GList *applets; /* Linked-List of all the applets */
@@ -64,6 +62,8 @@ struct _StickyNotesApplet
GtkOrientation panel_orient;
GtkWidget *menu_tip;
+
+ GtkWidget *w_prefs;
};
typedef enum
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]