mirror of
https://github.com/doublecmd/doublecmd.git
synced 2026-06-21 09:58:13 +00:00
ADD: WithExt in TFileViewWithMainCtrl
This commit is contained in:
parent
3838d61125
commit
5b2f484fd7
4 changed files with 39 additions and 16 deletions
|
|
@ -47,7 +47,7 @@ type
|
|||
protected
|
||||
procedure CreateDefault(AOwner: TWinControl); override;
|
||||
function GetFileViewGridClass: TFileViewGridClass; override;
|
||||
procedure ShowRenameFileEdit(var aFile: TFile); override;
|
||||
procedure ShowRenameFileEdit(var aFile: TFile; const withExt: Boolean); override;
|
||||
procedure UpdateRenameFileEditPosition; override;
|
||||
function GetVisibleFilesIndexes: TRange; override;
|
||||
function GetIconRect(FileIndex: PtrInt): TRect; override;
|
||||
|
|
@ -554,7 +554,8 @@ begin
|
|||
Result:= TBriefDrawGrid;
|
||||
end;
|
||||
|
||||
procedure TBriefFileView.ShowRenameFileEdit(var aFile: TFile);
|
||||
procedure TBriefFileView.ShowRenameFileEdit(
|
||||
var aFile: TFile; const withExt: Boolean);
|
||||
begin
|
||||
if not edtRename.Visible then
|
||||
begin
|
||||
|
|
@ -567,7 +568,7 @@ begin
|
|||
UpdateRenameFileEditPosition;
|
||||
end;
|
||||
|
||||
inherited ShowRenameFileEdit(AFile);
|
||||
inherited ShowRenameFileEdit(AFile, withExt);
|
||||
end;
|
||||
|
||||
procedure TBriefFileView.UpdateRenameFileEditPosition;
|
||||
|
|
|
|||
|
|
@ -174,7 +174,7 @@ type
|
|||
procedure RedrawFiles; override;
|
||||
procedure SetActiveFile(FileIndex: PtrInt; ScrollTo: Boolean; aLastTopRowIndex: PtrInt = -1); override;
|
||||
procedure SetSorting(const NewSortings: TFileSortings); override;
|
||||
procedure ShowRenameFileEdit(var aFile: TFile); override;
|
||||
procedure ShowRenameFileEdit(var aFile: TFile; const withExt: Boolean); override;
|
||||
procedure UpdateRenameFileEditPosition; override;
|
||||
procedure UpdateInfoPanel; override;
|
||||
|
||||
|
|
@ -473,7 +473,8 @@ begin
|
|||
dgPanel.ColumnsOwnDim:=ExternalDimFunction;
|
||||
end;
|
||||
|
||||
procedure TColumnsFileView.ShowRenameFileEdit(var aFile: TFile);
|
||||
procedure TColumnsFileView.ShowRenameFileEdit(
|
||||
var aFile: TFile; const withExt: Boolean);
|
||||
begin
|
||||
if FFileNameColumn = -1 then
|
||||
Exit;
|
||||
|
|
@ -489,7 +490,7 @@ begin
|
|||
UpdateRenameFileEditPosition;
|
||||
end;
|
||||
|
||||
inherited ShowRenameFileEdit(AFile);
|
||||
inherited ShowRenameFileEdit(AFile, withExt);
|
||||
end;
|
||||
|
||||
procedure TColumnsFileView.UpdateRenameFileEditPosition;
|
||||
|
|
|
|||
|
|
@ -46,6 +46,8 @@ type
|
|||
TRenameFileActionType=(rfatName,rfatExt,rfatFull,rfatToSeparators,rfatNextSeparated);
|
||||
|
||||
TRenameFileEditInfo=record
|
||||
WithExt: Boolean;
|
||||
|
||||
LenNam:integer; // length of renaming file name
|
||||
LenExt:integer; // length of renaming file ext
|
||||
LenFul:integer; // full length of renaming file name with ext and dot
|
||||
|
|
@ -118,6 +120,7 @@ type
|
|||
procedure edtRenameOnKeyESCAPE(Sender: TObject);
|
||||
procedure edtRenameOnKeyRETURN(Sender: TObject);
|
||||
procedure edtRenameOnKeySwitch(Sender: TObject; var Key: Word; Shift: TShiftState);
|
||||
function GetNewFilename: String;
|
||||
protected
|
||||
edtRename: TEditButtonEx;
|
||||
FRenameFile: TFile;
|
||||
|
|
@ -209,7 +212,7 @@ type
|
|||
procedure WorkerFinished(const Worker: TFileViewWorker); override;
|
||||
|
||||
procedure ShowRenameFileEditInitSelect(Data: PtrInt);
|
||||
procedure ShowRenameFileEdit(var AFile: TFile); virtual;
|
||||
procedure ShowRenameFileEdit(var AFile: TFile; const withExt: Boolean); virtual;
|
||||
procedure UpdateRenameFileEditPosition; virtual;
|
||||
procedure RenameSelectPart(AActionType:TRenameFileActionType); virtual;
|
||||
|
||||
|
|
@ -371,12 +374,24 @@ begin
|
|||
SetFocus;
|
||||
end;
|
||||
|
||||
function TFileViewWithMainCtrl.GetNewFilename: String;
|
||||
var
|
||||
Ext: String;
|
||||
begin
|
||||
Result := edtRename.Text;
|
||||
if NOT FRenFile.WithExt then begin
|
||||
Ext:= ExtractOnlyFileExt(edtRename.Hint);
|
||||
if NOT Ext.IsEmpty then
|
||||
Result:= Result + '.' + Ext;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TFileViewWithMainCtrl.edtRenameOnKeyRETURN(Sender: TObject);
|
||||
var
|
||||
NewFileName: String;
|
||||
OldFileName: String;
|
||||
begin
|
||||
NewFileName := edtRename.Text;
|
||||
NewFileName := self.GetNewFilename;
|
||||
OldFileName := ExtractFileName(edtRename.Hint);
|
||||
|
||||
try
|
||||
|
|
@ -431,7 +446,7 @@ begin
|
|||
end;
|
||||
edtRename.Tag:= 1;
|
||||
EnableWatcher(False);
|
||||
NewFileName := edtRename.Text;
|
||||
NewFileName := self.GetNewFilename;
|
||||
OldFileName := ExtractFileName(edtRename.Hint);
|
||||
try
|
||||
if (OldFileName = NewFileName) then
|
||||
|
|
@ -451,7 +466,7 @@ begin
|
|||
end;
|
||||
SetActiveFile(Index);
|
||||
edtRename.Tag:= 2;
|
||||
ShowRenameFileEdit(AFile);
|
||||
ShowRenameFileEdit(AFile, FRenFile.WithExt);
|
||||
edtRename.Tag:= 1;
|
||||
UpdateRenameFileEditPosition;
|
||||
end;
|
||||
|
|
@ -1534,7 +1549,7 @@ begin
|
|||
if Assigned(aFile) then
|
||||
try
|
||||
if aFile.IsNameValid then
|
||||
ShowRenameFileEdit(aFile)
|
||||
ShowRenameFileEdit(aFile, True)
|
||||
else if gCurDir then
|
||||
ShowPathEdit;
|
||||
finally
|
||||
|
|
@ -1765,11 +1780,16 @@ begin
|
|||
end;
|
||||
end;
|
||||
|
||||
procedure TFileViewWithMainCtrl.ShowRenameFileEdit(var AFile: TFile);
|
||||
procedure TFileViewWithMainCtrl.ShowRenameFileEdit(
|
||||
var AFile: TFile; const withExt: Boolean);
|
||||
var
|
||||
S: String;
|
||||
begin
|
||||
S:= AFile.Name;
|
||||
if NOT withExt then
|
||||
S:= ExtractOnlyFileName(S);
|
||||
|
||||
FRenFile.WithExt:= withExt;
|
||||
FRenFile.LenFul := UTF8Length(S);
|
||||
FRenFile.LenExt := UTF8Length(ExtractFileExt(S));
|
||||
FRenFile.LenNam := FRenFile.LenFul - FRenFile.LenExt;
|
||||
|
|
@ -1817,7 +1837,7 @@ begin
|
|||
begin
|
||||
FRenameFile := aFile;
|
||||
edtRename.Hint := aFile.FullPath;
|
||||
edtRename.Text := aFile.Name;
|
||||
edtRename.Text := S;
|
||||
edtRename.Visible := True;
|
||||
edtRename.SetFocus;
|
||||
|
||||
|
|
|
|||
|
|
@ -95,7 +95,7 @@ type
|
|||
procedure EnsureDisplayProperties; override;
|
||||
function GetFileViewGridClass: TFileViewGridClass; override;
|
||||
function GetVisibleFilesIndexes: TRange; override;
|
||||
procedure ShowRenameFileEdit(var aFile: TFile); override;
|
||||
procedure ShowRenameFileEdit(var aFile: TFile; const withExt: Boolean); override;
|
||||
procedure UpdateRenameFileEditPosition(); override;
|
||||
function GetIconRect(FileIndex: PtrInt): TRect; override;
|
||||
procedure MouseScrollTimer(Sender: TObject); override;
|
||||
|
|
@ -779,7 +779,8 @@ begin
|
|||
end;
|
||||
end;
|
||||
|
||||
procedure TThumbFileView.ShowRenameFileEdit(var aFile: TFile);
|
||||
procedure TThumbFileView.ShowRenameFileEdit(
|
||||
var aFile: TFile; const withExt: Boolean);
|
||||
begin
|
||||
if not edtRename.Visible then
|
||||
begin
|
||||
|
|
@ -790,7 +791,7 @@ begin
|
|||
UpdateRenameFileEditPosition;
|
||||
end;
|
||||
|
||||
inherited ShowRenameFileEdit(AFile);
|
||||
inherited ShowRenameFileEdit(AFile, withExt);
|
||||
end;
|
||||
|
||||
procedure TThumbFileView.UpdateRenameFileEditPosition();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue