diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/bookmarks/ephy-bookmarks-editor.c | 73 |
1 files changed, 56 insertions, 17 deletions
diff --git a/src/bookmarks/ephy-bookmarks-editor.c b/src/bookmarks/ephy-bookmarks-editor.c index 0258d9aaa..685c762ff 100644 --- a/src/bookmarks/ephy-bookmarks-editor.c +++ b/src/bookmarks/ephy-bookmarks-editor.c @@ -139,6 +139,9 @@ struct EphyBookmarksEditorPrivate int priority_col; EphyToolbarsModel *tb_model; GHashTable *props_dialogs; + + GtkTreeViewColumn *title_col; + GtkTreeViewColumn *address_col; }; enum @@ -196,17 +199,6 @@ static GtkActionEntry ephy_bookmark_popup_entries [] = { N_("Select all bookmarks or text"), G_CALLBACK (cmd_select_all) }, - /* View Menu */ -/* { "ViewTitle", N_("_Title"), NULL, NULL, - N_("Show only the title column"), - NULL, NULL, RADIO_ACTION, NULL }, - { "ViewLocation", N_("_Address"), NULL, NULL, - N_("Show only the address column"), - NULL, NULL, RADIO_ACTION, "ViewTitle" }, - { "ViewTitleLocation", N_("T_itle and Address"), NULL, NULL, - N_("Show both the title and address columns"), - NULL, NULL, RADIO_ACTION, "ViewTitle" }, */ - /* Help Menu */ { "HelpContents", GTK_STOCK_HELP, N_("_Contents"), "F1", N_("Display bookmarks help"), @@ -224,9 +216,25 @@ static GtkToggleActionEntry ephy_bookmark_popup_toggle_entries [] = N_("Show the selected bookmark or topic in the bookmarks bar"), G_CALLBACK (cmd_show_in_bookmarks_bar), FALSE } }; - static guint ephy_bookmark_popup_n_toggle_entries = G_N_ELEMENTS (ephy_bookmark_popup_toggle_entries); +enum +{ + VIEW_TITLE, + VIEW_TITLE_AND_ADDRESS +}; + +static GtkRadioActionEntry ephy_bookmark_radio_entries [] = +{ + /* View Menu */ + { "ViewTitle", NULL, N_("_Title"), NULL, + N_("Show only the title column"), VIEW_TITLE }, + { "ViewTitleAddress", NULL, N_("T_itle and Address"), NULL, + N_("Show both the title and address columns"), + VIEW_TITLE_AND_ADDRESS } +}; +static guint ephy_bookmark_n_radio_entries = G_N_ELEMENTS (ephy_bookmark_radio_entries); + static void entry_selection_changed_cb (GtkWidget *widget, GParamSpec *pspec, EphyBookmarksEditor *editor) { @@ -665,6 +673,30 @@ cmd_help_contents (GtkAction *action, "ephy-managing-bookmarks"); } +static void +cmd_view_columns (GtkAction *action, + GtkRadioAction *current, + EphyBookmarksEditor *editor) +{ + int value; + + g_return_if_fail (EPHY_IS_BOOKMARKS_EDITOR (editor)); + + value = gtk_radio_action_get_current_value (current); + + switch (value) + { + case VIEW_TITLE: + gtk_tree_view_column_set_visible (editor->priv->title_col, TRUE); + gtk_tree_view_column_set_visible (editor->priv->address_col, FALSE); + break; + case VIEW_TITLE_AND_ADDRESS: + gtk_tree_view_column_set_visible (editor->priv->title_col, TRUE); + gtk_tree_view_column_set_visible (editor->priv->address_col, TRUE); + break; + } +} + GType ephy_bookmarks_editor_get_type (void) { @@ -1237,6 +1269,12 @@ ephy_bookmarks_editor_construct (EphyBookmarksEditor *editor) ephy_bookmark_popup_toggle_entries, ephy_bookmark_popup_n_toggle_entries, editor); + gtk_action_group_add_radio_actions (action_group, + ephy_bookmark_radio_entries, + ephy_bookmark_n_radio_entries, + VIEW_TITLE, + G_CALLBACK (cmd_view_columns), + editor); gtk_ui_manager_insert_action_group (ui_merge, action_group, 0); gtk_ui_manager_add_ui_from_file (ui_merge, @@ -1249,10 +1287,6 @@ ephy_bookmarks_editor_construct (EphyBookmarksEditor *editor) editor->priv->ui_merge = ui_merge; editor->priv->action_group = action_group; - /* Fixme: We should implement gconf prefs for monitoring this setting */ -/* action = gtk_action_group_get_action (action_group, "ViewTitle"); - gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), TRUE);*/ - hpaned = gtk_hpaned_new (); gtk_container_set_border_width (GTK_CONTAINER (hpaned), 0); gtk_box_pack_end (GTK_BOX (editor->priv->main_vbox), hpaned, @@ -1352,12 +1386,17 @@ ephy_bookmarks_editor_construct (EphyBookmarksEditor *editor) bmk_drag_types, n_bmk_drag_types, col_id); - ephy_node_view_add_column (EPHY_NODE_VIEW (bm_view), _("Title"), + editor->priv->title_col = ephy_node_view_add_column + (EPHY_NODE_VIEW (bm_view), _("Title"), G_TYPE_STRING, EPHY_NODE_BMK_PROP_TITLE, -1, EPHY_NODE_VIEW_AUTO_SORT | EPHY_NODE_VIEW_EDITABLE | EPHY_NODE_VIEW_SEARCHABLE, provide_favicon); + editor->priv->address_col = ephy_node_view_add_column + (EPHY_NODE_VIEW (bm_view), _("Address"), + G_TYPE_STRING, EPHY_NODE_BMK_PROP_LOCATION, + 0, -1, NULL); gtk_container_add (GTK_CONTAINER (scrolled_window), bm_view); gtk_widget_show (bm_view); editor->priv->bm_view = bm_view; |