2
0
Эх сурвалжийг харах

UPD: Make search results more useful

Alexander Koblov 11 жил өмнө
parent
commit
4430e99c00

+ 3 - 7
src/fFindDlg.pas

@@ -247,7 +247,7 @@ uses
   LCLProc, LCLType, LConvEncoding, StrUtils, HelpIntfs, fViewer, fMain,
   LCLProc, LCLType, LConvEncoding, StrUtils, HelpIntfs, fViewer, fMain,
   uLng, uGlobs, uShowForm, uDCUtils, uFileSource,
   uLng, uGlobs, uShowForm, uDCUtils, uFileSource,
   uSearchResultFileSource, uFile, uFileSystemFileSource,
   uSearchResultFileSource, uFile, uFileSystemFileSource,
-  uFileViewNotebook, uColumnsFileView, uKeyboard,
+  uFileViewNotebook, uKeyboard,
   DCOSUtils, SynRegExpr;
   DCOSUtils, SynRegExpr;
 
 
 const
 const
@@ -1047,12 +1047,8 @@ begin
 
 
   // Add new tab for search results.
   // Add new tab for search results.
   Notebook := frmMain.ActiveNotebook;
   Notebook := frmMain.ActiveNotebook;
-  NewPage := Notebook.NewEmptyPage;
-  NewPage.PermanentTitle := rsSearchResult;
-
-  // Hard-coded Columns file view for now (later user will be able to change default view).
-  FileView := TColumnsFileView.Create(NewPage, SearchResultFS, SearchResultFS.GetRootDir);
-  frmMain.AssignEvents(FileView);
+  NewPage := Notebook.NewPage(Notebook.ActiveView);
+  NewPage.FileView.AddFileSource(SearchResultFS, SearchResultFS.GetRootDir);
   NewPage.MakeActive;
   NewPage.MakeActive;
 
 
   Close;
   Close;

+ 12 - 6
src/filesources/searchresult/usearchresultfilesource.pas

@@ -25,11 +25,13 @@ type
 
 
   TSearchResultFileSource = class(TMultiListFileSource, ISearchResultFileSource)
   TSearchResultFileSource = class(TMultiListFileSource, ISearchResultFileSource)
   public
   public
-    constructor Create; override;
 
 
+    function GetRootDir(sPath : String): String; override;
     function GetProperties: TFileSourceProperties; override;
     function GetProperties: TFileSourceProperties; override;
     function SetCurrentWorkingDirectory(NewDir: String): Boolean; override;
     function SetCurrentWorkingDirectory(NewDir: String): Boolean; override;
 
 
+    class function CreateFile(const APath: String): TFile; override;
+
     function CreateListOperation(TargetPath: String): TFileSourceOperation; override;
     function CreateListOperation(TargetPath: String): TFileSourceOperation; override;
 
 
     function GetLocalName(var aFile: TFile): Boolean; override;
     function GetLocalName(var aFile: TFile): Boolean; override;
@@ -38,17 +40,16 @@ type
 implementation
 implementation
 
 
 uses
 uses
-  uSearchResultListOperation;
+  uFileSystemFileSource, uSearchResultListOperation, uLng;
 
 
-constructor TSearchResultFileSource.Create;
+function TSearchResultFileSource.GetRootDir(sPath: String): String;
 begin
 begin
-  FCurrentAddress := 'SearchResult';
-  inherited Create;
+  Result:=  PathDelim + PathDelim + PathDelim + rsSearchResult + PathDelim;
 end;
 end;
 
 
 function TSearchResultFileSource.GetProperties: TFileSourceProperties;
 function TSearchResultFileSource.GetProperties: TFileSourceProperties;
 begin
 begin
-  Result := [fspLinksToLocalFiles];
+  Result := inherited GetProperties + [fspLinksToLocalFiles];
 end;
 end;
 
 
 function TSearchResultFileSource.SetCurrentWorkingDirectory(NewDir: String): Boolean;
 function TSearchResultFileSource.SetCurrentWorkingDirectory(NewDir: String): Boolean;
@@ -57,6 +58,11 @@ begin
   Result := IsPathAtRoot(NewDir);
   Result := IsPathAtRoot(NewDir);
 end;
 end;
 
 
+class function TSearchResultFileSource.CreateFile(const APath: String): TFile;
+begin
+  Result:= TFileSystemFileSource.CreateFile(APath);
+end;
+
 function TSearchResultFileSource.CreateListOperation(TargetPath: String): TFileSourceOperation;
 function TSearchResultFileSource.CreateListOperation(TargetPath: String): TFileSourceOperation;
 begin
 begin
   Result := TSearchResultListOperation.Create(Self, TargetPath);
   Result := TSearchResultListOperation.Create(Self, TargetPath);