summaryrefslogtreecommitdiff
authoralwin <alwin>2004-11-11 00:52:25 (UTC)
committer alwin <alwin>2004-11-11 00:52:25 (UTC)
commit75c24d504700b1810c94c970e40de953bc3a4779 (patch) (side-by-side diff)
treec55dc293a72e4f9079c8f8f1cf987f1363a751d1
parent79060b829e9231cddc0acfe2dd2b7da3f13dfbc4 (diff)
downloadopie-75c24d504700b1810c94c970e40de953bc3a4779.zip
opie-75c24d504700b1810c94c970e40de953bc3a4779.tar.gz
opie-75c24d504700b1810c94c970e40de953bc3a4779.tar.bz2
speed up cat selection
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/graphics/opie-eye/impl/doc/doc_lister.cpp11
-rw-r--r--noncore/graphics/opie-eye/impl/doc/doc_lister.h4
2 files changed, 11 insertions, 4 deletions
diff --git a/noncore/graphics/opie-eye/impl/doc/doc_lister.cpp b/noncore/graphics/opie-eye/impl/doc/doc_lister.cpp
index d60149f..e43baed 100644
--- a/noncore/graphics/opie-eye/impl/doc/doc_lister.cpp
+++ b/noncore/graphics/opie-eye/impl/doc/doc_lister.cpp
@@ -37,8 +37,9 @@ Doc_DirLister::Doc_DirLister()
this, SLOT(slotThumbNail(const QString&, const QPixmap&)) );
m_namemap.clear();
m_filemap.clear();
+ m_docreads = false;
}
QString Doc_DirLister::defaultPath()const {
return QString::null;
@@ -55,13 +56,15 @@ bool Doc_DirLister::matchCat(const AppLnk* app)
QString Doc_DirLister::setStartPath(const QString&) {
static const QString Mtype_str("image/jpeg;image/gif;image/bmp;image/png");
if (m_namemap.isEmpty()) {
- DocLnkSet ds;
- Global::findDocuments(&ds,Mtype_str);
- QListIterator<DocLnk> dit(ds.children());
+ if (!m_docreads) {
+ Global::findDocuments(&m_ds,Mtype_str);
+ m_docreads = true;
+ }
+ QListIterator<DocLnk> dit(m_ds.children());
for( ; dit.current(); ++dit) {
- if (! (*dit)->isValid()) continue;
+// if (! (*dit)->isValid()) continue;
if (!matchCat((*dit))) continue;
m_namemap[(*dit)->name()]=(*dit)->file();
m_filemap[(*dit)->file()]=(*dit)->name();
}
diff --git a/noncore/graphics/opie-eye/impl/doc/doc_lister.h b/noncore/graphics/opie-eye/impl/doc/doc_lister.h
index e148ac0..403241c 100644
--- a/noncore/graphics/opie-eye/impl/doc/doc_lister.h
+++ b/noncore/graphics/opie-eye/impl/doc/doc_lister.h
@@ -6,8 +6,10 @@
#define DOC_LISTER_INTERFACE_LISTER_H
#include <iface/dirlister.h>
+#include <qpe/applnk.h>
+
#include <qstring.h>
#include <qmap.h>
class Config;
@@ -37,8 +39,10 @@ public:
private:
QMap<QString,QString> m_namemap,m_filemap;
int m_catFilter;
bool matchCat(const AppLnk* app);
+ bool m_docreads;
+ DocLnkSet m_ds;
protected slots:
virtual void slotFullInfo(const QString&, const QString&);
virtual void slotThumbInfo(const QString&, const QString&);