Updating branch refs/heads/ristretto-0.0 to 5ac321c922b325dc603e2c91ab82589be34f0e17 (commit) from dd21ac04b42c778e6dd0efee899439c089f4adcf (commit)
commit 5ac321c922b325dc603e2c91ab82589be34f0e17 Author: Stephan Arts <step...@xfce.org> Date: Sat Sep 5 00:05:48 2009 +0200 Add convenience-functions so it is not required to initialise GValue's all over the place ChangeLog | 7 ++++ src/main_window.c | 81 ++++++++++++++------------------------------ src/settings.c | 97 +++++++++++++++++++++++++++++++++++++++++++++++++++- src/settings.h | 11 +++++- 4 files changed, 136 insertions(+), 60 deletions(-) diff --git a/ChangeLog b/ChangeLog index f253a80..67b4578 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2009-09-05 Stephan Arts <step...@xfce.org> + + * src/main_window.c, + src/settings.c, + src/settings.h: Add convenience-functions for setting properties + so it is not required to initialise GValue's all over the place. + 2009-09-04 Stephan Arts <step...@xfce.org> * src/main_window.c: Change arrow-orientation together with toolbar diff --git a/src/main_window.c b/src/main_window.c index fd3c1c1..40df463 100644 --- a/src/main_window.c +++ b/src/main_window.c @@ -377,10 +377,10 @@ static void rstto_main_window_init (RsttoMainWindow *window) { GtkAccelGroup *accel_group; - GValue show_file_toolbar_val = {0,}, show_nav_toolbar_val = {0, }, show_thumbnailbar_val = {0, }, window_width = {0, }, window_height = {0, }; GtkWidget *separator; GtkWidget *main_vbox = gtk_vbox_new (FALSE, 0); GtkRecentFilter *recent_filter; + guint window_width, window_height; GClosure *leave_fullscreen_closure = g_cclosure_new_swap ((GCallback)gtk_window_unfullscreen, window, NULL); GClosure *next_image_closure = g_cclosure_new ((GCallback)cb_rstto_main_window_next_image, window, NULL); @@ -580,18 +580,14 @@ rstto_main_window_init (RsttoMainWindow *window) * Retrieve the last window-size from the settings-manager * and make it the default for this window */ - g_value_init (&window_width, G_TYPE_UINT); - g_value_init (&window_height, G_TYPE_UINT); - g_object_get_property (G_OBJECT(window->priv->settings_manager), "window-width", &window_width); - g_object_get_property (G_OBJECT(window->priv->settings_manager), "window-height", &window_height); - gtk_window_set_default_size(GTK_WINDOW(window), g_value_get_uint (&window_width), g_value_get_uint (&window_height)); + window_width = rstto_settings_get_uint_property (RSTTO_SETTINGS (window->priv->settings_manager), "window-width"); + window_height = rstto_settings_get_uint_property (RSTTO_SETTINGS (window->priv->settings_manager), "window-height"); + gtk_window_set_default_size(GTK_WINDOW(window), window_width, window_height); /** * Retrieve the toolbar state from the settings-manager */ - g_value_init (&show_file_toolbar_val, G_TYPE_BOOLEAN); - g_object_get_property (G_OBJECT(window->priv->settings_manager), "show-file-toolbar", &show_file_toolbar_val); - if (g_value_get_boolean (&show_file_toolbar_val)) + if (rstto_settings_get_boolean_property (RSTTO_SETTINGS (window->priv->settings_manager), "show-file-toolbar")) { gtk_check_menu_item_set_active ( GTK_CHECK_MENU_ITEM ( @@ -607,11 +603,8 @@ rstto_main_window_init (RsttoMainWindow *window) FALSE); gtk_widget_hide (window->priv->toolbar); } - g_value_reset (&show_file_toolbar_val); - g_value_init (&show_nav_toolbar_val, G_TYPE_BOOLEAN); - g_object_get_property (G_OBJECT(window->priv->settings_manager), "show-nav-toolbar", &show_nav_toolbar_val); - if (g_value_get_boolean (&show_nav_toolbar_val)) + if (rstto_settings_get_boolean_property (RSTTO_SETTINGS (window->priv->settings_manager), "show-nav-toolbar")) { gtk_check_menu_item_set_active ( GTK_CHECK_MENU_ITEM ( @@ -627,11 +620,8 @@ rstto_main_window_init (RsttoMainWindow *window) FALSE); gtk_widget_hide (window->priv->image_list_toolbar); } - g_value_reset (&show_nav_toolbar_val); - g_value_init (&show_thumbnailbar_val, G_TYPE_BOOLEAN); - g_object_get_property (G_OBJECT(window->priv->settings_manager), "show-thumbnailbar", &show_thumbnailbar_val); - if (g_value_get_boolean (&show_thumbnailbar_val)) + if (rstto_settings_get_boolean_property (RSTTO_SETTINGS (window->priv->settings_manager), "show-thumbnailbar")) { gtk_check_menu_item_set_active ( GTK_CHECK_MENU_ITEM ( @@ -647,7 +637,6 @@ rstto_main_window_init (RsttoMainWindow *window) FALSE); gtk_widget_hide (window->priv->thumbnailbar); } - g_value_reset (&show_thumbnailbar_val); g_signal_connect(G_OBJECT(window), "motion-notify-event", G_CALLBACK(cb_rstto_main_window_motion_notify_event), window); g_signal_connect(G_OBJECT(window->priv->picture_viewer), "enter-notify-event", G_CALLBACK(cb_rstto_main_window_picture_viewer_enter_notify_event), window); @@ -1238,8 +1227,6 @@ static void cb_rstto_main_window_state_event(GtkWidget *widget, GdkEventWindowState *event, gpointer user_data) { RsttoMainWindow *window = RSTTO_MAIN_WINDOW(widget); - GValue show_file_toolbar_val = {0,}; - GValue show_nav_toolbar_val = {0,}; if(event->changed_mask & GDK_WINDOW_STATE_FULLSCREEN) { @@ -1291,25 +1278,17 @@ cb_rstto_main_window_state_event(GtkWidget *widget, GdkEventWindowState *event, window->priv->show_fs_toolbar_timeout_id = 0; } gtk_widget_show (window->priv->image_list_toolbar); - - g_value_init (&show_file_toolbar_val, G_TYPE_BOOLEAN); - g_object_get_property (G_OBJECT(window->priv->settings_manager), "show-file-toolbar", &show_file_toolbar_val); - - g_value_init (&show_nav_toolbar_val, G_TYPE_BOOLEAN); - g_object_get_property (G_OBJECT(window->priv->settings_manager), "show-nav-toolbar", &show_nav_toolbar_val); - gtk_widget_show (window->priv->menubar); gtk_widget_show (window->priv->statusbar); - if (g_value_get_boolean (&show_file_toolbar_val)) + if (rstto_settings_get_boolean_property (RSTTO_SETTINGS (window->priv->settings_manager), "show-file-toolbar")) gtk_widget_show (window->priv->toolbar); - if (g_value_get_boolean (&show_nav_toolbar_val)) + if (rstto_settings_get_boolean_property (RSTTO_SETTINGS (window->priv->settings_manager), "show-nav-toolbar")) gtk_widget_show (window->priv->image_list_toolbar); else gtk_widget_hide(window->priv->image_list_toolbar); - g_value_reset (&show_file_toolbar_val); } } if (event->changed_mask & GDK_WINDOW_STATE_MAXIMIZED) @@ -2003,12 +1982,9 @@ cb_rstto_main_window_open_folder (GtkWidget *widget, RsttoMainWindow *window) const gchar *filename = NULL; const gchar *content_type = NULL; gchar *uri = NULL; - GValue current_uri_val = {0, }; gint pos = 0; GtkWidget *dialog; - - g_value_init (¤t_uri_val, G_TYPE_STRING); - g_object_get_property (G_OBJECT(window->priv->settings_manager), "current-uri", ¤t_uri_val); + gchar *current_uri = rstto_settings_get_string_property (RSTTO_SETTINGS (window->priv->settings_manager), "current-uri"); dialog = gtk_file_chooser_dialog_new(_("Open folder"), GTK_WINDOW(window), @@ -2017,8 +1993,12 @@ cb_rstto_main_window_open_folder (GtkWidget *widget, RsttoMainWindow *window) GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, NULL); - if (g_value_get_string (¤t_uri_val)) - gtk_file_chooser_set_current_folder_uri (GTK_FILE_CHOOSER (dialog), g_value_get_string (¤t_uri_val)); + if (current_uri) + { + gtk_file_chooser_set_current_folder_uri (GTK_FILE_CHOOSER (dialog), current_uri); + g_free (current_uri); + current_uri = NULL; + } response = gtk_dialog_run(GTK_DIALOG(dialog)); if(response == GTK_RESPONSE_ACCEPT) @@ -2051,8 +2031,9 @@ cb_rstto_main_window_open_folder (GtkWidget *widget, RsttoMainWindow *window) g_free (uri); uri = NULL; - g_value_set_string (¤t_uri_val, gtk_file_chooser_get_current_folder_uri (GTK_FILE_CHOOSER (dialog))); - g_object_set_property (G_OBJECT(window->priv->settings_manager), "current-uri", ¤t_uri_val); + rstto_settings_set_string_property (RSTTO_SETTINGS (window->priv->settings_manager), + "current-uri", + gtk_file_chooser_get_current_folder_uri (GTK_FILE_CHOOSER (dialog))); } gtk_widget_destroy(dialog); @@ -2334,20 +2315,16 @@ rstto_main_window_print_draw_page (GtkPrintOperation *operation, static void cb_rstto_main_window_toggle_show_file_toolbar (GtkWidget *widget, RsttoMainWindow *window) { - GValue val = {0,}; - g_value_init (&val, G_TYPE_BOOLEAN); - if (gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (widget))) { gtk_widget_show (window->priv->toolbar); - g_value_set_boolean (&val, TRUE); + rstto_settings_set_boolean_property (RSTTO_SETTINGS (window->priv->settings_manager), "show-file-toolbar", TRUE); } else { gtk_widget_hide (window->priv->toolbar); - g_value_set_boolean (&val, FALSE); + rstto_settings_set_boolean_property (RSTTO_SETTINGS (window->priv->settings_manager), "show-file-toolbar", FALSE); } - g_object_set_property (G_OBJECT (window->priv->settings_manager), "show-file-toolbar", &val); } /** @@ -2360,20 +2337,16 @@ cb_rstto_main_window_toggle_show_file_toolbar (GtkWidget *widget, RsttoMainWindo static void cb_rstto_main_window_toggle_show_nav_toolbar (GtkWidget *widget, RsttoMainWindow *window) { - GValue val = {0,}; - g_value_init (&val, G_TYPE_BOOLEAN); - if (gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (widget))) { gtk_widget_show (window->priv->image_list_toolbar); - g_value_set_boolean (&val, TRUE); + rstto_settings_set_boolean_property (RSTTO_SETTINGS (window->priv->settings_manager), "show-nav-toolbar", TRUE); } else { gtk_widget_hide (window->priv->image_list_toolbar); - g_value_set_boolean (&val, FALSE); + rstto_settings_set_boolean_property (RSTTO_SETTINGS (window->priv->settings_manager), "show-nav-toolbar", FALSE); } - g_object_set_property (G_OBJECT (window->priv->settings_manager), "show-nav-toolbar", &val); } /** @@ -2386,19 +2359,15 @@ cb_rstto_main_window_toggle_show_nav_toolbar (GtkWidget *widget, RsttoMainWindow static void cb_rstto_main_window_toggle_show_thumbnailbar (GtkWidget *widget, RsttoMainWindow *window) { - GValue val = {0,}; - g_value_init (&val, G_TYPE_BOOLEAN); - if (gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (widget))) { gtk_widget_show (window->priv->thumbnailbar); - g_value_set_boolean (&val, TRUE); + rstto_settings_set_boolean_property (RSTTO_SETTINGS (window->priv->settings_manager), "show-thumbnailbar", TRUE); } else { gtk_widget_hide (window->priv->thumbnailbar); - g_value_set_boolean (&val, FALSE); + rstto_settings_set_boolean_property (RSTTO_SETTINGS (window->priv->settings_manager), "show-thumbnailbar", FALSE); } - g_object_set_property (G_OBJECT (window->priv->settings_manager), "show-thumbnailbar", &val); } diff --git a/src/settings.c b/src/settings.c index 821ef14..39cfef2 100644 --- a/src/settings.c +++ b/src/settings.c @@ -580,8 +580,7 @@ rstto_settings_set_navbar_position (RsttoSettings *settings, guint pos) } guint -rstto_settings_get_navbar_position (RsttoSettings *settings) -{ +rstto_settings_get_navbar_position (RsttoSettings *settings) { if (settings->priv->navigationbar_position == NULL) return 0; @@ -594,3 +593,97 @@ rstto_settings_get_navbar_position (RsttoSettings *settings) if (!strcmp (settings->priv->navigationbar_position, "bottom")) return 3; } + +/** Convenience functions */ +void +rstto_settings_set_uint_property (RsttoSettings *settings, + const gchar *property_name, + guint value) +{ + GValue val = {0, }; + g_value_init (&val, G_TYPE_UINT); + + g_value_set_uint (&val, value); + + g_object_set_property (G_OBJECT(settings), property_name, &val); + + g_value_reset (&val); +} + +guint +rstto_settings_get_uint_property (RsttoSettings *settings, + const gchar *property_name) +{ + guint value; + GValue val = {0, }; + g_value_init (&val, G_TYPE_UINT); + + g_object_get_property (G_OBJECT(settings), property_name, &val); + value = g_value_get_uint (&val); + + g_value_reset (&val); + + return value; +} + +void +rstto_settings_set_string_property (RsttoSettings *settings, + const gchar *property_name, + const gchar *value) +{ + GValue val = {0, }; + g_value_init (&val, G_TYPE_STRING); + + g_value_set_string (&val, value); + + g_object_set_property (G_OBJECT(settings), property_name, &val); + + g_value_reset (&val); +} + +gchar * +rstto_settings_get_string_property (RsttoSettings *settings, + const gchar *property_name) +{ + gchar *value = NULL; + GValue val = {0, }; + g_value_init (&val, G_TYPE_STRING); + + g_object_get_property (G_OBJECT(settings), property_name, &val); + value = g_value_dup_string (&val); + + g_value_reset (&val); + + return value; +} + +void +rstto_settings_set_boolean_property (RsttoSettings *settings, + const gchar *property_name, + gboolean value) +{ + GValue val = {0, }; + g_value_init (&val, G_TYPE_BOOLEAN); + + g_value_set_boolean (&val, value); + + g_object_set_property (G_OBJECT(settings), property_name, &val); + + g_value_reset (&val); +} + +gboolean +rstto_settings_get_boolean_property (RsttoSettings *settings, + const gchar *property_name) +{ + gboolean value; + GValue val = {0, }; + g_value_init (&val, G_TYPE_BOOLEAN); + + g_object_get_property (G_OBJECT(settings), property_name, &val); + value = g_value_get_boolean (&val); + + g_value_reset (&val); + + return value; +} diff --git a/src/settings.h b/src/settings.h index ea2ec3f..f71c1dd 100644 --- a/src/settings.h +++ b/src/settings.h @@ -60,8 +60,15 @@ struct _RsttoSettingsClass RsttoSettings *rstto_settings_new (void); GType rstto_settings_get_type (void); -void rstto_settings_set_navbar_position (RsttoSettings *, guint); -guint rstto_settings_get_navbar_position (RsttoSettings *); +void rstto_settings_set_navbar_position (RsttoSettings *, guint); +guint rstto_settings_get_navbar_position (RsttoSettings *); + +void rstto_settings_set_uint_property (RsttoSettings *, const gchar *, guint); +guint rstto_settings_get_uint_property (RsttoSettings *, const gchar *); +void rstto_settings_set_string_property (RsttoSettings *, const gchar *, const gchar *); +gchar *rstto_settings_get_string_property (RsttoSettings *, const gchar *); +void rstto_settings_set_boolean_property (RsttoSettings *, const gchar *, gboolean); +gboolean rstto_settings_get_boolean_property (RsttoSettings *, const gchar *); G_END_DECLS _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org https://mail.xfce.org/mailman/listinfo/xfce4-commits