mirror of
https://github.com/doublecmd/doublecmd.git
synced 2026-06-21 09:58:13 +00:00
ADD: Quick view mode
This commit is contained in:
parent
6f9d0a3644
commit
6547ef33db
10 changed files with 8693 additions and 8469 deletions
|
|
@ -60,7 +60,7 @@
|
|||
<PackageName Value="viewerpackage"/>
|
||||
</Item5>
|
||||
</RequiredPackages>
|
||||
<Units Count="96">
|
||||
<Units Count="97">
|
||||
<Unit0>
|
||||
<Filename Value="doublecmd.lpr"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
|
|
@ -642,6 +642,11 @@
|
|||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="uPixMapGtk"/>
|
||||
</Unit95>
|
||||
<Unit96>
|
||||
<Filename Value="uquickviewpanel.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="uQuickViewPanel"/>
|
||||
</Unit96>
|
||||
</Units>
|
||||
</ProjectOptions>
|
||||
<CompilerOptions>
|
||||
|
|
|
|||
|
|
@ -1108,6 +1108,13 @@ object frmMain: TfrmMain
|
|||
end
|
||||
object mnuShow: TMenuItem
|
||||
Caption = '&Show'
|
||||
object mnuQuickView: TMenuItem
|
||||
Action = actQuickView
|
||||
OnClick = actExecute
|
||||
end
|
||||
object miLine32: TMenuItem
|
||||
Caption = '-'
|
||||
end
|
||||
object mnuShowName: TMenuItem
|
||||
Action = actSortByName
|
||||
OnClick = actExecute
|
||||
|
|
@ -1723,6 +1730,11 @@ object frmMain: TfrmMain
|
|||
Caption = 'Open bar file'
|
||||
OnExecute = actExecute
|
||||
end
|
||||
object actQuickView: TAction
|
||||
Category = 'Show'
|
||||
Caption = 'Quick View Panel'
|
||||
OnExecute = actExecute
|
||||
end
|
||||
end
|
||||
object pmHotList: TPopupMenu
|
||||
left = 152
|
||||
|
|
|
|||
|
|
@ -35,6 +35,7 @@ TFRMMAIN.MILINE16.CAPTION=-
|
|||
TFRMMAIN.MNUTABOPTIONS.CAPTION=Options
|
||||
TFRMMAIN.MILINE17.CAPTION=-
|
||||
TFRMMAIN.MNUSHOW.CAPTION=&Show
|
||||
TFRMMAIN.MILINE32.CAPTION=-
|
||||
TFRMMAIN.MILINE7.CAPTION=-
|
||||
TFRMMAIN.MILINE3.CAPTION=-
|
||||
TFRMMAIN.MILINE13.CAPTION=-
|
||||
|
|
@ -140,6 +141,7 @@ TFRMMAIN.ACTSETTABOPTIONDIRSINNEWTAB.CAPTION=Directories are opened in new tabs
|
|||
TFRMMAIN.ACTNEXTTAB.CAPTION=Switch to next tab
|
||||
TFRMMAIN.ACTPREVTAB.CAPTION=Switch to previous tab
|
||||
TFRMMAIN.ACTOPENBAR.CAPTION=Open bar file
|
||||
TFRMMAIN.ACTQUICKVIEW.CAPTION=Quick View Panel
|
||||
TFRMMAIN.TBEDIT.CAPTION=Edit
|
||||
TFRMMAIN.TBDELETE.CAPTION=Delete
|
||||
TFRMMAIN.MENUITEM2.CAPTION=-
|
||||
|
|
|
|||
7015
src/fmain.pas
7015
src/fmain.pas
File diff suppressed because it is too large
Load diff
|
|
@ -116,7 +116,8 @@ type
|
|||
FileList: TStringList;
|
||||
iActiveFile:Integer;
|
||||
bImage,
|
||||
bPlugin: Boolean;
|
||||
bPlugin,
|
||||
bQuickView: Boolean;
|
||||
FFindDialog:TfrmFindView;
|
||||
FFileSource: IFileSource;
|
||||
FLastSearchPos: PtrInt;
|
||||
|
|
@ -138,7 +139,9 @@ type
|
|||
constructor Create(TheOwner: TComponent; aFileSource: IFileSource); reintroduce;
|
||||
destructor Destroy; override;
|
||||
procedure LoadFile(const aFileName: UTF8String);
|
||||
procedure LoadNextFile(const aFileName: UTF8String);
|
||||
procedure LoadFile(iIndex:Integer);
|
||||
property QuickView: Boolean read bQuickView write bQuickView;
|
||||
end;
|
||||
|
||||
|
||||
|
|
@ -165,14 +168,15 @@ const
|
|||
|
||||
procedure ShowViewer(const FilesToView:TStringList; const aFileSource: IFileSource);
|
||||
var
|
||||
viewer: TfrmViewer;
|
||||
Viewer: TfrmViewer;
|
||||
begin
|
||||
//DebugLn('ShowViewer - Using Internal');
|
||||
viewer := TfrmViewer.Create(Application, aFileSource);
|
||||
gViewerPos.Restore(viewer);
|
||||
viewer.FileList.Assign(FilesToView); // Make a copy of the list
|
||||
viewer.LoadFile(0);
|
||||
viewer.Show;
|
||||
Viewer := TfrmViewer.Create(Application, aFileSource);
|
||||
Viewer.QuickView:= False;
|
||||
gViewerPos.Restore(Viewer);
|
||||
Viewer.FileList.Assign(FilesToView); // Make a copy of the list
|
||||
Viewer.LoadFile(0);
|
||||
Viewer.Show;
|
||||
end;
|
||||
|
||||
constructor TfrmViewer.Create(TheOwner: TComponent; aFileSource: IFileSource);
|
||||
|
|
@ -227,6 +231,17 @@ begin
|
|||
end;
|
||||
end;
|
||||
|
||||
procedure TfrmViewer.LoadNextFile(const aFileName: UTF8String);
|
||||
begin
|
||||
if bPlugin then
|
||||
begin
|
||||
if WlxPlugins.GetWlxModule(ActivePlugin).CallListLoadNext(pnlLister.Handle, aFileName, 0) <> LISTPLUGIN_ERROR then
|
||||
Exit;
|
||||
end;
|
||||
|
||||
LoadFile(aFileName);
|
||||
end;
|
||||
|
||||
procedure TfrmViewer.LoadFile(iIndex: Integer);
|
||||
begin
|
||||
iActiveFile := iIndex;
|
||||
|
|
@ -811,7 +826,7 @@ begin
|
|||
end
|
||||
else if Panel = pnlText then
|
||||
begin
|
||||
if CanFocus and pnlText.CanFocus and ViewerControl.CanFocus then
|
||||
if (not bQuickView) and CanFocus and pnlText.CanFocus and ViewerControl.CanFocus then
|
||||
ViewerControl.SetFocus;
|
||||
|
||||
case ViewerControl.ViewerMode of
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -14,7 +14,7 @@ type
|
|||
|
||||
TOnBeforeChangeDirectory = function (FileView: TFileView; const NewDir : String): Boolean of object;
|
||||
TOnAfterChangeDirectory = procedure (FileView: TFileView; const NewDir : String) of object;
|
||||
TOnChangeActiveFile = procedure (FileView: TFileView; const NewFile : String) of object;
|
||||
TOnChangeActiveFile = procedure (FileView: TFileView; const aFile : TFile) of object;
|
||||
TOnChangeFileSource = procedure (FileView: TFileView) of object;
|
||||
TOnActivate = procedure (aFileView: TFileView) of object;
|
||||
TOnReload = procedure (aFileView: TFileView) of object;
|
||||
|
|
|
|||
|
|
@ -185,6 +185,7 @@ const cf_Null=0;
|
|||
procedure cm_Rename(param: string='');
|
||||
procedure cm_RenameNoAsk(param: string='');
|
||||
procedure cm_View(param: string='');
|
||||
procedure cm_QuickView(param: string='');
|
||||
procedure cm_CopyNamesToClip(param: string='');
|
||||
procedure cm_FocusCmdLine(param: string='');
|
||||
procedure cm_FileAssoc(param: string='');
|
||||
|
|
@ -255,7 +256,7 @@ uses Forms, Controls, Clipbrd, strutils, LCLProc, HelpIntfs, dmHelpManager,
|
|||
fLinker, fSplitter, fDescrEdit, fCheckSumVerify, fCheckSumCalc, fSetFileProperties,
|
||||
uGlobs, uLng, uLog, uShowMsg, uOSForms, uOSUtils, uDCUtils, uGlobsPaths,
|
||||
uClassesEx, uShowForm, uShellExecute, uClipboard, uHash,
|
||||
uFilePanelSelect, uFile, uFileSystemFileSource,
|
||||
uFilePanelSelect, uFile, uFileSystemFileSource, uQuickViewPanel,
|
||||
uOperationsManager, uFileSourceOperationTypes,
|
||||
uFileSystemDeleteOperation, uFileSourceExecuteOperation,
|
||||
uFileSourceOperationMessageBoxesUI, uFileSourceCalcChecksumOperation,
|
||||
|
|
@ -1262,6 +1263,24 @@ begin
|
|||
end;
|
||||
end;
|
||||
|
||||
procedure TActs.cm_QuickView(param: string);
|
||||
begin
|
||||
with frmMain do
|
||||
begin
|
||||
if Assigned(QuickViewPanel) then
|
||||
begin
|
||||
ActiveFrame.OnChangeActiveFile:= nil;
|
||||
QuickViewClose;
|
||||
end
|
||||
else if (param <> 'Close') then
|
||||
begin
|
||||
QuickViewShow(NotActiveNotebook.ActivePage, ActiveFrame.FileSource);
|
||||
FileViewChangeActiveFile(ActiveFrame, ActiveFrame.ActiveFile);
|
||||
ActiveFrame.OnChangeActiveFile:= @FileViewChangeActiveFile;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TActs.cm_Edit(param:string);
|
||||
var
|
||||
i: Integer;
|
||||
|
|
|
|||
1819
src/uglobs.pas
1819
src/uglobs.pas
File diff suppressed because it is too large
Load diff
109
src/uquickviewpanel.pas
Normal file
109
src/uquickviewpanel.pas
Normal file
|
|
@ -0,0 +1,109 @@
|
|||
unit uQuickViewPanel;
|
||||
|
||||
{$mode objfpc}{$H+}
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, ExtCtrls, fViewer,
|
||||
uFileViewNotebook, uFileSource;
|
||||
|
||||
type
|
||||
|
||||
{ TQuickViewPanel }
|
||||
|
||||
TQuickViewPanel = class(TPanel)
|
||||
private
|
||||
FFirstFile: Boolean;
|
||||
FFileViewPage: TFileViewPage;
|
||||
FFileSource: IFileSource;
|
||||
FViewer: TfrmViewer;
|
||||
public
|
||||
constructor Create(TheOwner: TComponent; aParent: TFileViewPage); reintroduce;
|
||||
destructor Destroy; override;
|
||||
procedure CreateViewer(aFileSource: IFileSource);
|
||||
procedure LoadFile(const aFileName: UTF8String);
|
||||
end;
|
||||
|
||||
procedure QuickViewShow(aFileViewPage: TFileViewPage; const aFileSource: IFileSource);
|
||||
procedure QuickViewLoadFile(const aFileName: UTF8String; const aFileSource: IFileSource);
|
||||
procedure QuickViewClose;
|
||||
|
||||
var
|
||||
QuickViewPanel: TQuickViewPanel;
|
||||
|
||||
implementation
|
||||
|
||||
uses
|
||||
LCLProc, Forms, Controls;
|
||||
|
||||
procedure QuickViewShow(aFileViewPage: TFileViewPage; const aFileSource: IFileSource);
|
||||
begin
|
||||
QuickViewPanel:= TQuickViewPanel.Create(Application, aFileViewPage);
|
||||
QuickViewPanel.CreateViewer(aFileSource);
|
||||
end;
|
||||
|
||||
procedure QuickViewLoadFile(const aFileName: UTF8String; const aFileSource: IFileSource);
|
||||
begin
|
||||
{
|
||||
if (not QuickViewPanel.FFileSource.IsInterface(aFileSource)) then
|
||||
begin
|
||||
QuickViewPanel.FViewer.Close;
|
||||
QuickViewPanel.CreateViewer(aFileSource);
|
||||
end;
|
||||
}
|
||||
QuickViewPanel.LoadFile(aFileName);
|
||||
end;
|
||||
|
||||
procedure QuickViewClose;
|
||||
begin
|
||||
FreeThenNil(QuickViewPanel);
|
||||
end;
|
||||
|
||||
{ TQuickViewPanel }
|
||||
|
||||
constructor TQuickViewPanel.Create(TheOwner: TComponent; aParent: TFileViewPage);
|
||||
begin
|
||||
inherited Create(TheOwner);
|
||||
Parent:= aParent;
|
||||
Align:= alClient;
|
||||
FFileViewPage:= aParent;
|
||||
FFileSource:= nil;
|
||||
FViewer:= nil;
|
||||
end;
|
||||
|
||||
destructor TQuickViewPanel.Destroy;
|
||||
begin
|
||||
FFileViewPage.FileView.Visible:= True;
|
||||
FreeThenNil(FViewer);
|
||||
inherited Destroy;
|
||||
end;
|
||||
|
||||
procedure TQuickViewPanel.CreateViewer(aFileSource: IFileSource);
|
||||
begin
|
||||
FViewer:= TfrmViewer.Create(Self, aFileSource);
|
||||
FViewer.Parent:= Self;
|
||||
FViewer.BorderStyle:= bsNone;
|
||||
FViewer.Menu:= nil;
|
||||
FViewer.Align:= alClient;
|
||||
FViewer.QuickView:= True;
|
||||
FFirstFile:= True;
|
||||
FFileViewPage.FileView.Visible:= False;
|
||||
end;
|
||||
|
||||
procedure TQuickViewPanel.LoadFile(const aFileName: UTF8String);
|
||||
begin
|
||||
if FFirstFile then
|
||||
begin
|
||||
FFirstFile:= False;
|
||||
FViewer.LoadFile(aFileName);
|
||||
FViewer.Show;
|
||||
end
|
||||
else
|
||||
begin
|
||||
FViewer.LoadNextFile(aFileName);
|
||||
end;
|
||||
end;
|
||||
|
||||
end.
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue