diff --git a/modules/juce_gui_basics/filebrowser/juce_DirectoryContentsList.cpp b/modules/juce_gui_basics/filebrowser/juce_DirectoryContentsList.cpp index 6976073e85..07aef35519 100644 --- a/modules/juce_gui_basics/filebrowser/juce_DirectoryContentsList.cpp +++ b/modules/juce_gui_basics/filebrowser/juce_DirectoryContentsList.cpp @@ -66,10 +66,10 @@ void DirectoryContentsList::setDirectory (const File& directory, auto newFlags = fileTypeFlags; - if (includeDirectories) newFlags |= File::findDirectories; + if (includeDirectories) newFlags |= File::findDirectories; else newFlags &= ~File::findDirectories; - if (includeFiles) newFlags |= File::findFiles; + if (includeFiles) newFlags |= File::findFiles; else newFlags &= ~File::findFiles; setTypeFlags (newFlags); @@ -88,7 +88,7 @@ void DirectoryContentsList::stopSearching() { shouldStop = true; thread.removeTimeSliceClient (this); - fileFindHandle = nullptr; + isSearching = false; } void DirectoryContentsList::clear() @@ -110,8 +110,9 @@ void DirectoryContentsList::refresh() if (root.isDirectory()) { - fileFindHandle = std::make_unique (root, false, "*", fileTypeFlags); + fileFindHandle = std::make_unique(root, false, "*", fileTypeFlags); shouldStop = false; + isSearching = true; thread.addTimeSliceClient (this); } } @@ -165,7 +166,7 @@ bool DirectoryContentsList::contains (const File& targetFile) const bool DirectoryContentsList::isStillLoading() const { - return fileFindHandle != nullptr; + return isSearching; } void DirectoryContentsList::changed() diff --git a/modules/juce_gui_basics/filebrowser/juce_DirectoryContentsList.h b/modules/juce_gui_basics/filebrowser/juce_DirectoryContentsList.h index 691155aead..a046554584 100644 --- a/modules/juce_gui_basics/filebrowser/juce_DirectoryContentsList.h +++ b/modules/juce_gui_basics/filebrowser/juce_DirectoryContentsList.h @@ -209,6 +209,7 @@ private: std::unique_ptr fileFindHandle; std::atomic shouldStop { true }; + bool isSearching = false; bool wasEmpty = true;