mirror of
https://github.com/doublecmd/doublecmd.git
synced 2026-06-21 09:58:13 +00:00
ADD: Navigation through directory global history menu
(cherry picked from commit f3d000321f)
This commit is contained in:
parent
7a02fcb1e9
commit
3a6be9bd44
2 changed files with 39 additions and 5 deletions
|
|
@ -822,10 +822,11 @@ type
|
|||
procedure HotDirSelected(Sender:TObject);
|
||||
procedure HotDirActualSwitchToDir(Index:longint);
|
||||
procedure HistorySelected(Sender:TObject);
|
||||
procedure HistorySomeSelected(Sender:TObject);
|
||||
procedure ViewHistorySelected(Sender:TObject);
|
||||
procedure ViewHistoryPrevSelected(Sender:TObject);
|
||||
procedure ViewHistoryNextSelected(Sender:TObject);
|
||||
procedure CreatePopUpDirHistory;
|
||||
procedure CreatePopUpDirHistory(UseTreeViewMenu: Boolean; FromPathIndex: Integer);
|
||||
procedure ShowFileViewHistory(const Params: array of string);
|
||||
procedure ShowFileViewHistory(const Params: array of string; FromFileSourceIndex, FromPathIndex, ToFileSourceIndex, ToPathIndex: Integer);
|
||||
procedure miHotAddOrConfigClick(Sender: TObject);
|
||||
|
|
@ -3132,14 +3133,26 @@ begin
|
|||
with Sender as TComponent do Commands.cm_WorkWithDirectoryHotlist(['action='+HOTLISTMAGICWORDS[tag], 'source='+QuoteStr(ActiveFrame.CurrentLocation), 'target='+QuoteStr(NotActiveFrame.CurrentLocation), 'index=0']);
|
||||
end;
|
||||
|
||||
procedure TfrmMain.CreatePopUpDirHistory;
|
||||
procedure TfrmMain.CreatePopUpDirHistory(UseTreeViewMenu: Boolean;
|
||||
FromPathIndex: Integer);
|
||||
var
|
||||
I: Integer;
|
||||
I, Finish: Integer;
|
||||
MenuItem: TMenuItem;
|
||||
begin
|
||||
pmDirHistory.Items.Clear;
|
||||
|
||||
for I:= 0 to Min(gDirHistoryCount, glsDirHistory.Count - 1) do
|
||||
if (not UseTreeViewMenu) and (FromPathIndex > 0) then
|
||||
begin
|
||||
MenuItem := TMenuItem.Create(pmDirHistory);
|
||||
MenuItem.Caption := '...';
|
||||
MenuItem.OnClick := @HistorySomeSelected;
|
||||
MenuItem.Tag := Max(0, FromPathIndex - gDirHistoryCount - 1);
|
||||
pmDirHistory.Items.Add(MenuItem);
|
||||
end;
|
||||
|
||||
Finish:= Min(FromPathIndex + gDirHistoryCount, glsDirHistory.Count - 1);
|
||||
|
||||
for I:= FromPathIndex to Finish do
|
||||
begin
|
||||
MenuItem:= TMenuItem.Create(pmDirHistory);
|
||||
MenuItem.Caption:= glsDirHistory[I].Replace('&','&&');
|
||||
|
|
@ -3147,6 +3160,15 @@ begin
|
|||
MenuItem.OnClick:= @HistorySelected;
|
||||
pmDirHistory.Items.Add(MenuItem);
|
||||
end;
|
||||
|
||||
if (not UseTreeViewMenu) and (Finish < glsDirHistory.Count - 1) then
|
||||
begin
|
||||
MenuItem := TMenuItem.Create(pmDirHistory);
|
||||
MenuItem.Caption := '...';
|
||||
MenuItem.OnClick := @HistorySomeSelected;
|
||||
MenuItem.Tag := Finish + 1;
|
||||
pmDirHistory.Items.Add(MenuItem);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.ShowFileViewHistory(const Params: array of string);
|
||||
|
|
@ -3485,6 +3507,18 @@ begin
|
|||
ChooseFileSource(ActiveFrame, aPath);
|
||||
end;
|
||||
|
||||
procedure TfrmMain.HistorySomeSelected(Sender: TObject);
|
||||
var
|
||||
P: TPoint;
|
||||
begin
|
||||
if Sender is TMenuItem then
|
||||
begin
|
||||
P:= ActiveFrame.ClientToScreen(Classes.Point(0, 0));
|
||||
CreatePopUpDirHistory(False, TMenuItem(Sender).Tag);
|
||||
pmDirHistory.Popup(P.X, P.Y);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfrmMain.ViewHistorySelected(Sender: TObject);
|
||||
var
|
||||
FileSourceIndex, PathIndex: Integer;
|
||||
|
|
|
|||
|
|
@ -3894,7 +3894,7 @@ begin
|
|||
// 1. Let's parse our parameters.
|
||||
DoParseParametersForPossibleTreeViewMenu(Params, gUseTreeViewMenuWithDirHistory, gUseTreeViewMenuWithDirHistory, bUseTreeViewMenu, bUsePanel, p);
|
||||
|
||||
frmMain.CreatePopUpDirHistory;
|
||||
frmMain.CreatePopUpDirHistory(bUseTreeViewMenu, 0);
|
||||
Application.ProcessMessages; //TODO: In Windows, Not sure why, but on all systems tried, this eliminate a "beep" when the popup is shown.
|
||||
|
||||
if bUseTreeViewMenu then
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue