1
0
mirror of git://projects.qi-hardware.com/gmenu2x.git synced 2024-07-04 21:28:54 +03:00

Changed the file browser to use / as root and added ability to see extensionless files (i.e. executables)

This commit is contained in:
bartbes 2010-08-03 17:32:54 +02:00
parent b54a595e26
commit ba9af53c21
4 changed files with 11 additions and 8 deletions

View File

@ -45,7 +45,7 @@ bool BrowseDialog::exec()
return false; return false;
string path = fl->getPath(); string path = fl->getPath();
if (path.empty() || !fileExists(path) || path.compare(0, 5, CARD_ROOT) != 0) if (path.empty() || !fileExists(path) || path.compare(0, CARD_ROOT_LEN, CARD_ROOT) != 0)
setPath(CARD_ROOT); setPath(CARD_ROOT);
fl->browse(); fl->browse();
@ -166,8 +166,8 @@ void BrowseDialog::directoryUp()
if (p == path.size() - 1) if (p == path.size() - 1)
p = path.rfind("/", p - 1); p = path.rfind("/", p - 1);
if (p == string::npos || p < 4 || path.compare(0, 5, CARD_ROOT) != 0) { if (p == string::npos || path.compare(0, CARD_ROOT_LEN, CARD_ROOT) != 0 || path.length() <= CARD_ROOT_LEN) {
close = true; close = true;
result = false; result = false;
} else { } else {

View File

@ -77,7 +77,8 @@
//#include <pnd_discovery.h> //#include <pnd_discovery.h>
#endif #endif
const char *CARD_ROOT = "/card"; const char *CARD_ROOT = "/"; //Note: Add a trailing /!
const int CARD_ROOT_LEN = 1;
using namespace std; using namespace std;
using namespace fastdelegate; using namespace fastdelegate;
@ -1006,7 +1007,7 @@ void GMenu2X::main() {
} }
void GMenu2X::explorer() { void GMenu2X::explorer() {
FileDialog fd(this,tr["Select an application"],".gpu,.dge,.sh"); FileDialog fd(this,tr["Select an application"],".gpu,.dge,.sh,");
if (fd.exec()) { if (fd.exec()) {
if (confInt["saveSelection"] && (confInt["section"]!=menu->selSectionIndex() || confInt["link"]!=menu->selLinkIndex())) if (confInt["saveSelection"] && (confInt["section"]!=menu->selSectionIndex() || confInt["link"]!=menu->selLinkIndex()))
writeConfig(); writeConfig();
@ -1063,10 +1064,11 @@ void GMenu2X::options() {
if (curGlobalVolume!=confInt["globalVolume"]) setVolume(confInt["globalVolume"]); if (curGlobalVolume!=confInt["globalVolume"]) setVolume(confInt["globalVolume"]);
if (lang == "English") lang = ""; if (lang == "English") lang = "";
if (lang != tr.lang()) tr.setLang(lang); if (lang != tr.lang()) tr.setLang(lang);
if (fileExists(CARD_ROOT) && !showRootFolder) /*if (fileExists(CARD_ROOT) && !showRootFolder)
unlink(CARD_ROOT); unlink(CARD_ROOT);
else if (!fileExists(CARD_ROOT) && showRootFolder) else if (!fileExists(CARD_ROOT) && showRootFolder)
symlink("/", CARD_ROOT); symlink("/", CARD_ROOT);*/
//WARNING: Disabled because these functions get dangerous when run with / as CARD_ROOT
writeConfig(); writeConfig();
} }
} }

View File

@ -49,6 +49,7 @@ const int BATTERY_READS = 10;
const int LOOP_DELAY=30000; const int LOOP_DELAY=30000;
extern const char *CARD_ROOT; extern const char *CARD_ROOT;
extern const int CARD_ROOT_LEN;
extern void jz_cpuspeed(unsigned clockspeed); extern void jz_cpuspeed(unsigned clockspeed);

View File

@ -152,7 +152,7 @@ int Selector::exec(int startSelection) {
if ( gmenu2x->input[ACTION_X] ) { if ( gmenu2x->input[ACTION_X] ) {
if (link->getSelectorBrowser()) { if (link->getSelectorBrowser()) {
string::size_type p = dir.rfind("/", dir.size()-2); string::size_type p = dir.rfind("/", dir.size()-2);
if (p==string::npos || dir.compare(0, 5, CARD_ROOT) != 0 || p<4) { if (p==string::npos || dir.compare(0, CARD_ROOT_LEN, CARD_ROOT) != 0 || dir.length() <= CARD_ROOT_LEN) {
close = true; close = true;
result = false; result = false;
} else { } else {