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.cpp | 41 |
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 | |||
15 | using namespace Opie::Core; | 18 | using 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 | ||
21 | Doc_DirLister::Doc_DirLister() | 24 | Doc_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 | ||
39 | QString Doc_DirLister::defaultPath()const { | 43 | QString Doc_DirLister::defaultPath()const { |
40 | return QString::null; | 44 | return QString::null; |
41 | } | 45 | } |
42 | 46 | ||
47 | bool 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 | |||
43 | QString Doc_DirLister::setStartPath(const QString&) { | 56 | QString 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 | ||
58 | QString Doc_DirLister::currentPath()const { | 72 | QString Doc_DirLister::currentPath()const { |
59 | return QString::null; | 73 | return QString::null; |
60 | } | 74 | } |
61 | 75 | ||
62 | 76 | ||
63 | QStringList Doc_DirLister::folders()const { | 77 | QStringList Doc_DirLister::folders()const { |
64 | return QStringList(); | 78 | return QStringList(); |
65 | } | 79 | } |
66 | 80 | ||
67 | QStringList Doc_DirLister::files()const { | 81 | QStringList 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 | ||
130 | void Doc_DirLister::slotThumbNail(const QString&f, const QPixmap&p) | 144 | void 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 | ||
139 | QString Doc_DirLister::nameToFname(const QString&name)const | 153 | QString 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 | ||
147 | QString Doc_DirLister::dirUp( const QString& p ) const{ | 161 | QString Doc_DirLister::dirUp( const QString& p ) const{ |
148 | return p; | 162 | return p; |
149 | } | 163 | } |
164 | |||
165 | QWidget* 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 | |||
180 | void 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 | } | ||