Merge lp:~midori/midori/bookmarkall into lp:midori

Proposed by Cris Dywan
Status: Work in progress
Proposed branch: lp:~midori/midori/bookmarkall
Merge into: lp:midori
Diff against target: 84 lines (+67/-0)
1 file modified
midori/midori-view.c (+67/-0)
To merge this branch: bzr merge lp:~midori/midori/bookmarkall
Reviewer Review Type Date Requested Status
Midori Devs Pending
Review via email: mp+166499@code.launchpad.net

Description of the change

Add 'Bookmark All Tabs' context menu item

To post a comment you must log in.
Revision history for this message
Cris Dywan (kalikiana) wrote :

I updated Patrick's patch against the latest trunk. This isn't my patch so I'm not making any promises to work on this further and I haven't done more than a very rough test run. The branch is in the project folder so somebody can pick it up.

Revision history for this message
Cris Dywan (kalikiana) wrote :

Any interest in this at all? Otherwise I'll be removing it from the Needs Review state.

Revision history for this message
André Stösel (ivaldi) wrote :

I'm just wondering if "tabs2one" would be a better solution for this...

Revision history for this message
André Auzi (aauzi) wrote :

This could use the bookmark folder creation dialog, couldn'it?

It would benefit from parent folder selection, as firefox does.

Unmerged revisions

6182. By Patrick Haugen

Add 'Bookmark All Tabs' context menu item

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'midori/midori-view.c'
2--- midori/midori-view.c 2013-05-29 09:20:28 +0000
3+++ midori/midori-view.c 2013-05-30 12:45:42 +0000
4@@ -4840,6 +4840,69 @@
5 midori_browser_close_tab (midori_browser_get_for_widget (view), view);
6 }
7
8+static void
9+midori_view_tab_label_menu_bookmark_all_tabs_cb (GtkWidget* menuitem,
10+ GtkWidget* view)
11+{
12+ MidoriBrowser* browser = midori_browser_get_for_widget (view);
13+ KatzeArray* bookmarks = katze_object_get_object (browser, "bookmarks");
14+ GtkWidget* dialog;
15+ GtkWidget* content_area;
16+ GtkWidget* vbox;
17+ GtkWidget* label;
18+ GtkWidget* entry;
19+ gint result;
20+ KatzeItem* folder = NULL;
21+
22+ dialog = gtk_dialog_new_with_buttons (_("New Folder"),
23+ GTK_WINDOW (browser),
24+ GTK_DIALOG_MODAL,
25+ GTK_STOCK_ADD, GTK_RESPONSE_ACCEPT,
26+ GTK_STOCK_CLOSE, GTK_RESPONSE_REJECT, NULL);
27+ content_area = gtk_dialog_get_content_area (GTK_DIALOG (dialog));
28+ gtk_window_set_icon_name (GTK_WINDOW (dialog), GTK_STOCK_ADD);
29+ gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_ACCEPT);
30+ gtk_container_set_border_width (GTK_CONTAINER (dialog), 5);
31+ gtk_container_set_border_width (GTK_CONTAINER (content_area), 5);
32+
33+ vbox = gtk_vbox_new (FALSE, 12);
34+ label = gtk_label_new (_("Enter the name for the new folder:"));
35+ gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0);
36+ entry = gtk_entry_new ();
37+ gtk_entry_set_max_length(GTK_ENTRY (entry), 20);
38+ gtk_entry_set_activates_default (GTK_ENTRY (entry), TRUE);
39+ gtk_box_pack_end (GTK_BOX (vbox), entry, TRUE, TRUE, 0);
40+ gtk_container_add (GTK_CONTAINER (content_area), vbox);
41+ gtk_widget_show_all (content_area);
42+
43+ result = gtk_dialog_run (GTK_DIALOG (dialog));
44+
45+ if (result == GTK_RESPONSE_ACCEPT)
46+ {
47+ if (gtk_entry_get_text (GTK_ENTRY (entry)))
48+ {
49+ folder = g_object_new (KATZE_TYPE_ITEM, "name",
50+ gtk_entry_get_text (GTK_ENTRY (entry)),
51+ NULL);
52+ g_signal_emit_by_name (bookmarks, "add-item", folder);
53+ }
54+ GList* tabs = midori_browser_get_tabs (browser);
55+ for (; tabs; tabs = g_list_next (tabs))
56+ {
57+ MidoriView* view = tabs->data;
58+ KatzeItem* item = g_object_new (KATZE_TYPE_ITEM,
59+ "uri", midori_view_get_display_uri (MIDORI_VIEW (view)),
60+ "name", midori_view_get_display_title (MIDORI_VIEW (view)),
61+ NULL);
62+ katze_item_set_parent (item, folder);
63+ g_signal_emit_by_name (bookmarks, "add-item", item);
64+ }
65+ g_list_free (tabs);
66+ }
67+ gtk_widget_destroy (dialog);
68+ g_object_unref (bookmarks);
69+}
70+
71 /**
72 * midori_view_get_tab_menu:
73 * @view: a #MidoriView
74@@ -4880,6 +4943,10 @@
75 gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem);
76 g_signal_connect (menuitem, "activate",
77 G_CALLBACK (midori_view_tab_label_menu_window_new_cb), view);
78+ menuitem = gtk_menu_item_new_with_mnemonic (_("_Bookmark All Tabs"));
79+ gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem);
80+ g_signal_connect (menuitem, "activate",
81+ G_CALLBACK (midori_view_tab_label_menu_bookmark_all_tabs_cb), view);
82 menuitem = gtk_menu_item_new_with_mnemonic (_("_Duplicate Tab"));
83 gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem);
84 g_signal_connect (menuitem, "activate",

Subscribers

People subscribed via source and target branches

to all changes: