FIX: Bug [3051500] quickview and tab

This commit is contained in:
Alexander Koblov 2010-08-23 16:47:26 +00:00
commit dfb97d3177
2 changed files with 13 additions and 10 deletions

View file

@ -1378,14 +1378,11 @@ begin
begin
if Assigned(QuickViewPanel) then
begin
ActiveFrame.OnChangeActiveFile:= nil;
QuickViewClose;
end
else if (param <> 'Close') then
begin
QuickViewShow(NotActiveNotebook.ActivePage, ActiveFrame.FileSource);
QuickViewPanel.FileViewChangeActiveFile(ActiveFrame, ActiveFrame.ActiveFile);
ActiveFrame.OnChangeActiveFile:= @QuickViewPanel.FileViewChangeActiveFile;
QuickViewShow(NotActiveNotebook.ActivePage, ActiveFrame);
end;
end;
end;

View file

@ -16,18 +16,19 @@ type
private
FFirstFile: Boolean;
FFileViewPage: TFileViewPage;
FFileView: TFileView;
FFileSource: IFileSource;
FViewer: TfrmViewer;
FFileName: UTF8String;
public
constructor Create(TheOwner: TComponent; aParent: TFileViewPage); reintroduce;
destructor Destroy; override;
procedure CreateViewer(aFileSource: IFileSource);
procedure CreateViewer(aFileView: TFileView);
procedure LoadFile(const aFileName: UTF8String);
procedure FileViewChangeActiveFile(Sender: TFileView; const aFile : TFile);
end;
procedure QuickViewShow(aFileViewPage: TFileViewPage; const aFileSource: IFileSource);
procedure QuickViewShow(aFileViewPage: TFileViewPage; aFileView: TFileView);
procedure QuickViewClose;
var
@ -39,10 +40,12 @@ uses
LCLProc, Forms, Controls, uTempFileSystemFileSource,
uFileSourceProperty, uFileSourceOperation, uFileSourceOperationTypes;
procedure QuickViewShow(aFileViewPage: TFileViewPage; const aFileSource: IFileSource);
procedure QuickViewShow(aFileViewPage: TFileViewPage; aFileView: TFileView);
begin
QuickViewPanel:= TQuickViewPanel.Create(Application, aFileViewPage);
QuickViewPanel.CreateViewer(aFileSource);
QuickViewPanel.CreateViewer(aFileView);
QuickViewPanel.FileViewChangeActiveFile(aFileView, aFileView.ActiveFile);
aFileView.OnChangeActiveFile:= @QuickViewPanel.FileViewChangeActiveFile;
end;
procedure QuickViewClose;
@ -64,14 +67,16 @@ end;
destructor TQuickViewPanel.Destroy;
begin
FFileView.OnChangeActiveFile:= nil;
FViewer.ExitPluginMode;
FFileViewPage.FileView.Visible:= True;
FreeThenNil(FViewer);
FFileSource:= nil;
FFileView.SetFocus;
inherited Destroy;
end;
procedure TQuickViewPanel.CreateViewer(aFileSource: IFileSource);
procedure TQuickViewPanel.CreateViewer(aFileView: TFileView);
begin
FViewer:= TfrmViewer.Create(Self, nil);
FViewer.Parent:= Self;
@ -80,7 +85,8 @@ begin
FViewer.Align:= alClient;
FViewer.QuickView:= True;
FFirstFile:= True;
FFileSource:= aFileSource;
FFileView:= aFileView;
FFileSource:= aFileView.FileSource;
FFileViewPage.FileView.Visible:= False;
end;