summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Butenko <a.butenka@gmail.com>2010-06-17 00:12:17 +0200
committerChristian Dywan <christian@twotoasts.de>2010-06-17 00:12:17 +0200
commit1c249b15b8763da40cd64f997a6c6f097ecbf772 (patch)
tree1ffcca4d7ee5579e192d7fad5c57bb9b7007e12b
parent3d6297e9a3808bd14071425cef2b6fcd8a10599d (diff)
downloadmidori-1c249b15b8763da40cd64f997a6c6f097ecbf772.tar.gz
Fix selecting a directory while adding a new bookmark
Allow folders to be removed
-rw-r--r--TODO3
-rw-r--r--midori/midori-browser.c35
-rw-r--r--panels/midori-bookmarks.c4
3 files changed, 26 insertions, 16 deletions
diff --git a/TODO b/TODO
index 212bae12..6d51e175 100644
--- a/TODO
+++ b/TODO
@@ -98,5 +98,4 @@ BOOKMARK ISSUES:
. Bookmark toolbar is broken
. Import is broken
. Integration with locationbar search
- . Can't remove folder
- . Can't select folder while adding new bookmark
+ . Remove separator from submenu before showing it
diff --git a/midori/midori-browser.c b/midori/midori-browser.c
index 7d73626b..b3d8bce7 100644
--- a/midori/midori-browser.c
+++ b/midori/midori-browser.c
@@ -720,10 +720,17 @@ midori_browser_edit_bookmark_dialog_new (MidoriBrowser* browser,
GtkWidget* combo_folder;
GtkWidget* check_toolbar;
GtkWidget* check_app;
+ #if HAVE_SQLITE
+ sqlite3* db;
+ #endif
if (!browser->bookmarks || !gtk_widget_get_visible (GTK_WIDGET (browser)))
return;
+ #if HAVE_SQLITE
+ db = g_object_get_data (G_OBJECT (browser->bookmarks), "db");
+ #endif
+
if (is_folder)
title = new_bookmark ? _("New folder") : _("Edit folder");
else
@@ -815,8 +822,12 @@ midori_browser_edit_bookmark_dialog_new (MidoriBrowser* browser,
{
GtkListStore* model;
GtkCellRenderer* renderer;
- KatzeItem* item;
+ #if HAVE_SQLITE
guint i, n;
+ sqlite3_stmt* statement;
+ gint result;
+ const gchar* sqlcmd;
+ #endif
hbox = gtk_hbox_new (FALSE, 8);
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);
gtk_combo_box_set_active (GTK_COMBO_BOX (combo_folder), 0);
+ #if HAVE_SQLITE
i = 0;
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 gchar* name = katze_item_get_name (item);
+ const unsigned char* name = sqlite3_column_text (statement, 0);
gtk_list_store_insert_with_values (model, NULL, G_MAXINT,
0, name, 1, PANGO_ELLIPSIZE_END, -1);
- if (katze_item_get_parent (bookmark) == item)
- gtk_combo_box_set_active (GTK_COMBO_BOX (combo_folder), n);
+ /* FIXME: Not working */
+ /*if (katze_item_get_parent (bookmark) == item)
+ gtk_combo_box_set_active (GTK_COMBO_BOX (combo_folder), n);*/
n++;
- }
}
if (n < 2)
gtk_widget_set_sensitive (combo_folder, FALSE);
+ #endif
+
gtk_box_pack_start (GTK_BOX (hbox), combo_folder, TRUE, TRUE, 0);
gtk_container_add (GTK_CONTAINER (content_area), hbox);
gtk_widget_show_all (hbox);
@@ -902,11 +916,6 @@ midori_browser_edit_bookmark_dialog_new (MidoriBrowser* browser,
{
gchar* selected;
KatzeArray* folder;
- #if HAVE_SQLITE
- sqlite3* db;
-
- db = g_object_get_data (G_OBJECT (browser->bookmarks), "db");
- #endif
katze_item_set_name (bookmark,
gtk_entry_get_text (GTK_ENTRY (entry_title)));
diff --git a/panels/midori-bookmarks.c b/panels/midori-bookmarks.c
index 8c9c71ff..598e94b2 100644
--- a/panels/midori-bookmarks.c
+++ b/panels/midori-bookmarks.c
@@ -274,7 +274,9 @@ midori_bookmarks_remove_item_from_db (sqlite3* db,
katze_item_get_uri (item));
else
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)
{