1 #include "filezilla.h"
2 #include "queue.h"
3 #include "queueview_successful.h"
4 #include "Options.h"
5 
6 #include <wx/menu.h>
7 
BEGIN_EVENT_TABLE(CQueueViewSuccessful,CQueueViewFailed)8 BEGIN_EVENT_TABLE(CQueueViewSuccessful, CQueueViewFailed)
9 EVT_CONTEXT_MENU(CQueueViewSuccessful::OnContextMenu)
10 EVT_MENU(XRCID("ID_AUTOCLEAR"), CQueueViewSuccessful::OnMenuAutoClear)
11 END_EVENT_TABLE()
12 
13 CQueueViewSuccessful::CQueueViewSuccessful(CQueue* parent, int index)
14 	: CQueueViewFailed(parent, index, _("Successful transfers"))
15 {
16 	std::vector<ColumnId> extraCols({colTime});
17 	CreateColumns(extraCols);
18 
19 	m_autoClear = COptions::Get()->get_int(OPTION_QUEUE_SUCCESSFUL_AUTOCLEAR) ? true : false;
20 }
21 
OnContextMenu(wxContextMenuEvent &)22 void CQueueViewSuccessful::OnContextMenu(wxContextMenuEvent&)
23 {
24 	wxMenu menu;
25 	menu.Append(XRCID("ID_REMOVEALL"), _("Remove &all"));
26 	menu.Append(XRCID("ID_REQUEUEALL"), _("Reset and requeue &all"));
27 
28 	menu.AppendSeparator();
29 	menu.Append(XRCID("ID_REMOVE"), _("Remove &selected"));
30 	menu.Append(XRCID("ID_REQUEUE"), _("R&eset and requeue selected files"));
31 
32 	menu.AppendSeparator();
33 	menu.Append(XRCID("ID_AUTOCLEAR"), _("A&utomatically remove successful transfers"), wxString(), wxITEM_CHECK);
34 	menu.Append(XRCID("ID_EXPORT"), _("E&xport..."));
35 
36 	bool has_selection = HasSelection();
37 
38 	menu.Enable(XRCID("ID_REMOVE"), has_selection);
39 	menu.Enable(XRCID("ID_REQUEUE"), has_selection);
40 	menu.Enable(XRCID("ID_REQUEUEALL"), !m_serverList.empty());
41 	menu.Check(XRCID("ID_AUTOCLEAR"), m_autoClear);
42 	menu.Enable(XRCID("ID_EXPORT"), GetItemCount() != 0);
43 
44 	PopupMenu(&menu);
45 }
46 
OnMenuAutoClear(wxCommandEvent &)47 void CQueueViewSuccessful::OnMenuAutoClear(wxCommandEvent&)
48 {
49 	m_autoClear = !m_autoClear;
50 	COptions::Get()->set(OPTION_QUEUE_SUCCESSFUL_AUTOCLEAR, m_autoClear ? true : false);
51 }
52