mirror of
https://github.com/ShareX/ShareX.git
synced 2024-09-29 17:02:05 +13:00
Recent manager init moved from mainform
This commit is contained in:
parent
225b7fe3a7
commit
d1b2de27ff
3 changed files with 70 additions and 66 deletions
|
@ -178,16 +178,7 @@ public void UpdateControls()
|
|||
|
||||
niTray.Visible = Program.Settings.ShowTray;
|
||||
|
||||
if (Program.Settings.RecentTasksSave)
|
||||
{
|
||||
TaskManager.RecentManager.MaxCount = Program.Settings.RecentTasksMaxCount;
|
||||
TaskManager.RecentManager.UpdateItems(Program.Settings.RecentTasks);
|
||||
|
||||
if (Program.Settings.RecentTasksShowInMainWindow && lvUploads.Items.Count == 0)
|
||||
{
|
||||
TaskManager.AddRecentTasksToMainWindow();
|
||||
}
|
||||
}
|
||||
TaskManager.RecentManager.InitItems();
|
||||
|
||||
bool isPositionChanged = false;
|
||||
|
||||
|
|
|
@ -53,7 +53,7 @@ public int MaxCount
|
|||
Tasks.Dequeue();
|
||||
}
|
||||
|
||||
UpdateRecentMenu();
|
||||
UpdateTrayMenu();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -67,6 +67,22 @@ public RecentTaskManager()
|
|||
Tasks = new Queue<RecentTask>();
|
||||
}
|
||||
|
||||
public void InitItems()
|
||||
{
|
||||
lock (itemsLock)
|
||||
{
|
||||
MaxCount = Program.Settings.RecentTasksMaxCount;
|
||||
|
||||
if (Program.Settings.RecentTasks != null)
|
||||
{
|
||||
Tasks = new Queue<RecentTask>(Program.Settings.RecentTasks.Take(MaxCount));
|
||||
}
|
||||
|
||||
UpdateTrayMenu();
|
||||
UpdateMainWindowList();
|
||||
}
|
||||
}
|
||||
|
||||
public void Add(WorkerTask task)
|
||||
{
|
||||
string info = task.Info.ToString();
|
||||
|
@ -97,69 +113,63 @@ public void Add(RecentTask task)
|
|||
|
||||
Tasks.Enqueue(task);
|
||||
|
||||
UpdateRecentMenu();
|
||||
UpdateTrayMenu();
|
||||
}
|
||||
}
|
||||
|
||||
public void UpdateItems(RecentTask[] tasks)
|
||||
private void UpdateTrayMenu()
|
||||
{
|
||||
if (tasks != null)
|
||||
{
|
||||
lock (itemsLock)
|
||||
{
|
||||
Tasks = new Queue<RecentTask>(tasks.Take(MaxCount));
|
||||
|
||||
UpdateRecentMenu();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void UpdateRecentMenu()
|
||||
{
|
||||
if (!Program.Settings.RecentTasksShowInTrayMenu || Program.MainForm == null || Program.MainForm.tsmiTrayRecentItems == null || Tasks.Count == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
ToolStripMenuItem tsmi = Program.MainForm.tsmiTrayRecentItems;
|
||||
|
||||
if (!tsmi.Visible)
|
||||
if (Program.Settings.RecentTasksSave && Program.Settings.RecentTasksShowInTrayMenu && Tasks.Count > 0)
|
||||
{
|
||||
tsmi.Visible = true;
|
||||
|
||||
tsmi.DropDownItems.Clear();
|
||||
ToolStripMenuItem tsmiTip = new ToolStripMenuItem(Resources.RecentManager_UpdateRecentMenu_Left_click_to_copy_URL_to_clipboard__Right_click_to_open_URL_);
|
||||
tsmiTip.Enabled = false;
|
||||
tsmi.DropDownItems.Add(tsmiTip);
|
||||
tsmi.DropDownItems.Add(new ToolStripSeparator());
|
||||
|
||||
foreach (RecentTask task in Tasks)
|
||||
{
|
||||
ToolStripMenuItem tsmiLink = new ToolStripMenuItem();
|
||||
tsmiLink.Text = task.TrayMenuText;
|
||||
string link = task.ToString();
|
||||
tsmiLink.ToolTipText = link;
|
||||
tsmiLink.MouseUp += (sender, e) =>
|
||||
{
|
||||
if (e.Button == MouseButtons.Left)
|
||||
{
|
||||
ClipboardHelpers.CopyText(link);
|
||||
}
|
||||
else if (e.Button == MouseButtons.Right)
|
||||
{
|
||||
URLHelpers.OpenURL(link);
|
||||
}
|
||||
};
|
||||
|
||||
if (Program.Settings.RecentTasksTrayMenuMostRecentFirst)
|
||||
{
|
||||
tsmi.DropDownItems.Insert(2, tsmiLink);
|
||||
}
|
||||
else
|
||||
{
|
||||
tsmi.DropDownItems.Add(tsmiLink);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tsmi.DropDownItems.Clear();
|
||||
ToolStripMenuItem tsmiTip = new ToolStripMenuItem(Resources.RecentManager_UpdateRecentMenu_Left_click_to_copy_URL_to_clipboard__Right_click_to_open_URL_);
|
||||
tsmiTip.Enabled = false;
|
||||
tsmi.DropDownItems.Add(tsmiTip);
|
||||
tsmi.DropDownItems.Add(new ToolStripSeparator());
|
||||
|
||||
foreach (RecentTask task in Tasks)
|
||||
else
|
||||
{
|
||||
ToolStripMenuItem tsmiLink = new ToolStripMenuItem();
|
||||
tsmiLink.Text = task.TrayMenuText;
|
||||
string link = task.ToString();
|
||||
tsmiLink.ToolTipText = link;
|
||||
tsmiLink.MouseUp += (sender, e) =>
|
||||
{
|
||||
if (e.Button == MouseButtons.Left)
|
||||
{
|
||||
ClipboardHelpers.CopyText(link);
|
||||
}
|
||||
else if (e.Button == MouseButtons.Right)
|
||||
{
|
||||
URLHelpers.OpenURL(link);
|
||||
}
|
||||
};
|
||||
tsmi.Visible = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (Program.Settings.RecentTasksTrayMenuMostRecentFirst)
|
||||
{
|
||||
tsmi.DropDownItems.Insert(2, tsmiLink);
|
||||
}
|
||||
else
|
||||
{
|
||||
tsmi.DropDownItems.Add(tsmiLink);
|
||||
}
|
||||
private void UpdateMainWindowList()
|
||||
{
|
||||
if (Program.Settings.RecentTasksSave && Program.Settings.RecentTasksShowInMainWindow && Tasks.Count > 0)
|
||||
{
|
||||
TaskManager.AddRecentTasksToMainWindow();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -505,10 +505,13 @@ public static void UpdateTrayIcon(int progress = -1)
|
|||
|
||||
public static void AddRecentTasksToMainWindow()
|
||||
{
|
||||
foreach (RecentTask recentTask in RecentManager.Tasks)
|
||||
if (ListViewControl.Items.Count == 0)
|
||||
{
|
||||
WorkerTask task = WorkerTask.CreateHistoryTask(recentTask);
|
||||
Start(task);
|
||||
foreach (RecentTask recentTask in RecentManager.Tasks)
|
||||
{
|
||||
WorkerTask task = WorkerTask.CreateHistoryTask(recentTask);
|
||||
Start(task);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue