diff --git a/SparkleShare/Mac/SparkleStatusIcon.cs b/SparkleShare/Mac/SparkleStatusIcon.cs index 357c3f40..8ba9c4fd 100644 --- a/SparkleShare/Mac/SparkleStatusIcon.cs +++ b/SparkleShare/Mac/SparkleStatusIcon.cs @@ -43,6 +43,7 @@ namespace SparkleShare { private NSMenuItem SyncMenuItem; private NSMenuItem AboutMenuItem; private NSMenuItem NotificationsMenuItem; + private NSMenuItem RecentEventsMenuItem; private delegate void Task (); private EventHandler [] Tasks; @@ -152,6 +153,33 @@ namespace SparkleShare { Menu.AddItem (StateMenuItem); Menu.AddItem (NSMenuItem.SeparatorItem); + RecentEventsMenuItem = new NSMenuItem () { + Title = "Show Recent Events" + }; + + RecentEventsMenuItem.Activated +=delegate { + InvokeOnMainThread (delegate { + NSApplication.SharedApplication.ActivateIgnoringOtherApps (true); + string path = "test"; + SparkleLog log = SparkleUI.OpenLogs.Find (delegate (SparkleLog l) { + return l.LocalPath.Equals (path); + }); + + // Check whether the log is already open, create a new one if + // that's not the case or present it to the user if it is + if (log == null) { + SparkleUI.OpenLogs.Add (new SparkleLog (path)); + SparkleUI.OpenLogs [SparkleUI.OpenLogs.Count - 1].MakeKeyAndOrderFront (this); + } else { + log.OrderFrontRegardless (); + log.MakeKeyAndOrderFront (this); + } + }); + }; + + Menu.AddItem (RecentEventsMenuItem); + Menu.AddItem (NSMenuItem.SeparatorItem); + FolderMenuItem = new NSMenuItem () { Title = "SparkleShare" }; @@ -176,7 +204,7 @@ namespace SparkleShare { foreach (string folder_name in SparkleShare.Controller.Folders) { NSMenuItem item = new NSMenuItem (); - item.Title = folder_name; + item.Title = folder_name; if (SparkleShare.Controller.UnsyncedFolders.Contains (folder_name)) item.Image = NSImage.ImageNamed ("NSCaution"); @@ -184,7 +212,7 @@ namespace SparkleShare { item.Image = NSImage.ImageNamed ("NSFolder"); item.Image.Size = new SizeF (16, 16); - Tasks [i] = OpenEventLogDelegate (folder_name); + Tasks [i] = OpenFolderDelegate (folder_name); FolderMenuItems [i] = item; FolderMenuItems [i].Activated += Tasks [i]; @@ -284,26 +312,10 @@ namespace SparkleShare { // A method reference that makes sure that opening the // event log for each repository works correctly - private EventHandler OpenEventLogDelegate (string path) + private EventHandler OpenFolderDelegate (string name) { return delegate { - InvokeOnMainThread (delegate { - NSApplication.SharedApplication.ActivateIgnoringOtherApps (true); - - SparkleLog log = SparkleUI.OpenLogs.Find (delegate (SparkleLog l) { - return l.LocalPath.Equals (path); - }); - - // Check whether the log is already open, create a new one if - // that's not the case or present it to the user if it is - if (log == null) { - SparkleUI.OpenLogs.Add (new SparkleLog (path)); - SparkleUI.OpenLogs [SparkleUI.OpenLogs.Count - 1].MakeKeyAndOrderFront (this); - } else { - log.OrderFrontRegardless (); - log.MakeKeyAndOrderFront (this); - } - }); + SparkleShare.Controller.OpenSparkleShareFolder (name); }; }