mirror of
https://github.com/doublecmd/doublecmd.git
synced 2026-06-21 09:58:13 +00:00
ADD: cm_CopyNetNamesToClip internal command (fixes #352)
This commit is contained in:
parent
4cf98dccdc
commit
1319848425
5 changed files with 51 additions and 33 deletions
|
|
@ -2010,6 +2010,12 @@ object frmMain: TfrmMain
|
|||
Caption = 'Network &Disconnect'
|
||||
OnExecute = actExecute
|
||||
end
|
||||
object actCopyNetNamesToClip: TAction
|
||||
Tag = 6
|
||||
Category = 'Network'
|
||||
Caption = 'Copy names with UNC path'
|
||||
OnExecute = actExecute
|
||||
end
|
||||
object actCopyPathOfFilesToClip: TAction
|
||||
Tag = 12
|
||||
Category = 'Clipboard'
|
||||
|
|
|
|||
|
|
@ -158,6 +158,7 @@ type
|
|||
actShellExecute: TAction;
|
||||
actRenameTab: TAction;
|
||||
actOperationsViewer: TAction;
|
||||
actCopyNetNamesToClip: TAction;
|
||||
actNetworkDisconnect: TAction;
|
||||
actNetworkQuickConnect: TAction;
|
||||
actNetworkConnect: TAction;
|
||||
|
|
|
|||
|
|
@ -119,16 +119,17 @@ procedure ShowOpenWithDialog(TheOwner: TComponent; const FileList: TStringList);
|
|||
function GetControlHandle(AWindow: TWinControl): HWND;
|
||||
function GetWindowHandle(AWindow: TWinControl): HWND; overload;
|
||||
function GetWindowHandle(AHandle: HWND): HWND; overload;
|
||||
procedure CopyNetNamesToClip;
|
||||
|
||||
implementation
|
||||
|
||||
uses
|
||||
ExtDlgs, LCLProc, Menus, Graphics, InterfaceBase, WSForms, LMessages, LCLIntf,
|
||||
fMain, uConnectionManager
|
||||
fMain, uConnectionManager, uLng
|
||||
{$IF DEFINED(MSWINDOWS)}
|
||||
, LCLStrConsts, ComObj, DCOSUtils, uOSUtils, uFileSystemFileSource
|
||||
, uTotalCommander, FileUtil, Windows, ShlObj, uShlObjAdditional
|
||||
, uWinNetFileSource, uVfsModule, uLng, uMyWindows, DCStrUtils
|
||||
, uWinNetFileSource, uVfsModule, uMyWindows, DCStrUtils
|
||||
, uDCReadSVG, uFileSourceUtil, uGdiPlusJPEG, uListGetPreviewBitmap
|
||||
, Dialogs, Clipbrd, uShowMsg, uDebug, JwaDbt, uThumbnailProvider
|
||||
, uRecycleBinFileSource, uDCReadHEIF
|
||||
|
|
@ -142,7 +143,7 @@ uses
|
|||
, uDCReadSVG, uMagickWand, uGio, uGioFileSource, uVfsModule, uVideoThumb
|
||||
, uDCReadWebP, uFolderThumb, uAudioThumb, uDefaultTerminal, uDCReadHEIF
|
||||
{$ELSE}
|
||||
, MacOSAll, uQuickLook, uMyDarwin, uShowMsg, uLng
|
||||
, MacOSAll, uQuickLook, uMyDarwin, uShowMsg
|
||||
{$ENDIF}
|
||||
{$IF NOT DEFINED(DARWIN)}
|
||||
, fOpenWith
|
||||
|
|
@ -464,32 +465,6 @@ begin
|
|||
end;
|
||||
end;
|
||||
|
||||
procedure CopyNetNamesToClip(Self, Sender: TObject);
|
||||
var
|
||||
I: Integer;
|
||||
sl: TStringList = nil;
|
||||
SelectedFiles: TFiles = nil;
|
||||
begin
|
||||
SelectedFiles := frmMain.ActiveFrame.CloneSelectedOrActiveFiles;
|
||||
try
|
||||
if SelectedFiles.Count > 0 then
|
||||
begin
|
||||
sl := TStringList.Create;
|
||||
for I := 0 to SelectedFiles.Count - 1 do
|
||||
begin
|
||||
sl.Add(mbGetRemoteFileName(SelectedFiles[I].FullPath));
|
||||
end;
|
||||
|
||||
Clipboard.Clear; // Prevent multiple formats in Clipboard (specially synedit)
|
||||
Clipboard.AsText := TrimRightLineEnding(sl.Text, sl.TextLineBreakStyle);
|
||||
end;
|
||||
|
||||
finally
|
||||
FreeAndNil(sl);
|
||||
FreeAndNil(SelectedFiles);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure CreateShortcut(Self, Sender: TObject);
|
||||
var
|
||||
ShortcutName: String;
|
||||
|
|
@ -628,9 +603,7 @@ begin
|
|||
mnuNetwork.Add(MenuItem);
|
||||
|
||||
MenuItem:= TMenuItem.Create(mnuMain);
|
||||
MenuItem.Caption:= rsMnuCopyNetNamesToClip;
|
||||
Handler.Code:= @CopyNetNamesToClip;
|
||||
MenuItem.OnClick:= TNotifyEvent(Handler);
|
||||
MenuItem.Action:= frmMain.actCopyNetNamesToClip;
|
||||
mnuNetwork.Add(MenuItem);
|
||||
|
||||
MenuItem:= TMenuItem.Create(mnuMain);
|
||||
|
|
@ -907,6 +880,38 @@ begin
|
|||
end;
|
||||
{$ENDIF}
|
||||
|
||||
procedure CopyNetNamesToClip;
|
||||
{$IF DEFINED(MSWINDOWS)}
|
||||
var
|
||||
I: Integer;
|
||||
sl: TStringList = nil;
|
||||
SelectedFiles: TFiles = nil;
|
||||
begin
|
||||
SelectedFiles := frmMain.ActiveFrame.CloneSelectedOrActiveFiles;
|
||||
try
|
||||
if SelectedFiles.Count > 0 then
|
||||
begin
|
||||
sl := TStringList.Create;
|
||||
for I := 0 to SelectedFiles.Count - 1 do
|
||||
begin
|
||||
sl.Add(mbGetRemoteFileName(SelectedFiles[I].FullPath));
|
||||
end;
|
||||
|
||||
Clipboard.Clear; // Prevent multiple formats in Clipboard (specially synedit)
|
||||
Clipboard.AsText := TrimRightLineEnding(sl.Text, sl.TextLineBreakStyle);
|
||||
end;
|
||||
|
||||
finally
|
||||
FreeAndNil(sl);
|
||||
FreeAndNil(SelectedFiles);
|
||||
end;
|
||||
end;
|
||||
{$ELSE}
|
||||
begin
|
||||
msgWarning(rsMsgErrNotSupported);
|
||||
end;
|
||||
{$ENDIF}
|
||||
|
||||
{$IF DEFINED(UNIX) AND NOT DEFINED(DARWIN)}
|
||||
procedure ShowOpenWithDialog(TheOwner: TComponent; const FileList: TStringList);
|
||||
begin
|
||||
|
|
|
|||
|
|
@ -298,7 +298,7 @@ const
|
|||
(TCCommand: 'cm_PasteFromClipboard'; TCIcon: -1; DCCommand: 'cm_PasteFromClipboard'; DCParameters: '' ), //Paste from clipboard to current dir
|
||||
(TCCommand: 'cm_CopyNamesToClip'; TCIcon: 45; DCCommand: 'cm_CopyNamesToClip'; DCParameters: '' ), //Copy filenames to clipboard
|
||||
(TCCommand: 'cm_CopyFullNamesToClip'; TCIcon: 45; DCCommand: 'cm_CopyFullNamesToClip'; DCParameters: '' ), //Copy names with full path
|
||||
(TCCommand: 'cm_CopyNetNamesToClip'; TCIcon: 45; DCCommand: ''; DCParameters: '' ), //Copy names with UNC path
|
||||
(TCCommand: 'cm_CopyNetNamesToClip'; TCIcon: 45; DCCommand: 'cm_CopyNetNamesToClip'; DCParameters: '' ), //Copy names with UNC path
|
||||
(TCCommand: 'cm_CopySrcPathToClip'; TCIcon: 45; DCCommand: ''; DCParameters: '' ), //Copy source path to clipboard
|
||||
(TCCommand: 'cm_CopyTrgPathToClip'; TCIcon: 45; DCCommand: ''; DCParameters: '' ), //Copy target path to clipboard
|
||||
(TCCommand: 'cm_CopyFileDetailsToClip'; TCIcon: 59; DCCommand: 'cm_CopyFileDetailsToClip'; DCParameters: '' ), //Copy all shown columns
|
||||
|
|
|
|||
|
|
@ -330,6 +330,7 @@ type
|
|||
procedure cm_ClearLogFile(const Params: array of string);
|
||||
procedure cm_NetworkConnect(const Params: array of string);
|
||||
procedure cm_NetworkDisconnect(const Params: array of string);
|
||||
procedure cm_CopyNetNamesToClip(const Params: array of string);
|
||||
procedure cm_HorizontalFilePanels(const Params: array of string);
|
||||
procedure cm_OperationsViewer(const Params: array of string);
|
||||
procedure cm_CompareDirectories(const Params: array of string);
|
||||
|
|
@ -4427,6 +4428,11 @@ begin
|
|||
CloseNetworkConnection();
|
||||
end;
|
||||
|
||||
procedure TMainCommands.cm_CopyNetNamesToClip(const Params: array of string);
|
||||
begin
|
||||
CopyNetNamesToClip;
|
||||
end;
|
||||
|
||||
procedure TMainCommands.cm_HorizontalFilePanels(const Params: array of string);
|
||||
var
|
||||
sParamValue:string;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue