Adjust status menu
This commit is contained in:
parent
d657edf783
commit
30dd767260
|
@ -43,6 +43,7 @@ namespace SparkleShare {
|
||||||
private NSMenuItem SyncMenuItem;
|
private NSMenuItem SyncMenuItem;
|
||||||
private NSMenuItem AboutMenuItem;
|
private NSMenuItem AboutMenuItem;
|
||||||
private NSMenuItem NotificationsMenuItem;
|
private NSMenuItem NotificationsMenuItem;
|
||||||
|
private NSMenuItem RecentEventsMenuItem;
|
||||||
|
|
||||||
private delegate void Task ();
|
private delegate void Task ();
|
||||||
private EventHandler [] Tasks;
|
private EventHandler [] Tasks;
|
||||||
|
@ -152,6 +153,33 @@ namespace SparkleShare {
|
||||||
Menu.AddItem (StateMenuItem);
|
Menu.AddItem (StateMenuItem);
|
||||||
Menu.AddItem (NSMenuItem.SeparatorItem);
|
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 () {
|
FolderMenuItem = new NSMenuItem () {
|
||||||
Title = "SparkleShare"
|
Title = "SparkleShare"
|
||||||
};
|
};
|
||||||
|
@ -176,7 +204,7 @@ namespace SparkleShare {
|
||||||
foreach (string folder_name in SparkleShare.Controller.Folders) {
|
foreach (string folder_name in SparkleShare.Controller.Folders) {
|
||||||
NSMenuItem item = new NSMenuItem ();
|
NSMenuItem item = new NSMenuItem ();
|
||||||
|
|
||||||
item.Title = folder_name;
|
item.Title = folder_name;
|
||||||
|
|
||||||
if (SparkleShare.Controller.UnsyncedFolders.Contains (folder_name))
|
if (SparkleShare.Controller.UnsyncedFolders.Contains (folder_name))
|
||||||
item.Image = NSImage.ImageNamed ("NSCaution");
|
item.Image = NSImage.ImageNamed ("NSCaution");
|
||||||
|
@ -184,7 +212,7 @@ namespace SparkleShare {
|
||||||
item.Image = NSImage.ImageNamed ("NSFolder");
|
item.Image = NSImage.ImageNamed ("NSFolder");
|
||||||
|
|
||||||
item.Image.Size = new SizeF (16, 16);
|
item.Image.Size = new SizeF (16, 16);
|
||||||
Tasks [i] = OpenEventLogDelegate (folder_name);
|
Tasks [i] = OpenFolderDelegate (folder_name);
|
||||||
|
|
||||||
FolderMenuItems [i] = item;
|
FolderMenuItems [i] = item;
|
||||||
FolderMenuItems [i].Activated += Tasks [i];
|
FolderMenuItems [i].Activated += Tasks [i];
|
||||||
|
@ -284,26 +312,10 @@ namespace SparkleShare {
|
||||||
|
|
||||||
// A method reference that makes sure that opening the
|
// A method reference that makes sure that opening the
|
||||||
// event log for each repository works correctly
|
// event log for each repository works correctly
|
||||||
private EventHandler OpenEventLogDelegate (string path)
|
private EventHandler OpenFolderDelegate (string name)
|
||||||
{
|
{
|
||||||
return delegate {
|
return delegate {
|
||||||
InvokeOnMainThread (delegate {
|
SparkleShare.Controller.OpenSparkleShareFolder (name);
|
||||||
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);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue