1
0
mirror of https://github.com/winscp/winscp.git synced 2026-10-24 02:28:55 +03:00
Files
winscp/source/components/DriveView.cpp
Martin Prikryl d843cab082 Adding more startup sequence counter steps (Y, Q, V, Z, a) around F
(previous steps added in aee26917)

Source commit: b93e0f99f5dfce22f9bb9e1451ba11040ad05355
2026-04-04 01:24:19 +02:00

72 lines
2.1 KiB
C++

//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include <Common.h>
#include "DriveView.h"
#include "IEDriveInfo.h"
#include "DirView.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
//---------------------------------------------------------------------------
__fastcall TDriveView::TDriveView(TComponent * AOwner) :
TDriveViewInt(AOwner)
{
DriveInfoRequire();
FDriveStatus.reset(new TStringList());
FDriveStatus->Sorted = true;
for (TRealDrive Drive = FirstDrive; Drive <= LastDrive; Drive++)
{
FDriveStatus->AddObject(Drive, CreateDriveStatus());
}
}
//---------------------------------------------------------------------------
TDriveStatus * __fastcall TDriveView::GetDriveStatus(UnicodeString Drive)
{
int Index = FDriveStatus->IndexOf(Drive);
TDriveStatus * Result;
if (Index < 0)
{
Result = CreateDriveStatus();
FDriveStatus->AddObject(Drive, Result);
}
else
{
Result = GetDriveStatus(Index);
}
return Result;
}
//---------------------------------------------------------------------------
TDriveStatus * TDriveView::GetDriveStatus(int Index)
{
return DebugNotNull(dynamic_cast<TDriveStatus *>(FDriveStatus->Objects[Index]));
}
//---------------------------------------------------------------------------
bool __fastcall TDriveView::GetNextDriveStatus(int & Iterator, UnicodeString * Drive, TDriveStatus *& Status)
{
bool Result = (Iterator < FDriveStatus->Count);
if (Result)
{
if (Drive != nullptr)
{
*Drive = FDriveStatus->Strings[Iterator];
}
Status = GetDriveStatus(Iterator);
++Iterator;
}
return Result;
}
//---------------------------------------------------------------------------
void __fastcall TDriveView::CreateWnd()
{
#ifndef DESIGN_ONLY
UnicodeString StartupSequenceTag = Name.SubString(1, 1);
AddStartupSequence(L"Q" + StartupSequenceTag);
#endif
TDriveViewInt::CreateWnd();
#ifndef DESIGN_ONLY
AddStartupSequence(L"V" + StartupSequenceTag);
#endif
}