| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176 |
- //---------------------------------------------------------------------
- #include <vcl.h>
- #pragma hdrstop
- #include <Common.h>
- #include <VCLCommon.h>
- #include <WinConfiguration.h>
- #include <TextsWin.h>
- #include "Cleanup.h"
- //---------------------------------------------------------------------
- #pragma resource "*.dfm"
- //---------------------------------------------------------------------
- Boolean __fastcall DoCleanupDialog(TStoredSessionList *SessionList,
- TConfiguration *Configuration)
- {
- Boolean Result;
- TCleanupDialog *CleanupDialog;
- try {
- CleanupDialog = new TCleanupDialog(Application);
- CleanupDialog->SessionList = SessionList;
- CleanupDialog->Configuration = Configuration;
- Result = (CleanupDialog->ShowModal() == mrOk);
- if (Result)
- {
- for (int i = wdConfiguration; i <= wdTemporaryFolders; i++)
- {
- if (CleanupDialog->CleanupData[(TWinSCPData)i])
- {
- try
- {
- switch (i)
- {
- case wdConfiguration:
- Configuration->CleanupConfiguration();
- break;
- case wdStoredSessions:
- SessionList->Cleanup();
- break;
- case wdHostKeys:
- Configuration->CleanupHostKeys();
- break;
- case wdConfigurationIniFile:
- Configuration->CleanupIniFile();
- break;
- case wdRandomSeedFile:
- Configuration->CleanupRandomSeedFile();
- break;
- case wdTemporaryFolders:
- WinConfiguration->CleanupTemporaryFolders();
- break;
- }
- }
- catch(Exception & E)
- {
- ShowExtendedException(&E);
- }
- }
- }
- }
- } __finally {
- delete CleanupDialog;
- }
- return Result;
- }
- //---------------------------------------------------------------------
- __fastcall TCleanupDialog::TCleanupDialog(TComponent* AOwner)
- : TForm(AOwner)
- {
- UseSystemSettings(this);
- }
- //---------------------------------------------------------------------
- void __fastcall TCleanupDialog::InitControls()
- {
- static const int Captions[] = {
- CLEANUP_CONFIG, CLEANUP_SESSIONS, CLEANUP_HOSTKEYS, CLEANUP_INIFILE,
- CLEANUP_SEEDFILE, CLEANUP_TEMP_FOLDERS };
- int I = 0;
- while (I < DataListView->Items->Count)
- {
- TListItem *Item = DataListView->Items->Item[I];
- AnsiString Location;
- Item->Caption = LoadStr(Captions[Item->ImageIndex - 1]);
- switch (Item->ImageIndex) {
- case wdConfiguration: Location = Configuration->ConfigurationSubKey; break;
- case wdStoredSessions: Location = Configuration->StoredSessionsSubKey; break;
- case wdHostKeys: Location = Configuration->SshHostKeysSubKey; break;
- case wdConfigurationIniFile: Location = Configuration->IniFileStorageName; break;
- case wdRandomSeedFile: Location = Configuration->RandomSeedFile; break;
- case wdTemporaryFolders: Location = WinConfiguration->TemporaryDir(true); break;
- default: Location = ""; break;
- }
- if (Item->ImageIndex < wdConfigurationIniFile)
- {
- Location = Configuration->RootKeyStr + '\\' +
- Configuration->RegistryStorageKey + '\\' + Location;
- }
- Item->SubItems->Add(Location);
- I++;
- }
- }
- //---------------------------------------------------------------------
- void __fastcall TCleanupDialog::UpdateControls()
- {
- EnableControl(OKButton, ListViewAnyChecked(DataListView));
- }
- //---------------------------------------------------------------------------
- void __fastcall TCleanupDialog::DataListViewMouseDown(
- TObject * /*Sender*/, TMouseButton /*Button*/, TShiftState /*Shift*/,
- int /*X*/, int /*Y*/)
- {
- UpdateControls();
- }
- //---------------------------------------------------------------------------
- void __fastcall TCleanupDialog::DataListViewKeyUp(
- TObject * /*Sender*/, WORD & /*Key*/, TShiftState /*Shift*/)
- {
- UpdateControls();
- }
- //---------------------------------------------------------------------------
- void __fastcall TCleanupDialog::FormShow(TObject * /*Sender*/)
- {
- InitControls();
- UpdateControls();
- }
- //---------------------------------------------------------------------------
- void __fastcall TCleanupDialog::CheckAllButtonClick(TObject * /*Sender*/)
- {
- ListViewCheckAll(DataListView, caToggle);
- UpdateControls();
- }
- //---------------------------------------------------------------------------
- void __fastcall TCleanupDialog::DataListViewInfoTip(TObject * /*Sender*/,
- TListItem * Item, AnsiString & InfoTip)
- {
- InfoTip = Format("%s\nLocation: %s",
- ARRAYOFCONST((Item->Caption, Item->SubItems->Strings[0])));
- }
- //---------------------------------------------------------------------------
- void __fastcall TCleanupDialog::SetCleanupData(TWinSCPData Data, Boolean value)
- {
- for (Integer Index = 0; Index < DataListView->Items->Count; Index ++)
- {
- TListItem *Item = DataListView->Items->Item[Index];
- if ((Item->ImageIndex == Data) && (Item->Checked != value))
- {
- Item->Checked = value;
- UpdateControls();
- }
- }
- }
- //---------------------------------------------------------------------------
- Boolean __fastcall TCleanupDialog::GetCleanupData(TWinSCPData Data)
- {
- for (Integer Index = 0; Index < DataListView->Items->Count; Index ++)
- {
- TListItem *Item = DataListView->Items->Item[Index];
- if (Item->ImageIndex == Data) return Item->Checked;
- }
- return False;
- }
- //---------------------------------------------------------------------------
- void __fastcall TCleanupDialog::HelpButtonClick(TObject * /*Sender*/)
- {
- FormHelp(this);
- }
- //---------------------------------------------------------------------------
|