Updating branch refs/heads/ristretto-0.0 to 99225225b34039abe5d69041ba1483d25ef5686e (commit) from ebd4e629d93f715f8d0888aee4ae22583986c552 (commit)
commit 99225225b34039abe5d69041ba1483d25ef5686e Author: Stephan Arts <step...@xfce.org> Date: Tue Sep 1 22:42:25 2009 +0200 Update Todo Store navbar position in xfconf TODO | 4 +++ src/main.c | 2 +- src/main_window.c | 41 +++++++++++++++++++----------- src/settings.c | 72 +++++++++++++++++++++++++++++++++++++++++++++++++++++ src/settings.h | 3 ++ 5 files changed, 106 insertions(+), 16 deletions(-) diff --git a/TODO b/TODO index fb53141..a3f116c 100644 --- a/TODO +++ b/TODO @@ -6,6 +6,10 @@ - nautilus - rox +- Implement Sorting + +- Implement open-with + - Implement box-zoom - Add preloading diff --git a/src/main.c b/src/main.c index fa411ff..1a98148 100644 --- a/src/main.c +++ b/src/main.c @@ -113,7 +113,7 @@ main(int argc, char **argv) rof.image_list = image_list; rof.argc = argc; rof.argv = argv; - rof.iter = 1; + rof.iter = 1; g_idle_add ((GSourceFunc )cb_rstto_open_files, &rof); diff --git a/src/main_window.c b/src/main_window.c index 2f52e41..0a6f1d8 100644 --- a/src/main_window.c +++ b/src/main_window.c @@ -327,8 +327,8 @@ static const GtkRadioActionEntry radio_action_sort_entries[] = static const GtkRadioActionEntry radio_action_pos_entries[] = { { "pos-left", NULL, N_("Left"), NULL, NULL, 0}, - { "pos-right", NULL, N_("Right"), NULL, NULL, 2}, - { "pos-top", NULL, N_("Top"), NULL, NULL, 1}, + { "pos-right", NULL, N_("Right"), NULL, NULL, 1}, + { "pos-top", NULL, N_("Top"), NULL, NULL, 2}, { "pos-bottom", NULL, N_("Bottom"), NULL, NULL, 3}, }; @@ -384,6 +384,8 @@ rstto_main_window_init (RsttoMainWindow *window) window->priv->recent_manager = gtk_recent_manager_get_default(); window->priv->settings_manager = rstto_settings_new(); + navigationbar_position = rstto_settings_get_navbar_position (window->priv->settings_manager); + accel_group = gtk_ui_manager_get_accel_group (window->priv->ui_manager); gtk_window_add_accel_group (GTK_WINDOW (window), accel_group); @@ -1228,6 +1230,12 @@ cb_rstto_main_window_open_image (GtkWidget *widget, RsttoMainWindow *window) } else { + + uri = g_file_get_uri (files->data); + gtk_recent_manager_add_item (window->priv->recent_manager, uri); + g_free (uri); + uri = NULL; + gtk_widget_show (window->priv->message_bar); gtk_widget_show (window->priv->message_bar_label); gtk_widget_show (window->priv->message_bar_button_cancel); @@ -1286,7 +1294,7 @@ cb_rstto_main_window_open_folder (GtkWidget *widget, RsttoMainWindow *window) GTK_WINDOW(window), GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, - GTK_STOCK_OPEN, GTK_RESPONSE_OK, + GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, NULL); if (g_value_get_string (¤t_uri_val)) @@ -2157,6 +2165,7 @@ cb_rstto_main_window_message_bar_open (GtkWidget *widget, RsttoMainWindow *windo static void cb_rstto_main_window_set_as_wallpaper (GtkWidget *widget, RsttoMainWindow *window) { + } static void @@ -2168,9 +2177,11 @@ cb_rstto_main_window_navigationtoolbar_position_changed (GtkRadioAction *action, static void rstto_main_window_set_navigationbar_position (RsttoMainWindow *window, guint orientation) { + rstto_settings_set_navbar_position (window->priv->settings_manager, orientation); + switch (orientation) { - case 0: + case 0: /* Left */ g_object_ref (window->priv->image_list_toolbar); g_object_ref (window->priv->thumbnailbar); @@ -2182,31 +2193,31 @@ rstto_main_window_set_navigationbar_position (RsttoMainWindow *window, guint ori gtk_toolbar_set_orientation (GTK_TOOLBAR (window->priv->image_list_toolbar), GTK_ORIENTATION_VERTICAL); rstto_thumbnail_bar_set_orientation (RSTTO_THUMBNAIL_BAR(window->priv->thumbnailbar), GTK_ORIENTATION_VERTICAL); break; - case 1: + case 1: /* Right */ g_object_ref (window->priv->image_list_toolbar); g_object_ref (window->priv->thumbnailbar); gtk_container_remove (GTK_CONTAINER (gtk_widget_get_parent (window->priv->thumbnailbar)), window->priv->thumbnailbar); - gtk_paned_pack1 (GTK_PANED (window->priv->vpaned_top), window->priv->thumbnailbar, FALSE, FALSE); + gtk_paned_pack2 (GTK_PANED (window->priv->hpaned_right), window->priv->thumbnailbar, FALSE, FALSE); gtk_container_remove (GTK_CONTAINER (window->priv->table), window->priv->image_list_toolbar); - gtk_table_attach (GTK_TABLE (window->priv->table), window->priv->image_list_toolbar, 0, 3, 0, 1, GTK_EXPAND|GTK_FILL,GTK_FILL, 0, 0); - gtk_toolbar_set_orientation (GTK_TOOLBAR (window->priv->image_list_toolbar), GTK_ORIENTATION_HORIZONTAL); - rstto_thumbnail_bar_set_orientation (RSTTO_THUMBNAIL_BAR(window->priv->thumbnailbar), GTK_ORIENTATION_HORIZONTAL); + gtk_table_attach (GTK_TABLE (window->priv->table), window->priv->image_list_toolbar, 2, 3, 0, 3, GTK_FILL,GTK_EXPAND|GTK_FILL, 0, 0); + gtk_toolbar_set_orientation (GTK_TOOLBAR (window->priv->image_list_toolbar), GTK_ORIENTATION_VERTICAL); + rstto_thumbnail_bar_set_orientation (RSTTO_THUMBNAIL_BAR(window->priv->thumbnailbar), GTK_ORIENTATION_VERTICAL); break; - case 2: + case 2: /* Top */ g_object_ref (window->priv->image_list_toolbar); g_object_ref (window->priv->thumbnailbar); gtk_container_remove (GTK_CONTAINER (gtk_widget_get_parent (window->priv->thumbnailbar)), window->priv->thumbnailbar); - gtk_paned_pack2 (GTK_PANED (window->priv->hpaned_right), window->priv->thumbnailbar, FALSE, FALSE); + gtk_paned_pack1 (GTK_PANED (window->priv->vpaned_top), window->priv->thumbnailbar, FALSE, FALSE); gtk_container_remove (GTK_CONTAINER (window->priv->table), window->priv->image_list_toolbar); - gtk_table_attach (GTK_TABLE (window->priv->table), window->priv->image_list_toolbar, 2, 3, 0, 3, GTK_FILL,GTK_EXPAND|GTK_FILL, 0, 0); - gtk_toolbar_set_orientation (GTK_TOOLBAR (window->priv->image_list_toolbar), GTK_ORIENTATION_VERTICAL); - rstto_thumbnail_bar_set_orientation (RSTTO_THUMBNAIL_BAR(window->priv->thumbnailbar), GTK_ORIENTATION_VERTICAL); + gtk_table_attach (GTK_TABLE (window->priv->table), window->priv->image_list_toolbar, 0, 3, 0, 1, GTK_EXPAND|GTK_FILL,GTK_FILL, 0, 0); + gtk_toolbar_set_orientation (GTK_TOOLBAR (window->priv->image_list_toolbar), GTK_ORIENTATION_HORIZONTAL); + rstto_thumbnail_bar_set_orientation (RSTTO_THUMBNAIL_BAR(window->priv->thumbnailbar), GTK_ORIENTATION_HORIZONTAL); break; - case 3: + case 3: /* Bottom */ g_object_ref (window->priv->image_list_toolbar); g_object_ref (window->priv->thumbnailbar); diff --git a/src/settings.c b/src/settings.c index 42b5b1b..821ef14 100644 --- a/src/settings.c +++ b/src/settings.c @@ -55,6 +55,7 @@ enum PROP_0, PROP_SHOW_FILE_TOOLBAR, PROP_SHOW_NAV_TOOLBAR, + PROP_NAVBAR_POSITION, PROP_SHOW_THUMBNAILBAR, PROP_TOOLBAR_OPEN, PROP_ENABLE_CACHE, @@ -104,6 +105,7 @@ struct _RsttoSettingsPriv gboolean show_file_toolbar; gboolean show_nav_toolbar; gboolean show_thumbnailbar; + gchar *navigationbar_position; guint preload_images; gboolean enable_cache; guint cache_size; @@ -150,6 +152,7 @@ rstto_settings_init (GObject *object) xfconf_g_property_bind (settings->priv->channel, "/window/show-file-toolbar", G_TYPE_BOOLEAN, settings, "show-file-toolbar"); xfconf_g_property_bind (settings->priv->channel, "/window/show-navigation-toolbar", G_TYPE_BOOLEAN, settings, "show-nav-toolbar"); xfconf_g_property_bind (settings->priv->channel, "/window/show-thumbnailbar", G_TYPE_BOOLEAN, settings, "show-thumbnailbar"); + xfconf_g_property_bind (settings->priv->channel, "/window/navigationbar-position", G_TYPE_STRING, settings, "navigationbar-position"); xfconf_g_property_bind (settings->priv->channel, "/window/scrollwheel-action", G_TYPE_STRING, settings, "scrollwheel-action"); xfconf_g_property_bind (settings->priv->channel, "/slideshow/timeout", G_TYPE_UINT, settings, "slideshow-timeout"); @@ -229,6 +232,15 @@ rstto_settings_class_init (GObjectClass *object_class) PROP_SHOW_THUMBNAILBAR, pspec); + pspec = g_param_spec_string ("navigationbar-position", + "", + "", + "right", + G_PARAM_READWRITE); + g_object_class_install_property (object_class, + PROP_NAVBAR_POSITION, + pspec); + pspec = g_param_spec_uint ("preload-images", "", "", @@ -397,6 +409,7 @@ rstto_settings_set_property (GObject *object, GParamSpec *pspec) { GdkColor *color; + const gchar *str_val = NULL; RsttoSettings *settings = RSTTO_SETTINGS (object); switch (property_id) @@ -410,6 +423,19 @@ rstto_settings_set_property (GObject *object, case PROP_SHOW_THUMBNAILBAR: settings->priv->show_thumbnailbar= g_value_get_boolean (value); break; + case PROP_NAVBAR_POSITION: + str_val = g_value_get_string (value); + + if ((!g_strcasecmp (str_val, "left")) || + (!g_strcasecmp (str_val, "right")) || + (!g_strcasecmp (str_val, "bottom")) || + (!g_strcasecmp (str_val, "top"))) + { + if (settings->priv->navigationbar_position) + g_free (settings->priv->navigationbar_position); + settings->priv->navigationbar_position = g_strdup (str_val); + } + break; case PROP_PRELOAD_IMAGES: settings->priv->preload_images = g_value_get_uint (value); break; @@ -481,6 +507,9 @@ rstto_settings_get_property (GObject *object, case PROP_SHOW_THUMBNAILBAR: g_value_set_boolean (value, settings->priv->show_thumbnailbar); break; + case PROP_NAVBAR_POSITION: + g_value_set_string (value, settings->priv->navigationbar_position); + break; case PROP_PRELOAD_IMAGES: g_value_set_uint (value, settings->priv->preload_images); break; @@ -522,3 +551,46 @@ rstto_settings_get_property (GObject *object, } } + +void +rstto_settings_set_navbar_position (RsttoSettings *settings, guint pos) +{ + GValue val = {0, }; + g_value_init (&val, G_TYPE_STRING); + + switch (pos) + { + default: + g_value_set_string (&val, "left"); + break; + case 1: + g_value_set_string (&val, "right"); + break; + case 2: + g_value_set_string (&val, "top"); + break; + case 3: + g_value_set_string (&val, "bottom"); + break; + } + + g_object_set_property (G_OBJECT(settings), "navigationbar-position", &val); + + g_value_reset (&val); +} + +guint +rstto_settings_get_navbar_position (RsttoSettings *settings) +{ + if (settings->priv->navigationbar_position == NULL) + return 0; + + if (!strcmp (settings->priv->navigationbar_position, "left")) + return 0; + if (!strcmp (settings->priv->navigationbar_position, "right")) + return 1; + if (!strcmp (settings->priv->navigationbar_position, "top")) + return 2; + if (!strcmp (settings->priv->navigationbar_position, "bottom")) + return 3; +} diff --git a/src/settings.h b/src/settings.h index 4b526c2..ea2ec3f 100644 --- a/src/settings.h +++ b/src/settings.h @@ -60,6 +60,9 @@ 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 *); + G_END_DECLS #endif /* __RISTRETTO_SETTINGS_H__ */ _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org https://mail.xfce.org/mailman/listinfo/xfce4-commits