← Back to team overview

elementaryart team mailing list archive

[Merge] lp:~elementaryart/granite/new-appmenu-constructor into lp:granite

 

Jaap Broekhuizen has proposed merging lp:~elementaryart/granite/new-appmenu-constructor into lp:granite.

Requested reviews:
  xapantu (xapantu)

For more details, see:
https://code.launchpad.net/~elementaryart/granite/new-appmenu-constructor/+merge/72963
-- 
https://code.launchpad.net/~elementaryart/granite/new-appmenu-constructor/+merge/72963
Your team elementary desktop team is subscribed to branch lp:granite.
=== modified file 'lib/Application.vala'
--- lib/Application.vala	2011-08-25 11:19:12 +0000
+++ lib/Application.vala	2011-08-25 21:47:30 +0000
@@ -18,6 +18,7 @@
 using Gtk;
 
 using Granite.Services;
+using Granite.Widgets;
 
 namespace Granite {
 	
@@ -86,7 +87,8 @@
 			if (!Thread.supported ())
 				error ("Problem initializing thread support.");
 			Gdk.threads_init ();
-			
+						
+			// Deprecated
 			Granite.app = this;
 			
 		}
@@ -123,7 +125,6 @@
 		
 		protected static void sig_handler (int sig) {
 			warning ("Caught signal (%d), exiting", sig);
-			Granite.app.quit_mainloop ();
 		}
 		
 		protected virtual void set_options () {
@@ -132,6 +133,14 @@
 				Logger.DisplayLevel = LogLevel.DEBUG;
 		}
 		
+		public AppMenu create_appmenu (Menu menu) {
+		
+		    AppMenu app_menu = new AppMenu.with_urls (menu, this.help_url, this.translate_url, this.bug_url);
+		    app_menu.show_about.connect ((parent) => this.show_about (parent));
+		    
+		    return app_menu;
+		}
+		
 		protected AboutDialog about_dlg;
 			
 		public virtual void show_about (Gtk.Widget parent) {

=== modified file 'lib/Widgets/AppMenu.vala'
--- lib/Widgets/AppMenu.vala	2011-08-25 10:43:20 +0000
+++ lib/Widgets/AppMenu.vala	2011-08-25 21:47:30 +0000
@@ -23,12 +23,48 @@
 	
 	public class AppMenu : ToolButtonWithMenu {
 	
+	    public MenuItem help_item;
+	    public MenuItem translate_item;
+	    public MenuItem report_item;
+	    public MenuItem about_item;
+	
+	    /**
+	     * Deprecated constructor
+	     *
+	     * @deprecated
+	     */
 		public AppMenu (Menu menu) {
 			
-			var help_item = new MenuItem.with_label (_("Get Help Online..."));
-			var translate_item = new MenuItem.with_label (_("Translate This Application..."));
-			var report_item = new MenuItem.with_label (_("Report a Problem..."));
-			var about_item = new MenuItem.with_label (_("About"));
+			base (new Image.from_stock (Stock.PROPERTIES, IconSize.MENU), _("Menu"), menu);
+			
+			this.add_items (menu);
+			
+			help_item.activate.connect(() => System.open_uri (Granite.app.help_url));
+			translate_item.activate.connect(() => System.open_uri (Granite.app.translate_url));
+			report_item.activate.connect(() => System.open_uri (Granite.app.bug_url));
+			about_item.activate.connect (() => Granite.app.show_about (get_toplevel ()));
+		}
+		
+		public virtual signal void show_about (Gtk.Widget parent) { }
+		
+		public AppMenu.with_urls (Menu menu, string help_url, string translate_url, string bug_url) {
+		
+			base (new Image.from_stock (Stock.PROPERTIES, IconSize.MENU), _("Menu"), menu);
+			
+			this.add_items (menu);
+			
+			help_item.activate.connect(() => System.open_uri (help_url));
+			translate_item.activate.connect(() => System.open_uri (translate_url));
+			report_item.activate.connect(() => System.open_uri (bug_url));
+			about_item.activate.connect (() => this.show_about (get_toplevel ()));
+		}
+		
+		public void add_items (Menu menu) {
+		    
+		    help_item = new MenuItem.with_label (_("Get Help Online..."));
+			translate_item = new MenuItem.with_label (_("Translate This Application..."));
+			report_item = new MenuItem.with_label (_("Report a Problem..."));
+			about_item = new MenuItem.with_label (_("About"));
 			
 			if (menu.get_children ().length () > 0)
 				menu.append (new SeparatorMenuItem ());
@@ -37,13 +73,6 @@
 			menu.append (report_item);
 			menu.append (new SeparatorMenuItem ());
 			menu.append (about_item);
-			
-			base (new Image.from_stock (Stock.PROPERTIES, IconSize.MENU), _("Menu"), menu);
-			
-			help_item.activate.connect(() => System.open_uri (Granite.app.help_url));
-			translate_item.activate.connect(() => System.open_uri (Granite.app.translate_url));
-			report_item.activate.connect(() => System.open_uri (Granite.app.bug_url));
-			about_item.activate.connect (() => Granite.app.show_about (get_toplevel ()));
 		}
 		
 	}


Follow ups