diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/bookmarks/ephy-bookmarks-editor.c | 53 | ||||
-rw-r--r-- | src/ephy-history-window.c | 45 |
2 files changed, 47 insertions, 51 deletions
diff --git a/src/bookmarks/ephy-bookmarks-editor.c b/src/bookmarks/ephy-bookmarks-editor.c index 947d31911..e7cfb6b38 100644 --- a/src/bookmarks/ephy-bookmarks-editor.c +++ b/src/bookmarks/ephy-bookmarks-editor.c @@ -1069,15 +1069,15 @@ ephy_bookmarks_editor_update_menu (EphyBookmarksEditor *editor) rename, delete, properties; const gchar *open_in_window_label, *open_in_tab_label, *copy_label; gboolean bmk_focus, key_focus; - gboolean key_selection, bmk_selection; + gboolean key_selection, bmk_selection, single_bmk_selected; gboolean key_normal = FALSE; - gboolean bmk_multiple_selection; gboolean cut, copy, paste, select_all; gboolean can_show_in_bookmarks_bar, show_in_bookmarks_bar = FALSE; GtkActionGroup *action_group; GtkAction *action; GList *selected; GtkWidget *focus_widget; + int num_bmk_selected; LOG ("Update menu sensitivity") @@ -1086,11 +1086,14 @@ ephy_bookmarks_editor_update_menu (EphyBookmarksEditor *editor) key_focus = ephy_node_view_is_target (EPHY_NODE_VIEW (editor->priv->key_view)); focus_widget = gtk_window_get_focus (GTK_WINDOW (editor)); - bmk_selection = ephy_node_view_has_selection - (EPHY_NODE_VIEW (editor->priv->bm_view), - &bmk_multiple_selection); - key_selection = ephy_node_view_has_selection - (EPHY_NODE_VIEW (editor->priv->key_view), NULL); + + num_bmk_selected = gtk_tree_selection_count_selected_rows + (gtk_tree_view_get_selection (GTK_TREE_VIEW (editor->priv->bm_view))); + bmk_selection = num_bmk_selected > 0; + single_bmk_selected = num_bmk_selected == 1; + + key_selection = gtk_tree_selection_count_selected_rows + (gtk_tree_view_get_selection (GTK_TREE_VIEW (editor->priv->key_view))) > 0; if (GTK_IS_EDITABLE (focus_widget)) { @@ -1107,7 +1110,7 @@ ephy_bookmarks_editor_update_menu (EphyBookmarksEditor *editor) else { cut = FALSE; - copy = (bmk_focus && !bmk_multiple_selection && bmk_selection); + copy = (bmk_focus && single_bmk_selected); paste = FALSE; select_all = bmk_focus; } @@ -1146,16 +1149,12 @@ ephy_bookmarks_editor_update_menu (EphyBookmarksEditor *editor) g_list_free (selected); } - if (bmk_multiple_selection) - { - open_in_window_label = N_("_Open in New Windows"); - open_in_tab_label = N_("Open in New _Tabs"); - } - else - { - open_in_window_label = _("_Open in New Window"); - open_in_tab_label = _("Open in New _Tab"); - } + open_in_window_label = ngettext ("_Open in New Window", + "_Open in New Windows", + num_bmk_selected); + open_in_tab_label = ngettext ("Open in New _Tab", + "Open in New _Tabs", + num_bmk_selected); if (bmk_focus) { @@ -1168,21 +1167,21 @@ ephy_bookmarks_editor_update_menu (EphyBookmarksEditor *editor) open_in_window = (bmk_focus && bmk_selection); open_in_tab = (bmk_focus && bmk_selection); - rename = (bmk_focus && bmk_selection && !bmk_multiple_selection) || + rename = (bmk_focus && single_bmk_selected) || (key_selection && key_focus && key_normal); delete = (bmk_focus && bmk_selection) || (key_selection && key_focus && key_normal); - properties = (bmk_focus && bmk_selection && !bmk_multiple_selection); - can_show_in_bookmarks_bar = (bmk_focus && bmk_selection && !bmk_multiple_selection) || + properties = (bmk_focus && single_bmk_selected); + can_show_in_bookmarks_bar = (bmk_focus && single_bmk_selected) || (key_selection && key_focus); action_group = editor->priv->action_group; action = gtk_action_group_get_action (action_group, "OpenInWindow"); - g_object_set (action, "sensitive", open_in_window, NULL); - g_object_set (action, "label", open_in_window_label, NULL); + g_object_set (action, "sensitive", open_in_window, + "label", open_in_window_label, NULL); action = gtk_action_group_get_action (action_group, "OpenInTab"); - g_object_set (action, "sensitive", open_in_tab, NULL); - g_object_set (action, "label", open_in_tab_label, NULL); + g_object_set (action, "sensitive", open_in_tab, + "label", open_in_tab_label, NULL); action = gtk_action_group_get_action (action_group, "Rename"); g_object_set (action, "sensitive", rename, NULL); action = gtk_action_group_get_action (action_group, "Delete"); @@ -1192,8 +1191,8 @@ ephy_bookmarks_editor_update_menu (EphyBookmarksEditor *editor) action = gtk_action_group_get_action (action_group, "Cut"); g_object_set (action, "sensitive", cut, NULL); action = gtk_action_group_get_action (action_group, "Copy"); - g_object_set (action, "sensitive", copy, NULL); - g_object_set (action, "label", copy_label, NULL); + g_object_set (action, "sensitive", copy, + "label", copy_label, NULL); action = gtk_action_group_get_action (action_group, "Paste"); g_object_set (action, "sensitive", paste, NULL); action = gtk_action_group_get_action (action_group, "SelectAll"); diff --git a/src/ephy-history-window.c b/src/ephy-history-window.c index 88117b567..a253c400c 100644 --- a/src/ephy-history-window.c +++ b/src/ephy-history-window.c @@ -672,9 +672,9 @@ ephy_history_window_update_menu (EphyHistoryWindow *editor) { gboolean open_in_window, open_in_tab; gboolean cut, copy, paste, select_all; - gboolean pages_focus, pages_selection; - gboolean pages_multiple_selection; + gboolean pages_focus, pages_selection, single_page_selected; gboolean delete, bookmark_page; + int num_pages_selected; GtkActionGroup *action_group; GtkAction *action; char *open_in_window_label, *open_in_tab_label, *copy_label; @@ -682,9 +682,11 @@ ephy_history_window_update_menu (EphyHistoryWindow *editor) pages_focus = ephy_node_view_is_target (EPHY_NODE_VIEW (editor->priv->pages_view)); - pages_selection = ephy_node_view_has_selection - (EPHY_NODE_VIEW (editor->priv->pages_view), - &pages_multiple_selection); + num_pages_selected = gtk_tree_selection_count_selected_rows + (gtk_tree_view_get_selection (GTK_TREE_VIEW (editor->priv->pages_view))); + pages_selection = num_pages_selected > 0; + single_page_selected = num_pages_selected == 1; + focus_widget = gtk_window_get_focus (GTK_WINDOW (editor)); if (GTK_IS_EDITABLE (focus_widget)) @@ -702,21 +704,17 @@ ephy_history_window_update_menu (EphyHistoryWindow *editor) else { cut = FALSE; - copy = (pages_focus && !pages_multiple_selection && pages_selection); + copy = (pages_focus && single_page_selected); paste = FALSE; select_all = pages_focus; } - if (pages_multiple_selection) - { - open_in_window_label = N_("_Open in New Windows"); - open_in_tab_label = N_("Open in New _Tabs"); - } - else - { - open_in_window_label = _("_Open in New Window"); - open_in_tab_label = _("Open in New _Tab"); - } + open_in_window_label = ngettext ("_Open in New Window", + "_Open in New Windows", + num_pages_selected); + open_in_tab_label = ngettext ("Open in New _Tab", + "Open in New _Tabs", + num_pages_selected); if (pages_focus) { @@ -727,24 +725,23 @@ ephy_history_window_update_menu (EphyHistoryWindow *editor) copy_label = _("_Copy"); } - open_in_window = (pages_focus && pages_selection); open_in_tab = (pages_focus && pages_selection); delete = (pages_focus && pages_selection); - bookmark_page = (pages_focus && pages_selection && !pages_multiple_selection); + bookmark_page = (pages_focus && single_page_selected); action_group = editor->priv->action_group; action = gtk_action_group_get_action (action_group, "OpenInWindow"); - g_object_set (action, "sensitive", open_in_window, NULL); - g_object_set (action, "label", open_in_window_label, NULL); + g_object_set (action, "sensitive", open_in_window, + "label", open_in_window_label, NULL); action = gtk_action_group_get_action (action_group, "OpenInTab"); - g_object_set (action, "sensitive", open_in_tab, NULL); - g_object_set (action, "label", open_in_tab_label, NULL); + g_object_set (action, "sensitive", open_in_tab, + "label", open_in_tab_label, NULL); action = gtk_action_group_get_action (action_group, "Cut"); g_object_set (action, "sensitive", cut, NULL); action = gtk_action_group_get_action (action_group, "Copy"); - g_object_set (action, "sensitive", copy, NULL); - g_object_set (action, "label", copy_label, NULL); + g_object_set (action, "sensitive", copy, + "label", copy_label, NULL); action = gtk_action_group_get_action (action_group, "Paste"); g_object_set (action, "sensitive", paste, NULL); action = gtk_action_group_get_action (action_group, "SelectAll"); |