Merge lp:~kalikiana/midori/apps into lp:midori

Proposed by Cris Dywan
Status: Merged
Approved by: André Stösel
Approved revision: 6196
Merged at revision: 6195
Proposed branch: lp:~kalikiana/midori/apps
Merge into: lp:midori
Diff against target: 116 lines (+59/-7)
2 files modified
extensions/apps.vala (+57/-5)
midori/midori-download.vala (+2/-2)
To merge this branch: bzr merge lp:~kalikiana/midori/apps
Reviewer Review Type Date Requested Status
André Stösel Approve
Review via email: mp+167179@code.launchpad.net

Commit message

Clean launcher filenames, double-click to open and delete button

Description of the change

Clean launcher filenames, double-click to open and delete button

To post a comment you must log in.
Revision history for this message
André Stösel (ivaldi) wrote :

A function to change the label of a profile would be nice too.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'extensions/apps.vala'
2--- extensions/apps.vala 2013-05-31 11:58:17 +0000
3+++ extensions/apps.vala 2013-06-03 23:33:29 +0000
4@@ -22,9 +22,9 @@
5
6 internal static async void create (string prefix, GLib.File folder, string uri, string title, Gtk.Widget proxy) {
7 /* Strip LRE leading character and / */
8- string filename = title.delimit ("‪/", ' ').strip() + ".desktop";
9 string exec = prefix + uri;
10- string name = title;
11+ string name = title.delimit ("‪/", ' ').strip();
12+ string filename = Midori.Download.clean_filename (name) + ".desktop";
13 // TODO: Midori.Paths.get_icon save to png
14 string icon_name = Midori.Stock.WEB_BROWSER;
15 string contents = """
16@@ -45,9 +45,6 @@
17 var browser = proxy.get_toplevel () as Midori.Browser;
18 browser.send_notification (_("Launcher created"),
19 _("You can now run <b>%s</b> from your launcher or menu").printf (name));
20- /* TODO: Use infobar; currently hits gtk_widget_get_realized: assertion `GTK_IS_WIDGET (widget)' failed
21- (browser.tab as Midori.View).add_info_bar (Gtk.MessageType.INFO,
22- _("You can now run <b>%s</b> from your launcher or menu").printf (name), null, null, null); */
23 }
24 catch (Error error) {
25 var browser = proxy.get_toplevel () as Midori.Browser;
26@@ -128,6 +125,46 @@
27 return toolbar;
28 }
29
30+ void row_activated (Gtk.TreePath path, Gtk.TreeViewColumn column) {
31+ Gtk.TreeIter iter;
32+ if (store.get_iter (out iter, path)) {
33+ Launcher launcher;
34+ store.get (iter, 0, out launcher);
35+ try {
36+ GLib.Process.spawn_command_line_async (launcher.exec);
37+ }
38+ catch (Error error) {
39+ var browser = get_toplevel () as Midori.Browser;
40+ browser.send_notification (_("Error launching"), error.message);
41+ }
42+ }
43+ }
44+
45+ bool button_released (Gdk.EventButton event) {
46+ Gtk.TreePath? path;
47+ Gtk.TreeViewColumn column;
48+ if (treeview.get_path_at_pos ((int)event.x, (int)event.y, out path, out column, null, null)) {
49+ if (path != null) {
50+ if (column == treeview.get_column (2)) {
51+ Gtk.TreeIter iter;
52+ if (store.get_iter (out iter, path)) {
53+ Launcher launcher;
54+ store.get (iter, 0, out launcher);
55+ try {
56+ launcher.file.trash (null);
57+ store.remove (iter);
58+ }
59+ catch (Error error) {
60+ GLib.critical (error.message);
61+ }
62+ return true;
63+ }
64+ }
65+ }
66+ }
67+ return false;
68+ }
69+
70 public Sidebar (Katze.Array array, GLib.File app_folder) {
71 Gtk.TreeViewColumn column;
72
73@@ -151,6 +188,14 @@
74 column.set_cell_data_func (renderer_text, on_render_text);
75 treeview.append_column (column);
76
77+ column = new Gtk.TreeViewColumn ();
78+ Gtk.CellRendererPixbuf renderer_button = new Gtk.CellRendererPixbuf ();
79+ column.pack_start (renderer_button, false);
80+ column.set_cell_data_func (renderer_button, on_render_button);
81+ treeview.append_column (column);
82+
83+ treeview.row_activated.connect (row_activated);
84+ treeview.button_release_event.connect (button_released);
85 treeview.show ();
86 pack_start (treeview, true, true, 0);
87
88@@ -203,6 +248,13 @@
89 launcher.name, launcher.uri),
90 "ellipsize", Pango.EllipsizeMode.END);
91 }
92+
93+ void on_render_button (Gtk.CellLayout column, Gtk.CellRenderer renderer,
94+ Gtk.TreeModel model, Gtk.TreeIter iter) {
95+
96+ renderer.set ("stock-id", Gtk.STOCK_DELETE,
97+ "stock-size", Gtk.IconSize.MENU);
98+ }
99 }
100
101 private class Manager : Midori.Extension {
102
103=== modified file 'midori/midori-download.vala'
104--- midori/midori-download.vala 2013-05-19 09:43:05 +0000
105+++ midori/midori-download.vala 2013-06-03 23:33:29 +0000
106@@ -244,9 +244,9 @@
107
108 public string clean_filename (string filename) {
109 #if HAVE_WIN32
110- return filename.delimit ("/\\<>:\"|?*", '_');
111+ return filename.delimit ("/\\<>:\"|?* ", '_');
112 #else
113- return filename.delimit ("/", '_');
114+ return filename.delimit ("/ ", '_');
115 #endif
116 }
117

Subscribers

People subscribed via source and target branches

to all changes: