summaryrefslogtreecommitdiff
authoralwin <alwin>2004-02-24 02:47:03 (UTC)
committer alwin <alwin>2004-02-24 02:47:03 (UTC)
commitf196130d43642f2397ddadeed72e3ea062cda281 (patch) (side-by-side diff)
tree1916d2e66a8ea4fb149397b71888057c62156091
parent4baf741237a4c4575b3efe0bff6c4e143902b7ec (diff)
downloadopie-f196130d43642f2397ddadeed72e3ea062cda281.zip
opie-f196130d43642f2397ddadeed72e3ea062cda281.tar.gz
opie-f196130d43642f2397ddadeed72e3ea062cda281.tar.bz2
- check now for the storage media flag "check =" in DocumentListPrivate::appendDocpath
- fixed a possible segmentation fault in DocumentListPrivate::nextFile
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/launcher/documentlist.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/core/launcher/documentlist.cpp b/core/launcher/documentlist.cpp
index 39dc7c9..63f853e 100644
--- a/core/launcher/documentlist.cpp
+++ b/core/launcher/documentlist.cpp
@@ -436,16 +436,20 @@ void DocumentListPrivate::appendDocpath(FileSystem*fs)
QFileInfo f(fs->path()+"/.opiestorage.cf");
if (!f.exists()) {
Mediadlg dlg(fs);
if (QDialog::Accepted != QPEApplication::execDialog( &dlg )) {
return;
}
}
Config conf(f.filePath(), Config::File );
+ conf.setGroup("main");
+ if (!conf.readBoolEntry("check",false)) {
+ return;
+ }
conf.setGroup("subdirs");
bool read_all = conf.readBoolEntry("wholemedia",true);
if (read_all) {
docPaths+=fs->path();
return;
}
QStringList subDirs = conf.readListEntry("subdirs",':');
if (subDirs.isEmpty()) {
@@ -555,16 +559,19 @@ const QString DocumentListPrivate::nextFile()
lists[0] = listDirs[0]->entryInfoList();
listPositions[0] = 0;
searchDepth = 0;
}
}
}
const QFileInfoList *fil = lists[searchDepth];
+ if (!fil) {
+ return QString::null;
+ }
QFileInfoList *fl = (QFileInfoList *)fil;
unsigned int pos = listPositions[searchDepth];
if ( pos >= fl->count() ) {
// go up a depth
delete listDirs[searchDepth];
listDirs[searchDepth] = 0;
lists[searchDepth] = 0;