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