changed video directory choosage behaviour

This commit is contained in:
louis
2014-02-06 17:38:55 +01:00
parent 9f127fbbb5
commit 567769ee87
16 changed files with 224 additions and 118 deletions

View File

@@ -593,18 +593,20 @@ cRecMenuItemSelectDirectory::cRecMenuItemSelectDirectory(cString text,
std::string originalFolder,
bool active,
char *callback,
eRecMenuState action) {
eRecMenuState action,
bool isSearchTimer) {
selectable = true;
this->text = text;
this->originalFolder = originalFolder;
seriesFolder = "";
this->active = active;
this->callback = callback;
this->action = action;
height = 3 * font->Height() / 2;
pixmapVal = NULL;
folders.push_back(tr("root video folder"));
ReadFolders(NULL, "");
if (isSearchTimer && tvguideConfig.instRecFixedFolder.size() > 0)
folders.push_back(tvguideConfig.instRecFixedFolder);
ReadRecordingDirectories(&folders, NULL, "");
numValues = folders.size();
this->currentVal = GetInitial();
}
@@ -694,33 +696,9 @@ void cRecMenuItemSelectDirectory::SetCallback(void) {
std::string newFolder = folders[currentVal];
if (!newFolder.compare(tr("root video folder")))
newFolder = "";
if (seriesFolder.size() > 0) {
if (newFolder.size() > 0)
newFolder = *cString::sprintf("%s/%s", folders[currentVal].c_str(), seriesFolder.c_str());
else
newFolder = seriesFolder;
}
strncpy(callback, newFolder.c_str(), TEXTINPUTLENGTH);
}
void cRecMenuItemSelectDirectory::ReadFolders(cList<cNestedItem> *rootFolders, cString path) {
cList<cNestedItem> *foldersLevel = NULL;
if (rootFolders) {
foldersLevel = rootFolders;
} else {
foldersLevel = &Folders;
}
for (cNestedItem *folder = foldersLevel->First(); folder; folder = foldersLevel->Next(folder)) {
cString strFolder = cString::sprintf("%s%s", *path, folder->Text());
folders.push_back(*strFolder);
cList<cNestedItem> *subItems = folder->SubItems();
if (subItems) {
cString newPath = cString::sprintf("%s%s/", *path, folder->Text());
ReadFolders(subItems, newPath);
}
}
}
int cRecMenuItemSelectDirectory::GetInitial(void) {
if (originalFolder.size() == 0)
return 0;
@@ -729,18 +707,6 @@ int cRecMenuItemSelectDirectory::GetInitial(void) {
return i;
}
}
size_t found = originalFolder.find_last_of('/');
if (found != std::string::npos) {
std::string folderSet = originalFolder.substr(0, found);
seriesFolder = originalFolder.substr(found + 1);
for (int i=0; i < numValues; i++) {
if (!folders[i].compare(folderSet)) {
return i;
}
}
} else {
seriesFolder = originalFolder;
}
return 0;
}