MCPcopy Create free account
hub / github.com/jerryuhoo/Fire / recursiveFileSearch

Method recursiveFileSearch

Source/Panels/TopPanel/Preset.cpp:276–316  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

274 }
275
276 void StatePresets::recursiveFileSearch(juce::XmlElement& parentXML, juce::File dir)
277 {
278 juce::RangedDirectoryIterator iterator(dir, false, "*", 3); // findDirectories = 1, findFiles = 2, findFilesAndDirectories = 3, ignoreHiddenFiles = 4
279 for (auto file : iterator)
280 {
281 // is folder
282 if (file.isDirectory())
283 {
284 juce::String folderName;
285 folderName = file.getFile().getFileName();
286 std::unique_ptr<juce::XmlElement> currentState { new juce::XmlElement { folderName } }; // must be pointer as parent takes ownership
287 //DBG(dir.getChildFile(file.getFile().getFileName()).getFullPathName());
288 recursiveFileSearch(*currentState, dir.getChildFile(file.getFile().getFileName()));
289 parentXML.addChildElement(currentState.release()); // will be deleted by parent element
290 }
291 // is preset
292 else if (file.getFile().hasFileExtension(PRESET_EXETENSION))
293 {
294 numPresets++;
295 juce::String newPresetId = getNextAvailablePresetId(); // presetId format: "preset##"
296 std::unique_ptr<juce::XmlElement> currentState { new juce::XmlElement { newPresetId } }; // must be pointer as parent takes ownership
297 parseFileToXmlElement(file.getFile(), *currentState);
298 currentState->setTagName(newPresetId);
299
300 // if file name differs from preset name in .fire
301 juce::String newName = file.getFile().getFileNameWithoutExtension();
302 if (newName != currentState->getStringAttribute("presetName"))
303 {
304 currentState->setAttribute("presetName", newName);
305 }
306
307 //mPresetXml.addChildElement(currentState.release()); // will be deleted by parent element
308 parentXML.addChildElement(currentState.release()); // will be deleted by parent element
309 }
310 else
311 {
312 // not a fire preset, maybe popup alert window?
313 //jassertfalse;
314 }
315 }
316 }
317
318 void StatePresets::recursiveSort(juce::XmlElement* parent)
319 {

Callers

nothing calls this directly

Calls 2

parseFileToXmlElementFunction · 0.85
getFileMethod · 0.80

Tested by

no test coverage detected