Browse Source

Issue 2369 – Failure after switching off Thumbnails view

https://winscp.net/tracker/2369
(cherry picked from commit 8d814d4cc35c7f854dc5039f0e813e6067db1c90)

# Conflicts:
#	source/core/RemoteFiles.cpp
#	source/core/RemoteFiles.h

Source commit: a738892297967811538a5d8d1b60574d6e7a08ed
Martin Prikryl 6 months ago
parent
commit
5954e9f44d
2 changed files with 9 additions and 2 deletions
  1. 8 2
      source/core/RemoteFiles.cpp
  2. 1 0
      source/core/RemoteFiles.h

+ 8 - 2
source/core/RemoteFiles.cpp

@@ -1571,6 +1571,12 @@ void __fastcall TRemoteFileList::AddFile(TRemoteFile * File)
   File->Directory = this;
 }
 //---------------------------------------------------------------------------
+void TRemoteFileList::ExtractFile(TRemoteFile * File)
+{
+  Extract(File);
+  File->Directory = NULL;
+}
+//---------------------------------------------------------------------------
 TStrings * __fastcall TRemoteFileList::CloneStrings(TStrings * List)
 {
   std::unique_ptr<TStringList> Result(new TStringList());
@@ -1737,12 +1743,12 @@ void __fastcall TRemoteDirectory::SetIncludeParentDirectory(Boolean value)
     if (value && ParentDirectory)
     {
       DebugAssert(IndexOf(ParentDirectory) < 0);
-      Add(ParentDirectory);
+      AddFile(ParentDirectory);
     }
     else if (!value && ParentDirectory)
     {
       DebugAssert(IndexOf(ParentDirectory) >= 0);
-      Extract(ParentDirectory);
+      ExtractFile(ParentDirectory);
     }
   }
 }

+ 1 - 0
source/core/RemoteFiles.h

@@ -223,6 +223,7 @@ public:
   TRemoteFile * __fastcall FindFile(const UnicodeString &FileName);
   virtual void __fastcall DuplicateTo(TRemoteFileList * Copy);
   virtual void __fastcall AddFile(TRemoteFile * File);
+  virtual void ExtractFile(TRemoteFile * File);
 
   static TStrings * __fastcall CloneStrings(TStrings * List);
   static bool AnyDirectory(TStrings * List);