Parcourir la source

Bug fix: File color rules with path mask do not work for local files

(cherry picked from commit d5742fc17995cc10fc609e569616977c9fa43f1f)

Source commit: 9af031fdab53751b01268d09315bb29818ebe1ad
Martin Prikryl il y a 3 ans
Parent
commit
2447193884

+ 2 - 1
source/forms/CustomScpExplorer.cpp

@@ -10754,10 +10754,11 @@ void __fastcall TCustomScpExplorerForm::DirViewGetItemColor(
   MaskParams.Modification = Modification;
 
   TCustomDirView * DirView = DebugNotNull(dynamic_cast<TCustomDirView *>(Sender));
+  bool Local = (dynamic_cast<TUnixDirView *>(DirView) == NULL);
   for (TFileColorData::TList::const_iterator Iter = FFileColors.begin(); Iter != FFileColors.end(); Iter++)
   {
     bool ImplicitMatch;
-    if (Iter->FileMask.Matches(FileName, Directory, DirView->PathName, &MaskParams, false, ImplicitMatch) &&
+    if (Iter->FileMask.Matches(FileName, Local, Directory, &MaskParams, false, ImplicitMatch) &&
         !ImplicitMatch)
     {
       Color = Iter->Color;

+ 1 - 1
source/packages/filemng/CustomDirView.pas

@@ -1322,7 +1322,7 @@ begin
   Result := clDefaultItemColor;
   if Assigned(OnGetItemColor) then
   begin
-    OnGetItemColor(Self, ItemFileName(Item), ItemIsDirectory(Item), ItemFileSize(Item), ItemFileTime(Item, Precision), Result);
+    OnGetItemColor(Self, ItemFullFileName(Item), ItemIsDirectory(Item), ItemFileSize(Item), ItemFileTime(Item, Precision), Result);
   end;
 end;