[gthumb] converted other actions, added an history menu button
- From: Paolo Bacchilega <paobac src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gthumb] converted other actions, added an history menu button
- Date: Sat, 9 Nov 2013 20:04:14 +0000 (UTC)
commit 352e5e030a25e4a5e6c3f13bc4147b26f60e9757
Author: Paolo Bacchilega <paobac src gnome org>
Date: Fri Oct 18 18:19:16 2013 +0200
converted other actions, added an history menu button
gthumb/gth-browser-actions-callbacks.c | 146 ++++++++++++-------
gthumb/gth-browser-actions-callbacks.h | 16 ++-
gthumb/gth-browser-actions-entries.h | 37 ++----
gthumb/gth-browser-ui.h | 12 --
gthumb/gth-browser.c | 253 ++++++++++++++------------------
gthumb/gth-browser.h | 2 +
6 files changed, 223 insertions(+), 243 deletions(-)
---
diff --git a/gthumb/gth-browser-actions-callbacks.c b/gthumb/gth-browser-actions-callbacks.c
index 2b49afb..a43a6d0 100644
--- a/gthumb/gth-browser-actions-callbacks.c
+++ b/gthumb/gth-browser-actions-callbacks.c
@@ -117,22 +117,6 @@ gth_browser_activate_action_edit_preferences (GtkAction *action,
void
-gth_browser_activate_action_go_back (GtkAction *action,
- GthBrowser *browser)
-{
- gth_browser_go_back (browser, 1);
-}
-
-
-void
-gth_browser_activate_action_go_forward (GtkAction *action,
- GthBrowser *browser)
-{
- gth_browser_go_forward (browser, 1);
-}
-
-
-void
gth_browser_activate_action_go_up (GtkAction *action,
GthBrowser *browser)
{
@@ -336,20 +320,6 @@ gth_browser_activate_action_folder_open_in_new_window (GtkAction *action,
void
-gth_browser_activate_action_browser_mode (GtkAction *action,
- GthBrowser *browser)
-{
- GtkWidget *viewer_sidebar;
-
- viewer_sidebar = gth_browser_get_viewer_sidebar (browser);
- if (gth_sidebar_tool_is_active (GTH_SIDEBAR (viewer_sidebar)))
- gth_sidebar_deactivate_tool (GTH_SIDEBAR (viewer_sidebar));
- else
- gth_window_set_current_page (GTH_WINDOW (browser), GTH_BROWSER_PAGE_BROWSER);
-}
-
-
-void
gth_browser_activate_action_viewer_properties (GtkAction *action,
GthBrowser *browser)
{
@@ -473,34 +443,84 @@ gth_browser_activate_action_help_shortcuts (GtkAction *action,
void
-gth_browser_activate_save (GSimpleAction *action,
- GVariant *parameter,
- gpointer user_data)
+gth_browser_activate_browser_mode (GSimpleAction *action,
+ GVariant *parameter,
+ gpointer user_data)
{
GthBrowser *browser = user_data;
- GtkWidget *viewer_page;
+ GtkWidget *viewer_sidebar;
- viewer_page = gth_browser_get_viewer_page (browser);
- if (viewer_page == NULL)
- return;
+ viewer_sidebar = gth_browser_get_viewer_sidebar (browser);
+ if (gth_sidebar_tool_is_active (GTH_SIDEBAR (viewer_sidebar)))
+ gth_sidebar_deactivate_tool (GTH_SIDEBAR (viewer_sidebar));
+ else
+ gth_window_set_current_page (GTH_WINDOW (browser), GTH_BROWSER_PAGE_BROWSER);
+}
- gth_viewer_page_save (GTH_VIEWER_PAGE (viewer_page), NULL, NULL, browser);
+
+void
+gth_browser_activate_clear_history (GSimpleAction *action,
+ GVariant *parameter,
+ gpointer user_data)
+{
+ gth_browser_clear_history (GTH_BROWSER (user_data));
}
void
-gth_browser_activate_save_as (GSimpleAction *action,
+gth_browser_activate_close (GSimpleAction *action,
+ GVariant *parameter,
+ gpointer user_data)
+{
+ GthBrowser *browser = user_data;
+
+ gth_window_close (GTH_WINDOW (browser));
+}
+
+
+void
+gth_browser_activate_fullscreen (GSimpleAction *action,
+ GVariant *parameter,
+ gpointer user_data)
+{
+ gth_browser_fullscreen (GTH_BROWSER (user_data));
+}
+
+
+void
+gth_browser_activate_go_back (GSimpleAction *action,
GVariant *parameter,
gpointer user_data)
{
- GthBrowser *browser = user_data;
- GtkWidget *viewer_page;
+ gth_browser_go_back (GTH_BROWSER (user_data), 1);
+}
- viewer_page = gth_browser_get_viewer_page (browser);
- if (viewer_page == NULL)
- return;
- gth_viewer_page_save_as (GTH_VIEWER_PAGE (viewer_page), NULL, NULL);
+void
+gth_browser_activate_go_forward (GSimpleAction *action,
+ GVariant *parameter,
+ gpointer user_data)
+{
+ gth_browser_go_forward (GTH_BROWSER (user_data), 1);
+}
+
+
+void
+gth_browser_activate_go_to_history_pos (GSimpleAction *action,
+ GVariant *parameter,
+ gpointer user_data)
+{
+ gth_browser_go_to_history_pos (GTH_BROWSER (user_data), atoi (g_variant_get_string (parameter,
NULL)));
+}
+
+
+void
+gth_browser_activate_quit (GSimpleAction *action,
+ GVariant *parameter,
+ gpointer user_data)
+{
+ /* FIXME */
+
}
@@ -519,21 +539,43 @@ gth_browser_activate_revert_to_saved (GSimpleAction *action,
gth_viewer_page_revert (GTH_VIEWER_PAGE (viewer_page));
}
+
void
-gth_browser_activate_close (GSimpleAction *action,
- GVariant *parameter,
- gpointer user_data)
+gth_browser_activate_save (GSimpleAction *action,
+ GVariant *parameter,
+ gpointer user_data)
{
GthBrowser *browser = user_data;
+ GtkWidget *viewer_page;
- gth_window_close (GTH_WINDOW (browser));
+ viewer_page = gth_browser_get_viewer_page (browser);
+ if (viewer_page == NULL)
+ return;
+
+ gth_viewer_page_save (GTH_VIEWER_PAGE (viewer_page), NULL, NULL, browser);
}
void
-gth_browser_activate_quit (GSimpleAction *action,
- GVariant *parameter,
- gpointer user_data)
+gth_browser_activate_save_as (GSimpleAction *action,
+ GVariant *parameter,
+ gpointer user_data)
{
+ GthBrowser *browser = user_data;
+ GtkWidget *viewer_page;
+
+ viewer_page = gth_browser_get_viewer_page (browser);
+ if (viewer_page == NULL)
+ return;
+
+ gth_viewer_page_save_as (GTH_VIEWER_PAGE (viewer_page), NULL, NULL);
+}
+
+void
+gth_browser_activate_unfullscreen (GSimpleAction *action,
+ GVariant *parameter,
+ gpointer user_data)
+{
+ gth_browser_unfullscreen (GTH_BROWSER (user_data));
}
diff --git a/gthumb/gth-browser-actions-callbacks.h b/gthumb/gth-browser-actions-callbacks.h
index 948b754..93e415d 100644
--- a/gthumb/gth-browser-actions-callbacks.h
+++ b/gthumb/gth-browser-actions-callbacks.h
@@ -28,7 +28,6 @@
DEFINE_ACTION(gth_browser_activate_action_bookmarks_add)
DEFINE_ACTION(gth_browser_activate_action_bookmarks_edit)
-DEFINE_ACTION(gth_browser_activate_action_browser_mode)
DEFINE_ACTION(gth_browser_activate_action_edit_comment)
DEFINE_ACTION(gth_browser_activate_action_edit_preferences)
DEFINE_ACTION(gth_browser_activate_action_edit_select_all)
@@ -40,8 +39,6 @@ DEFINE_ACTION(gth_browser_activate_action_file_save_as)
DEFINE_ACTION(gth_browser_activate_action_folder_open)
DEFINE_ACTION(gth_browser_activate_action_folder_open_in_new_window)
DEFINE_ACTION(gth_browser_activate_action_folder_open_in_file_manager)
-DEFINE_ACTION(gth_browser_activate_action_go_back)
-DEFINE_ACTION(gth_browser_activate_action_go_forward)
DEFINE_ACTION(gth_browser_activate_action_go_up)
DEFINE_ACTION(gth_browser_activate_action_go_location)
DEFINE_ACTION(gth_browser_activate_action_go_clear_history)
@@ -68,10 +65,17 @@ DEFINE_ACTION(gth_browser_activate_action_browser_tools)
DEFINE_ACTION(gth_browser_activate_action_viewer_tools)
DEFINE_ACTION(gth_browser_activate_action_view_shrink_wrap)
-DEF_ACTION_CALLBACK (gth_browser_activate_save)
-DEF_ACTION_CALLBACK (gth_browser_activate_save_as)
-DEF_ACTION_CALLBACK (gth_browser_activate_revert_to_saved)
+DEF_ACTION_CALLBACK (gth_browser_activate_browser_mode)
+DEF_ACTION_CALLBACK (gth_browser_activate_clear_history)
DEF_ACTION_CALLBACK (gth_browser_activate_close)
+DEF_ACTION_CALLBACK (gth_browser_activate_fullscreen)
+DEF_ACTION_CALLBACK (gth_browser_activate_go_back)
+DEF_ACTION_CALLBACK (gth_browser_activate_go_forward)
+DEF_ACTION_CALLBACK (gth_browser_activate_go_to_history_pos)
DEF_ACTION_CALLBACK (gth_browser_activate_quit)
+DEF_ACTION_CALLBACK (gth_browser_activate_revert_to_saved)
+DEF_ACTION_CALLBACK (gth_browser_activate_save)
+DEF_ACTION_CALLBACK (gth_browser_activate_save_as)
+DEF_ACTION_CALLBACK (gth_browser_activate_unfullscreen)
#endif /* GTH_BROWSER_ACTIONS_CALLBACK_H */
diff --git a/gthumb/gth-browser-actions-entries.h b/gthumb/gth-browser-actions-entries.h
index 7d7db79..8c6cebd 100644
--- a/gthumb/gth-browser-actions-entries.h
+++ b/gthumb/gth-browser-actions-entries.h
@@ -28,11 +28,18 @@
#include "gtk-utils.h"
static const GActionEntry gth_browser_actions[] = {
- { "save", gth_browser_activate_save },
- { "save-as", gth_browser_activate_save_as },
- { "revert-to-saved", gth_browser_activate_revert_to_saved },
+ { "browser-mode", gth_browser_activate_browser_mode },
+ { "clear-history", gth_browser_activate_clear_history },
{ "close", gth_browser_activate_close },
+ { "fullscreen", gth_browser_activate_fullscreen },
+ { "go-back", gth_browser_activate_go_back },
+ { "go-forward", gth_browser_activate_go_forward },
+ { "go-to-history-position", gth_browser_activate_go_to_history_pos, "s", "''", NULL },
{ "quit", gth_browser_activate_quit },
+ { "revert-to-saved", gth_browser_activate_revert_to_saved },
+ { "save", gth_browser_activate_save },
+ { "save-as", gth_browser_activate_save_as },
+ { "unfullscreen", gth_browser_activate_unfullscreen },
};
@@ -136,30 +143,12 @@ static GthActionEntryExt gth_browser_action_entries[] = {
GTH_ACTION_FLAG_IS_IMPORTANT,
G_CALLBACK (gth_browser_activate_action_view_next) },
- { "View_Fullscreen", GTK_STOCK_FULLSCREEN,
- NULL, "F11",
- N_("Switch to fullscreen"),
- GTH_ACTION_FLAG_NONE,
- G_CALLBACK (gth_browser_activate_action_view_fullscreen) },
-
{ "View_Leave_Fullscreen", GTK_STOCK_LEAVE_FULLSCREEN,
NULL, NULL,
N_("Leave Fullscreen"),
GTH_ACTION_FLAG_NONE,
G_CALLBACK (gth_browser_activate_action_view_fullscreen) },
- { "Go_Back", GTK_STOCK_GO_BACK,
- NULL, "<alt>Left",
- N_("Go to the previous visited location"),
- GTH_ACTION_FLAG_NONE,
- G_CALLBACK (gth_browser_activate_action_go_back) },
-
- { "Go_Forward", GTK_STOCK_GO_FORWARD,
- NULL, "<alt>Right",
- N_("Go to the next visited location"),
- GTH_ACTION_FLAG_NONE,
- G_CALLBACK (gth_browser_activate_action_go_forward) },
-
{ "Go_Up", GTK_STOCK_GO_UP,
NULL, "<alt>Up",
N_("Go up one level"),
@@ -184,12 +173,6 @@ static GthActionEntryExt gth_browser_action_entries[] = {
GTH_ACTION_FLAG_NONE,
G_CALLBACK (gth_browser_activate_action_go_clear_history) },
- { "View_BrowserMode", GTH_STOCK_BROWSER_MODE,
- N_("Browser"), "Escape",
- N_("View the folders"),
- GTH_ACTION_FLAG_NONE,
- G_CALLBACK (gth_browser_activate_action_browser_mode) },
-
{ "Help_About", GTK_STOCK_ABOUT,
NULL, NULL,
N_("Show information about gthumb"),
diff --git a/gthumb/gth-browser-ui.h b/gthumb/gth-browser-ui.h
index b601635..a1eedde 100644
--- a/gthumb/gth-browser-ui.h
+++ b/gthumb/gth-browser-ui.h
@@ -75,7 +75,6 @@ static const char *fixed_ui_info =
" <menuitem action='View_Statusbar'/>"
" <placeholder name='View_Bars'/>"
" <separator/>"
-" <menuitem action='View_Fullscreen'/>"
" <placeholder name='View_Actions'/>"
" <separator/>"
" <placeholder name='File_Actions'/>"
@@ -87,8 +86,6 @@ static const char *fixed_ui_info =
" <placeholder name='Folder_Actions'/>"
" </menu>"
" <menu name='Go' action='GoMenu'>"
-" <menuitem action='Go_Back'/>"
-" <menuitem action='Go_Forward'/>"
" <menuitem action='Go_Up'/>"
" <menuitem action='Go_Location'/>"
" <separator name='BeforeEntryPointList'/>"
@@ -108,8 +105,6 @@ static const char *fixed_ui_info =
" </menubar>"
" <toolbar name='ToolBar'>"
-" <toolitem action='Toolbar_Go_Back'/>"
-" <toolitem action='Toolbar_Go_Forward'/>"
" <toolitem action='Toolbar_Go_Up'/>"
" <toolitem action='View_Stop'/>"
" <separator/>"
@@ -117,7 +112,6 @@ static const char *fixed_ui_info =
" <placeholder name='SourceCommands'/>"
" <separator/>"
" <placeholder name='BrowserCommands'>"
-" <toolitem action='View_Fullscreen'/>"
" </placeholder>"
" <separator/>"
" <placeholder name='Edit_Actions'/>"
@@ -129,12 +123,9 @@ static const char *fixed_ui_info =
" </toolbar>"
" <toolbar name='ViewerToolBar'>"
-" <toolitem action='View_BrowserMode'/>"
-" <separator/>"
" <toolitem action='View_Prev'/>"
" <toolitem action='View_Next'/>"
" <separator/>"
-" <toolitem action='View_Fullscreen'/>"
" <placeholder name='ViewerCommands'/>"
" <separator/>"
" <placeholder name='Edit_Actions'/>"
@@ -171,7 +162,6 @@ static const char *fixed_ui_info =
" </popup>"
" <popup name='FileListPopup'>"
-" <menuitem action='View_Fullscreen'/>"
" <placeholder name='Screen_Actions'/>"
" <separator/>"
" <menu name='OpenWith' action='OpenWithMenu'>"
@@ -189,7 +179,6 @@ static const char *fixed_ui_info =
" </popup>"
" <popup name='FilePopup'>"
-" <menuitem action='View_Fullscreen'/>"
" <placeholder name='Screen_Actions'/>"
" <separator/>"
" <menu name='OpenWith' action='OpenWithMenu'>"
@@ -255,7 +244,6 @@ static const char *viewer_ui_info =
" <menuitem action='View_ShrinkWrap'/>"
" </placeholder>"
" <placeholder name='Folder_Actions'>"
-" <menuitem action='View_BrowserMode'/>"
" </placeholder>"
" </menu>"
" </menubar>"
diff --git a/gthumb/gth-browser.c b/gthumb/gth-browser.c
index b705c66..a9f7e1e 100644
--- a/gthumb/gth-browser.c
+++ b/gthumb/gth-browser.c
@@ -213,9 +213,8 @@ struct _GthBrowserPrivate {
GList *history;
GList *history_current;
- GtkWidget *back_history_menu;
- GtkWidget *forward_history_menu;
GtkWidget *go_parent_menu;
+ GMenu *history_menu;
};
@@ -647,6 +646,7 @@ gth_browser_update_sensitivity (GthBrowser *browser)
_gth_browser_enable_action (browser, "save", viewer_can_save && modified);
_gth_browser_enable_action (browser, "save-as", viewer_can_save);
_gth_browser_enable_action (browser, "revert-to-saved", viewer_can_save && modified);
+ _gth_browser_enable_action (browser, "clear-history", browser->priv->history != NULL);
gth_sidebar_update_sensitivity (GTH_SIDEBAR (browser->priv->file_properties));
@@ -712,45 +712,14 @@ _gth_browser_set_location_from_file (GthBrowser *browser,
static void
_gth_browser_update_go_sensitivity (GthBrowser *browser)
{
- gboolean sensitive;
-
- sensitive = (browser->priv->history_current != NULL) && (browser->priv->history_current->next !=
NULL);
- _gth_browser_set_action_sensitive (browser, "Go_Back", sensitive);
- _gth_browser_set_action_sensitive (browser, "Toolbar_Go_Back", sensitive);
-
- sensitive = (browser->priv->history_current != NULL) && (browser->priv->history_current->prev !=
NULL);
- _gth_browser_set_action_sensitive (browser, "Go_Forward", sensitive);
- _gth_browser_set_action_sensitive (browser, "Toolbar_Go_Forward", sensitive);
-}
-
-
-static void
-activate_clear_history_menu_item (GtkMenuItem *menuitem,
- gpointer data)
-{
- gth_browser_clear_history ((GthBrowser *)data);
-}
-
-
-static void
-_gth_browser_add_clear_history_menu_item (GthBrowser *browser,
- GtkWidget *menu)
-{
- GtkWidget *menu_item;
-
- menu_item = gtk_separator_menu_item_new ();
- gtk_widget_show (menu_item);
- gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item);
-
- menu_item = gtk_image_menu_item_new_with_mnemonic (_("_Delete History"));
- gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_item), gtk_image_new_from_stock
(GTK_STOCK_CLEAR, GTK_ICON_SIZE_MENU));
- gtk_widget_show (menu_item);
- gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item);
-
- g_signal_connect (menu_item,
- "activate",
- G_CALLBACK (activate_clear_history_menu_item),
- browser);
+ g_object_set (g_action_map_lookup_action (G_ACTION_MAP (browser), "go-back"),
+ "enabled",
+ (browser->priv->history_current != NULL) && (browser->priv->history_current->next !=
NULL),
+ NULL);
+ g_object_set (g_action_map_lookup_action (G_ACTION_MAP (browser), "go-forward"),
+ "enabled",
+ (browser->priv->history_current != NULL) && (browser->priv->history_current->prev !=
NULL),
+ NULL);
}
@@ -783,54 +752,50 @@ _gth_browser_history_menu (GthBrowser *browser)
_gth_browser_update_go_sensitivity (browser);
- /* Update the back history menu. */
+ /* Update the history menu model for the headerbar button */
- menu = browser->priv->back_history_menu;
- _gtk_container_remove_children (GTK_CONTAINER (menu), NULL, NULL);
+ g_menu_remove_all (browser->priv->history_menu);
- if ((browser->priv->history != NULL)
- && (browser->priv->history_current->next != NULL))
- {
+ if (browser->priv->history != NULL) {
int i;
- for (i = 0, scan = browser->priv->history_current->next;
- scan && (i < MAX_HISTORY_LENGTH);
- scan = scan->next)
+ for (i = 0, scan = browser->priv->history;
+ scan;
+ scan = scan->next, i++)
{
- _gth_browser_add_file_menu_item (browser,
- menu,
- scan->data,
- NULL,
- GTH_ACTION_GO_BACK,
- ++i);
- }
- if (i > 0)
- _gth_browser_add_clear_history_menu_item (browser, menu);
- }
-
- /* Update the forward history menu. */
+ GFile *file = scan->data;
+ GthFileSource *file_source;
+ GFileInfo *info;
+ char *label;
+ GMenuItem *item;
+ char *target;
+
+ file_source = gth_main_get_file_source (file);
+ info = gth_file_source_get_file_info (file_source, file, GFILE_DISPLAY_ATTRIBUTES);
+ if (info != NULL) {
+ label = g_strdup (g_file_info_get_display_name (info));
+ g_object_unref (info);
+ }
+ else
+ label = _g_file_get_display_name (file);
- menu = browser->priv->forward_history_menu;
- _gtk_container_remove_children (GTK_CONTAINER (menu), NULL, NULL);
+ item = g_menu_item_new (label, NULL);
+ target = g_strdup_printf ("%d", i);
+ g_menu_item_set_action_and_target (item, "win.go-to-history-position", "s", target);
+ g_menu_append_item (browser->priv->history_menu, item);
- if ((browser->priv->history != NULL)
- && (browser->priv->history_current->prev != NULL))
- {
- int i;
+ if (browser->priv->history_current == scan) {
+ GAction *action = g_action_map_lookup_action (G_ACTION_MAP (browser),
"go-to-history-position");
+ g_simple_action_set_state (G_SIMPLE_ACTION (action), g_variant_new_string
(target));
+ }
- for (i = 0, scan = browser->priv->history_current->prev;
- scan && (i < MAX_HISTORY_LENGTH);
- scan = scan->prev)
- {
- _gth_browser_add_file_menu_item (browser,
- menu,
- scan->data,
- NULL,
- GTH_ACTION_GO_FORWARD,
- ++i);
+ g_free (target);
+ g_free (label);
+ g_object_unref (file_source);
}
- if (i > 0)
- _gth_browser_add_clear_history_menu_item (browser, menu);
+
+ /* if (i > 0)
+ _gth_browser_add_clear_history_menu_item (browser, menu); FIXME */
}
/* Update the history list in the go menu */
@@ -2753,9 +2718,8 @@ gth_browser_finalize (GObject *object)
g_hash_table_unref (browser->priv->named_dialogs);
g_free (browser->priv->list_attributes);
_g_object_unref (browser->priv->folder_popup_file_data);
- _g_object_unref (browser->priv->back_history_menu);
- _g_object_unref (browser->priv->forward_history_menu);
_g_object_unref (browser->priv->go_parent_menu);
+ _g_object_unref (browser->priv->history_menu);
G_OBJECT_CLASS (gth_browser_parent_class)->finalize (object);
}
@@ -3884,42 +3848,6 @@ _gth_browser_add_custom_actions (GthBrowser *browser,
{
GtkAction *action;
- /* Go Back */
-
- browser->priv->back_history_menu = gtk_menu_new ();
- action = g_object_new (GTH_TYPE_MENU_ACTION,
- "name", "Toolbar_Go_Back",
- "stock-id", GTK_STOCK_GO_BACK,
- "button-tooltip", _("Go to the previous visited location"),
- "arrow-tooltip", _("View the list of visited locations"),
- "is-important", TRUE,
- "menu", browser->priv->back_history_menu,
- NULL);
- g_signal_connect (action,
- "activate",
- G_CALLBACK (gth_browser_activate_action_go_back),
- browser);
- gtk_action_group_add_action (actions, action);
- g_object_unref (action);
-
- /* Go Forward */
-
- browser->priv->forward_history_menu = gtk_menu_new ();
- action = g_object_new (GTH_TYPE_MENU_ACTION,
- "name", "Toolbar_Go_Forward",
- "stock-id", GTK_STOCK_GO_FORWARD,
- "button-tooltip", _("Go to the next visited location"),
- "arrow-tooltip", _("View the list of visited locations"),
- "is-important", TRUE,
- "menu", browser->priv->forward_history_menu,
- NULL);
- g_signal_connect (action,
- "activate",
- G_CALLBACK (gth_browser_activate_action_go_forward),
- browser);
- gtk_action_group_add_action (actions, action);
- g_object_unref (action);
-
/* Go Up */
browser->priv->go_parent_menu = gtk_menu_new ();
@@ -4406,8 +4334,6 @@ gth_browser_init (GthBrowser *browser)
browser->priv->last_mouse_y = 0.0;
browser->priv->history = NULL;
browser->priv->history_current = NULL;
- browser->priv->back_history_menu = NULL;
- browser->priv->forward_history_menu = NULL;
browser->priv->go_parent_menu = NULL;
browser->priv->shrink_wrap_viewer = FALSE;
browser->priv->browser_settings = g_settings_new (GTHUMB_BROWSER_SCHEMA);
@@ -4601,6 +4527,7 @@ gth_browser_init (GthBrowser *browser)
{
GtkWidget *header_bar;
GtkWidget *button;
+ GMenu *menu;
header_bar = gth_window_get_header_bar (GTH_WINDOW (browser));
@@ -4646,41 +4573,57 @@ gth_browser_init (GthBrowser *browser)
/* browser navigation */
- button = _gtk_image_button_new_for_header_bar ("go-previous-symbolic");
- gtk_activatable_set_use_action_appearance (GTK_ACTIVATABLE (button), FALSE);
- gtk_activatable_set_related_action (GTK_ACTIVATABLE (button), gtk_action_group_get_action
(browser->priv->actions, "Go_Back"));
- gtk_widget_show (button);
- gtk_box_pack_start (GTK_BOX
(browser->priv->header_sections[GTH_BROWSER_HEADER_SECTION_BROWSER_NAVIGATION]), button, FALSE, FALSE, 0);
-
- button = _gtk_image_button_new_for_header_bar ("go-next-symbolic");
- gtk_activatable_set_use_action_appearance (GTK_ACTIVATABLE (button), FALSE);
- gtk_activatable_set_related_action (GTK_ACTIVATABLE (button), gtk_action_group_get_action
(browser->priv->actions, "Go_Forward"));
- gtk_widget_show (button);
- gtk_box_pack_start (GTK_BOX
(browser->priv->header_sections[GTH_BROWSER_HEADER_SECTION_BROWSER_NAVIGATION]), button, FALSE, FALSE, 0);
+ gth_browser_add_header_bar_button (browser,
+ GTH_BROWSER_HEADER_SECTION_BROWSER_NAVIGATION,
+ "go-previous-symbolic",
+ _("Go to the previous visited location"),
+ "win.go-back",
+ "<alt>Left");
+ gth_browser_add_header_bar_button (browser,
+ GTH_BROWSER_HEADER_SECTION_BROWSER_NAVIGATION,
+ "go-next-symbolic",
+ _("Go to the next visited location"),
+ "win.go-forward",
+ "<alt>Right");
+
+ button = _gtk_menu_button_new_for_header_bar ();
+ gtk_widget_set_tooltip_text (button, _("Visited Locations"));
+ gtk_container_add (GTK_CONTAINER (button), gtk_image_new_from_icon_name
("document-open-recent-symbolic", GTK_ICON_SIZE_MENU));
+ browser->priv->history_menu = g_menu_new ();
+ menu = g_menu_new ();
+ g_menu_append_section (menu, _("Visited Locations"), G_MENU_MODEL
(browser->priv->history_menu));
+ gtk_menu_button_set_menu_model (GTK_MENU_BUTTON (button), G_MENU_MODEL (menu));
+ g_object_unref (menu);
+ g_menu_append (menu, _("_Delete History"), "win.clear-history");
+ gtk_widget_show_all (button);
+ gtk_box_pack_start (GTK_BOX (gth_browser_get_headerbar_section (browser,
GTH_BROWSER_HEADER_SECTION_BROWSER_COMMANDS)), button, FALSE, FALSE, 0);
/* browser commands */
- button = _gtk_image_button_new_for_header_bar ("view-fullscreen-symbolic");
- gtk_activatable_set_use_action_appearance (GTK_ACTIVATABLE (button), FALSE);
- gtk_activatable_set_related_action (GTK_ACTIVATABLE (button), gtk_action_group_get_action
(browser->priv->actions, "View_Fullscreen"));
- gtk_widget_show (button);
- gtk_box_pack_start (GTK_BOX
(browser->priv->header_sections[GTH_BROWSER_HEADER_SECTION_BROWSER_VIEW]), button, FALSE, FALSE, 0);
+ gth_browser_add_header_bar_button (browser,
+ GTH_BROWSER_HEADER_SECTION_BROWSER_VIEW,
+ "view-fullscreen-symbolic",
+ _("Switch to fullscreen"),
+ "win.fullscreen",
+ "F11");
/* viewer navigation */
- button = _gtk_image_button_new_for_header_bar ("go-previous-symbolic");
- gtk_activatable_set_use_action_appearance (GTK_ACTIVATABLE (button), FALSE);
- gtk_activatable_set_related_action (GTK_ACTIVATABLE (button), gtk_action_group_get_action
(browser->priv->actions, "View_BrowserMode"));
- gtk_widget_show (button);
- gtk_box_pack_start (GTK_BOX
(browser->priv->header_sections[GTH_BROWSER_HEADER_SECTION_VIEWER_NAVIGATION]), button, FALSE, FALSE, 0);
+ gth_browser_add_header_bar_button (browser,
+ GTH_BROWSER_HEADER_SECTION_VIEWER_NAVIGATION,
+ "go-previous-symbolic",
+ _("View the folders"),
+ "win.browser-mode",
+ "Escape");
/* viewer view */
- button = _gtk_image_button_new_for_header_bar ("view-fullscreen-symbolic");
- gtk_activatable_set_use_action_appearance (GTK_ACTIVATABLE (button), FALSE);
- gtk_activatable_set_related_action (GTK_ACTIVATABLE (button), gtk_action_group_get_action
(browser->priv->actions, "View_Fullscreen"));
- gtk_widget_show (button);
- gtk_box_pack_start (GTK_BOX
(browser->priv->header_sections[GTH_BROWSER_HEADER_SECTION_VIEWER_VIEW]), button, FALSE, FALSE, 0);
+ gth_browser_add_header_bar_button (browser,
+ GTH_BROWSER_HEADER_SECTION_VIEWER_VIEW,
+ "view-fullscreen-symbolic",
+ _("Switch to fullscreen"),
+ "win.fullscreen",
+ "F11");
}
/* toolbar */
@@ -5136,6 +5079,24 @@ gth_browser_go_forward (GthBrowser *browser,
void
+gth_browser_go_to_history_pos (GthBrowser *browser,
+ int pos)
+{
+ GList *new_current;
+
+ new_current = g_list_nth (browser->priv->history, pos);
+ if (new_current == NULL)
+ return;
+
+ if (new_current == browser->priv->history_current)
+ return;
+
+ browser->priv->history_current = new_current;
+ _gth_browser_load (browser, (GFile*) browser->priv->history_current->data, NULL, NULL, 0,
GTH_ACTION_GO_BACK, FALSE);
+}
+
+
+void
gth_browser_go_up (GthBrowser *browser,
int steps)
{
diff --git a/gthumb/gth-browser.h b/gthumb/gth-browser.h
index a21bbc3..9692ec2 100644
--- a/gthumb/gth-browser.h
+++ b/gthumb/gth-browser.h
@@ -110,6 +110,8 @@ void gth_browser_go_back (GthBrowser *browser,
int steps);
void gth_browser_go_forward (GthBrowser *browser,
int steps);
+void gth_browser_go_to_history_pos (GthBrowser *browser,
+ int pos);
void gth_browser_go_up (GthBrowser *browser,
int steps);
void gth_browser_go_home (GthBrowser *browser);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]