Adjust status menu
This commit is contained in:
parent
d657edf783
commit
30dd767260
|
@ -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);
|
||||
};
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue