Procházet zdrojové kódy

UPD: Make search results more useful

Alexander Koblov před 11 roky
rodič
revize
4430e99c00

+ 3 - 7
src/fFindDlg.pas

@@ -247,7 +247,7 @@ uses
   LCLProc, LCLType, LConvEncoding, StrUtils, HelpIntfs, fViewer, fMain,
   uLng, uGlobs, uShowForm, uDCUtils, uFileSource,
   uSearchResultFileSource, uFile, uFileSystemFileSource,
-  uFileViewNotebook, uColumnsFileView, uKeyboard,
+  uFileViewNotebook, uKeyboard,
   DCOSUtils, SynRegExpr;
 
 const
@@ -1047,12 +1047,8 @@ begin
 
   // Add new tab for search results.
   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;
 
   Close;

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

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