[midori] Add patch to fix bookmarks. https://bugs.launchpad.net/midori/+bug/874592
Kevin Fenzi
kevin at fedoraproject.org
Mon Oct 24 16:55:31 UTC 2011
commit 152bf9160b6ef4b3b374f09bdb811719e73a3880
Author: Kevin Fenzi <kevin at scrye.com>
Date: Mon Oct 24 10:55:28 2011 -0600
Add patch to fix bookmarks.
https://bugs.launchpad.net/midori/+bug/874592
midori-0.4.1-bookmarks-combobox.patch | 221 +++++++++++++++++++++++++++++++++
midori.spec | 10 ++-
2 files changed, 230 insertions(+), 1 deletions(-)
---
diff --git a/midori-0.4.1-bookmarks-combobox.patch b/midori-0.4.1-bookmarks-combobox.patch
new file mode 100644
index 0000000..b462c70
--- /dev/null
+++ b/midori-0.4.1-bookmarks-combobox.patch
@@ -0,0 +1,221 @@
+From c06fbee023798cfed102be951d2d907b4cc11b6f Mon Sep 17 00:00:00 2001
+From: Christian Dywan <christian at twotoasts.de>
+Date: Thu, 20 Oct 2011 20:19:41 +0000
+Subject: Merge bookmark folder combo into helper functions
+
+Fixes: https://bugs.launchpad.net/midori/+bug/874592
+---
+diff --git a/midori/midori-browser.c b/midori/midori-browser.c
+index 66cfcc6..6ee7942 100644
+--- a/midori/midori-browser.c
++++ b/midori/midori-browser.c
+@@ -674,6 +674,67 @@ midori_view_notify_statusbar_text_cb (GtkWidget* view,
+ }
+ }
+
++static GtkWidget*
++midori_bookmark_folder_button_new (KatzeArray* array,
++ gboolean new_bookmark,
++ const gchar* selected)
++{
++ GtkListStore* model;
++ GtkWidget* combo;
++ GtkCellRenderer* renderer;
++ guint n;
++ sqlite3* db;
++ sqlite3_stmt* statement;
++ gint result;
++ const gchar* sqlcmd = "SELECT title from bookmarks where uri=''";
++
++ model = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_INT);
++ combo = gtk_combo_box_new_with_model (GTK_TREE_MODEL (model));
++ renderer = gtk_cell_renderer_text_new ();
++ gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo), renderer, TRUE);
++ gtk_cell_layout_add_attribute (GTK_CELL_LAYOUT (combo), renderer, "text", 0);
++ gtk_cell_layout_add_attribute (GTK_CELL_LAYOUT (combo), renderer, "ellipsize", 1);
++ gtk_list_store_insert_with_values (model, NULL, G_MAXINT,
++ 0, _("Toplevel folder"), 1, PANGO_ELLIPSIZE_END, -1);
++ gtk_combo_box_set_active (GTK_COMBO_BOX (combo), 0);
++
++ db = g_object_get_data (G_OBJECT (array), "db");
++ g_return_val_if_fail (db != NULL, NULL);
++ n = 1;
++ result = sqlite3_prepare_v2 (db, sqlcmd, -1, &statement, NULL);
++ while ((result = sqlite3_step (statement)) == SQLITE_ROW)
++ {
++ 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 (!new_bookmark && !g_strcmp0 (selected, (gchar*)name))
++ gtk_combo_box_set_active (GTK_COMBO_BOX (combo), n);
++ n++;
++ }
++ if (n < 2)
++ gtk_widget_set_sensitive (combo, FALSE);
++ return combo;
++}
++
++static gchar*
++midori_bookmark_folder_button_get_active (GtkWidget* combo)
++{
++ gchar* selected = NULL;
++ GtkTreeIter iter;
++
++ g_return_val_if_fail (GTK_IS_COMBO_BOX (combo), NULL);
++
++ if (gtk_combo_box_get_active_iter (GTK_COMBO_BOX (combo), &iter))
++ {
++ GtkTreeModel* model = gtk_combo_box_get_model (GTK_COMBO_BOX (combo));
++ gtk_tree_model_get (GTK_TREE_MODEL (model), &iter, 0, &selected, -1);
++ if (g_str_equal (selected, _("Toplevel folder")))
++ katze_assign (selected, g_strdup (""));
++ }
++
++ return selected;
++}
++
+ static void
+ midori_browser_edit_bookmark_title_changed_cb (GtkEntry* entry,
+ GtkDialog* dialog)
+@@ -802,51 +863,16 @@ midori_browser_edit_bookmark_dialog_new (MidoriBrowser* browser,
+ gtk_widget_show_all (hbox);
+ }
+
+- combo_folder = NULL;
+- if (1)
+- {
+- GtkListStore* model;
+- GtkCellRenderer* renderer;
+- guint n;
+- sqlite3_stmt* statement;
+- gint result;
+- const gchar* sqlcmd;
+-
+- hbox = gtk_hbox_new (FALSE, 8);
+- gtk_container_set_border_width (GTK_CONTAINER (hbox), 4);
+- label = gtk_label_new_with_mnemonic (_("_Folder:"));
+- gtk_size_group_add_widget (sizegroup, label);
+- gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
+- model = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_INT);
+- combo_folder = gtk_combo_box_new_with_model (GTK_TREE_MODEL (model));
+- renderer = gtk_cell_renderer_text_new ();
+- gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo_folder), renderer, TRUE);
+- gtk_cell_layout_add_attribute (GTK_CELL_LAYOUT (combo_folder), renderer, "text", 0);
+- gtk_cell_layout_add_attribute (GTK_CELL_LAYOUT (combo_folder), renderer, "ellipsize", 1);
+- gtk_list_store_insert_with_values (model, NULL, G_MAXINT,
+- 0, _("Toplevel folder"), 1, PANGO_ELLIPSIZE_END, -1);
+- gtk_combo_box_set_active (GTK_COMBO_BOX (combo_folder), 0);
+-
+- n = 1;
+- sqlcmd = "SELECT title from bookmarks where uri=''";
+- result = sqlite3_prepare_v2 (db, sqlcmd, -1, &statement, NULL);
+- while ((result = sqlite3_step (statement)) == SQLITE_ROW)
+- {
+- 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 (!new_bookmark && katze_item_get_meta_string (bookmark, "folder")
+- && g_str_equal (katze_item_get_meta_string (bookmark, "folder"), name))
+- gtk_combo_box_set_active (GTK_COMBO_BOX (combo_folder), n);
+- n++;
+- }
+- if (n < 2)
+- gtk_widget_set_sensitive (combo_folder, FALSE);
+-
+- 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);
+- }
++ hbox = gtk_hbox_new (FALSE, 8);
++ gtk_container_set_border_width (GTK_CONTAINER (hbox), 4);
++ label = gtk_label_new_with_mnemonic (_("_Folder:"));
++ gtk_size_group_add_widget (sizegroup, label);
++ gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
++ combo_folder = midori_bookmark_folder_button_new (browser->bookmarks,
++ new_bookmark, katze_item_get_meta_string (bookmark, "folder"));
++ 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);
+
+ if (new_bookmark && !is_folder)
+ {
+@@ -911,10 +937,7 @@ midori_browser_edit_bookmark_dialog_new (MidoriBrowser* browser,
+ gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (check_app)));
+ }
+
+- selected = gtk_combo_box_text_get_active_text (
+- GTK_COMBO_BOX_TEXT (combo_folder));
+- if (!strcmp (selected, _("Toplevel folder")))
+- katze_assign (selected, g_strdup (""));
++ selected = midori_bookmark_folder_button_get_active (combo_folder);
+ katze_item_set_meta_string (bookmark, "folder", selected);
+ katze_array_add_item (browser->bookmarks, bookmark);
+
+@@ -4222,14 +4245,10 @@ _action_bookmarks_import_activate (GtkAction* action,
+ GtkComboBox* combobox;
+ GtkListStore* model;
+ GtkCellRenderer* renderer;
+- GtkComboBox* combobox_folder;
++ GtkWidget* combobox_folder;
+ gint icon_width = 16;
+ guint i;
+- KatzeItem* item;
+ KatzeArray* bookmarks;
+- sqlite3* db;
+- const gchar* sqlcmd;
+- KatzeArray* bookmarkdirs;
+
+ if (!browser->bookmarks || !gtk_widget_get_visible (GTK_WIDGET (browser)))
+ return;
+@@ -4329,40 +4348,24 @@ _action_bookmarks_import_activate (GtkAction* action,
+ label = gtk_label_new_with_mnemonic (_("_Folder:"));
+ gtk_size_group_add_widget (sizegroup, label);
+ gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
+- combo = gtk_combo_box_text_new ();
+- combobox_folder = GTK_COMBO_BOX (combo);
+- gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combobox_folder),
+- _("Toplevel folder"));
+- gtk_combo_box_set_active (combobox_folder, 0);
+-
+- db = g_object_get_data (G_OBJECT (browser->bookmarks), "db");
+- sqlcmd = "SELECT title from bookmarks where uri=''";
+- bookmarkdirs = katze_array_from_sqlite (db, sqlcmd);
+- KATZE_ARRAY_FOREACH_ITEM (item, bookmarkdirs)
+- {
+- const gchar* name = katze_item_get_name (item);
+- gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combobox_folder), name);
+- }
+- gtk_box_pack_start (GTK_BOX (hbox), combo, TRUE, TRUE, 0);
++ combobox_folder = midori_bookmark_folder_button_new (browser->bookmarks,
++ FALSE, NULL);
++ gtk_box_pack_start (GTK_BOX (hbox), combobox_folder, TRUE, TRUE, 0);
+ gtk_container_add (GTK_CONTAINER (content_area), hbox);
+ gtk_widget_show_all (hbox);
+- gtk_widget_set_sensitive (combo, TRUE);
+
+ gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_ACCEPT);
+ if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT)
+ {
+ GtkTreeIter iter;
+- gchar* path;
+- gchar* selected;
++ gchar* path = NULL;
++ gchar* selected = NULL;
+ GError* error;
++ sqlite3* db = g_object_get_data (G_OBJECT (browser->bookmarks), "db");
+
+- gtk_combo_box_get_active_iter (combobox, &iter);
+- gtk_tree_model_get (GTK_TREE_MODEL (model), &iter, 2, &path, -1);
+-
+- selected = gtk_combo_box_text_get_active_text (
+- GTK_COMBO_BOX_TEXT (combobox_folder));
+- if (g_str_equal (selected, _("Toplevel folder")))
+- selected = g_strdup ("");
++ if (gtk_combo_box_get_active_iter (combobox, &iter))
++ gtk_tree_model_get (GTK_TREE_MODEL (model), &iter, 2, &path, -1);
++ selected = midori_bookmark_folder_button_get_active (combobox_folder);
+
+ gtk_widget_destroy (dialog);
+ if (!path)
+--
+cgit
diff --git a/midori.spec b/midori.spec
index 26646a8..cb66c3a 100644
--- a/midori.spec
+++ b/midori.spec
@@ -1,6 +1,6 @@
Name: midori
Version: 0.4.1
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: A lightweight GTK+ web browser
Group: Applications/Internet
@@ -14,6 +14,9 @@ Source0: http://archive.xfce.org/src/apps/%{name}/0.4/%{name}-%{version}.tar.bz2
Patch0: %{name}-fedora-homepage.patch
# Remove the private browsing extension group. It's not up to spec
Patch1: midori-0.4.0-desktop.patch
+# Fix bookmarks.
+# http://git.xfce.org/apps/midori/patch/?id=c06fbee023798cfed102be951d2d907b4cc11b6f
+Patch2: midori-0.4.1-bookmarks-combobox.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -67,6 +70,7 @@ developing extensions for %{name}.
#rm -rf waf
%patch0 -b .fedora-homepage
%patch1 -p1 -b .desktop
+%patch2 -p1 -b .bookmarks
%build
export CFLAGS="%{optflags}"
@@ -144,6 +148,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
%changelog
+* Mon Oct 24 2011 Kevin Fenzi <kevin at scrye.com> - 0.4.1-2
+- Add patch to fix bookmarks.
+- https://bugs.launchpad.net/midori/+bug/874592
+
* Sun Oct 09 2011 Kevin Fenzi <kevin at scrye.com> - 0.4.1-1
- Update to 0.4.1
More information about the scm-commits
mailing list