1
0
mirror of https://github.com/winscp/winscp.git synced 2026-10-24 02:28:55 +03:00
Files
winscp/source/windows/QueueController.h
Martin Prikryl 92c97a912c Bug 194: Ongoing delete operation can be moved to background queue
https://winscp.net/tracker/194

(provisionally using an icon for "Disconnect once operation queue is completed" for "Delete in Background")

Source commit: cd9e8a3cfb9acf2ee88f7f01f17884162ff86992
2021-07-14 01:04:28 +02:00

58 lines
2.5 KiB
C++

//---------------------------------------------------------------------------
#ifndef QueueControllerH
#define QueueControllerH
//---------------------------------------------------------------------------
#include <ComCtrls.hpp>
//---------------------------------------------------------------------------
enum TQueueOperation { qoNone, qoGoTo, qoPreferences, qoItemUserAction,
qoItemQuery, qoItemError, qoItemPrompt, qoItemDelete, qoItemExecute,
qoItemUp, qoItemDown, qoItemPause, qoItemResume, qoItemSpeed, qoPauseAll, qoResumeAll,
qoOnceEmpty, qoDeleteAllDone, qoDeleteAll };
class TQueueItemProxy;
class TTerminalQueueStatus;
//---------------------------------------------------------------------------
class TQueueController
{
public:
__fastcall TQueueController(TListView * ListView);
virtual __fastcall ~TQueueController();
TQueueOperation __fastcall DefaultOperation();
bool __fastcall AllowOperation(TQueueOperation Operation, void ** Param = NULL);
void __fastcall ExecuteOperation(TQueueOperation Operation, void * Param = NULL);
void __fastcall UpdateQueueStatus(TTerminalQueueStatus * QueueStatus);
void __fastcall RefreshQueueItem(TQueueItemProxy * QueueItem);
static bool __fastcall QueueItemNeedsFrequentRefresh(TQueueItemProxy * QueueItem);
bool __fastcall NeedRefresh();
TQueueItemProxy * __fastcall GetFocusedPrimaryItem();
__property TNotifyEvent OnChange = { read = FOnChange, write = FOnChange };
__property bool Empty = { read = GetEmpty };
private:
TListView * FListView;
TTerminalQueueStatus * FQueueStatus;
TNotifyEvent FOnChange;
TFormatBytesStyle FFormatSizeBytes;
TQueueItemProxy * __fastcall QueueViewItemToQueueItem(TListItem * Item);
void __fastcall QueueViewDblClick(TObject * Sender);
void __fastcall QueueViewKeyDown(TObject * Sender, WORD & Key, TShiftState Shift);
void __fastcall QueueViewCustomDrawItem(TCustomListView * Sender, TListItem * Item,
TCustomDrawState State, bool & DefaultDraw);
virtual void __fastcall DoChange();
bool __fastcall GetEmpty();
void __fastcall RememberConfiguration();
static void __fastcall FillQueueViewItem(TListItem * Item,
TQueueItemProxy * QueueItem, bool Detail, bool OnlyLine);
TListItem * __fastcall InsertItemFor(TQueueItemProxy * QueueItem, int Index);
bool __fastcall UseDetailsLine(int ItemIndex, TQueueItemProxy * QueueItem);
static bool SimpleOperation(TQueueItemProxy * QueueItem);
};
//---------------------------------------------------------------------------
#endif