Fix file manager displays empty list when folder is deleted
This commit is contained in:
+14
-14
@@ -302,10 +302,7 @@ GUIFileSelector::GUIFileSelector(xml_node<>* node)
|
||||
// Fetch the file/folder list
|
||||
std::string value;
|
||||
DataManager::GetValue(mPathVar, value);
|
||||
if (GetFileList(value) != 0 && (mShowNavFolders != 0 || mShowFiles != 0)) {
|
||||
GetFileList(DataManager::GetCurrentStoragePath());
|
||||
DataManager::SetValue(mPathVar, DataManager::GetCurrentStoragePath());
|
||||
}
|
||||
GetFileList(value);
|
||||
}
|
||||
|
||||
GUIFileSelector::~GUIFileSelector()
|
||||
@@ -640,12 +637,7 @@ int GUIFileSelector::NotifyTouch(TOUCH_STATE state, int x, int y)
|
||||
else
|
||||
{
|
||||
DataManager::SetValue(mPathVar, cwd);
|
||||
if (GetFileList(cwd) != 0)
|
||||
{
|
||||
LOGE("Unable to change folders.\n");
|
||||
DataManager::SetValue(mPathVar, oldcwd);
|
||||
GetFileList(oldcwd);
|
||||
}
|
||||
GetFileList(cwd);
|
||||
mStart = 0;
|
||||
scrollingY = 0;
|
||||
mUpdate = 1;
|
||||
@@ -772,6 +764,17 @@ int GUIFileSelector::GetFileList(const std::string folder)
|
||||
if (d == NULL)
|
||||
{
|
||||
LOGI("Unable to open '%s'\n", folder.c_str());
|
||||
if (folder != "/" && (mShowNavFolders != 0 || mShowFiles != 0)) {
|
||||
size_t found;
|
||||
found = folder.find_last_of('/');
|
||||
if (found != string::npos) {
|
||||
string new_folder = folder.substr(0, found);
|
||||
|
||||
if (new_folder.length() < 2)
|
||||
new_folder = "/";
|
||||
DataManager::SetValue(mPathVar, new_folder);
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -824,10 +827,7 @@ void GUIFileSelector::SetPageFocus(int inFocus)
|
||||
{
|
||||
std::string value;
|
||||
DataManager::GetValue(mPathVar, value);
|
||||
if (GetFileList(value) != 0 && (mShowNavFolders != 0 || mShowFiles != 0)) {
|
||||
GetFileList(DataManager::GetCurrentStoragePath());
|
||||
DataManager::SetValue(mPathVar, DataManager::GetCurrentStoragePath());
|
||||
}
|
||||
GetFileList(value);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user