Merge lp:~voluntatefaber/granite/update-contractormenu into lp:~elementary-pantheon/granite/granite

Proposed by Andrea Basso
Status: Merged
Merged at revision: 215
Proposed branch: lp:~voluntatefaber/granite/update-contractormenu
Merge into: lp:~elementary-pantheon/granite/granite
Diff against target: 86 lines (+50/-18)
1 file modified
lib/Widgets/ContractorMenu.vala (+50/-18)
To merge this branch: bzr merge lp:~voluntatefaber/granite/update-contractormenu
Reviewer Review Type Date Requested Status
Fabian Thoma code Approve
Review via email: mp+100205@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Fabian Thoma (fabianthoma) :
review: Approve (code)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'lib/Widgets/ContractorMenu.vala'
2--- lib/Widgets/ContractorMenu.vala 2012-02-19 13:58:41 +0000
3+++ lib/Widgets/ContractorMenu.vala 2012-03-30 17:31:19 +0000
4@@ -23,8 +23,33 @@
5 HashTable<string,string>[] contracts;
6 Gee.HashMap <string,string> execs;
7 public delegate void ContractCallback ();
8+ private string filepath;
9+ private string filemime;
10
11 public ContractorMenu (string filename, string mime) {
12+ filepath = filename;
13+ filemime = mime;
14+ load_items (filename, mime);
15+ }
16+
17+ public void add_item (string name, string icon_name, int position, ContractCallback method) {
18+ var item = new Gtk.ImageMenuItem ();
19+ item.set_always_show_image (true);
20+ var image = new Gtk.Image.from_icon_name (icon_name, Gtk.IconSize.MENU);
21+ item.set_label (name);
22+ item.set_image (image);
23+ item.activate.connect (()=>{method();});
24+ insert(item, position);
25+ }
26+
27+ public void name_blacklist (string[] names) {
28+ this.foreach ((item)=> {
29+ if (((Gtk.MenuItem)item).get_label () in names)
30+ remove (item);
31+ });
32+ }
33+
34+ private void load_items (string filename, string mime) {
35 contracts = Granite.Services.Contractor.get_contract (filename, mime);
36 execs = new Gee.HashMap<string,string> ();
37
38@@ -44,23 +69,30 @@
39 }
40 });
41 append (item);
42- }
43- }
44-
45- public void add_item (string name, string icon_name, int position, ContractCallback method) {
46- var item = new Gtk.ImageMenuItem ();
47- item.set_always_show_image (true);
48- var image = new Gtk.Image.from_icon_name (icon_name, Gtk.IconSize.MENU);
49- item.set_label (name);
50- item.set_image (image);
51- item.activate.connect (()=>{method();});
52- insert(item, position);
53- }
54-
55- public void name_blacklist (string[] names) {
56- this.foreach ((item)=> {
57- if (((Gtk.MenuItem)item).get_label () in names)
58- remove (item);
59- });
60+ item.show_all ();
61+ }
62+ }
63+
64+ public void update (string? filename, string? mime) {
65+ this.foreach ((w) => {remove (w);});
66+
67+ string fn = "";
68+ string mm = "";
69+
70+ if (filename != null) {
71+ fn = filename;
72+ filepath = filename;
73+ } else {
74+ fn = filepath;
75+ }
76+
77+ if (mime != null) {
78+ mm = mime;
79+ filemime = mime;
80+ } else {
81+ mm = filemime;
82+ }
83+
84+ load_items (fn, mm);
85 }
86 }

Subscribers

People subscribed via source and target branches