summaryrefslogtreecommitdiff
path: root/noncore/graphics/opie-eye/impl/doc/doc_lister.cpp
Unidiff
Diffstat (limited to 'noncore/graphics/opie-eye/impl/doc/doc_lister.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/graphics/opie-eye/impl/doc/doc_lister.cpp41
1 files changed, 40 insertions, 1 deletions
diff --git a/noncore/graphics/opie-eye/impl/doc/doc_lister.cpp b/noncore/graphics/opie-eye/impl/doc/doc_lister.cpp
index 722fb95..d60149f 100644
--- a/noncore/graphics/opie-eye/impl/doc/doc_lister.cpp
+++ b/noncore/graphics/opie-eye/impl/doc/doc_lister.cpp
@@ -1,74 +1,88 @@
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>
16#include <qtopia/categoryselect.h>
17
15using namespace Opie::Core; 18using namespace Opie::Core;
16 19
17/* QT */ 20/* QT */
18#include <qdir.h> 21#include <qdir.h>
19#include <qfileinfo.h> 22#include <qfileinfo.h>
20 23
21Doc_DirLister::Doc_DirLister() 24Doc_DirLister::Doc_DirLister()
22 : PDirLister( "doc_dir_lister" ) 25 : PDirLister( "doc_dir_lister" )
23{ 26{
24 /* connect the signals */ 27 /* connect the signals */
28 m_catFilter = 0;
25 SlaveMaster* master = SlaveMaster::self(); 29 SlaveMaster* master = SlaveMaster::self();
26 connect( master, SIGNAL(sig_start()), this, SIGNAL(sig_start()) ); 30 connect( master, SIGNAL(sig_start()), this, SIGNAL(sig_start()) );
27 connect( master, SIGNAL(sig_end()), this, SIGNAL(sig_end()) ); 31 connect( master, SIGNAL(sig_end()), this, SIGNAL(sig_end()) );
28 connect( master, SIGNAL(sig_thumbInfo(const QString&, const QString&)), 32 connect( master, SIGNAL(sig_thumbInfo(const QString&, const QString&)),
29 this, SLOT(slotThumbInfo(const QString&, const QString&)) ); 33 this, SLOT(slotThumbInfo(const QString&, const QString&)) );
30 connect( master, SIGNAL(sig_fullInfo(const QString&, const QString&)), 34 connect( master, SIGNAL(sig_fullInfo(const QString&, const QString&)),
31 this, SLOT(slotFullInfo(const QString&, const QString&)) ); 35 this, SLOT(slotFullInfo(const QString&, const QString&)) );
32 connect( master, SIGNAL(sig_thumbNail(const QString&, const QPixmap&)), 36 connect( master, SIGNAL(sig_thumbNail(const QString&, const QPixmap&)),
33 this, SLOT(slotThumbNail(const QString&, const QPixmap&)) ); 37 this, SLOT(slotThumbNail(const QString&, const QPixmap&)) );
34 38
35 m_namemap.clear(); 39 m_namemap.clear();
36 m_filemap.clear(); 40 m_filemap.clear();
37} 41}
38 42
39QString Doc_DirLister::defaultPath()const { 43QString Doc_DirLister::defaultPath()const {
40 return QString::null; 44 return QString::null;
41} 45}
42 46
47bool Doc_DirLister::matchCat(const AppLnk* app)
48{
49 if (!app) return false;
50 if (m_catFilter==0 || app->categories().contains(m_catFilter) || m_catFilter == -1 && app->categories().count() == 0 ) {
51 return true;
52 }
53 return false;
54}
55
43QString Doc_DirLister::setStartPath(const QString&) { 56QString Doc_DirLister::setStartPath(const QString&) {
44 static const QString Mtype_str("image/jpeg;image/gif;image/bmp;image/png"); 57 static const QString Mtype_str("image/jpeg;image/gif;image/bmp;image/png");
45 if (m_namemap.isEmpty()) { 58 if (m_namemap.isEmpty()) {
46 DocLnkSet ds; 59 DocLnkSet ds;
47 Global::findDocuments(&ds,Mtype_str); 60 Global::findDocuments(&ds,Mtype_str);
48 QListIterator<DocLnk> dit(ds.children()); 61 QListIterator<DocLnk> dit(ds.children());
49 for( ; dit.current(); ++dit) { 62 for( ; dit.current(); ++dit) {
50// if (! (*dit)->isValid()) continue; 63 if (! (*dit)->isValid()) continue;
64 if (!matchCat((*dit))) continue;
51 m_namemap[(*dit)->name()]=(*dit)->file(); 65 m_namemap[(*dit)->name()]=(*dit)->file();
52 m_filemap[(*dit)->file()]=(*dit)->name(); 66 m_filemap[(*dit)->file()]=(*dit)->name();
53 } 67 }
54 } 68 }
55 return QString::null; 69 return QString::null;
56} 70}
57 71
58QString Doc_DirLister::currentPath()const { 72QString Doc_DirLister::currentPath()const {
59 return QString::null; 73 return QString::null;
60} 74}
61 75
62 76
63QStringList Doc_DirLister::folders()const { 77QStringList Doc_DirLister::folders()const {
64 return QStringList(); 78 return QStringList();
65} 79}
66 80
67QStringList Doc_DirLister::files()const { 81QStringList Doc_DirLister::files()const {
68 QStringList out; 82 QStringList out;
69 QMap<QString,QString>::ConstIterator it; 83 QMap<QString,QString>::ConstIterator it;
70 for (it = m_namemap.begin();it != m_namemap.end();++it) { 84 for (it = m_namemap.begin();it != m_namemap.end();++it) {
71 out.append(it.key()); 85 out.append(it.key());
72 } 86 }
73 return out; 87 return out;
74} 88}
@@ -126,24 +140,49 @@ void Doc_DirLister::slotThumbInfo(const QString&f, const QString&t)
126 QString name = m_filemap[f]; 140 QString name = m_filemap[f];
127 emit sig_thumbInfo(name, t); 141 emit sig_thumbInfo(name, t);
128} 142}
129 143
130void Doc_DirLister::slotThumbNail(const QString&f, const QPixmap&p) 144void Doc_DirLister::slotThumbNail(const QString&f, const QPixmap&p)
131{ 145{
132 if (m_filemap.find(f)==m_filemap.end()) { 146 if (m_filemap.find(f)==m_filemap.end()) {
133 return; 147 return;
134 } 148 }
135 QString name = m_filemap[f]; 149 QString name = m_filemap[f];
136 emit sig_thumbNail(name, p); 150 emit sig_thumbNail(name, p);
137} 151}
138 152
139QString Doc_DirLister::nameToFname(const QString&name)const 153QString Doc_DirLister::nameToFname(const QString&name)const
140{ 154{
141 if (m_namemap.find(name)==m_namemap.end()) { 155 if (m_namemap.find(name)==m_namemap.end()) {
142 return QString::null; 156 return QString::null;
143 } 157 }
144 return m_namemap[name]; 158 return m_namemap[name];
145} 159}
146 160
147QString Doc_DirLister::dirUp( const QString& p ) const{ 161QString Doc_DirLister::dirUp( const QString& p ) const{
148 return p; 162 return p;
149} 163}
164
165QWidget* Doc_DirLister::widget(QWidget*parent)
166{
167 CategorySelect * catmb = new CategorySelect(parent);
168 Categories cats( 0 );
169 cats.load( categoryFileName() );
170 QArray<int> vl( 0 );
171 catmb->setCategories( vl, "Document View", // No tr
172 "Document View" );
173 catmb->setRemoveCategoryEdit( TRUE );
174 catmb->setAllCategories( TRUE );
175 connect(catmb, SIGNAL(signalSelected(int)), this, SLOT(showCategory(int)));
176 catmb->setCurrentCategory(-2);
177 return catmb;
178}
179
180void Doc_DirLister::showCategory(int which)
181{
182 Categories cat;
183 cat.load( categoryFileName() );
184 m_catFilter = which==-2?0:which;
185 m_namemap.clear();
186 setStartPath("");
187 emit sig_reloadDir();
188}