summaryrefslogtreecommitdiff
path: root/menu_dirselect.c
diff options
context:
space:
mode:
Diffstat (limited to 'menu_dirselect.c')
-rw-r--r--menu_dirselect.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/menu_dirselect.c b/menu_dirselect.c
index da90a10..387815f 100644
--- a/menu_dirselect.c
+++ b/menu_dirselect.c
@@ -173,6 +173,12 @@ void cMenuDirSelect::CreateDirSet(bool extraDirs)
free(dir);
}
+#if APIVERSNUM >= 10712
+ // add distinct directories from folders.conf
+ for(cNestedItem* item = Folders.First(); item; item = Folders.Next(item))
+ AddVDRFolders(item);
+#endif
+
if (extraDirs)
{
cMutexLock SearchExtsLock(&SearchExts);
@@ -202,6 +208,17 @@ void cMenuDirSelect::CreateDirSet(bool extraDirs)
}
}
+#if APIVERSNUM >= 10712
+void cMenuDirSelect::AddVDRFolders(cNestedItem* folder, string parentDirectory)
+{
+ if (folder == NULL) return;
+ string folderDirectory = string((parentDirectory.size() == 0)?"":parentDirectory + "~") + folder->Text();
+ directorySet.insert(folderDirectory);
+ if (folder->SubItems() == NULL) return;
+ for(cNestedItem* subfolder = folder->SubItems()->First(); subfolder; subfolder = folder->SubItems()->Next(subfolder))
+ AddVDRFolders(subfolder, folderDirectory);
+}
+#endif
void cMenuDirSelect::Load()
{