Browse Source

Refactoring

(before adding File color dialog)

Source commit: a46cd96ca57b6e1f9692eb0ee79e1310f3bcc847
Martin Prikryl 7 years ago
parent
commit
8030a7d3fc

+ 4 - 6
source/forms/CustomScpExplorer.cpp

@@ -7597,12 +7597,10 @@ void __fastcall TCustomScpExplorerForm::PanelExportStore(TOperationSide /*Side*/
 void __fastcall TCustomScpExplorerForm::Filter(TOperationSide Side)
 {
   TCustomDirView * DirView = this->DirView(Side);
-  TFileFilter Filter;
-  DefaultFileFilter(Filter);
-  Filter.Masks = DirView->Mask;
-  if (DoFilterMaskDialog(DirView, &Filter))
+  UnicodeString Mask;
+  if (DoFilterMaskDialog(DirView, Mask))
   {
-    DirView->Mask = TFileMasks::NormalizeMask(Filter.Masks);
+    DirView->Mask = TFileMasks::NormalizeMask(Mask);
     Configuration->Usage->Inc(L"Filters");
   }
 }
@@ -8126,7 +8124,7 @@ void __fastcall TCustomScpExplorerForm::SelectByMask(TOperationSide Side, bool S
 
   TFileFilter Filter;
   DefaultFileFilter(Filter);
-  if (DoSelectMaskDialog(ADirView, Select, &Filter, Configuration))
+  if (DoSelectMaskDialog(ADirView, Select, Filter))
   {
     Configuration->Usage->Inc(L"MaskSelections");
     ADirView->SelectFiles(Filter, Select);

+ 28 - 61
source/forms/SelectMask.cpp

@@ -19,61 +19,40 @@
 #pragma resource "*.dfm"
 #endif
 //---------------------------------------------------------------------------
-bool __fastcall DoSelectMaskDialog(TCustomDirView * Parent, bool Select,
-  TFileFilter * Filter, TConfiguration * Configuration)
+bool __fastcall DoSelectMaskDialog(TControl * Parent, bool Select, TFileFilter & Filter)
 {
-  bool Result;
-  TSelectMaskDialog * Dialog = new TSelectMaskDialog(Application);
-  try
-  {
-    Dialog->Init(Select ? TSelectMaskDialog::smSelect : TSelectMaskDialog::smDeselect, Parent);
-    DefaultFileFilter(*Filter);
-    TWinConfiguration * WinConfiguration = DebugNotNull(dynamic_cast<TWinConfiguration *>(Configuration));
-    Filter->Masks = WinConfiguration->SelectMask;
-    Filter->Directories = WinConfiguration->SelectDirectories;
-    Dialog->FileFilter = *Filter;
-    Result = Dialog->Execute();
-    if (Result)
-    {
-      *Filter = Dialog->FileFilter;
-      WinConfiguration->SelectMask = Filter->Masks;
-      WinConfiguration->SelectDirectories = Filter->Directories;
-    }
-  }
-  __finally
+  std::unique_ptr<TSelectMaskDialog> Dialog(new TSelectMaskDialog(Application));
+  Dialog->Init((Select ? TSelectMaskDialog::smSelect : TSelectMaskDialog::smDeselect), Parent);
+  DefaultFileFilter(Filter);
+  Filter.Masks = WinConfiguration->SelectMask;
+  Filter.Directories = WinConfiguration->SelectDirectories;
+  bool Result = Dialog->Execute(Filter);
+  if (Result)
   {
-    delete Dialog;
+    WinConfiguration->SelectMask = Filter.Masks;
+    WinConfiguration->SelectDirectories = Filter.Directories;
   }
   return Result;
 }
 //---------------------------------------------------------------------------
-bool __fastcall DoFilterMaskDialog(TCustomDirView * Parent,
-  TFileFilter * Filter)
+bool __fastcall DoFilterMaskDialog(TControl * Parent, UnicodeString & Mask)
 {
-  bool Result;
-  TSelectMaskDialog * Dialog = new TSelectMaskDialog(Application);
-  try
-  {
-    Dialog->Init(TSelectMaskDialog::smFilter, Parent);
-    Dialog->FileFilter = *Filter;
-    Result = Dialog->Execute();
-    if (Result)
-    {
-      *Filter = Dialog->FileFilter;
-    }
-  }
-  __finally
+  TFileFilter Filter;
+  DefaultFileFilter(Filter);
+  Filter.Masks = Mask;
+  std::unique_ptr<TSelectMaskDialog> Dialog(new TSelectMaskDialog(Application));
+  Dialog->Init(TSelectMaskDialog::smFilter, Parent);
+  bool Result = Dialog->Execute(Filter);
+  if (Result)
   {
-    delete Dialog;
+    Mask = Filter.Masks;
   }
   return Result;
 }
 //---------------------------------------------------------------------------
-__fastcall TSelectMaskDialog::TSelectMaskDialog(TComponent* Owner)
-        : TForm(Owner)
+__fastcall TSelectMaskDialog::TSelectMaskDialog(TComponent * Owner) :
+  TForm(Owner)
 {
-  DefaultFileFilter(FFileFilter);
-  SetFileFilter(FFileFilter);
   UseSystemSettings(this);
   HintLabel(HintText,
     FORMAT(L"%s\n \n%s\n \n%s\n \n%s", (LoadStr(MASK_HINT2), LoadStr(FILE_MASK_EX_HINT),
@@ -105,8 +84,7 @@ void __fastcall TSelectMaskDialog::Init(TMode Mode, TControl * Parent)
   FParent = Parent;
 }
 //---------------------------------------------------------------------------
-void __fastcall TSelectMaskDialog::FormCloseQuery(TObject * /*Sender*/,
-  bool & /*CanClose*/)
+void __fastcall TSelectMaskDialog::FormCloseQuery(TObject *, bool & DebugUsedArg(CanClose))
 {
   if (ModalResult == DefaultResult(this))
   {
@@ -117,8 +95,10 @@ void __fastcall TSelectMaskDialog::FormCloseQuery(TObject * /*Sender*/,
   }
 }
 //---------------------------------------------------------------------------
-bool __fastcall TSelectMaskDialog::Execute()
+bool __fastcall TSelectMaskDialog::Execute(TFileFilter & FileFilter)
 {
+  ApplyToDirectoriesCheck->Checked = FileFilter.Directories;
+  MaskEdit->Text = FileFilter.Masks;
   MaskEdit->Items = WinConfiguration->History[L"Mask"];
   ActiveControl = MaskEdit;
   bool Result = (ShowModal() == DefaultResult(this));
@@ -126,24 +106,11 @@ bool __fastcall TSelectMaskDialog::Execute()
   {
     MaskEdit->SaveToHistory();
     WinConfiguration->History[L"Mask"] = MaskEdit->Items;
+    FileFilter.Directories = ApplyToDirectoriesCheck->Checked;
+    FileFilter.Masks = MaskEdit->Text;
   }
   return Result;
-} /* TSelectMaskDialog::Execute */
-//---------------------------------------------------------------------------
-void __fastcall TSelectMaskDialog::SetFileFilter(TFileFilter value)
-{
-  FFileFilter = value;
-  ApplyToDirectoriesCheck->Checked = FFileFilter.Directories;
-  MaskEdit->Text = FFileFilter.Masks;
-} /* TSelectMaskDialog::SetFileFilter */
-//---------------------------------------------------------------------------
-TFileFilter __fastcall TSelectMaskDialog::GetFileFilter()
-{
-  TFileFilter Result = FFileFilter;
-  Result.Directories = ApplyToDirectoriesCheck->Checked;
-  Result.Masks = MaskEdit->Text;
-  return Result;
-} /* TSelectMaskDialog::GetFileFilter */
+}
 //---------------------------------------------------------------------------
 void __fastcall TSelectMaskDialog::MaskEditExit(TObject * /*Sender*/)
 {

+ 17 - 21
source/forms/SelectMask.h

@@ -15,33 +15,29 @@
 class TSelectMaskDialog : public TForm
 {
 __published:
-  TButton *OKBtn;
-  TButton *CancelBtn;
-  TGroupBox *MaskGroup;
-  TLabel *Label3;
-  THistoryComboBox *MaskEdit;
-  TCheckBox *ApplyToDirectoriesCheck;
-  TButton *HelpButton;
-  TStaticText *HintText;
-  TButton *ClearButton;
-  TButton *MaskButton;
-  void __fastcall FormCloseQuery(TObject *Sender, bool &CanClose);
-  void __fastcall MaskEditExit(TObject *Sender);
-  void __fastcall HelpButtonClick(TObject *Sender);
-  void __fastcall ClearButtonClick(TObject *Sender);
-  void __fastcall FormShow(TObject *Sender);
-  void __fastcall MaskButtonClick(TObject *Sender);
+  TButton * OKBtn;
+  TButton * CancelBtn;
+  TGroupBox * MaskGroup;
+  TLabel * Label3;
+  THistoryComboBox * MaskEdit;
+  TCheckBox * ApplyToDirectoriesCheck;
+  TButton * HelpButton;
+  TStaticText * HintText;
+  TButton * ClearButton;
+  TButton * MaskButton;
+  void __fastcall FormCloseQuery(TObject * Sender, bool & CanClose);
+  void __fastcall MaskEditExit(TObject * Sender);
+  void __fastcall HelpButtonClick(TObject * Sender);
+  void __fastcall ClearButtonClick(TObject * Sender);
+  void __fastcall FormShow(TObject * Sender);
+  void __fastcall MaskButtonClick(TObject * Sender);
 private:
-  TFileFilter FFileFilter;
   TControl * FParent;
-  void __fastcall SetFileFilter(TFileFilter value);
-  TFileFilter __fastcall GetFileFilter();
 public:
   enum TMode { smSelect, smDeselect, smFilter };
   __fastcall TSelectMaskDialog(TComponent* Owner);
   void __fastcall Init(TMode Mode, TControl * Parent);
-  bool __fastcall Execute();
-  __property TFileFilter FileFilter = { read = GetFileFilter, write = SetFileFilter };
+  bool __fastcall Execute(TFileFilter & FileFilter);
 };
 //---------------------------------------------------------------------------
 #endif

+ 2 - 6
source/windows/WinInterface.h

@@ -306,12 +306,8 @@ bool __fastcall DoRemoteCopyDialog(TStrings * Sessions, TStrings * Directories,
   UnicodeString & Target, UnicodeString & FileMask, bool & DirectCopy, void * CurrentSession);
 
 // forms\SelectMask.cpp
-#ifdef CustomdirviewHPP
-bool __fastcall DoSelectMaskDialog(TCustomDirView * Parent, bool Select,
-    TFileFilter * Filter, TConfiguration * Configuration);
-bool __fastcall DoFilterMaskDialog(TCustomDirView * Parent,
-  TFileFilter * Filter);
-#endif
+bool __fastcall DoSelectMaskDialog(TControl * Parent, bool Select, TFileFilter & Filter);
+bool __fastcall DoFilterMaskDialog(TControl * Parent, UnicodeString & Mask);
 
 // forms\EditMask.cpp
 bool __fastcall DoEditMaskDialog(TFileMasks & Mask);