Re-implement 'Bookmarks' menubar and toolbar button
This commit is contained in:
parent
34ddb8c2f0
commit
d39148f230
1 changed files with 59 additions and 1 deletions
|
@ -2561,7 +2561,7 @@ midori_browser_get_toolbar_actions (MidoriBrowser* browser)
|
||||||
{
|
{
|
||||||
static const gchar* actions[] = {
|
static const gchar* actions[] = {
|
||||||
"WindowNew", "TabNew", "Open", "SaveAs", "Print", "Find",
|
"WindowNew", "TabNew", "Open", "SaveAs", "Print", "Find",
|
||||||
"Fullscreen", "Preferences", "Window",
|
"Fullscreen", "Preferences", "Window", "Bookmarks",
|
||||||
"ReloadStop", "ZoomIn", "TabClose",
|
"ReloadStop", "ZoomIn", "TabClose",
|
||||||
"ZoomOut", "Separator", "Back", "Forward", "Homepage",
|
"ZoomOut", "Separator", "Back", "Forward", "Homepage",
|
||||||
"Panel", "Trash", "Search", "BookmarkAdd", "Previous", "Next", NULL };
|
"Panel", "Trash", "Search", "BookmarkAdd", "Previous", "Next", NULL };
|
||||||
|
@ -2820,6 +2820,45 @@ midori_browser_bookmark_popup (GtkWidget* widget,
|
||||||
KatzeItem* item,
|
KatzeItem* item,
|
||||||
MidoriBrowser* browser);
|
MidoriBrowser* browser);
|
||||||
|
|
||||||
|
static gboolean
|
||||||
|
_action_bookmarks_populate_folder (GtkAction* action,
|
||||||
|
GtkMenuShell* menu,
|
||||||
|
KatzeArray* folder,
|
||||||
|
MidoriBrowser* browser)
|
||||||
|
{
|
||||||
|
const char* sqlcmd = "SELECT uri, title, app, folder "
|
||||||
|
"FROM bookmarks WHERE folder = '%q' ORDER BY uri ASC";
|
||||||
|
sqlite3* db = g_object_get_data (G_OBJECT (browser->bookmarks), "db");
|
||||||
|
const gchar* folder_name;
|
||||||
|
char* sqlcmd_folder;
|
||||||
|
KatzeArray* bookmarks;
|
||||||
|
GtkWidget* menuitem;
|
||||||
|
|
||||||
|
if (!db)
|
||||||
|
return;
|
||||||
|
|
||||||
|
/* Clear items from dummy array here */
|
||||||
|
gtk_container_foreach (GTK_CONTAINER (menu),
|
||||||
|
(GtkCallback)(gtk_widget_destroy), NULL);
|
||||||
|
|
||||||
|
folder_name = katze_item_get_name (KATZE_ITEM (folder));
|
||||||
|
sqlcmd_folder = sqlite3_mprintf (sqlcmd, folder_name ? folder_name : "");
|
||||||
|
bookmarks = katze_array_from_sqlite (db, sqlcmd_folder);
|
||||||
|
sqlite3_free (sqlcmd_folder);
|
||||||
|
if (!bookmarks || katze_array_is_empty (bookmarks))
|
||||||
|
{
|
||||||
|
menuitem = gtk_image_menu_item_new_with_label (_("Empty"));
|
||||||
|
gtk_widget_set_sensitive (menuitem, FALSE);
|
||||||
|
gtk_menu_shell_append (menu, menuitem);
|
||||||
|
gtk_widget_show (menuitem);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
katze_array_action_generate_menu (KATZE_ARRAY_ACTION (action), bookmarks,
|
||||||
|
menu, GTK_WIDGET (browser));
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_action_window_populate_popup (GtkAction* action,
|
_action_window_populate_popup (GtkAction* action,
|
||||||
GtkMenu* menu,
|
GtkMenu* menu,
|
||||||
|
@ -5246,6 +5285,7 @@ static const gchar* ui_markup =
|
||||||
"<menuitem action='Search'/>"
|
"<menuitem action='Search'/>"
|
||||||
"<menuitem action='Trash'/>"
|
"<menuitem action='Trash'/>"
|
||||||
"</menu>"
|
"</menu>"
|
||||||
|
"<menuitem action='Bookmarks'/>"
|
||||||
"<menuitem action='Tools'/>"
|
"<menuitem action='Tools'/>"
|
||||||
"<menuitem action='Window'/>"
|
"<menuitem action='Window'/>"
|
||||||
"<menu action='Help'>"
|
"<menu action='Help'>"
|
||||||
|
@ -5651,6 +5691,24 @@ midori_browser_init (MidoriBrowser* browser)
|
||||||
gtk_action_group_add_action_with_accel (browser->action_group, action, "");
|
gtk_action_group_add_action_with_accel (browser->action_group, action, "");
|
||||||
g_object_unref (action);
|
g_object_unref (action);
|
||||||
|
|
||||||
|
action = g_object_new (KATZE_TYPE_ARRAY_ACTION,
|
||||||
|
"name", "Bookmarks",
|
||||||
|
"label", _("_Bookmarks"),
|
||||||
|
"stock-id", STOCK_BOOKMARKS,
|
||||||
|
"tooltip", _("Show the saved bookmarks"),
|
||||||
|
"array", browser->proxy_array, /* Use a non-empty array here */
|
||||||
|
NULL);
|
||||||
|
g_object_connect (action,
|
||||||
|
"signal::populate-folder",
|
||||||
|
_action_bookmarks_populate_folder, browser,
|
||||||
|
"signal::activate-item",
|
||||||
|
midori_bookmarkbar_activate_item, browser,
|
||||||
|
"signal::activate-item-alt",
|
||||||
|
midori_bookmarkbar_activate_item_alt, browser,
|
||||||
|
NULL);
|
||||||
|
gtk_action_group_add_action_with_accel (browser->action_group, action, "");
|
||||||
|
g_object_unref (action);
|
||||||
|
|
||||||
action = g_object_new (KATZE_TYPE_ARRAY_ACTION,
|
action = g_object_new (KATZE_TYPE_ARRAY_ACTION,
|
||||||
"name", "Tools",
|
"name", "Tools",
|
||||||
"label", _("_Tools"),
|
"label", _("_Tools"),
|
||||||
|
|
Loading…
Reference in a new issue