summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrbuj <[email protected]>2020-12-13 11:51:20 +0100
committerraveit65 <[email protected]>2020-12-17 15:31:59 +0100
commit5bf6faff25a90f358ac543358ec9ec2b2f1ed557 (patch)
tree3a5b5b48e268d2e5f272d78451d7f36f0573e5b5
parentc85a5cf5f08bee3706c0a450a971bfcdd2938a0d (diff)
downloadmate-applets-5bf6faff25a90f358ac543358ec9ec2b2f1ed557.tar.bz2
mate-applets-5bf6faff25a90f358ac543358ec9ec2b2f1ed557.tar.xz
mateweather: set values before connecting signals on preferences dialog
To avoid calling th signals handlers on the initialization of the preferences dialog. It also includes some improvements in the code formatting.
-rw-r--r--mateweather/src/mateweather-pref.c166
1 files changed, 94 insertions, 72 deletions
diff --git a/mateweather/src/mateweather-pref.c b/mateweather/src/mateweather-pref.c
index ac41e149..5c087c23 100644
--- a/mateweather/src/mateweather-pref.c
+++ b/mateweather/src/mateweather-pref.c
@@ -14,7 +14,7 @@
#define RADARMAP
#ifdef HAVE_CONFIG_H
- #include <config.h>
+#include <config.h>
#endif
#include <stdio.h>
@@ -47,16 +47,16 @@ struct _MateWeatherPrefPrivate {
GtkWidget* find_entry;
GtkWidget* find_next_btn;
- #ifdef RADARMAP
- GtkWidget* basic_radar_btn;
- GtkWidget* basic_radar_url_btn;
- GtkWidget* basic_radar_url_hbox;
- GtkWidget* basic_radar_url_entry;
- #endif /* RADARMAP */
+#ifdef RADARMAP
+ GtkWidget* basic_radar_btn;
+ GtkWidget* basic_radar_url_btn;
+ GtkWidget* basic_radar_url_hbox;
+ GtkWidget* basic_radar_url_entry;
+#endif /* RADARMAP */
- #ifdef HAVE_LIBNOTIFY
- GtkWidget* basic_show_notifications_btn;
- #endif
+#ifdef HAVE_LIBNOTIFY
+ GtkWidget* basic_show_notifications_btn;
+#endif /* HAVE_LIBNOTIFY */
GtkWidget* basic_update_spin;
GtkWidget* basic_update_btn;
@@ -81,7 +81,6 @@ static void hard_set_sensitive(GtkWidget* w, gboolean sensitivity)
g_object_set_data(G_OBJECT(w), NEVER_SENSITIVE, GINT_TO_POINTER(!sensitivity));
}
-
/* set sensitive, but always insensitive if NEVER_SENSITIVE is set */
static void soft_set_sensitive(GtkWidget* w, gboolean sensitivity)
{
@@ -160,7 +159,6 @@ static void mateweather_pref_set_accessibility(MateWeatherPref* pref)
set_access_namedesc(pref->priv->basic_radar_url_entry, _("Address Entry"), _("Enter the URL"));
}
-
/* Update pref dialog from mateweather_pref */
static gboolean update_dialog(MateWeatherPref* pref)
{
@@ -200,7 +198,9 @@ static gboolean update_dialog(MateWeatherPref* pref)
return TRUE;
}
-static void row_selected_cb(GtkTreeSelection* selection, MateWeatherPref* pref)
+static void
+on_row_selected (GtkTreeSelection *selection,
+ MateWeatherPref *pref)
{
MateWeatherApplet* gw_applet = pref->priv->applet;
GtkTreeModel* model;
@@ -228,7 +228,7 @@ static void row_selected_cb(GtkTreeSelection* selection, MateWeatherPref* pref)
weather_location_free(gw_applet->mateweather_pref.location);
}
- gw_applet->mateweather_pref.location =
+ gw_applet->mateweather_pref.location =
weather_location_new (loc->name, loc->code, loc->zone, loc->radar, loc->coordinates,
NULL, NULL);
@@ -292,23 +292,27 @@ static void load_locations(MateWeatherPref* pref)
}
}
-static void show_notifications_toggled(GtkToggleButton* button, MateWeatherPref* pref)
+static void
+on_show_notifications_toggled (GtkToggleButton *button,
+ MateWeatherPref *pref)
{
MateWeatherApplet* gw_applet = pref->priv->applet;
-
+
gboolean toggled = gtk_toggle_button_get_active(button);
-
+
if (toggled != gw_applet->mateweather_pref.show_notifications)
{
/* sync with mateweather_pref struct */
gw_applet->mateweather_pref.show_notifications = toggled;
-
+
/* sync with gsettings */
g_settings_set_boolean (gw_applet->settings, "show-notifications", toggled);
}
}
-static void auto_update_toggled(GtkToggleButton* button, MateWeatherPref* pref)
+static void
+on_auto_update_toggled (GtkToggleButton *button,
+ MateWeatherPref *pref)
{
MateWeatherApplet* gw_applet = pref->priv->applet;
gboolean toggled;
@@ -341,7 +345,9 @@ static void auto_update_toggled(GtkToggleButton* button, MateWeatherPref* pref)
}
}
-static void temp_combo_changed_cb(GtkComboBox* combo, MateWeatherPref* pref)
+static void
+on_temp_combo_changed (GtkComboBox *combo,
+ MateWeatherPref *pref)
{
MateWeatherApplet* gw_applet = pref->priv->applet;
TempUnit new_unit, old_unit;
@@ -369,7 +375,9 @@ static void temp_combo_changed_cb(GtkComboBox* combo, MateWeatherPref* pref)
}
}
-static void speed_combo_changed_cb(GtkComboBox* combo, MateWeatherPref* pref)
+static void
+on_speed_combo_changed (GtkComboBox *combo,
+ MateWeatherPref *pref)
{
MateWeatherApplet* gw_applet = pref->priv->applet;
SpeedUnit new_unit, old_unit;
@@ -395,7 +403,9 @@ static void speed_combo_changed_cb(GtkComboBox* combo, MateWeatherPref* pref)
}
}
-static void pres_combo_changed_cb(GtkComboBox* combo, MateWeatherPref* pref)
+static void
+on_pres_combo_changed (GtkComboBox *combo,
+ MateWeatherPref *pref)
{
MateWeatherApplet* gw_applet = pref->priv->applet;
PressureUnit new_unit, old_unit;
@@ -421,7 +431,9 @@ static void pres_combo_changed_cb(GtkComboBox* combo, MateWeatherPref* pref)
}
}
-static void dist_combo_changed_cb(GtkComboBox* combo, MateWeatherPref* pref)
+static void
+on_dist_combo_changed (GtkComboBox *combo,
+ MateWeatherPref *pref)
{
MateWeatherApplet* gw_applet = pref->priv->applet;
DistanceUnit new_unit, old_unit;
@@ -447,7 +459,9 @@ static void dist_combo_changed_cb(GtkComboBox* combo, MateWeatherPref* pref)
}
}
-static void radar_toggled(GtkToggleButton* button, MateWeatherPref* pref)
+static void
+on_radar_toggled (GtkToggleButton *button,
+ MateWeatherPref *pref)
{
MateWeatherApplet* gw_applet = pref->priv->applet;
gboolean toggled;
@@ -463,7 +477,9 @@ static void radar_toggled(GtkToggleButton* button, MateWeatherPref* pref)
}
}
-static void use_radar_url_toggled(GtkToggleButton* button, MateWeatherPref* pref)
+static void
+on_use_radar_url_toggled (GtkToggleButton *button,
+ MateWeatherPref *pref)
{
MateWeatherApplet* gw_applet = pref->priv->applet;
gboolean toggled;
@@ -474,7 +490,10 @@ static void use_radar_url_toggled(GtkToggleButton* button, MateWeatherPref* pref
soft_set_sensitive(pref->priv->basic_radar_url_hbox, toggled);
}
-static gboolean radar_url_changed(GtkWidget* widget, GdkEventFocus* event, MateWeatherPref* pref)
+static gboolean
+on_radar_url_changed (GtkWidget *widget,
+ GdkEventFocus *event,
+ MateWeatherPref *pref)
{
MateWeatherApplet* gw_applet = pref->priv->applet;
gchar *text;
@@ -501,7 +520,9 @@ static gboolean radar_url_changed(GtkWidget* widget, GdkEventFocus* event, MateW
return FALSE;
}
-static void update_interval_changed(GtkSpinButton* button, MateWeatherPref* pref)
+static void
+on_update_interval_changed (GtkSpinButton *button,
+ MateWeatherPref *pref)
{
MateWeatherApplet* gw_applet = pref->priv->applet;
@@ -535,7 +556,6 @@ static gboolean free_data(GtkTreeModel* model, GtkTreePath* path, GtkTreeIter* i
return FALSE;
}
-
static GtkWidget* create_hig_category(GtkWidget* main_box, gchar* title)
{
GtkWidget* vbox;
@@ -633,7 +653,9 @@ static gboolean find_location(GtkTreeModel* model, GtkTreeIter* iter, const gcha
return FALSE;
}
-static void find_next_clicked(GtkButton* button, MateWeatherPref* pref)
+static void
+on_find_next_clicked (GtkButton *button,
+ MateWeatherPref *pref)
{
GtkTreeView *tree;
GtkTreeModel *model;
@@ -689,7 +711,9 @@ static void find_next_clicked(GtkButton* button, MateWeatherPref* pref)
}
}
-static void find_entry_changed(GtkEditable* entry, MateWeatherPref* pref)
+static void
+find_entry_changed (GtkEditable *entry,
+ MateWeatherPref *pref)
{
GtkTreeView *tree;
GtkTreeModel *model;
@@ -725,7 +749,6 @@ static void find_entry_changed(GtkEditable* entry, MateWeatherPref* pref)
}
}
-
static void help_cb(GtkDialog* dialog, MateWeatherPref* pref)
{
gint current_page;
@@ -752,8 +775,10 @@ static void help_cb(GtkDialog* dialog, MateWeatherPref* pref)
}
}
-
-static void response_cb(GtkDialog* dialog, gint id, MateWeatherPref* pref)
+static void
+on_response (GtkDialog *dialog,
+ gint id,
+ MateWeatherPref *pref)
{
if (id == GTK_RESPONSE_HELP)
{
@@ -766,7 +791,8 @@ static void response_cb(GtkDialog* dialog, gint id, MateWeatherPref* pref)
}
-static void mateweather_pref_create(MateWeatherPref* pref)
+static void
+mateweather_pref_create (MateWeatherPref* pref)
{
GtkWidget* pref_vbox;
#ifdef RADARMAP
@@ -830,7 +856,6 @@ static void mateweather_pref_create(MateWeatherPref* pref)
gtk_widget_set_halign (pref->priv->basic_update_btn, GTK_ALIGN_START);
gtk_widget_set_vexpand (pref->priv->basic_update_btn, TRUE);
gtk_widget_show (pref->priv->basic_update_btn);
- g_signal_connect (G_OBJECT (pref->priv->basic_update_btn), "toggled", G_CALLBACK (auto_update_toggled), pref);
if (!g_settings_is_writable (pref->priv->applet->settings, "auto-update"))
{
@@ -959,16 +984,9 @@ static void mateweather_pref_create(MateWeatherPref* pref)
gtk_grid_attach(GTK_GRID(unit_grid), dist_combo, 1, 3, 1, 1);
gtk_widget_show(unit_grid);
- g_signal_connect (temp_combo, "changed", G_CALLBACK (temp_combo_changed_cb), pref);
- g_signal_connect (speed_combo, "changed", G_CALLBACK (speed_combo_changed_cb), pref);
- g_signal_connect (dist_combo, "changed", G_CALLBACK (dist_combo_changed_cb), pref);
- g_signal_connect (pres_combo, "changed", G_CALLBACK (pres_combo_changed_cb), pref);
-
-
#ifdef RADARMAP
pref->priv->basic_radar_btn = gtk_check_button_new_with_mnemonic (_("Enable _radar map"));
gtk_widget_show (pref->priv->basic_radar_btn);
- g_signal_connect (G_OBJECT (pref->priv->basic_radar_btn), "toggled", G_CALLBACK (radar_toggled), pref);
if (!g_settings_is_writable (pref->priv->applet->settings, "enable-radar-map"))
{
@@ -986,8 +1004,6 @@ static void mateweather_pref_create(MateWeatherPref* pref)
gtk_widget_show (pref->priv->basic_radar_url_btn);
gtk_box_pack_start (GTK_BOX (radar_toggle_hbox), pref->priv->basic_radar_url_btn, FALSE, FALSE, 0);
- g_signal_connect (G_OBJECT (pref->priv->basic_radar_url_btn), "toggled", G_CALLBACK (use_radar_url_toggled), pref);
-
if ( ! g_settings_is_writable (pref->priv->applet->settings, "use-custom-radar-url"))
{
hard_set_sensitive (pref->priv->basic_radar_url_btn, FALSE);
@@ -1006,7 +1022,7 @@ static void mateweather_pref_create(MateWeatherPref* pref)
pref->priv->basic_radar_url_entry = gtk_entry_new ();
gtk_widget_show (pref->priv->basic_radar_url_entry);
gtk_box_pack_start (GTK_BOX (pref->priv->basic_radar_url_hbox), pref->priv->basic_radar_url_entry, TRUE, TRUE, 0);
- g_signal_connect (G_OBJECT (pref->priv->basic_radar_url_entry), "focus_out_event", G_CALLBACK (radar_url_changed), pref);
+
if ( ! g_settings_is_writable (pref->priv->applet->settings, "radar"))
{
hard_set_sensitive (pref->priv->basic_radar_url_entry, FALSE);
@@ -1021,8 +1037,6 @@ static void mateweather_pref_create(MateWeatherPref* pref)
{
hard_set_sensitive (pref->priv->basic_show_notifications_btn, FALSE);
}
-
- g_signal_connect (G_OBJECT (pref->priv->basic_show_notifications_btn), "toggled", G_CALLBACK (show_notifications_toggled), pref);
#endif
frame = create_hig_category (pref_basic_vbox, _("Update"));
@@ -1040,7 +1054,6 @@ static void mateweather_pref_create(MateWeatherPref* pref)
gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (pref->priv->basic_update_spin), TRUE);
gtk_spin_button_set_update_policy (GTK_SPIN_BUTTON (pref->priv->basic_update_spin), GTK_UPDATE_IF_VALID);
- g_signal_connect (G_OBJECT (pref->priv->basic_update_spin), "value_changed", G_CALLBACK (update_interval_changed), pref);
pref_basic_update_sec_lbl = gtk_label_new (_("minutes"));
gtk_widget_show (pref_basic_update_sec_lbl);
@@ -1071,7 +1084,7 @@ static void mateweather_pref_create(MateWeatherPref* pref)
gtk_box_pack_start (GTK_BOX (vbox), radar_toggle_hbox, TRUE, TRUE, 0);
gtk_box_pack_start (GTK_BOX (vbox), pref->priv->basic_radar_url_hbox, TRUE, TRUE, 0);
#endif /* RADARMAP */
-
+
#ifdef HAVE_LIBNOTIFY
/* add the show-notification toggle button to the vbox of the display section */
gtk_box_pack_start (GTK_BOX (vbox), pref->priv->basic_show_notifications_btn, TRUE, TRUE, 0);
@@ -1103,7 +1116,6 @@ static void mateweather_pref_create(MateWeatherPref* pref)
gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (pref->priv->tree), FALSE);
selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (pref->priv->tree));
- g_signal_connect (G_OBJECT (selection), "changed", G_CALLBACK (row_selected_cb), pref);
gtk_container_add (GTK_CONTAINER (scrolled_window), pref->priv->tree);
gtk_widget_show (pref->priv->tree);
@@ -1124,9 +1136,6 @@ static void mateweather_pref_create(MateWeatherPref* pref)
image = gtk_image_new_from_icon_name ("edit-find", GTK_ICON_SIZE_BUTTON);
gtk_button_set_image (GTK_BUTTON (pref->priv->find_next_btn), image);
- g_signal_connect (G_OBJECT (pref->priv->find_next_btn), "clicked", G_CALLBACK (find_next_clicked), pref);
- g_signal_connect (G_OBJECT (pref->priv->find_entry), "changed", G_CALLBACK (find_entry_changed), pref);
-
gtk_container_set_border_width (GTK_CONTAINER (pref_find_hbox), 0);
gtk_box_pack_start (GTK_BOX (pref_find_hbox), pref_find_label, FALSE, FALSE, 0);
gtk_box_pack_start (GTK_BOX (pref_find_hbox), pref->priv->find_entry, TRUE, TRUE, 0);
@@ -1143,14 +1152,33 @@ static void mateweather_pref_create(MateWeatherPref* pref)
gtk_widget_show (pref_loc_note_lbl);
gtk_notebook_set_tab_label (GTK_NOTEBOOK (pref->priv->notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (pref->priv->notebook), 1), pref_loc_note_lbl);
-
- g_signal_connect (G_OBJECT (pref), "response", G_CALLBACK (response_cb), pref);
-
mateweather_pref_set_accessibility (pref);
gtk_label_set_mnemonic_widget (GTK_LABEL (pref_basic_update_sec_lbl), pref->priv->basic_update_spin);
gtk_label_set_mnemonic_widget (GTK_LABEL (label), pref->priv->basic_radar_url_entry);
-}
+ /* Set the initial values */
+ update_dialog (pref);
+
+ /* signals */
+ g_signal_connect (temp_combo, "changed", G_CALLBACK (on_temp_combo_changed), pref);
+ g_signal_connect (speed_combo, "changed", G_CALLBACK (on_speed_combo_changed), pref);
+ g_signal_connect (dist_combo, "changed", G_CALLBACK (on_dist_combo_changed), pref);
+ g_signal_connect (pres_combo, "changed", G_CALLBACK (on_pres_combo_changed), pref);
+ g_signal_connect (pref->priv->basic_update_btn, "toggled", G_CALLBACK (on_auto_update_toggled), pref);
+#ifdef RADARMAP
+ g_signal_connect (pref->priv->basic_radar_btn, "toggled", G_CALLBACK (on_radar_toggled), pref);
+ g_signal_connect (pref->priv->basic_radar_url_btn, "toggled", G_CALLBACK (on_use_radar_url_toggled), pref);
+ g_signal_connect (pref->priv->basic_radar_url_entry, "focus_out_event", G_CALLBACK (on_radar_url_changed), pref);
+#endif /* RADARMAP */
+#ifdef HAVE_LIBNOTIFY
+ g_signal_connect (pref->priv->basic_show_notifications_btn, "toggled", G_CALLBACK (on_show_notifications_toggled), pref);
+#endif /* HAVE_LIBNOTIFY */
+ g_signal_connect (pref->priv->find_next_btn, "clicked", G_CALLBACK (on_find_next_clicked), pref);
+ g_signal_connect (pref->priv->find_entry, "changed", G_CALLBACK (find_entry_changed), pref);
+ g_signal_connect (selection, "changed", G_CALLBACK (on_row_selected), pref);
+ g_signal_connect (pref->priv->basic_update_spin, "value-changed", G_CALLBACK (on_update_interval_changed), pref);
+ g_signal_connect (pref, "response", G_CALLBACK (on_response), pref);
+}
static void mateweather_pref_set_property(GObject* object, guint prop_id, const GValue* value, GParamSpec *pspec)
{
@@ -1167,7 +1195,6 @@ static void mateweather_pref_set_property(GObject* object, guint prop_id, const
}
}
-
static void mateweather_pref_get_property(GObject* object, guint prop_id, GValue* value, GParamSpec* pspec)
{
MateWeatherPref* pref = MATEWEATHER_PREF(object);
@@ -1183,34 +1210,32 @@ static void mateweather_pref_get_property(GObject* object, guint prop_id, GValue
}
}
-
static void mateweather_pref_init(MateWeatherPref* self)
{
self->priv = mateweather_pref_get_instance_private(self);
}
-
-static GObject* mateweather_pref_constructor(GType type, guint n_construct_params, GObjectConstructParam* construct_params)
+static GObject*
+mateweather_pref_constructor (GType type,
+ guint n_construct_params,
+ GObjectConstructParam *construct_params)
{
- GObject* object;
- MateWeatherPref* self;
+ GObject *object;
+ MateWeatherPref *self;
- object = G_OBJECT_CLASS(mateweather_pref_parent_class)->constructor(type, n_construct_params, construct_params);
- self = MATEWEATHER_PREF(object);
+ object = G_OBJECT_CLASS (mateweather_pref_parent_class)->constructor(type, n_construct_params, construct_params);
+ self = MATEWEATHER_PREF (object);
- mateweather_pref_create(self);
- update_dialog(self);
+ mateweather_pref_create (self);
return object;
}
-
GtkWidget* mateweather_pref_new(MateWeatherApplet* applet)
{
return g_object_new(MATEWEATHER_TYPE_PREF, "mateweather-applet", applet, NULL);
}
-
static void mateweather_pref_finalize(GObject* object)
{
MateWeatherPref* self = MATEWEATHER_PREF(object);
@@ -1221,7 +1246,6 @@ static void mateweather_pref_finalize(GObject* object)
G_OBJECT_CLASS(mateweather_pref_parent_class)->finalize(object);
}
-
static void mateweather_pref_class_init(MateWeatherPrefClass* klass)
{
GObjectClass* object_class = G_OBJECT_CLASS(klass);
@@ -1236,5 +1260,3 @@ static void mateweather_pref_class_init(MateWeatherPrefClass* klass)
/* This becomes an OBJECT property when MateWeatherApplet is redone */
g_object_class_install_property(object_class, PROP_MATEWEATHER_APPLET, g_param_spec_pointer("mateweather-applet", "MateWeather Applet", "The MateWeather Applet", G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
}
-
-