private void LoadExtraItems(ToolStripSeparator separator, ToolStripSeparator finalSeparator, ToolStripMenuItem savings, ToolStripMenuItem recentlyChanged, ToolStripMenuItem stateText)
{
if (SynchronizerUnit.UnitCount() > 0)
{
int itensToSync = SynchronizerUnit.GetTotalEventsToSync();
if (itensToSync > 0)
{
stateText.Text = itensToSync + " Event"+(itensToSync > 1 ? "s" : "")+" to sync";
stateText.Visible = true;
}
else
{
if (SynchronizerUnit.AnyRecovering())
{
stateText.Text = "Looking for changes...";
stateText.Visible = true;
}
else
{
stateText.Text = "Up to date";
stateText.Visible = true;
}
}
}
else
{
stateText.Text = "Loading Synchronizers...";
stateText.Visible = true;
}
//First load the recently changes
int begin = this.trayMenu.Items.IndexOf(separator);
int end = this.trayMenu.Items.IndexOf(finalSeparator);
while(begin+1 < end) {
this.trayMenu.Items.RemoveAt(begin + 1);
begin = this.trayMenu.Items.IndexOf(separator);
end = this.trayMenu.Items.IndexOf(finalSeparator);
}
if (Program.Controller.DatabaseLoaded())
{
SQLiteEventDAO eventDao = new SQLiteEventDAO();
List<Event> events = eventDao.LastEvents;
bool displayRecentlyChanges = events.Count != 0;
recentlyChanged.Visible = displayRecentlyChanges;
separator.Visible = displayRecentlyChanges;
finalSeparator.Visible = displayRecentlyChanges;
foreach (Event e in events)
{
end = this.trayMenu.Items.IndexOf(finalSeparator);
ToolStripMenuItem current = new ToolStripMenuItem();
current.Text = e.ItemName;
current.Image = Icons.folder_default;
if (e.ItemType == ItemType.IMAGE)
current.Image = Icons.folder_pics;
if (e.ItemType == ItemType.TEXT)
current.Image = Icons.folder_docs;
if (e.ItemType == ItemType.VIDEO)
current.Image = Icons.folder_movies;
if (e.ItemType == ItemType.AUDIO)
current.Image = Icons.folder_music;
current.Click += (sender, args) =>
{
Program.Controller.OpenFolder(e.ItemLocalFolderPath);
};
this.trayMenu.Items.Insert(end, current);
}
new Thread(() =>
{
savingstext = GetSavings();
}).Start();
if (savingstext.Length > 0)
{
savings.Text = savingstext;
savings.Visible = true;
}
}
}