Merge lp:~gue5t/midori/notes-editing into lp:midori

Proposed by gue5t gue5t
Status: Merged
Approved by: Paweł Forysiuk
Approved revision: 6605
Merged at revision: 6609
Proposed branch: lp:~gue5t/midori/notes-editing
Merge into: lp:midori
Diff against target: 123 lines (+27/-33)
1 file modified
extensions/notes.vala (+27/-33)
To merge this branch: bzr merge lp:~gue5t/midori/notes-editing
Reviewer Review Type Date Requested Status
Paweł Forysiuk Approve
Review via email: mp+211236@code.launchpad.net

Commit message

Rename notes inline

Description of the change

Changes the notes extension to use inline treeview editing instead of a dialog to rename notes

To post a comment you must log in.
Revision history for this message
Paweł Forysiuk (tuxator) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'extensions/notes.vala'
2--- extensions/notes.vala 2014-02-20 18:27:01 +0000
3+++ extensions/notes.vala 2014-03-17 02:39:01 +0000
4@@ -157,6 +157,16 @@
5 return toolbar;
6 }
7
8+ internal void title_edited (Gtk.CellRendererText renderer, string? path_str, string? new_title) {
9+ var path = new Gtk.TreePath.from_string (path_str);
10+ Gtk.TreeIter iter;
11+ notes_list_store.get_iter (out iter, path);
12+ Note note;
13+ notes_list_store.get (iter, 0, out note);
14+ note.rename (new_title);
15+ notes_list_store.set (iter, 0, note);
16+ }
17+
18 public Sidebar () {
19 Gtk.TreeViewColumn column;
20
21@@ -164,6 +174,7 @@
22 notes_tree_view = new Gtk.TreeView.with_model (notes_list_store);
23 notes_tree_view.headers_visible = true;
24 notes_tree_view.button_press_event.connect (button_pressed);
25+ notes_tree_view.get_selection().changed.connect (selection_changed);
26
27 notes_list_store.set_sort_column_id (0, Gtk.SortType.ASCENDING);
28 notes_list_store.set_sort_func (0, tree_sort_func);
29@@ -176,6 +187,8 @@
30
31 column = new Gtk.TreeViewColumn ();
32 Gtk.CellRendererText renderer_title = new Gtk.CellRendererText ();
33+ renderer_title.editable = true;
34+ renderer_title.edited.connect (title_edited);
35 column.set_title (_("Notes"));
36 column.pack_start (renderer_title, true);
37 column.set_cell_data_func (renderer_title, on_render_note_title);
38@@ -217,7 +230,7 @@
39 return strcmp (note1.title, note2.title);
40 }
41
42- bool focus_lost (Gdk.EventFocus event) {
43+ void save_current_note () {
44 Gtk.TreePath? path;
45 notes_tree_view.get_cursor (out path, null);
46 return_val_if_fail (path != null, false);
47@@ -230,6 +243,10 @@
48 note.update (note_content);
49 }
50 }
51+ }
52+
53+ bool focus_lost (Gdk.EventFocus event) {
54+ save_current_note ();
55 return false;
56 }
57
58@@ -258,12 +275,15 @@
59 renderer.set ("pixbuf", pixbuf);
60 }
61
62+ private void selection_changed (Gtk.TreeSelection selection)
63+ {
64+ show_note_content (selection);
65+ }
66+
67 bool button_pressed (Gdk.EventButton event) {
68 if (event.button == 1) {
69 if (event.type == Gdk.EventType.2BUTTON_PRESS) {
70 return show_note_webpage_in_new_tab (event, false);
71- } else {
72- return show_note_content (event);
73 }
74 }
75 if (event.button == 2)
76@@ -273,9 +293,9 @@
77 return false;
78 }
79
80- bool show_note_content (Gdk.EventButton? event) {
81+ bool show_note_content (Gtk.TreeSelection selection) {
82 Gtk.TreeIter iter;
83- if (notes_tree_view.get_selection ().get_selected (null, out iter)) {
84+ if (selection.get_selected (null, out iter)) {
85 Note note;
86 notes_list_store.get (iter, 0, out note);
87
88@@ -321,34 +341,8 @@
89 menuitem.always_show_image = true;
90 menuitem.set_image (image);
91 menuitem.activate.connect (() => {
92- Note note;
93- notes_list_store.get (iter, 0, out note);
94-
95- var dialog = new Gtk.Dialog. with_buttons (_("Rename note"), null,
96- Gtk.DialogFlags.DESTROY_WITH_PARENT, Gtk.Stock.CANCEL, Gtk.ResponseType.CANCEL,
97- Gtk.Stock.OK, Gtk.ResponseType.OK);
98- Gtk.Box content = (Gtk.Box) dialog.get_content_area ();
99- dialog.set_default_response (Gtk.ResponseType.OK);
100- dialog.resizable = false;
101- dialog.icon_name = Gtk.STOCK_EDIT;
102-
103- var entry = new Gtk.Entry ();
104- entry.text = note.title;
105- entry.activates_default = true;
106- content.add (entry);
107- content.show_all ();
108-
109- int response = dialog.run ();
110- dialog.hide ();
111- if (response == Gtk.ResponseType.OK) {
112- string new_title = entry.text;
113- if (entry.text != null && new_title != note.title) {
114- note.rename (new_title);
115- notes_list_store.set (iter, 0, note);
116- }
117- }
118- dialog.destroy ();
119-
120+ notes_tree_view.set_cursor (notes_list_store.get_path (iter),
121+ notes_tree_view.get_column (1), true);
122 });
123 menu.append (menuitem);
124

Subscribers

People subscribed via source and target branches

to all changes: