diff --git a/source/forms/CustomScpExplorer.cpp b/source/forms/CustomScpExplorer.cpp index f7499fad5..c4baa81e0 100644 --- a/source/forms/CustomScpExplorer.cpp +++ b/source/forms/CustomScpExplorer.cpp @@ -11943,3 +11943,17 @@ void __fastcall TCustomScpExplorerForm::MessageDockRequestDock(TObject *, TTBCus Accept = false; } //--------------------------------------------------------------------------- +void TCustomScpExplorerForm::AutoSizeColumns(TOperationSide Side) +{ + // Send Ctrl+Gray+ to the list view + TKeyboardState KeyState; + GetKeyboardState(KeyState); + TKeyboardState NewKeyState; + memset(NewKeyState, 0, sizeof(NewKeyState)); + NewKeyState[VK_CONTROL] = 0x81; + SetKeyboardState(NewKeyState); + + SendMessage(DirView(Side)->Handle, WM_KEYDOWN, VK_ADD, 0); + SetKeyboardState(KeyState); +} +//--------------------------------------------------------------------------- diff --git a/source/forms/CustomScpExplorer.h b/source/forms/CustomScpExplorer.h index eee9b5355..63a13b3b6 100644 --- a/source/forms/CustomScpExplorer.h +++ b/source/forms/CustomScpExplorer.h @@ -906,6 +906,7 @@ friend class TEditorUploadQueueItem; virtual int GetNewTabActionImageIndex(); virtual int GetNewTabTabImageIndex(TOperationSide Side); void CalculateDirectorySizes(TOperationSide Side); + void AutoSizeColumns(TOperationSide Side); __property bool ComponentVisible[Byte Component] = { read = GetComponentVisible, write = SetComponentVisible }; __property bool EnableFocusedOperation[TOperationSide Side] = { read = GetEnableFocusedOperation, index = 0 }; diff --git a/source/forms/NonVisual.cpp b/source/forms/NonVisual.cpp index 36cddaab7..9ab0c0912 100644 --- a/source/forms/NonVisual.cpp +++ b/source/forms/NonVisual.cpp @@ -388,6 +388,8 @@ void __fastcall TNonVisualDataModule::ExplorerActionsUpdate( UPDEX(SortColumnDescendingAction, (ListColumn != NULL), SortColumnDescendingAction->Checked = (COLVIEWPROPS->SortColumn == ListColumn->Index) && !COLVIEWPROPS->SortAscending, ) #undef COLVIEWPROPS + UPD(AutoSizeLocalColumnsAction, DirViewEnabled(osLocal)); + UPD(AutoSizeRemoteColumnsAction, DirViewEnabled(osRemote)); // SHOW/HIDE COLUMN #define UPDSHCOLL(NAME) UPDSHCOL(Local, NAME, dv ## NAME, -1) @@ -408,7 +410,6 @@ void __fastcall TNonVisualDataModule::ExplorerActionsUpdate( UPDSHCOL(Remote, LinkTarget, -1, uvLinkTarget) UPDSHCOL(Remote, Type, dvType, uvType) UPD(HideColumnAction, (ListColumn != NULL)) - UPD(BestFitColumnAction, (ListColumn != NULL)) // SESSION UPDACT(NewTabAction, Action->ImageIndex = ScpExplorer->GetNewTabActionImageIndex()) @@ -729,6 +730,8 @@ void __fastcall TNonVisualDataModule::ExplorerActionsExecute( COLVIEWPROPS->SortColumn = ListColumn->Index; COLVIEWPROPS->SortAscending = true; ListColumn = NULL ) EXE(SortColumnDescendingAction, DebugAssert(ListColumn); COLVIEWPROPS->SortColumn = ListColumn->Index; COLVIEWPROPS->SortAscending = false; ListColumn = NULL ) + EXE(AutoSizeLocalColumnsAction, ScpExplorer->AutoSizeColumns(osLocal)) + EXE(AutoSizeRemoteColumnsAction, ScpExplorer->AutoSizeColumns(osRemote)) // SHOW/HIDE COLUMN #define EXESHCOLL(NAME) EXESHCOL(Local, NAME, dv ## NAME, -1) @@ -750,7 +753,6 @@ void __fastcall TNonVisualDataModule::ExplorerActionsExecute( EXESHCOL(Remote, Type, dvType, uvType) EXE(HideColumnAction, DebugAssert(ListColumn); COLVIEWPROPS->Visible[ListColumn->Index] = false; ListColumn = NULL ) - EXE(BestFitColumnAction, DebugAssert(ListColumn); ListColumn = NULL ) // TODO #undef COLVIEWPROPS // SESSION diff --git a/source/forms/NonVisual.dfm b/source/forms/NonVisual.dfm index 4ada1dd14..3eebbef28 100644 --- a/source/forms/NonVisual.dfm +++ b/source/forms/NonVisual.dfm @@ -86,6 +86,14 @@ object NonVisualDataModule: TNonVisualDataModule OnUpdate = ExplorerActionsUpdate Left = 440 Top = 24 + object AutoSizeRemoteColumnsAction: TAction + Tag = 12 + Category = 'Columns' + Caption = 'Size &Automatically' + HelpKeyword = 'ui_file_panel#selecting_columns' + Hint = 'Adjust columns width to fit their contents' + ShortCut = 16491 + end object RemoteCopyQueueAction: TAction Tag = 14 Category = 'Remote Selected Operation' @@ -188,11 +196,13 @@ object NonVisualDataModule: TNonVisualDataModule Hint = 'Download|Download selected remote file(s) to local directory' ImageIndex = 89 end - object BestFitColumnAction: TAction - Tag = 15 + object AutoSizeLocalColumnsAction: TAction + Tag = 8 Category = 'Columns' - Caption = '&Best Fit' - Hint = 'Best fit|Adjust column width to fit its content' + Caption = 'Size &Automatically' + HelpKeyword = 'ui_file_panel#selecting_columns' + Hint = 'Adjust columns width to fit their contents' + ShortCut = 16491 end object GoToTreeAction: TAction Tag = 15 @@ -2860,10 +2870,9 @@ object NonVisualDataModule: TNonVisualDataModule end object TBXSeparatorItem8: TTBXSeparatorItem end - object Showcolumns3: TTBXSubmenuItem - Caption = 'Show &Columns' + object LocalColumnsSubmenuItem: TTBXSubmenuItem + Caption = '&Columns' HelpKeyword = 'ui_file_panel#selecting_columns' - Hint = 'Select columns to show in panel' object Name3: TTBXItem Action = ShowHideLocalNameColumnAction2 end @@ -2879,6 +2888,11 @@ object NonVisualDataModule: TNonVisualDataModule object Attributes3: TTBXItem Action = ShowHideLocalAttrColumnAction2 end + object TBXSeparatorItem73: TTBXSeparatorItem + end + object TBXItem264: TTBXItem + Action = AutoSizeLocalColumnsAction + end end end object RemoteDirViewColumnPopup: TTBXPopupMenu @@ -2921,10 +2935,9 @@ object NonVisualDataModule: TNonVisualDataModule end object TBXSeparatorItem7: TTBXSeparatorItem end - object Showcolumns4: TTBXSubmenuItem - Caption = 'Show &Columns' + object RemoteColumnsSubmenuItem: TTBXSubmenuItem + Caption = '&Columns' HelpKeyword = 'ui_file_panel#selecting_columns' - Hint = 'Select columns to show in panel' object Name4: TTBXItem Action = ShowHideRemoteNameColumnAction2 end @@ -2949,6 +2962,11 @@ object NonVisualDataModule: TNonVisualDataModule object TBXItem1: TTBXItem Action = ShowHideRemoteLinkTargetColumnAction2 end + object TBXSeparatorItem20: TTBXSeparatorItem + end + object TBXItem114: TTBXItem + Action = AutoSizeRemoteColumnsAction + end end end object QueuePopup: TTBXPopupMenu diff --git a/source/forms/NonVisual.h b/source/forms/NonVisual.h index 6a89b725d..b41015460 100644 --- a/source/forms/NonVisual.h +++ b/source/forms/NonVisual.h @@ -336,7 +336,7 @@ class TNonVisualDataModule : public TDataModule TTBXItem *SortDescending1; TTBXItem *Hidecolumn1; TTBXSeparatorItem *N37; - TTBXSubmenuItem *Showcolumns3; + TTBXSubmenuItem *LocalColumnsSubmenuItem; TTBXItem *Name3; TTBXItem *Size3; TTBXItem *Type2; @@ -347,7 +347,7 @@ class TNonVisualDataModule : public TDataModule TTBXItem *MenuItem2; TTBXItem *Hidecolumn2; TTBXSeparatorItem *N38; - TTBXSubmenuItem *Showcolumns4; + TTBXSubmenuItem *RemoteColumnsSubmenuItem; TTBXItem *Name4; TTBXItem *Size4; TTBXItem *Modification4; @@ -411,7 +411,7 @@ class TNonVisualDataModule : public TDataModule TTBXItem *TBXItem4; TTBXItem *TBXItem5; TAction *PresetsPreferencesAction; - TAction *BestFitColumnAction; + TAction *AutoSizeLocalColumnsAction; TAction *CustomCommandsEnterAction; TAction *LockToolbarsAction; TTBXItem *TBXItem6; @@ -698,6 +698,11 @@ class TNonVisualDataModule : public TDataModule TAction *RemoteOtherDirAction; TTBXItem *TBXItem109; TTBXItem *TBXItem113; + TAction *AutoSizeRemoteColumnsAction; + TTBXSeparatorItem *TBXSeparatorItem73; + TTBXItem *TBXItem264; + TTBXSeparatorItem *TBXSeparatorItem20; + TTBXItem *TBXItem114; void __fastcall ExplorerActionsUpdate(TBasicAction *Action, bool &Handled); void __fastcall ExplorerActionsExecute(TBasicAction *Action, bool &Handled); void __fastcall SessionIdleTimerTimer(TObject *Sender); diff --git a/source/forms/ScpCommander.dfm b/source/forms/ScpCommander.dfm index 69a6f8476..bd0270467 100644 --- a/source/forms/ScpCommander.dfm +++ b/source/forms/ScpCommander.dfm @@ -133,10 +133,9 @@ inherited ScpCommanderForm: TScpCommanderForm RadioItem = True end end - object TBXSubmenuItem4: TTBXSubmenuItem - Caption = 'S&how Columns' + object LocalColumnsSubmenuItem: TTBXSubmenuItem + Caption = '&Columns' HelpKeyword = 'ui_file_panel#selecting_columns' - Hint = 'Select columns to show in panel' object TBXItem19: TTBXItem Action = NonVisualDataModule.ShowHideLocalNameColumnAction2 end @@ -152,6 +151,11 @@ inherited ScpCommanderForm: TScpCommanderForm object TBXItem23: TTBXItem Action = NonVisualDataModule.ShowHideLocalAttrColumnAction2 end + object TBXSeparatorItem72: TTBXSeparatorItem + end + object TBXItem263: TTBXItem + Action = NonVisualDataModule.AutoSizeLocalColumnsAction + end end object TBXItem221: TTBXItem Action = NonVisualDataModule.LocalFilterAction @@ -748,10 +752,9 @@ inherited ScpCommanderForm: TScpCommanderForm RadioItem = True end end - object TBXSubmenuItem17: TTBXSubmenuItem - Caption = 'S&how Columns' + object RemoteColumnsSubmenuItem: TTBXSubmenuItem + Caption = '&Columns' HelpKeyword = 'ui_file_panel#selecting_columns' - Hint = 'Select columns to show in panel' object TBXItem101: TTBXItem Action = NonVisualDataModule.ShowHideRemoteNameColumnAction2 end @@ -776,6 +779,11 @@ inherited ScpCommanderForm: TScpCommanderForm object TBXItem179: TTBXItem Action = NonVisualDataModule.ShowHideRemoteLinkTargetColumnAction2 end + object TBXSeparatorItem73: TTBXSeparatorItem + end + object TBXItem264: TTBXItem + Action = NonVisualDataModule.AutoSizeRemoteColumnsAction + end end object TBXItem220: TTBXItem Action = NonVisualDataModule.RemoteFilterAction diff --git a/source/forms/ScpCommander.h b/source/forms/ScpCommander.h index 5c542b788..fafdbdad3 100644 --- a/source/forms/ScpCommander.h +++ b/source/forms/ScpCommander.h @@ -108,7 +108,7 @@ class TScpCommanderForm : public TCustomScpExplorerForm TTBXItem *TBXItem16; TTBXItem *TBXItem17; TTBXItem *TBXItem18; - TTBXSubmenuItem *TBXSubmenuItem4; + TTBXSubmenuItem *LocalColumnsSubmenuItem; TTBXItem *TBXItem19; TTBXItem *TBXItem20; TTBXItem *TBXItem21; @@ -233,7 +233,7 @@ class TScpCommanderForm : public TCustomScpExplorerForm TTBXItem *TBXItem98; TTBXItem *TBXItem99; TTBXItem *TBXItem100; - TTBXSubmenuItem *TBXSubmenuItem17; + TTBXSubmenuItem *RemoteColumnsSubmenuItem; TTBXItem *TBXItem101; TTBXItem *TBXItem102; TTBXItem *TBXItem103; @@ -460,6 +460,10 @@ class TScpCommanderForm : public TCustomScpExplorerForm TTBXItem *TBXItem260; TTBXItem *TBXItem261; TTBXItem *TBXItem262; + TTBXSeparatorItem *TBXSeparatorItem72; + TTBXItem *TBXItem263; + TTBXSeparatorItem *TBXSeparatorItem73; + TTBXItem *TBXItem264; void __fastcall SplitterMoved(TObject *Sender); void __fastcall SplitterCanResize(TObject *Sender, int &NewSize, bool &Accept); diff --git a/source/forms/ScpExplorer.dfm b/source/forms/ScpExplorer.dfm index 5dedfe35f..f2aa53027 100644 --- a/source/forms/ScpExplorer.dfm +++ b/source/forms/ScpExplorer.dfm @@ -540,10 +540,9 @@ inherited ScpExplorerForm: TScpExplorerForm GroupIndex = 1 end end - object TBXSubmenuItem17: TTBXSubmenuItem - Caption = 'Show &Columns' + object ColumndsSubmenuItem: TTBXSubmenuItem + Caption = '&Columns' HelpKeyword = 'ui_file_panel#selecting_columns' - Hint = 'Select columns to show in panel' object TBXItem101: TTBXItem Action = NonVisualDataModule.ShowHideRemoteNameColumnAction2 end @@ -568,6 +567,11 @@ inherited ScpExplorerForm: TScpExplorerForm object TBXItem76: TTBXItem Action = NonVisualDataModule.ShowHideRemoteLinkTargetColumnAction2 end + object TBXSeparatorItem73: TTBXSeparatorItem + end + object TBXItem264: TTBXItem + Action = NonVisualDataModule.AutoSizeRemoteColumnsAction + end end object TBXItem138: TTBXItem Action = NonVisualDataModule.RemoteFilterAction diff --git a/source/forms/ScpExplorer.h b/source/forms/ScpExplorer.h index 572f0134e..351e85702 100644 --- a/source/forms/ScpExplorer.h +++ b/source/forms/ScpExplorer.h @@ -113,7 +113,7 @@ class TScpExplorerForm : public TCustomScpExplorerForm TTBXItem *TBXItem98; TTBXItem *TBXItem99; TTBXItem *TBXItem100; - TTBXSubmenuItem *TBXSubmenuItem17; + TTBXSubmenuItem *ColumndsSubmenuItem; TTBXItem *TBXItem101; TTBXItem *TBXItem102; TTBXItem *TBXItem103; @@ -331,6 +331,8 @@ class TScpExplorerForm : public TCustomScpExplorerForm TTBXSeparatorItem *TBXSeparatorItem29; TTBXItem *TBXItem90; TTBXSeparatorItem *TBXSeparatorItem50; + TTBXSeparatorItem *TBXSeparatorItem73; + TTBXItem *TBXItem264; void __fastcall RemoteDirViewUpdateStatusBar(TObject *Sender, const TStatusFileInfo &FileInfo); void __fastcall UnixPathComboBoxBeginEdit(TTBEditItem *Sender,