| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 |
- //---------------------------------------------------------------------
- #include <vcl.h>
- #pragma hdrstop
- #include <VCLCommon.h>
- #include "Cleanup.h"
- #include "TextsWin.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)
- {
- if (CleanupDialog->CleanupData[wdConfiguration])
- Configuration->CleanupConfiguration();
- if (CleanupDialog->CleanupData[wdStoredSessions])
- SessionList->Cleanup();
- if (CleanupDialog->CleanupData[wdHostKeys])
- Configuration->CleanupHostKeys();
- if (CleanupDialog->CleanupData[wdConfigurationIniFile])
- Configuration->CleanupIniFile();
- if (CleanupDialog->CleanupData[wdRandomSeedFile])
- Configuration->CleanupRandomSeedFile();
- }
- } __finally {
- delete CleanupDialog;
- }
- return Result;
- }
- //---------------------------------------------------------------------
- __fastcall TCleanupDialog::TCleanupDialog(TComponent* AOwner)
- : TForm(AOwner)
- {
- UseSystemSettings(this);
- }
- //---------------------------------------------------------------------
- void __fastcall TCleanupDialog::InitControls()
- {
- int I = 0;
- while (I < DataListView->Items->Count)
- {
- TListItem *Item = DataListView->Items->Item[I];
- AnsiString Location;
- Item->Caption = LoadStr(CLEANUP_CONFIG + 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;
- default: Location = ""; break;
- }
- if (Item->ImageIndex < wdConfigurationIniFile)
- {
- Location = Configuration->RootKeyStr + '\\' +
- Configuration->RegistryStorageKey + '\\' + Location;
- }
- Item->SubItems->Add(Location);
- I++;
- }
- }
- //---------------------------------------------------------------------
- void __fastcall TCleanupDialog::UpdateControls()
- {
- int I = 0;
- bool Checked = false;
- bool UnChecked = false;
- while (I < DataListView->Items->Count)
- {
- TListItem *Item = DataListView->Items->Item[I];
- if (Item->Checked) Checked = true;
- if (!Item->Checked) UnChecked = true;
- I++;
- }
- EnableControl(OKButton, Checked);
- EnableControl(CheckAllButton, UnChecked);
- }
- //---------------------------------------------------------------------------
- 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*/)
- {
- for (Integer Index = 0; Index < DataListView->Items->Count; Index ++)
- DataListView->Items->Item[Index]->Checked = True;
- 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;
- }
|