[Xfce4-commits] <ristretto:ristretto-0.0> Make toolbar-open button configurable
Stephan Arts
noreply at xfce.org
Sun Oct 23 19:14:40 CEST 2011
Updating branch refs/heads/ristretto-0.0
to d846e6417fd049b2f2668127915fefdef477981e (commit)
from 61bb958bff96be10e5a194831e73c58a18c5b079 (commit)
commit d846e6417fd049b2f2668127915fefdef477981e
Author: Stephan Arts <stephan at xfce.org>
Date: Sat May 23 00:23:32 2009 +0200
Make toolbar-open button configurable
ChangeLog | 10 ++++++++++
src/main_window.c | 31 ++++++++++++++++++++++++++++++-
src/main_window_ui.xml | 2 +-
src/settings.c | 21 +++++++++++----------
4 files changed, 52 insertions(+), 12 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 78718a7..3a49aa3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2009-05-23 Stephan Arts <stephan at xfce.org>
+
+ * src/main_window.c
+ src/main_window_ui.xml
+ src/settings.c: Add ability to configure the toolbar-open button, it can
+ now do the following:
+ - Open image
+ - Open folder
+ - None (disappear)
+
2009-05-22 Stephan Arts <stephan at xfce.org>
* src/main_window.c: Fix behaviour when switching to the last image
diff --git a/src/main_window.c b/src/main_window.c
index 3494c06..78268d7 100644
--- a/src/main_window.c
+++ b/src/main_window.c
@@ -76,6 +76,7 @@ struct _RsttoMainWindowPriv
GtkWidget *p_viewer_s_window;
GtkWidget *statusbar;
+ guint t_open_merge_id;
guint recent_merge_id;
guint play_merge_id;
guint pause_merge_id;
@@ -216,6 +217,8 @@ static GtkActionEntry action_entries[] =
{ "file-menu", NULL, N_ ("_File"), NULL, },
{ "open", GTK_STOCK_OPEN, N_ ("_Open"), "<control>O", N_ ("Open an image"), G_CALLBACK (cb_rstto_main_window_open_image), },
{ "open-folder", NULL, N_ ("Open _Folder"), NULL, N_ ("Open a folder"), G_CALLBACK (cb_rstto_main_window_open_folder), },
+ { "t_open", GTK_STOCK_OPEN, N_ ("_Open"), "<control>O", N_ ("Open an image"), G_CALLBACK (cb_rstto_main_window_open_image), },
+ { "t_open-folder", GTK_STOCK_OPEN, N_ ("Open _Folder"), NULL, N_ ("Open a folder"), G_CALLBACK (cb_rstto_main_window_open_folder), },
{ "save-as", GTK_STOCK_SAVE_AS, N_ ("_Save as"), "<control>s", N_ ("Save the image"), G_CALLBACK (cb_rstto_main_window_save_as), },
{ "print", GTK_STOCK_PRINT, N_ ("_Print"), "<control>p", N_ ("Print the image"), G_CALLBACK (cb_rstto_main_window_print), },
{ "close", GTK_STOCK_CLOSE, N_ ("_Close"), "<control>W", N_ ("Close this image"), G_CALLBACK (cb_rstto_main_window_close), },
@@ -302,7 +305,7 @@ static void
rstto_main_window_init (RsttoMainWindow *window)
{
GtkAccelGroup *accel_group;
- GValue show_toolbar_val = {0,}, window_width = {0, }, window_height = {0, };
+ GValue show_toolbar_val = {0,}, window_width = {0, }, window_height = {0, }, toolbar_open = {0, };
GtkWidget *separator, *back, *forward, *leave_fullscreen;
GtkWidget *main_vbox = gtk_vbox_new (FALSE, 0);
GtkRecentFilter *recent_filter;
@@ -333,6 +336,7 @@ rstto_main_window_init (RsttoMainWindow *window)
gtk_accel_map_change_entry ("<Window>/previous-image", GDK_Page_Up, 0, FALSE);
/* Create mergeid's for adding ui-components */
+ window->priv->t_open_merge_id = gtk_ui_manager_new_merge_id (window->priv->ui_manager);
window->priv->recent_merge_id = gtk_ui_manager_new_merge_id (window->priv->ui_manager);
window->priv->play_merge_id = gtk_ui_manager_new_merge_id (window->priv->ui_manager);
window->priv->pause_merge_id = gtk_ui_manager_new_merge_id (window->priv->ui_manager);
@@ -424,6 +428,9 @@ rstto_main_window_init (RsttoMainWindow *window)
gtk_widget_set_no_show_all (window->priv->toolbar, TRUE);
gtk_widget_set_no_show_all (window->priv->fs_toolbar, TRUE);
+ g_value_init (&toolbar_open, G_TYPE_STRING);
+ g_object_get_property (G_OBJECT(window->priv->settings_manager), "toolbar-open", &toolbar_open);
+
/**
* Add missing pieces to the UI
*/
@@ -449,6 +456,28 @@ rstto_main_window_init (RsttoMainWindow *window)
GTK_UI_MANAGER_MENUITEM,
FALSE);
+ /* Attach the riight 'open' toolbar item */
+ if (g_strcasecmp (g_value_get_string (&toolbar_open), "file") == 0)
+ {
+ gtk_ui_manager_add_ui (window->priv->ui_manager,
+ window->priv->recent_merge_id,
+ "/main-toolbar/placeholder-t_open",
+ "t_open",
+ "t_open",
+ GTK_UI_MANAGER_TOOLITEM,
+ FALSE);
+ }
+ if (g_strcasecmp (g_value_get_string (&toolbar_open), "folder") == 0)
+ {
+ gtk_ui_manager_add_ui (window->priv->ui_manager,
+ window->priv->recent_merge_id,
+ "/main-toolbar/placeholder-t_open",
+ "t_open-folder",
+ "t_open-folder",
+ GTK_UI_MANAGER_TOOLITEM,
+ FALSE);
+ }
+
/**
* Retrieve the last window-size from the settings-manager
* and make it the default for this window
diff --git a/src/main_window_ui.xml b/src/main_window_ui.xml
index e17a68f..9169ff3 100644
--- a/src/main_window_ui.xml
+++ b/src/main_window_ui.xml
@@ -63,7 +63,7 @@
-->
<toolbar name="main-toolbar">
- <toolitem action="open"/>
+ <placeholder name="placeholder-t_open"/>
<separator />
<toolitem action="back"/>
<toolitem action="forward"/>
diff --git a/src/settings.c b/src/settings.c
index ceb1886..e1efa65 100644
--- a/src/settings.c
+++ b/src/settings.c
@@ -54,7 +54,7 @@ enum
{
PROP_0,
PROP_SHOW_TOOLBAR,
- PROP_TOOLBAR_OPEN_FOLDER,
+ PROP_TOOLBAR_OPEN,
PROP_ENABLE_CACHE,
PROP_PRELOAD_IMAGES,
PROP_CACHE_SIZE,
@@ -100,7 +100,7 @@ struct _RsttoSettingsPriv
XfconfChannel *channel;
gboolean show_toolbar;
- gboolean toolbar_open_folder;
+ gchar *toolbar_open;
gboolean preload_images;
gboolean enable_cache;
guint cache_size;
@@ -138,6 +138,7 @@ rstto_settings_init (GObject *object)
settings->priv->bgcolor = g_new0 (GdkColor, 1);
settings->priv->bgcolor_fullscreen = g_new0 (GdkColor, 1);
settings->priv->image_quality = 2;
+ settings->priv->toolbar_open = "file";
xfconf_g_property_bind (settings->priv->channel, "/window/width", G_TYPE_UINT, settings, "window-width");
xfconf_g_property_bind (settings->priv->channel, "/window/height", G_TYPE_UINT, settings, "window-height");
@@ -146,7 +147,7 @@ rstto_settings_init (GObject *object)
xfconf_g_property_bind (settings->priv->channel, "/window/show-toolbar", G_TYPE_BOOLEAN, settings, "show-toolbar");
xfconf_g_property_bind (settings->priv->channel, "/window/scrollwheel-action", G_TYPE_STRING, settings, "scrollwheel-action");
- xfconf_g_property_bind (settings->priv->channel, "/window/toolbar-open-folder", G_TYPE_BOOLEAN, settings, "toolbar-open-folder");
+ xfconf_g_property_bind (settings->priv->channel, "/window/toolbar-open", G_TYPE_STRING, settings, "toolbar-open");
xfconf_g_property_bind (settings->priv->channel, "/slideshow/timeout", G_TYPE_UINT, settings, "slideshow-timeout");
@@ -207,13 +208,13 @@ rstto_settings_class_init (GObjectClass *object_class)
PROP_SHOW_TOOLBAR,
pspec);
- pspec = g_param_spec_boolean ("toolbar-open-folder",
+ pspec = g_param_spec_string ("toolbar-open",
"",
"",
- TRUE,
+ "file",
G_PARAM_READWRITE);
g_object_class_install_property (object_class,
- PROP_TOOLBAR_OPEN_FOLDER,
+ PROP_TOOLBAR_OPEN,
pspec);
@@ -390,8 +391,8 @@ rstto_settings_set_property (GObject *object,
case PROP_SHOW_TOOLBAR:
settings->priv->show_toolbar = g_value_get_boolean (value);
break;
- case PROP_TOOLBAR_OPEN_FOLDER:
- settings->priv->toolbar_open_folder = g_value_get_boolean (value);
+ case PROP_TOOLBAR_OPEN:
+ settings->priv->toolbar_open = g_value_dup_string (value);
break;
case PROP_PRELOAD_IMAGES:
settings->priv->preload_images = g_value_get_boolean (value);
@@ -458,8 +459,8 @@ rstto_settings_get_property (GObject *object,
case PROP_SHOW_TOOLBAR:
g_value_set_boolean (value, settings->priv->show_toolbar);
break;
- case PROP_TOOLBAR_OPEN_FOLDER:
- g_value_set_boolean (value, settings->priv->toolbar_open_folder);
+ case PROP_TOOLBAR_OPEN:
+ g_value_set_string (value, settings->priv->toolbar_open);
break;
case PROP_PRELOAD_IMAGES:
g_value_set_boolean (value, settings->priv->preload_images);
More information about the Xfce4-commits
mailing list