elementaryart team mailing list archive
-
elementaryart team
-
Mailing list archive
-
Message #01984
[Merge] lp:~voluntatefaber/granite/update-contractormenu into lp:granite
Andrea Basso has proposed merging lp:~voluntatefaber/granite/update-contractormenu into lp:granite.
Requested reviews:
elementary Pantheon team (elementary-pantheon)
For more details, see:
https://code.launchpad.net/~voluntatefaber/granite/update-contractormenu/+merge/100205
--
https://code.launchpad.net/~voluntatefaber/granite/update-contractormenu/+merge/100205
Your team elementaryart (old) is subscribed to branch lp:granite.
=== modified file 'lib/Widgets/ContractorMenu.vala'
--- lib/Widgets/ContractorMenu.vala 2012-02-19 13:58:41 +0000
+++ lib/Widgets/ContractorMenu.vala 2012-03-30 17:31:19 +0000
@@ -23,8 +23,33 @@
HashTable<string,string>[] contracts;
Gee.HashMap <string,string> execs;
public delegate void ContractCallback ();
+ private string filepath;
+ private string filemime;
public ContractorMenu (string filename, string mime) {
+ filepath = filename;
+ filemime = mime;
+ load_items (filename, mime);
+ }
+
+ public void add_item (string name, string icon_name, int position, ContractCallback method) {
+ var item = new Gtk.ImageMenuItem ();
+ item.set_always_show_image (true);
+ var image = new Gtk.Image.from_icon_name (icon_name, Gtk.IconSize.MENU);
+ item.set_label (name);
+ item.set_image (image);
+ item.activate.connect (()=>{method();});
+ insert(item, position);
+ }
+
+ public void name_blacklist (string[] names) {
+ this.foreach ((item)=> {
+ if (((Gtk.MenuItem)item).get_label () in names)
+ remove (item);
+ });
+ }
+
+ private void load_items (string filename, string mime) {
contracts = Granite.Services.Contractor.get_contract (filename, mime);
execs = new Gee.HashMap<string,string> ();
@@ -44,23 +69,30 @@
}
});
append (item);
- }
- }
-
- public void add_item (string name, string icon_name, int position, ContractCallback method) {
- var item = new Gtk.ImageMenuItem ();
- item.set_always_show_image (true);
- var image = new Gtk.Image.from_icon_name (icon_name, Gtk.IconSize.MENU);
- item.set_label (name);
- item.set_image (image);
- item.activate.connect (()=>{method();});
- insert(item, position);
- }
-
- public void name_blacklist (string[] names) {
- this.foreach ((item)=> {
- if (((Gtk.MenuItem)item).get_label () in names)
- remove (item);
- });
+ item.show_all ();
+ }
+ }
+
+ public void update (string? filename, string? mime) {
+ this.foreach ((w) => {remove (w);});
+
+ string fn = "";
+ string mm = "";
+
+ if (filename != null) {
+ fn = filename;
+ filepath = filename;
+ } else {
+ fn = filepath;
+ }
+
+ if (mime != null) {
+ mm = mime;
+ filemime = mime;
+ } else {
+ mm = filemime;
+ }
+
+ load_items (fn, mm);
}
}
Follow ups