summaryrefslogtreecommitdiff
authoralwin <alwin>2004-11-11 00:52:25 (UTC)
committer alwin <alwin>2004-11-11 00:52:25 (UTC)
commit75c24d504700b1810c94c970e40de953bc3a4779 (patch) (unidiff)
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
@@ -1,188 +1,191 @@
1/* 1/*
2 * GPLv2 zecke@handhelds.org 2 * GPLv2 zecke@handhelds.org
3 */ 3 */
4 4
5#include "doc_lister.h" 5#include "doc_lister.h"
6 6
7#include <lib/slavemaster.h> 7#include <lib/slavemaster.h>
8 8
9/* OPIE */ 9/* OPIE */
10#include <opie2/odebug.h> 10#include <opie2/odebug.h>
11#include <qpe/config.h> 11#include <qpe/config.h>
12#include <qpe/qpeapplication.h> 12#include <qpe/qpeapplication.h>
13#include <qpe/applnk.h> 13#include <qpe/applnk.h>
14 14
15#include <qtopia/private/categories.h> 15#include <qtopia/private/categories.h>
16#include <qtopia/categoryselect.h> 16#include <qtopia/categoryselect.h>
17 17
18using namespace Opie::Core; 18using namespace Opie::Core;
19 19
20/* QT */ 20/* QT */
21#include <qdir.h> 21#include <qdir.h>
22#include <qfileinfo.h> 22#include <qfileinfo.h>
23 23
24Doc_DirLister::Doc_DirLister() 24Doc_DirLister::Doc_DirLister()
25 : PDirLister( "doc_dir_lister" ) 25 : PDirLister( "doc_dir_lister" )
26{ 26{
27 /* connect the signals */ 27 /* connect the signals */
28 m_catFilter = 0; 28 m_catFilter = 0;
29 SlaveMaster* master = SlaveMaster::self(); 29 SlaveMaster* master = SlaveMaster::self();
30 connect( master, SIGNAL(sig_start()), this, SIGNAL(sig_start()) ); 30 connect( master, SIGNAL(sig_start()), this, SIGNAL(sig_start()) );
31 connect( master, SIGNAL(sig_end()), this, SIGNAL(sig_end()) ); 31 connect( master, SIGNAL(sig_end()), this, SIGNAL(sig_end()) );
32 connect( master, SIGNAL(sig_thumbInfo(const QString&, const QString&)), 32 connect( master, SIGNAL(sig_thumbInfo(const QString&, const QString&)),
33 this, SLOT(slotThumbInfo(const QString&, const QString&)) ); 33 this, SLOT(slotThumbInfo(const QString&, const QString&)) );
34 connect( master, SIGNAL(sig_fullInfo(const QString&, const QString&)), 34 connect( master, SIGNAL(sig_fullInfo(const QString&, const QString&)),
35 this, SLOT(slotFullInfo(const QString&, const QString&)) ); 35 this, SLOT(slotFullInfo(const QString&, const QString&)) );
36 connect( master, SIGNAL(sig_thumbNail(const QString&, const QPixmap&)), 36 connect( master, SIGNAL(sig_thumbNail(const QString&, const QPixmap&)),
37 this, SLOT(slotThumbNail(const QString&, const QPixmap&)) ); 37 this, SLOT(slotThumbNail(const QString&, const QPixmap&)) );
38 38
39 m_namemap.clear(); 39 m_namemap.clear();
40 m_filemap.clear(); 40 m_filemap.clear();
41 m_docreads = false;
41} 42}
42 43
43QString Doc_DirLister::defaultPath()const { 44QString Doc_DirLister::defaultPath()const {
44 return QString::null; 45 return QString::null;
45} 46}
46 47
47bool Doc_DirLister::matchCat(const AppLnk* app) 48bool Doc_DirLister::matchCat(const AppLnk* app)
48{ 49{
49 if (!app) return false; 50 if (!app) return false;
50 if (m_catFilter==0 || app->categories().contains(m_catFilter) || m_catFilter == -1 && app->categories().count() == 0 ) { 51 if (m_catFilter==0 || app->categories().contains(m_catFilter) || m_catFilter == -1 && app->categories().count() == 0 ) {
51 return true; 52 return true;
52 } 53 }
53 return false; 54 return false;
54} 55}
55 56
56QString Doc_DirLister::setStartPath(const QString&) { 57QString Doc_DirLister::setStartPath(const QString&) {
57 static const QString Mtype_str("image/jpeg;image/gif;image/bmp;image/png"); 58 static const QString Mtype_str("image/jpeg;image/gif;image/bmp;image/png");
58 if (m_namemap.isEmpty()) { 59 if (m_namemap.isEmpty()) {
59 DocLnkSet ds; 60 if (!m_docreads) {
60 Global::findDocuments(&ds,Mtype_str); 61 Global::findDocuments(&m_ds,Mtype_str);
61 QListIterator<DocLnk> dit(ds.children()); 62 m_docreads = true;
63 }
64 QListIterator<DocLnk> dit(m_ds.children());
62 for( ; dit.current(); ++dit) { 65 for( ; dit.current(); ++dit) {
63 if (! (*dit)->isValid()) continue; 66// if (! (*dit)->isValid()) continue;
64 if (!matchCat((*dit))) continue; 67 if (!matchCat((*dit))) continue;
65 m_namemap[(*dit)->name()]=(*dit)->file(); 68 m_namemap[(*dit)->name()]=(*dit)->file();
66 m_filemap[(*dit)->file()]=(*dit)->name(); 69 m_filemap[(*dit)->file()]=(*dit)->name();
67 } 70 }
68 } 71 }
69 return QString::null; 72 return QString::null;
70} 73}
71 74
72QString Doc_DirLister::currentPath()const { 75QString Doc_DirLister::currentPath()const {
73 return QString::null; 76 return QString::null;
74} 77}
75 78
76 79
77QStringList Doc_DirLister::folders()const { 80QStringList Doc_DirLister::folders()const {
78 return QStringList(); 81 return QStringList();
79} 82}
80 83
81QStringList Doc_DirLister::files()const { 84QStringList Doc_DirLister::files()const {
82 QStringList out; 85 QStringList out;
83 QMap<QString,QString>::ConstIterator it; 86 QMap<QString,QString>::ConstIterator it;
84 for (it = m_namemap.begin();it != m_namemap.end();++it) { 87 for (it = m_namemap.begin();it != m_namemap.end();++it) {
85 out.append(it.key()); 88 out.append(it.key());
86 } 89 }
87 return out; 90 return out;
88} 91}
89 92
90void Doc_DirLister::deleteImage( const QString& ) 93void Doc_DirLister::deleteImage( const QString& )
91{ 94{
92} 95}
93 96
94void Doc_DirLister::thumbNail( const QString& str, int w, int h) { 97void Doc_DirLister::thumbNail( const QString& str, int w, int h) {
95 if (m_namemap.find(str)==m_namemap.end()) { 98 if (m_namemap.find(str)==m_namemap.end()) {
96 return; 99 return;
97 } 100 }
98 QString fname = m_namemap[str]; 101 QString fname = m_namemap[str];
99 SlaveMaster::self()->thumbNail( fname, w, h ); 102 SlaveMaster::self()->thumbNail( fname, w, h );
100} 103}
101 104
102QImage Doc_DirLister::image( const QString& str, Factor f, int m) { 105QImage Doc_DirLister::image( const QString& str, Factor f, int m) {
103 if (m_namemap.find(str)==m_namemap.end()) { 106 if (m_namemap.find(str)==m_namemap.end()) {
104 return QImage(); 107 return QImage();
105 } 108 }
106 QString fname = m_namemap[str]; 109 QString fname = m_namemap[str];
107 return SlaveMaster::self()->image( fname, f, m ); 110 return SlaveMaster::self()->image( fname, f, m );
108} 111}
109 112
110void Doc_DirLister::imageInfo( const QString& str) { 113void Doc_DirLister::imageInfo( const QString& str) {
111 if (m_namemap.find(str)==m_namemap.end()) { 114 if (m_namemap.find(str)==m_namemap.end()) {
112 return; 115 return;
113 } 116 }
114 QString fname = m_namemap[str]; 117 QString fname = m_namemap[str];
115 SlaveMaster::self()->thumbInfo( fname ); 118 SlaveMaster::self()->thumbInfo( fname );
116} 119}
117 120
118void Doc_DirLister::fullImageInfo( const QString& str) { 121void Doc_DirLister::fullImageInfo( const QString& str) {
119 if (m_namemap.find(str)==m_namemap.end()) { 122 if (m_namemap.find(str)==m_namemap.end()) {
120 return; 123 return;
121 } 124 }
122 QString fname = m_namemap[str]; 125 QString fname = m_namemap[str];
123 SlaveMaster::self()->imageInfo( fname ); 126 SlaveMaster::self()->imageInfo( fname );
124} 127}
125 128
126void Doc_DirLister::slotFullInfo(const QString&f, const QString&t) 129void Doc_DirLister::slotFullInfo(const QString&f, const QString&t)
127{ 130{
128 if (m_filemap.find(f)==m_filemap.end()) { 131 if (m_filemap.find(f)==m_filemap.end()) {
129 return; 132 return;
130 } 133 }
131 QString name = m_filemap[f]; 134 QString name = m_filemap[f];
132 emit sig_fullInfo(name, t); 135 emit sig_fullInfo(name, t);
133} 136}
134 137
135void Doc_DirLister::slotThumbInfo(const QString&f, const QString&t) 138void Doc_DirLister::slotThumbInfo(const QString&f, const QString&t)
136{ 139{
137 if (m_filemap.find(f)==m_filemap.end()) { 140 if (m_filemap.find(f)==m_filemap.end()) {
138 return; 141 return;
139 } 142 }
140 QString name = m_filemap[f]; 143 QString name = m_filemap[f];
141 emit sig_thumbInfo(name, t); 144 emit sig_thumbInfo(name, t);
142} 145}
143 146
144void Doc_DirLister::slotThumbNail(const QString&f, const QPixmap&p) 147void Doc_DirLister::slotThumbNail(const QString&f, const QPixmap&p)
145{ 148{
146 if (m_filemap.find(f)==m_filemap.end()) { 149 if (m_filemap.find(f)==m_filemap.end()) {
147 return; 150 return;
148 } 151 }
149 QString name = m_filemap[f]; 152 QString name = m_filemap[f];
150 emit sig_thumbNail(name, p); 153 emit sig_thumbNail(name, p);
151} 154}
152 155
153QString Doc_DirLister::nameToFname(const QString&name)const 156QString Doc_DirLister::nameToFname(const QString&name)const
154{ 157{
155 if (m_namemap.find(name)==m_namemap.end()) { 158 if (m_namemap.find(name)==m_namemap.end()) {
156 return QString::null; 159 return QString::null;
157 } 160 }
158 return m_namemap[name]; 161 return m_namemap[name];
159} 162}
160 163
161QString Doc_DirLister::dirUp( const QString& p ) const{ 164QString Doc_DirLister::dirUp( const QString& p ) const{
162 return p; 165 return p;
163} 166}
164 167
165QWidget* Doc_DirLister::widget(QWidget*parent) 168QWidget* Doc_DirLister::widget(QWidget*parent)
166{ 169{
167 CategorySelect * catmb = new CategorySelect(parent); 170 CategorySelect * catmb = new CategorySelect(parent);
168 Categories cats( 0 ); 171 Categories cats( 0 );
169 cats.load( categoryFileName() ); 172 cats.load( categoryFileName() );
170 QArray<int> vl( 0 ); 173 QArray<int> vl( 0 );
171 catmb->setCategories( vl, "Document View", // No tr 174 catmb->setCategories( vl, "Document View", // No tr
172 "Document View" ); 175 "Document View" );
173 catmb->setRemoveCategoryEdit( TRUE ); 176 catmb->setRemoveCategoryEdit( TRUE );
174 catmb->setAllCategories( TRUE ); 177 catmb->setAllCategories( TRUE );
175 connect(catmb, SIGNAL(signalSelected(int)), this, SLOT(showCategory(int))); 178 connect(catmb, SIGNAL(signalSelected(int)), this, SLOT(showCategory(int)));
176 catmb->setCurrentCategory(-2); 179 catmb->setCurrentCategory(-2);
177 return catmb; 180 return catmb;
178} 181}
179 182
180void Doc_DirLister::showCategory(int which) 183void Doc_DirLister::showCategory(int which)
181{ 184{
182 Categories cat; 185 Categories cat;
183 cat.load( categoryFileName() ); 186 cat.load( categoryFileName() );
184 m_catFilter = which==-2?0:which; 187 m_catFilter = which==-2?0:which;
185 m_namemap.clear(); 188 m_namemap.clear();
186 setStartPath(""); 189 setStartPath("");
187 emit sig_reloadDir(); 190 emit sig_reloadDir();
188} 191}
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
@@ -1,49 +1,53 @@
1/* 1/*
2 * GPLv2 zecke@handhelds.org 2 * GPLv2 zecke@handhelds.org
3 */ 3 */
4 4
5#ifndef DOC_LISTER_INTERFACE_LISTER_H 5#ifndef DOC_LISTER_INTERFACE_LISTER_H
6#define DOC_LISTER_INTERFACE_LISTER_H 6#define DOC_LISTER_INTERFACE_LISTER_H
7 7
8#include <iface/dirlister.h> 8#include <iface/dirlister.h>
9 9
10#include <qpe/applnk.h>
11
10#include <qstring.h> 12#include <qstring.h>
11#include <qmap.h> 13#include <qmap.h>
12 14
13class Config; 15class Config;
14class AppLnk; 16class AppLnk;
15 17
16class Doc_DirLister : public PDirLister { 18class Doc_DirLister : public PDirLister {
17 Q_OBJECT 19 Q_OBJECT
18public: 20public:
19 Doc_DirLister(); 21 Doc_DirLister();
20 virtual ~Doc_DirLister(){} 22 virtual ~Doc_DirLister(){}
21 23
22 QString defaultPath()const; 24 QString defaultPath()const;
23 QString setStartPath( const QString& ); 25 QString setStartPath( const QString& );
24 QString currentPath()const; 26 QString currentPath()const;
25 QStringList folders()const; 27 QStringList folders()const;
26 QStringList files()const; 28 QStringList files()const;
27 29
28 void deleteImage( const QString& ); 30 void deleteImage( const QString& );
29 void thumbNail( const QString&, int, int ); 31 void thumbNail( const QString&, int, int );
30 QImage image( const QString&, Factor, int ); 32 QImage image( const QString&, Factor, int );
31 void imageInfo( const QString& ); 33 void imageInfo( const QString& );
32 void fullImageInfo( const QString& ); 34 void fullImageInfo( const QString& );
33 virtual QString nameToFname(const QString&name)const; 35 virtual QString nameToFname(const QString&name)const;
34 QString dirUp( const QString& )const; 36 QString dirUp( const QString& )const;
35 QWidget* widget(QWidget*parent); 37 QWidget* widget(QWidget*parent);
36 38
37private: 39private:
38 QMap<QString,QString> m_namemap,m_filemap; 40 QMap<QString,QString> m_namemap,m_filemap;
39 int m_catFilter; 41 int m_catFilter;
40 bool matchCat(const AppLnk* app); 42 bool matchCat(const AppLnk* app);
43 bool m_docreads;
44 DocLnkSet m_ds;
41 45
42protected slots: 46protected slots:
43 virtual void slotFullInfo(const QString&, const QString&); 47 virtual void slotFullInfo(const QString&, const QString&);
44 virtual void slotThumbInfo(const QString&, const QString&); 48 virtual void slotThumbInfo(const QString&, const QString&);
45 virtual void slotThumbNail(const QString&, const QPixmap&); 49 virtual void slotThumbNail(const QString&, const QPixmap&);
46 virtual void showCategory(int); 50 virtual void showCategory(int);
47}; 51};
48 52
49#endif 53#endif