Fix selecting a directory while adding a new bookmark

Allow folders to be removed
This commit is contained in:
Alexander Butenko 2010-06-14 03:00:05 -04:00 committed by Christian Dywan
parent 09d9615964
commit f55377e7f3
3 changed files with 26 additions and 16 deletions

3
TODO
View file

@ -98,5 +98,4 @@ BOOKMARK ISSUES:
. Bookmark toolbar is broken . Bookmark toolbar is broken
. Import is broken . Import is broken
. Integration with locationbar search . Integration with locationbar search
. Can't remove folder . Remove separator from submenu before showing it
. Can't select folder while adding new bookmark

View file

@ -720,10 +720,17 @@ midori_browser_edit_bookmark_dialog_new (MidoriBrowser* browser,
GtkWidget* combo_folder; GtkWidget* combo_folder;
GtkWidget* check_toolbar; GtkWidget* check_toolbar;
GtkWidget* check_app; GtkWidget* check_app;
#if HAVE_SQLITE
sqlite3* db;
#endif
if (!browser->bookmarks || !gtk_widget_get_visible (GTK_WIDGET (browser))) if (!browser->bookmarks || !gtk_widget_get_visible (GTK_WIDGET (browser)))
return; return;
#if HAVE_SQLITE
db = g_object_get_data (G_OBJECT (browser->bookmarks), "db");
#endif
if (is_folder) if (is_folder)
title = new_bookmark ? _("New folder") : _("Edit folder"); title = new_bookmark ? _("New folder") : _("Edit folder");
else else
@ -815,8 +822,12 @@ midori_browser_edit_bookmark_dialog_new (MidoriBrowser* browser,
{ {
GtkListStore* model; GtkListStore* model;
GtkCellRenderer* renderer; GtkCellRenderer* renderer;
KatzeItem* item; #if HAVE_SQLITE
guint i, n; guint i, n;
sqlite3_stmt* statement;
gint result;
const gchar* sqlcmd;
#endif
hbox = gtk_hbox_new (FALSE, 8); hbox = gtk_hbox_new (FALSE, 8);
gtk_container_set_border_width (GTK_CONTAINER (hbox), 4); gtk_container_set_border_width (GTK_CONTAINER (hbox), 4);
@ -833,22 +844,25 @@ midori_browser_edit_bookmark_dialog_new (MidoriBrowser* browser,
0, _("Toplevel folder"), 1, PANGO_ELLIPSIZE_END, -1); 0, _("Toplevel folder"), 1, PANGO_ELLIPSIZE_END, -1);
gtk_combo_box_set_active (GTK_COMBO_BOX (combo_folder), 0); gtk_combo_box_set_active (GTK_COMBO_BOX (combo_folder), 0);
#if HAVE_SQLITE
i = 0; i = 0;
n = 1; n = 1;
while ((item = katze_array_get_nth_item (browser->bookmarks, i++))) sqlcmd = "SELECT title from bookmarks where type=0";
result = sqlite3_prepare_v2 (db, sqlcmd, -1, &statement, NULL);
while ((result = sqlite3_step (statement)) == SQLITE_ROW)
{ {
if (KATZE_IS_ARRAY (item) && item != bookmark) const unsigned char* name = sqlite3_column_text (statement, 0);
{
const gchar* name = katze_item_get_name (item);
gtk_list_store_insert_with_values (model, NULL, G_MAXINT, gtk_list_store_insert_with_values (model, NULL, G_MAXINT,
0, name, 1, PANGO_ELLIPSIZE_END, -1); 0, name, 1, PANGO_ELLIPSIZE_END, -1);
if (katze_item_get_parent (bookmark) == item) /* FIXME: Not working */
gtk_combo_box_set_active (GTK_COMBO_BOX (combo_folder), n); /*if (katze_item_get_parent (bookmark) == item)
gtk_combo_box_set_active (GTK_COMBO_BOX (combo_folder), n);*/
n++; n++;
}
} }
if (n < 2) if (n < 2)
gtk_widget_set_sensitive (combo_folder, FALSE); gtk_widget_set_sensitive (combo_folder, FALSE);
#endif
gtk_box_pack_start (GTK_BOX (hbox), combo_folder, TRUE, TRUE, 0); gtk_box_pack_start (GTK_BOX (hbox), combo_folder, TRUE, TRUE, 0);
gtk_container_add (GTK_CONTAINER (content_area), hbox); gtk_container_add (GTK_CONTAINER (content_area), hbox);
gtk_widget_show_all (hbox); gtk_widget_show_all (hbox);
@ -902,11 +916,6 @@ midori_browser_edit_bookmark_dialog_new (MidoriBrowser* browser,
{ {
gchar* selected; gchar* selected;
KatzeArray* folder; KatzeArray* folder;
#if HAVE_SQLITE
sqlite3* db;
db = g_object_get_data (G_OBJECT (browser->bookmarks), "db");
#endif
katze_item_set_name (bookmark, katze_item_set_name (bookmark,
gtk_entry_get_text (GTK_ENTRY (entry_title))); gtk_entry_get_text (GTK_ENTRY (entry_title)));

View file

@ -274,7 +274,9 @@ midori_bookmarks_remove_item_from_db (sqlite3* db,
katze_item_get_uri (item)); katze_item_get_uri (item));
else else
sqlcmd = sqlite3_mprintf ( sqlcmd = sqlite3_mprintf (
"DELETE FROM bookmarks WHERE folder = '%q'", katze_item_get_name (item)); "DELETE FROM bookmarks WHERE folder = '%q' OR title = '%q'",
katze_item_get_name (item),
katze_item_get_name (item));
if (sqlite3_exec (db, sqlcmd, NULL, NULL, &errmsg) != SQLITE_OK) if (sqlite3_exec (db, sqlcmd, NULL, NULL, &errmsg) != SQLITE_OK)
{ {