From ad5066a43fa8baeb25f64afcce3c2b1582455f6e Mon Sep 17 00:00:00 2001 From: Alexander Butenko Date: Fri, 2 Jul 2010 00:50:14 -0400 Subject: [PATCH] Remove ghosts after bookmark edit. Merge edit/ delete callbacks --- midori/midori-browser.c | 7 ++++-- panels/midori-bookmarks.c | 52 +++++++-------------------------------- 2 files changed, 14 insertions(+), 45 deletions(-) diff --git a/midori/midori-browser.c b/midori/midori-browser.c index d043310c..eb73654e 100644 --- a/midori/midori-browser.c +++ b/midori/midori-browser.c @@ -700,7 +700,7 @@ midori_browser_edit_bookmark_add_speed_dial_cb (GtkWidget* button, } /* Private function, used by MidoriBookmarks and MidoriHistory */ -/* static */ void +/* static */ gboolean midori_browser_edit_bookmark_dialog_new (MidoriBrowser* browser, KatzeItem* bookmark, gboolean new_bookmark, @@ -720,12 +720,13 @@ midori_browser_edit_bookmark_dialog_new (MidoriBrowser* browser, GtkWidget* combo_folder; GtkWidget* check_toolbar; GtkWidget* check_app; + gboolean return_status = FALSE; #if HAVE_SQLITE sqlite3* db; #endif if (!browser->bookmarks || !gtk_widget_get_visible (GTK_WIDGET (browser))) - return; + return FALSE; #if HAVE_SQLITE db = g_object_get_data (G_OBJECT (browser->bookmarks), "db"); @@ -954,8 +955,10 @@ midori_browser_edit_bookmark_dialog_new (MidoriBrowser* browser, _action_set_active (browser, "Bookmarkbar", TRUE); #endif g_free (selected); + return_status = TRUE; } gtk_widget_destroy (dialog); + return return_status; } #if WEBKIT_CHECK_VERSION (1, 1, 3) diff --git a/panels/midori-bookmarks.c b/panels/midori-bookmarks.c index 0604fcd4..33687c27 100644 --- a/panels/midori-bookmarks.c +++ b/panels/midori-bookmarks.c @@ -25,7 +25,7 @@ #include -void +gboolean midori_browser_edit_bookmark_dialog_new (MidoriBrowser* browser, KatzeItem* bookmark, gboolean new_bookmark, @@ -303,9 +303,12 @@ midori_bookmarks_edit_clicked_cb (GtkWidget* toolitem, g_assert (!KATZE_ITEM_IS_SEPARATOR (item)); - browser = midori_browser_get_for_widget (toolitem); - midori_browser_edit_bookmark_dialog_new (browser, item, FALSE, KATZE_ITEM_IS_FOLDER (item)); - + browser = midori_browser_get_for_widget (bookmarks->treeview); + if (midori_browser_edit_bookmark_dialog_new ( + browser, item, FALSE, KATZE_ITEM_IS_FOLDER (item))) + { + gtk_tree_store_remove (GTK_TREE_STORE (model), &iter); + } g_object_unref (item); } } @@ -695,43 +698,6 @@ midori_bookmarks_open_in_window_activate_cb (GtkWidget* menuitem, } } -static void -midori_bookmarks_edit_activate_cb (GtkWidget* menuitem, - MidoriBookmarks* bookmarks) -{ - KatzeItem* item; - MidoriBrowser* browser; - - item = (KatzeItem*)g_object_get_data (G_OBJECT (menuitem), "KatzeItem"); - g_assert (!KATZE_ITEM_IS_SEPARATOR (item)); - - browser = midori_browser_get_for_widget (GTK_WIDGET (bookmarks)); - midori_browser_edit_bookmark_dialog_new (browser, item, FALSE, KATZE_ITEM_IS_FOLDER (item)); -} - -static void -midori_bookmarks_delete_activate_cb (GtkWidget* menuitem, - MidoriBookmarks* bookmarks) -{ - KatzeItem* item; - #if HAVE_SQLITE - sqlite3* db; - #endif - GtkTreeModel* model; - GtkTreeIter iter; - - if (katze_tree_view_get_selected_iter (GTK_TREE_VIEW (bookmarks->treeview), - &model, &iter)) - { - item = (KatzeItem*)g_object_get_data (G_OBJECT (menuitem), "KatzeItem"); - #if HAVE_SQLITE - db = g_object_get_data (G_OBJECT (bookmarks->array), "db"); - midori_bookmarks_remove_item_from_db (db, item); - #endif - gtk_tree_store_remove (GTK_TREE_STORE (model), &iter); - } -} - static void midori_bookmarks_popup (GtkWidget* widget, GdkEventButton* event, @@ -759,9 +725,9 @@ midori_bookmarks_popup (GtkWidget* widget, gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem); gtk_widget_show (menuitem); midori_bookmarks_popup_item (menu, GTK_STOCK_EDIT, NULL, - item, midori_bookmarks_edit_activate_cb, bookmarks); + item, midori_bookmarks_edit_clicked_cb, bookmarks); midori_bookmarks_popup_item (menu, GTK_STOCK_DELETE, NULL, - item, midori_bookmarks_delete_activate_cb, bookmarks); + item, midori_bookmarks_delete_clicked_cb, bookmarks); katze_widget_popup (widget, GTK_MENU (menu), event, KATZE_MENU_POSITION_CURSOR); }