From f9e05a45b304f0fd56ebba93b50617d031f368d8 Mon Sep 17 00:00:00 2001 From: Michael Fisher Date: Sun, 16 Feb 2020 11:41:30 -0500 Subject: [PATCH] AudioFilePlayer: Fix oddity in recents dir Fixes #171 --- src/engine/nodes/AudioFilePlayerNode.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/engine/nodes/AudioFilePlayerNode.cpp b/src/engine/nodes/AudioFilePlayerNode.cpp index 3772d0831..3f2393213 100644 --- a/src/engine/nodes/AudioFilePlayerNode.cpp +++ b/src/engine/nodes/AudioFilePlayerNode.cpp @@ -95,6 +95,8 @@ class AudioFilePlayerEditor : public AudioProcessorEditor, DirectoryIterator iter (recentsDir, recursive, processor.getWildcard(), File::findFiles); while (iter.next()) { + if (iter.getFile().isDirectory()) + continue; chooser->addRecentlyUsedFile (iter.getFile()); } } @@ -102,13 +104,16 @@ class AudioFilePlayerEditor : public AudioProcessorEditor, void timerCallback() override { stabilizeComponents(); } void changeListenerCallback (ChangeBroadcaster*) override { stabilizeComponents(); } + void stabilizeComponents() { if (processor.getWatchDir().isDirectory()) - addRecentsFrom (processor.getWatchDir()); + if (chooser->getRecentlyUsedFilenames().isEmpty()) + addRecentsFrom (processor.getWatchDir()); if (chooser->getCurrentFile() != processor.getAudioFile()) - chooser->setCurrentFile (processor.getAudioFile(), dontSendNotification); + if (processor.getAudioFile().existsAsFile()) + chooser->setCurrentFile (processor.getAudioFile(), dontSendNotification); playButton.setToggleState (processor.getPlayer().isPlaying(), dontSendNotification); playButton.setButtonText (playButton.getToggleState() ? "Pause" : "Play"); @@ -139,7 +144,10 @@ class AudioFilePlayerEditor : public AudioProcessorEditor, void filenameComponentChanged (FilenameComponent*) override { - processor.openFile (chooser->getCurrentFile()); + const auto f1 = chooser->getCurrentFile(); + const auto f2 = processor.getAudioFile(); + if (! f1.isDirectory() && f1 != f2) + processor.openFile (chooser->getCurrentFile()); } void resized() override @@ -240,7 +248,7 @@ class AudioFilePlayerEditor : public AudioProcessorEditor, if (fc.browseForDirectory()) { processor.setWatchDir (fc.getResult()); - addRecentsFrom (processor.getWatchDir()); + // addRecentsFrom (processor.getWatchDir()); } };