Merge lp:~aauzi/midori/fix-1179200-2 into lp:midori

Proposed by André Auzi
Status: Merged
Approved by: Cris Dywan
Approved revision: 6321
Merged at revision: 6378
Proposed branch: lp:~aauzi/midori/fix-1179200-2
Merge into: lp:midori
Diff against target: 102 lines (+29/-34)
2 files modified
midori/midori-array.c (+28/-11)
midori/midori-browser.c (+1/-23)
To merge this branch: bzr merge lp:~aauzi/midori/fix-1179200-2
Reviewer Review Type Date Requested Status
Cris Dywan Approve
Review via email: mp+178502@code.launchpad.net

Commit message

Re-work midori_array_query_recursive to not include folder items twice

Description of the change

Second step for merge of fix-1179200

Here, midori_array_query_recursive is reworked to not include twice the folder items, once as a KatzeItem and the second time as a KatzeArray.

Note: after this step, the XBEL bookmark import is functional. Nevertheless, since insert notifications are still broken, one needs to restart midori to be able to see the imported bookmarks in the bookmark bar.

To post a comment you must log in.
Revision history for this message
Cris Dywan (kalikiana) wrote :

Works as advertised, de-dupes some code, nice. Apologies for not getting to this sooner. We need a better strategy for code review.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'midori/midori-array.c'
2--- midori/midori-array.c 2013-05-30 21:57:04 +0000
3+++ midori/midori-array.c 2013-08-05 07:07:23 +0000
4@@ -97,15 +97,15 @@
5 if (katze_str_equal ((gchar*)cur->name, "title"))
6 {
7 gchar* value = g_strstrip ((gchar*)xmlNodeGetContent (cur));
8+ katze_item_set_name (KATZE_ITEM (array), value);
9+ xmlFree (value);
10+ }
11+ else if (katze_str_equal ((gchar*)cur->name, "desc"))
12+ {
13+ gchar* value = g_strstrip ((gchar*)xmlNodeGetContent (cur));
14 katze_item_set_text (KATZE_ITEM (array), value);
15 xmlFree (value);
16 }
17- else if (katze_str_equal ((gchar*)cur->name, "desc"))
18- {
19- gchar* value = g_strstrip ((gchar*)xmlNodeGetContent (cur));
20- katze_item_set_name (KATZE_ITEM (array), value);
21- xmlFree (value);
22- }
23 else if (katze_str_equal ((gchar*)cur->name, "info"))
24 katze_xbel_parse_info ((KatzeItem*)array, cur);
25 else if (katze_str_equal ((gchar*)cur->name, "folder"))
26@@ -1069,6 +1069,17 @@
27 item = katze_item_new ();
28 for (i = 0; i < cols; i++)
29 katze_item_set_value_from_column (stmt, i, item);
30+
31+ if (KATZE_ITEM_IS_FOLDER (item))
32+ {
33+ g_object_unref (item);
34+
35+ item = KATZE_ITEM (katze_array_new (KATZE_TYPE_ITEM));
36+
37+ for (i = 0; i < cols; i++)
38+ katze_item_set_value_from_column (stmt, i, item);
39+ }
40+
41 katze_array_add_item (array, item);
42 }
43
44@@ -1157,12 +1168,18 @@
45 if (KATZE_ITEM_IS_FOLDER (item))
46 {
47 gchar* parentid = g_strdup_printf ("%" G_GINT64_FORMAT,
48- katze_item_get_meta_integer (item, "id"));
49+ katze_item_get_meta_integer (item, "id"));
50 KatzeArray* subarray = midori_array_query_recursive (bookmarks,
51- fields, "parentid=%q", parentid, TRUE);
52- katze_item_set_name (KATZE_ITEM (subarray), katze_item_get_name (item));
53- katze_array_add_item (array, subarray);
54-
55+ fields, "parentid=%q", parentid, TRUE);
56+ KatzeItem* subitem;
57+ GList* sublist;
58+
59+ KATZE_ARRAY_FOREACH_ITEM_L (subitem, subarray, sublist)
60+ {
61+ katze_array_add_item (KATZE_ARRAY (item), subitem);
62+ }
63+
64+ g_object_unref (subarray);
65 g_free (parentid);
66 }
67 }
68
69=== modified file 'midori/midori-browser.c'
70--- midori/midori-browser.c 2013-08-02 12:00:42 +0000
71+++ midori/midori-browser.c 2013-08-05 07:07:23 +0000
72@@ -7014,29 +7014,7 @@
73
74 KATZE_ARRAY_FOREACH_ITEM (item, array)
75 {
76- if (KATZE_ITEM_IS_BOOKMARK (item))
77- midori_bookmarkbar_insert_item (browser->bookmarkbar, item);
78- else
79- {
80- gint64 id = katze_item_get_meta_integer (item, "id");
81- gchar* parentid = g_strdup_printf ("%" G_GINT64_FORMAT, id);
82- KatzeArray* subfolder = midori_array_query (browser->bookmarks,
83- "id, parentid, title, uri, desc, app, toolbar, pos_panel, pos_bar", "parentid = %q",
84- parentid);
85-
86- katze_item_set_name (KATZE_ITEM (subfolder), katze_item_get_name (item));
87- katze_item_set_meta_integer (KATZE_ITEM (subfolder), "id", id);
88- katze_item_set_meta_integer (KATZE_ITEM (subfolder), "toolbar", 1);
89- katze_item_set_meta_integer (KATZE_ITEM (subfolder), "parentid",
90- katze_item_get_meta_integer (item, "parentid"));
91- katze_item_set_uri (KATZE_ITEM (subfolder), NULL);
92- katze_item_set_meta_string (KATZE_ITEM (subfolder), "desc",
93- katze_item_get_meta_string (KATZE_ITEM (item), "desc"));
94- katze_item_set_meta_integer (KATZE_ITEM (subfolder), "app",
95- katze_item_get_meta_boolean (KATZE_ITEM (item), "app"));
96- midori_bookmarkbar_insert_item (browser->bookmarkbar, KATZE_ITEM (subfolder));
97- g_free (parentid);
98- }
99+ midori_bookmarkbar_insert_item (browser->bookmarkbar, item);
100 }
101 _action_set_sensitive (browser, "BookmarkAdd", TRUE);
102 _action_set_sensitive (browser, "BookmarkFolderAdd", TRUE);

Subscribers

People subscribed via source and target branches

to all changes: