1
0
Эх сурвалжийг харах

Bug 1519: Activate panel when using file selection commands

https://winscp.net/tracker/1519

Source commit: 64f856cfdf16326e93e30579b8adf91ff48bebd7
Martin Prikryl 8 жил өмнө
parent
commit
37ee3ab4a3

+ 23 - 0
source/forms/CustomScpExplorer.cpp

@@ -7601,6 +7601,29 @@ void __fastcall TCustomScpExplorerForm::FileListFromClipboard()
   // TBD
 }
 //---------------------------------------------------------------------------
+void __fastcall TCustomScpExplorerForm::SelectAll(TOperationSide Side, TSelectMode Mode)
+{
+  TCustomDirView * ADirView = DirView(Side);
+  ADirView->SelectAll(Mode);
+  ADirView->SetFocus();
+}
+//---------------------------------------------------------------------------
+void __fastcall TCustomScpExplorerForm::SelectByMask(TOperationSide Side, bool Select)
+{
+  TCustomDirView * ADirView = DirView(Side);
+  if (ADirView->DoSelectByMask(Select))
+  {
+    ADirView->SetFocus();
+  }
+}
+//---------------------------------------------------------------------------
+void __fastcall TCustomScpExplorerForm::RestoreSelectedNames(TOperationSide Side)
+{
+  TCustomDirView * ADirView = DirView(Side);
+  ADirView->RestoreSelectedNames();
+  ADirView->SetFocus();
+}
+//---------------------------------------------------------------------------
 void __fastcall TCustomScpExplorerForm::SelectSameExt(bool Select)
 {
   TCustomDirView * CurrentDirView = DirView(osCurrent);

+ 3 - 0
source/forms/CustomScpExplorer.h

@@ -681,6 +681,9 @@ public:
   void __fastcall ToggleQueueVisibility();
   virtual UnicodeString __fastcall PathForCaption();
   void __fastcall FileListFromClipboard();
+  void __fastcall SelectAll(TOperationSide Side, TSelectMode Mode);
+  void __fastcall SelectByMask(TOperationSide Side, bool Select);
+  void __fastcall RestoreSelectedNames(TOperationSide Side);
   void __fastcall SelectSameExt(bool Select);
   void __fastcall PreferencesDialog(TPreferencesMode APreferencesMode);
   virtual void __fastcall BeforeAction();

+ 12 - 12
source/forms/NonVisual.cpp

@@ -557,20 +557,20 @@ void __fastcall TNonVisualDataModule::ExplorerActionsExecute(
     EXE(RemoteFindFilesAction, ScpExplorer->RemoteFindFiles())
     //selection
     EXE(SelectOneAction, DirView(osCurrent)->SelectCurrentItem(DirView(osCurrent)->NortonLike))
-    EXE(SelectAction, DirView(osCurrent)->DoSelectByMask(true))
-    EXE(UnselectAction, DirView(osCurrent)->DoSelectByMask(false))
-    EXE(SelectAllAction, DirView(osCurrent)->SelectAll(smAll))
-    EXE(InvertSelectionAction, DirView(osCurrent)->SelectAll(smInvert))
-    EXE(ClearSelectionAction, DirView(osCurrent)->SelectAll(smNone))
-    EXE(RestoreSelectionAction, DirView(osCurrent)->RestoreSelectedNames())
+    EXE(SelectAction, ScpExplorer->SelectByMask(osCurrent, true))
+    EXE(UnselectAction, ScpExplorer->SelectByMask(osCurrent, false))
+    EXE(SelectAllAction, ScpExplorer->SelectAll(osCurrent, smAll))
+    EXE(InvertSelectionAction, ScpExplorer->SelectAll(osCurrent, smInvert))
+    EXE(ClearSelectionAction, ScpExplorer->SelectAll(osCurrent, smNone))
+    EXE(RestoreSelectionAction, ScpExplorer->RestoreSelectedNames(osCurrent))
     EXE(SelectSameExtAction, ScpExplorer->SelectSameExt(true))
     EXE(UnselectSameExtAction, ScpExplorer->SelectSameExt(false))
-    EXE(LocalSelectAction, DirView(osLocal)->DoSelectByMask(true))
-    EXE(LocalUnselectAction, DirView(osLocal)->DoSelectByMask(false))
-    EXE(LocalSelectAllAction, DirView(osLocal)->SelectAll(smAll))
-    EXE(RemoteSelectAction, DirView(osRemote)->DoSelectByMask(true))
-    EXE(RemoteUnselectAction, DirView(osRemote)->DoSelectByMask(false))
-    EXE(RemoteSelectAllAction, DirView(osRemote)->SelectAll(smAll))
+    EXE(LocalSelectAction, ScpExplorer->SelectByMask(osLocal, true))
+    EXE(LocalUnselectAction, ScpExplorer->SelectByMask(osLocal, false))
+    EXE(LocalSelectAllAction, ScpExplorer->SelectAll(osLocal, smAll))
+    EXE(RemoteSelectAction, ScpExplorer->SelectByMask(osRemote, true))
+    EXE(RemoteUnselectAction, ScpExplorer->SelectByMask(osRemote, false))
+    EXE(RemoteSelectAllAction, ScpExplorer->SelectAll(osRemote, smAll))
     EXE(PasteAction2, ScpExplorer->PasteFromClipBoard())
 
     // style