Merge lp:~midori/midori/clippyBookmarks into lp:midori
- clippyBookmarks
- Merge into trunk
Proposed by
Cris Dywan
Status: | Needs review |
---|---|
Proposed branch: | lp:~midori/midori/clippyBookmarks |
Merge into: | lp:midori |
Prerequisite: | lp:~midori/midori/webKit2Gtk3only |
Diff against target: |
566 lines (+172/-198) 5 files modified
extensions/clippy.vala (+153/-0) katze/katze.vapi (+6/-0) midori/midori-browser.c (+6/-198) midori/midori-extension.c (+2/-0) midori/midori.vapi (+5/-0) |
To merge this branch: | bzr merge lp:~midori/midori/clippyBookmarks |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Midori Devs | Pending | ||
Review via email:
|
Commit message
Move bookmarkbar into clippy extension
Description of the change
I created a new (stock) extension, Clippy, which implements the bookmarks toolbar (and potentially all of the bookmark features in the future).
To post a comment you must log in.
Unmerged revisions
- 7174. By Cris Dywan
-
Move bookmarkbar into clippy extension
- 7173. By Cris Dywan
-
Drop pass-through-
console flag - 7172. By Cris Dywan
-
Unconditionally include WebKit2 headers
- 7171. By Cris Dywan
-
Drop non-WebKit2 website saving code path
- 7170. By Cris Dywan
-
Non-conditional skipping of non-WebKit2 extensions
- 7169. By Cris Dywan
-
Drop non-WebKit2/ non-libnotify code paths
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === added file 'extensions/clippy.vala' |
2 | --- extensions/clippy.vala 1970-01-01 00:00:00 +0000 |
3 | +++ extensions/clippy.vala 2017-11-26 10:03:39 +0000 |
4 | @@ -0,0 +1,153 @@ |
5 | +/* |
6 | + Copyright (C) 2009-2017 Christian Dywan <christian@twotoasts.de> |
7 | + |
8 | + This library is free software; you can redistribute it and/or |
9 | + modify it under the terms of the GNU Lesser General Public |
10 | + License as published by the Free Software Foundation; either |
11 | + version 2.1 of the License, or (at your option) any later version. |
12 | + |
13 | + See the file COPYING for the full license text. |
14 | +*/ |
15 | + |
16 | +namespace Bookmarks { |
17 | + private class Toolbar : Gtk.Toolbar { |
18 | + Midori.Browser browser; |
19 | + bool populating; |
20 | + |
21 | + public Toolbar (Midori.Browser browser) { |
22 | + set_icon_size (Gtk.IconSize.MENU); |
23 | + set_style (Gtk.ToolbarStyle.BOTH_HORIZ); |
24 | + |
25 | + this.browser = browser; |
26 | + browser.bookmarks.add_item.connect_after (item_added); |
27 | + browser.bookmarks.update_item.connect_after (item_updated); |
28 | + browser.bookmarks.remove_item.connect_after (item_removed); |
29 | + browser.settings.notify["show-bookmarkbar"].connect (settings_updated); |
30 | + browser.settings.notify_property ("show-bookmarkbar"); |
31 | + var action_group = browser.get_action_group (); |
32 | + var action = action_group.get_action ("Bookmarkbar") as Gtk.ToggleAction; |
33 | + action.toggled.connect(toggled); |
34 | + browser.window_state_event.connect (window_state_changed); |
35 | + } |
36 | + |
37 | + void toggled (Gtk.ToggleAction action) { |
38 | + browser.settings.show_bookmarkbar = action.get_active (); |
39 | + } |
40 | + |
41 | + bool window_state_changed (Gdk.EventWindowState event) { |
42 | + bool is_fullscreen = (event.new_window_state & Gdk.WindowState.FULLSCREEN) != 0; |
43 | + visible = !is_fullscreen && browser.settings.show_bookmarkbar; |
44 | + return false; |
45 | + } |
46 | + |
47 | + void settings_updated (GLib.ParamSpec pspec) { |
48 | + var action_group = browser.get_action_group (); |
49 | + var action = action_group.get_action ("Bookmarkbar") as Gtk.ToggleAction; |
50 | + action.set_active (browser.settings.show_bookmarkbar); |
51 | + if (!browser.settings.show_bookmarkbar) |
52 | + clear (); |
53 | + else |
54 | + populate (); |
55 | + } |
56 | + |
57 | + void item_added (GLib.Object item) { |
58 | + if (get_visible ()) |
59 | + populate (); |
60 | + else if ((item as Katze.Item).get_meta_boolean ("toolbar")) |
61 | + browser.activate_action ("Bookmarkbar"); |
62 | + Midori.Browser.update_history ((Katze.Item)item, "bookmark", "created"); |
63 | + } |
64 | + |
65 | + void item_updated (GLib.Object item) { |
66 | + if (get_visible ()) |
67 | + populate (); |
68 | + Midori.Browser.update_history ((Katze.Item)item, "bookmark", "modify"); |
69 | + } |
70 | + |
71 | + void item_removed (GLib.Object item) { |
72 | + if (get_visible ()) |
73 | + populate (); |
74 | + Midori.Browser.update_history ((Katze.Item)item, "bookmark", "delete"); |
75 | + } |
76 | + |
77 | + void populate () { |
78 | + if (!populating) { |
79 | + populating = true; |
80 | + GLib.Idle.add (populate_idle); |
81 | + } |
82 | + } |
83 | + |
84 | + bool populate_idle () { |
85 | + if (populating) { |
86 | + clear (); |
87 | + /* Use a dummy to ensure height of the toolbar */ |
88 | + insert (new Gtk.SeparatorToolItem (), -1); |
89 | + var array = (browser.bookmarks as Midori.BookmarksDb).query_recursive ( |
90 | + "id, parentid, title, uri, desc, app, toolbar, pos_panel, pos_bar", |
91 | + "toolbar = 1", null, false); |
92 | + if (array != null) { |
93 | + foreach (var item in array.get_items ()) |
94 | + insert_item (item); |
95 | + } |
96 | + |
97 | + var action_group = browser.get_action_group (); |
98 | + var action = action_group.get_action ("Bookmarkbar") as Gtk.ToggleAction; |
99 | + visible = action.get_active (); |
100 | + populating = false; |
101 | + } |
102 | + return false; |
103 | + } |
104 | + |
105 | + void insert_item (GLib.Object? item) { |
106 | + var action_group = browser.get_action_group (); |
107 | + var action = action_group.get_action ("Bookmarks") as Katze.ArrayAction; |
108 | + var toolitem = action.create_tool_item_for ((Katze.Item)item); |
109 | + toolitem.ref (); // FIXME: Why is this necessary? |
110 | + if (!(item is Katze.Item)) // separator |
111 | + toolitem.set_use_drag_window (true); |
112 | + toolitem.show (); |
113 | + insert (toolitem, -1); |
114 | + } |
115 | + |
116 | + void clear () { |
117 | + hide (); |
118 | + foreach (var toolitem in get_children ()) |
119 | + toolitem.destroy (); |
120 | + } |
121 | + } |
122 | + |
123 | + private class Manager : Midori.Extension { |
124 | + void browser_added (Midori.Browser browser) { |
125 | + browser.notify["bookmarks"].connect (bookmarks_changed); |
126 | + browser.notify_property ("bookmarks"); |
127 | + } |
128 | + |
129 | + void bookmarks_changed (GLib.Object object, GLib.ParamSpec pspec) { |
130 | + var browser = object as Midori.Browser; |
131 | + var action_group = browser.get_action_group (); |
132 | + var action = action_group.get_action ("Bookmarkbar") as Gtk.ToggleAction; |
133 | + action.visible = browser.parent == null && browser.bookmarks != null; |
134 | + if (action.visible) |
135 | + browser.add_toolbar (new Toolbar (browser)); |
136 | + } |
137 | + |
138 | + void activated (Midori.App app) { |
139 | + foreach (var browser in app.get_browsers ()) |
140 | + browser_added (browser); |
141 | + app.add_browser.connect (browser_added); |
142 | + } |
143 | + |
144 | + internal Manager () { |
145 | + GLib.Object (name: "Bookmark Manager", |
146 | + description: "Manage bookmarks", |
147 | + version: "0.1" + Midori.VERSION_SUFFIX, |
148 | + authors: "Christian Dywan <christian@twotoasts.de>"); |
149 | + |
150 | + activate.connect (activated); |
151 | + } |
152 | + } |
153 | +} |
154 | + |
155 | +public Midori.Extension extension_init () { |
156 | + return new Bookmarks.Manager (); |
157 | +} |
158 | |
159 | === modified file 'katze/katze.vapi' |
160 | --- katze/katze.vapi 2014-02-22 14:06:19 +0000 |
161 | +++ katze/katze.vapi 2017-11-26 10:03:39 +0000 |
162 | @@ -17,6 +17,7 @@ |
163 | public class Array : Katze.Item { |
164 | public Array (GLib.Type type); |
165 | public signal void add_item (GLib.Object item); |
166 | + public signal void update_item (GLib.Object item); |
167 | public signal void remove_item (GLib.Object item); |
168 | public uint get_length (); |
169 | public GLib.List<unowned Item> get_items (); |
170 | @@ -24,6 +25,11 @@ |
171 | } |
172 | |
173 | [CCode (cheader_filename = "katze/katze.h")] |
174 | + public class ArrayAction : Gtk.Action { |
175 | + public Gtk.ToolItem create_tool_item_for (Katze.Item item); |
176 | + } |
177 | + |
178 | + [CCode (cheader_filename = "katze/katze.h")] |
179 | public class Item : GLib.Object { |
180 | public Item (); |
181 | public string? uri { get; set; } |
182 | |
183 | === modified file 'midori/midori-browser.c' |
184 | --- midori/midori-browser.c 2017-11-26 10:03:39 +0000 |
185 | +++ midori/midori-browser.c 2017-11-26 10:03:39 +0000 |
186 | @@ -66,7 +66,6 @@ |
187 | GtkWidget* menubar; |
188 | GtkWidget* throbber; |
189 | GtkWidget* navigationbar; |
190 | - GtkWidget* bookmarkbar; |
191 | |
192 | GtkWidget* panel; |
193 | GtkWidget* notebook; |
194 | @@ -174,14 +173,6 @@ |
195 | KatzeItem* item); |
196 | |
197 | static void |
198 | -midori_bookmarkbar_populate (MidoriBrowser* browser); |
199 | -static void |
200 | -midori_bookmarkbar_populate_idle (MidoriBrowser* browser); |
201 | - |
202 | -static void |
203 | -midori_bookmarkbar_clear (GtkWidget* toolbar); |
204 | - |
205 | -static void |
206 | _midori_browser_set_toolbar_style (MidoriBrowser* browser, |
207 | MidoriToolbarStyle toolbar_style); |
208 | |
209 | @@ -299,6 +290,7 @@ |
210 | |
211 | _action_set_sensitive (browser, "AddSpeedDial", !midori_view_is_blank (view)); |
212 | _action_set_sensitive (browser, "BookmarkAdd", !midori_view_is_blank (view)); |
213 | + _action_set_sensitive (browser, "BookmarkFolderAdd", !midori_view_is_blank (view)); |
214 | _action_set_sensitive (browser, "MailTo", !midori_view_is_blank (view)); |
215 | _action_set_sensitive (browser, "SaveAs", midori_tab_can_save (MIDORI_TAB (view))); |
216 | _action_set_sensitive (browser, "ZoomIn", midori_view_can_zoom_in (view)); |
217 | @@ -1650,7 +1642,6 @@ |
218 | "show-tabs", FALSE, |
219 | NULL); |
220 | sokoke_widget_set_visible (new_browser->menubar, FALSE); |
221 | - sokoke_widget_set_visible (new_browser->bookmarkbar, FALSE); |
222 | sokoke_widget_set_visible (new_browser->statusbar, FALSE); |
223 | _action_set_visible (new_browser, "CompactMenu", FALSE); |
224 | _action_set_sensitive (new_browser, "Location", FALSE); |
225 | @@ -3344,15 +3335,6 @@ |
226 | } |
227 | |
228 | static void |
229 | -_action_bookmarkbar_activate (GtkToggleAction* action, |
230 | - MidoriBrowser* browser) |
231 | -{ |
232 | - gboolean active = gtk_toggle_action_get_active (action); |
233 | - g_object_set (browser->settings, "show-bookmarkbar", active, NULL); |
234 | - sokoke_widget_set_visible (browser->bookmarkbar, active); |
235 | -} |
236 | - |
237 | -static void |
238 | _action_statusbar_activate (GtkToggleAction* action, |
239 | MidoriBrowser* browser) |
240 | { |
241 | @@ -3539,9 +3521,6 @@ |
242 | if (katze_object_get_boolean (G_OBJECT (browser->settings), "show-panel")) |
243 | gtk_widget_show (browser->panel); |
244 | |
245 | - if (katze_object_get_boolean (G_OBJECT (browser->settings), "show-bookmarkbar")) |
246 | - gtk_widget_show (browser->bookmarkbar); |
247 | - |
248 | if (browser->show_navigationbar) |
249 | gtk_widget_show (browser->navigationbar); |
250 | |
251 | @@ -3555,7 +3534,6 @@ |
252 | { |
253 | gtk_widget_hide (browser->menubar); |
254 | gtk_widget_hide (browser->panel); |
255 | - gtk_widget_hide (browser->bookmarkbar); |
256 | gtk_widget_hide (browser->navigationbar); |
257 | gtk_widget_hide (browser->statusbar); |
258 | midori_notebook_set_labels_visible (MIDORI_NOTEBOOK (browser->notebook), FALSE); |
259 | @@ -5303,7 +5281,7 @@ |
260 | FALSE }, |
261 | { "Bookmarkbar", NULL, |
262 | N_("_Bookmarkbar"), "", |
263 | - NULL, G_CALLBACK (_action_bookmarkbar_activate), |
264 | + NULL, NULL, |
265 | FALSE }, |
266 | { "Statusbar", NULL, |
267 | N_("_Statusbar"), "<Ctrl>j", |
268 | @@ -5734,21 +5712,6 @@ |
269 | } |
270 | } |
271 | |
272 | -static gboolean |
273 | -midori_browser_idle (gpointer data) |
274 | -{ |
275 | - MidoriBrowser* browser = MIDORI_BROWSER (data); |
276 | - |
277 | - if (browser->bookmarkbar_populate) |
278 | - { |
279 | - midori_bookmarkbar_populate_idle (browser); |
280 | - |
281 | - browser->bookmarkbar_populate = FALSE; |
282 | - } |
283 | - |
284 | - return FALSE; |
285 | -} |
286 | - |
287 | static void |
288 | midori_browser_init (MidoriBrowser* browser) |
289 | { |
290 | @@ -6022,9 +5985,10 @@ |
291 | |
292 | _action_set_visible (browser, "Bookmarks", browser->bookmarks != NULL); |
293 | _action_set_visible (browser, "BookmarkAdd", browser->bookmarks != NULL); |
294 | + _action_set_visible (browser, "BookmarkFolderAdd", browser->bookmarks != NULL); |
295 | _action_set_visible (browser, "BookmarksImport", browser->bookmarks != NULL); |
296 | _action_set_visible (browser, "BookmarksExport", browser->bookmarks != NULL); |
297 | - _action_set_visible (browser, "Bookmarkbar", browser->bookmarks != NULL); |
298 | + _action_set_visible (browser, "Bookmarkbar", FALSE); |
299 | _action_set_visible (browser, "Trash", browser->trash != NULL); |
300 | _action_set_visible (browser, "UndoTabClose", browser->trash != NULL); |
301 | |
302 | @@ -6035,17 +5999,6 @@ |
303 | g_signal_connect (browser, "context-menu", |
304 | G_CALLBACK (midori_browser_toolbar_context_menu_cb), browser); |
305 | |
306 | - /* Bookmarkbar */ |
307 | - browser->bookmarkbar = gtk_toolbar_new (); |
308 | - gtk_widget_set_name (browser->bookmarkbar, "MidoriBookmarkbar"); |
309 | - gtk_toolbar_set_icon_size (GTK_TOOLBAR (browser->bookmarkbar), |
310 | - GTK_ICON_SIZE_MENU); |
311 | - gtk_toolbar_set_style (GTK_TOOLBAR (browser->bookmarkbar), |
312 | - GTK_TOOLBAR_BOTH_HORIZ); |
313 | - midori_window_add_toolbar (MIDORI_WINDOW (browser), browser->bookmarkbar); |
314 | - g_signal_connect (browser->bookmarkbar, "popup-context-menu", |
315 | - G_CALLBACK (midori_browser_toolbar_popup_context_menu_cb), browser); |
316 | - |
317 | /* Create the panel */ |
318 | hpaned = gtk_hpaned_new (); |
319 | g_signal_connect (hpaned, "notify::position", |
320 | @@ -6156,8 +6109,6 @@ |
321 | katze_object_assign (browser->history_database, NULL); |
322 | katze_object_assign (browser->dial, NULL); |
323 | |
324 | - g_idle_remove_by_data (browser); |
325 | - |
326 | G_OBJECT_CLASS (midori_browser_parent_class)->finalize (object); |
327 | } |
328 | |
329 | @@ -6285,7 +6236,7 @@ |
330 | gboolean compact_sidepanel; |
331 | gboolean right_align_sidepanel, open_panels_in_windows; |
332 | gint last_panel_position, last_panel_page; |
333 | - gboolean show_menubar, show_bookmarkbar; |
334 | + gboolean show_menubar; |
335 | gboolean show_panel; |
336 | MidoriToolbarStyle toolbar_style; |
337 | gchar* toolbar_items; |
338 | @@ -6304,7 +6255,6 @@ |
339 | "last-panel-page", &last_panel_page, |
340 | "show-menubar", &show_menubar, |
341 | "show-navigationbar", &browser->show_navigationbar, |
342 | - "show-bookmarkbar", &show_bookmarkbar, |
343 | "show-panel", &show_panel, |
344 | "show-statusbar", &browser->show_statusbar, |
345 | "toolbar-style", &toolbar_style, |
346 | @@ -6385,8 +6335,6 @@ |
347 | _action_set_active (browser, "Menubar", show_menubar); |
348 | if (GTK_IS_TOOLBAR (browser->navigationbar)) |
349 | _action_set_active (browser, "Navigationbar", browser->show_navigationbar); |
350 | - _action_set_active (browser, "Bookmarkbar", show_bookmarkbar |
351 | - && browser->bookmarks != NULL); |
352 | _action_set_active (browser, "Panel", show_panel); |
353 | _action_set_active (browser, "Statusbar", browser->show_statusbar); |
354 | |
355 | @@ -6433,10 +6381,6 @@ |
356 | if (GTK_IS_TOOLBAR (browser->navigationbar)) |
357 | _action_set_active (browser, "Navigationbar", g_value_get_boolean (&value)); |
358 | } |
359 | - else if (name == g_intern_string ("show-bookmarkbar")) |
360 | - { |
361 | - _action_set_active (browser, "Bookmarkbar", g_value_get_boolean (&value)); |
362 | - } |
363 | else if (name == g_intern_string ("show-statusbar")) |
364 | { |
365 | browser->show_statusbar = g_value_get_boolean (&value); |
366 | @@ -6465,138 +6409,13 @@ |
367 | } |
368 | |
369 | static void |
370 | -midori_bookmarkbar_insert_item (GtkWidget* toolbar, |
371 | - KatzeItem* item) |
372 | -{ |
373 | - MidoriBrowser* browser = midori_browser_get_for_widget (toolbar); |
374 | - GtkAction* action = _action_by_name (browser, "Bookmarks"); |
375 | - GtkToolItem* toolitem = katze_array_action_create_tool_item_for ( |
376 | - KATZE_ARRAY_ACTION (action), item); |
377 | - g_object_set_data (G_OBJECT (toolitem), "KatzeItem", item); |
378 | - |
379 | - if (!KATZE_IS_ITEM (item)) /* Separator */ |
380 | - gtk_tool_item_set_use_drag_window (toolitem, TRUE); |
381 | - |
382 | - gtk_widget_show (GTK_WIDGET (toolitem)); |
383 | - gtk_toolbar_insert (GTK_TOOLBAR (toolbar), toolitem, -1); |
384 | -} |
385 | - |
386 | -static void |
387 | -midori_bookmarkbar_add_item_cb (KatzeArray* bookmarks, |
388 | - KatzeItem* item, |
389 | - MidoriBrowser* browser) |
390 | -{ |
391 | - if (gtk_widget_get_visible (browser->bookmarkbar)) |
392 | - midori_bookmarkbar_populate (browser); |
393 | - else if (katze_item_get_meta_boolean (item, "toolbar")) |
394 | - _action_set_active (browser, "Bookmarkbar", TRUE); |
395 | - midori_browser_update_history (item, "bookmark", "created"); |
396 | -} |
397 | - |
398 | -static void |
399 | -midori_bookmarkbar_update_item_cb (KatzeArray* bookmarks, |
400 | - KatzeItem* item, |
401 | - MidoriBrowser* browser) |
402 | -{ |
403 | - if (gtk_widget_get_visible (browser->bookmarkbar)) |
404 | - midori_bookmarkbar_populate (browser); |
405 | - midori_browser_update_history (item, "bookmark", "modify"); |
406 | -} |
407 | - |
408 | -static void |
409 | -midori_bookmarkbar_remove_item_cb (KatzeArray* bookmarks, |
410 | - KatzeItem* item, |
411 | - MidoriBrowser* browser) |
412 | -{ |
413 | - if (gtk_widget_get_visible (browser->bookmarkbar)) |
414 | - midori_bookmarkbar_populate (browser); |
415 | - midori_browser_update_history (item, "bookmark", "delete"); |
416 | -} |
417 | - |
418 | -static void |
419 | -midori_bookmarkbar_populate (MidoriBrowser* browser) |
420 | -{ |
421 | - if (browser->bookmarkbar_populate) |
422 | - return; |
423 | - |
424 | - g_idle_add (midori_browser_idle, browser); |
425 | - browser->bookmarkbar_populate = TRUE; |
426 | -} |
427 | - |
428 | -static void |
429 | -midori_bookmarkbar_populate_idle (MidoriBrowser* browser) |
430 | -{ |
431 | - KatzeArray* array; |
432 | - KatzeItem* item; |
433 | - |
434 | - midori_bookmarkbar_clear (browser->bookmarkbar); |
435 | - |
436 | - /* Use a dummy to ensure height of the toolbar */ |
437 | - gtk_toolbar_insert (GTK_TOOLBAR (browser->bookmarkbar), |
438 | - gtk_separator_tool_item_new (), -1); |
439 | - |
440 | - array = midori_bookmarks_db_query_recursive (browser->bookmarks, |
441 | - "id, parentid, title, uri, desc, app, toolbar, pos_panel, pos_bar", "toolbar = 1", NULL, FALSE); |
442 | - if (!array) |
443 | - { |
444 | - _action_set_sensitive (browser, "BookmarkAdd", FALSE); |
445 | - _action_set_sensitive (browser, "BookmarkFolderAdd", FALSE); |
446 | - return; |
447 | - } |
448 | - |
449 | - KATZE_ARRAY_FOREACH_ITEM (item, array) |
450 | - { |
451 | - midori_bookmarkbar_insert_item (browser->bookmarkbar, item); |
452 | - } |
453 | - _action_set_sensitive (browser, "BookmarkAdd", TRUE); |
454 | - _action_set_sensitive (browser, "BookmarkFolderAdd", TRUE); |
455 | -} |
456 | - |
457 | -static void |
458 | -midori_bookmarkbar_clear (GtkWidget* toolbar) |
459 | -{ |
460 | - GList* children = gtk_container_get_children (GTK_CONTAINER (toolbar)); |
461 | - while (children != NULL) |
462 | - { |
463 | - gtk_widget_destroy (children->data); |
464 | - children = g_list_next (children); |
465 | - } |
466 | -} |
467 | - |
468 | -static void |
469 | -midori_browser_show_bookmarkbar_notify_value_cb (MidoriWebSettings* settings, |
470 | - GParamSpec* pspec, |
471 | - MidoriBrowser* browser) |
472 | -{ |
473 | - if (!katze_object_get_boolean (browser->settings, "show-bookmarkbar")) |
474 | - midori_bookmarkbar_clear (browser->bookmarkbar); |
475 | - else |
476 | - midori_bookmarkbar_populate (browser); |
477 | -} |
478 | - |
479 | -static void |
480 | midori_browser_set_bookmarks (MidoriBrowser* browser, |
481 | MidoriBookmarksDb* bookmarks) |
482 | { |
483 | - MidoriWebSettings* settings; |
484 | - |
485 | - if (browser->bookmarks != NULL) |
486 | - { |
487 | - g_signal_handlers_disconnect_by_func (browser->bookmarks, |
488 | - midori_bookmarkbar_add_item_cb, browser); |
489 | - g_signal_handlers_disconnect_by_func (browser->bookmarks, |
490 | - midori_bookmarkbar_update_item_cb, browser); |
491 | - g_signal_handlers_disconnect_by_func (browser->bookmarks, |
492 | - midori_bookmarkbar_remove_item_cb, browser); |
493 | - } |
494 | - |
495 | g_object_set (G_OBJECT (_action_by_name (browser, "Bookmarks")), |
496 | "array", KATZE_ARRAY (bookmarks), |
497 | NULL); |
498 | |
499 | - settings = midori_browser_get_settings (browser); |
500 | - g_signal_handlers_disconnect_by_func (settings, |
501 | - midori_browser_show_bookmarkbar_notify_value_cb, browser); |
502 | katze_object_assign (browser->bookmarks, bookmarks); |
503 | |
504 | _action_set_visible (browser, "Bookmarks", bookmarks != NULL); |
505 | @@ -6609,25 +6428,14 @@ |
506 | gtk_widget_show (proxies->data); |
507 | } |
508 | _action_set_visible (browser, "BookmarkAdd", bookmarks != NULL); |
509 | + _action_set_visible (browser, "BookmarkFolderAdd", bookmarks != NULL); |
510 | _action_set_visible (browser, "BookmarksImport", bookmarks != NULL); |
511 | _action_set_visible (browser, "BookmarksExport", bookmarks != NULL); |
512 | - _action_set_visible (browser, "Bookmarkbar", bookmarks != NULL); |
513 | |
514 | if (!bookmarks) |
515 | return; |
516 | |
517 | - if (katze_object_get_boolean (browser->settings, "show-bookmarkbar")) |
518 | - _action_set_active (browser, "Bookmarkbar", TRUE); |
519 | g_object_ref (bookmarks); |
520 | - g_signal_connect (settings, "notify::show-bookmarkbar", |
521 | - G_CALLBACK (midori_browser_show_bookmarkbar_notify_value_cb), browser); |
522 | - g_object_notify (G_OBJECT (settings), "show-bookmarkbar"); |
523 | - g_signal_connect_after (bookmarks, "add-item", |
524 | - G_CALLBACK (midori_bookmarkbar_add_item_cb), browser); |
525 | - g_signal_connect_after (bookmarks, "update-item", |
526 | - G_CALLBACK (midori_bookmarkbar_update_item_cb), browser); |
527 | - g_signal_connect_after (bookmarks, "remove-item", |
528 | - G_CALLBACK (midori_bookmarkbar_remove_item_cb), browser); |
529 | } |
530 | |
531 | static void |
532 | |
533 | === modified file 'midori/midori-extension.c' |
534 | --- midori/midori-extension.c 2016-01-26 05:36:38 +0000 |
535 | +++ midori/midori-extension.c 2017-11-26 10:03:39 +0000 |
536 | @@ -562,6 +562,7 @@ |
537 | g_assert (midori_extension_activate_gracefully (app, extension_path, "libtabby." G_MODULE_SUFFIX, activate)); |
538 | g_assert (midori_extension_activate_gracefully (app, extension_path, "libopen-with." G_MODULE_SUFFIX, activate)); |
539 | g_assert (midori_extension_activate_gracefully (app, extension_path, "libflummi." G_MODULE_SUFFIX, activate)); |
540 | + g_assert (midori_extension_activate_gracefully (app, extension_path, "libclippy." G_MODULE_SUFFIX, activate)); |
541 | |
542 | gint i = 0; |
543 | const gchar* filename; |
544 | @@ -706,6 +707,7 @@ |
545 | && strcmp (filename, "libabout." G_MODULE_SUFFIX) |
546 | && strcmp (filename, "libtabby." G_MODULE_SUFFIX) |
547 | && strcmp (filename, "libopen-with." G_MODULE_SUFFIX) |
548 | + && strcmp (filename, "libclippy." G_MODULE_SUFFIX) |
549 | && strcmp (filename, "libflummi." G_MODULE_SUFFIX)) |
550 | katze_array_add_item (extensions, extension); |
551 | |
552 | |
553 | === modified file 'midori/midori.vapi' |
554 | --- midori/midori.vapi 2015-05-24 00:19:21 +0000 |
555 | +++ midori/midori.vapi 2017-11-26 10:03:39 +0000 |
556 | @@ -22,6 +22,11 @@ |
557 | [CCode (array_length = false)] string[]? uris, [CCode (array_length = false)] string[]? commands, int reset, string? block); |
558 | public static void normal_app_on_quit (App app); |
559 | |
560 | + [CCode (type_id = "TYPE_MIDORI_BOOKMARKS_DB", cheader_filename = "midori/midori-bookmarks-db.h")] |
561 | + public class BookmarksDb : Katze.Array { |
562 | + public Katze.Array? query_recursive (string fields, string condition, string? value, bool recursive); |
563 | + } |
564 | + |
565 | [CCode (cheader_filename = "midori/midori-array.h")] |
566 | public static bool array_from_file (Katze.Array array, string filename, string format) throws GLib.Error; |
567 |