-rw-r--r-- | noncore/graphics/opie-eye/impl/doc/doc_lister.cpp | 3 |
1 files changed, 2 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 5281b75..d4da266 100644 --- a/noncore/graphics/opie-eye/impl/doc/doc_lister.cpp +++ b/noncore/graphics/opie-eye/impl/doc/doc_lister.cpp | |||
@@ -1,218 +1,219 @@ | |||
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 | #include <opie2/oglobal.h> | 14 | #include <opie2/oglobal.h> |
15 | 15 | ||
16 | #include <qtopia/private/categories.h> | 16 | #include <qtopia/private/categories.h> |
17 | #include <qtopia/categoryselect.h> | 17 | #include <qtopia/categoryselect.h> |
18 | 18 | ||
19 | using namespace Opie::Core; | 19 | using namespace Opie::Core; |
20 | 20 | ||
21 | /* QT */ | 21 | /* QT */ |
22 | #include <qdir.h> | 22 | #include <qdir.h> |
23 | #include <qfileinfo.h> | 23 | #include <qfileinfo.h> |
24 | #include <qtopia/qcopenvelope_qws.h> | 24 | #include <qtopia/qcopenvelope_qws.h> |
25 | 25 | ||
26 | Doc_DirLister::Doc_DirLister() | 26 | Doc_DirLister::Doc_DirLister() |
27 | : PDirLister( "doc_dir_lister" ) | 27 | : PDirLister( "doc_dir_lister" ) |
28 | { | 28 | { |
29 | /* connect the signals */ | 29 | /* connect the signals */ |
30 | m_catFilter = 0; | 30 | m_catFilter = 0; |
31 | SlaveMaster* master = SlaveMaster::self(); | 31 | SlaveMaster* master = SlaveMaster::self(); |
32 | connect( master, SIGNAL(sig_start()), this, SIGNAL(sig_start()) ); | 32 | connect( master, SIGNAL(sig_start()), this, SIGNAL(sig_start()) ); |
33 | connect( master, SIGNAL(sig_end()), this, SIGNAL(sig_end()) ); | 33 | connect( master, SIGNAL(sig_end()), this, SIGNAL(sig_end()) ); |
34 | connect( master, SIGNAL(sig_thumbInfo(const QString&, const QString&)), | 34 | connect( master, SIGNAL(sig_thumbInfo(const QString&, const QString&)), |
35 | this, SLOT(slotThumbInfo(const QString&, const QString&)) ); | 35 | this, SLOT(slotThumbInfo(const QString&, const QString&)) ); |
36 | connect( master, SIGNAL(sig_fullInfo(const QString&, const QString&)), | 36 | connect( master, SIGNAL(sig_fullInfo(const QString&, const QString&)), |
37 | this, SLOT(slotFullInfo(const QString&, const QString&)) ); | 37 | this, SLOT(slotFullInfo(const QString&, const QString&)) ); |
38 | connect( master, SIGNAL(sig_thumbNail(const QString&, const QPixmap&)), | 38 | connect( master, SIGNAL(sig_thumbNail(const QString&, const QPixmap&)), |
39 | this, SLOT(slotThumbNail(const QString&, const QPixmap&)) ); | 39 | this, SLOT(slotThumbNail(const QString&, const QPixmap&)) ); |
40 | m_docreads = false; | 40 | m_docreads = false; |
41 | syschannel = new QCopChannel("QPE/System", this); | 41 | syschannel = new QCopChannel("QPE/System", this); |
42 | connect(syschannel, SIGNAL(received(const QCString&,const QByteArray&)), | 42 | connect(syschannel, SIGNAL(received(const QCString&,const QByteArray&)), |
43 | this, SLOT(systemMsg(const QCString&,const QByteArray&)) ); | 43 | this, SLOT(systemMsg(const QCString&,const QByteArray&)) ); |
44 | } | 44 | } |
45 | 45 | ||
46 | Doc_DirLister::~Doc_DirLister() | 46 | Doc_DirLister::~Doc_DirLister() |
47 | { | 47 | { |
48 | } | 48 | } |
49 | 49 | ||
50 | QString Doc_DirLister::defaultPath()const { | 50 | QString Doc_DirLister::defaultPath()const { |
51 | return QString::null; | 51 | return QString::null; |
52 | } | 52 | } |
53 | 53 | ||
54 | bool Doc_DirLister::matchCat(const AppLnk* app)const | 54 | bool Doc_DirLister::matchCat(const AppLnk* app)const |
55 | { | 55 | { |
56 | if (!app) return false; | 56 | if (!app) return false; |
57 | if (m_catFilter==0 || app->categories().contains(m_catFilter) || m_catFilter == -1 && app->categories().count() == 0 ) { | 57 | if (m_catFilter==0 || app->categories().contains(m_catFilter) || m_catFilter == -1 && app->categories().count() == 0 ) { |
58 | return true; | 58 | return true; |
59 | } | 59 | } |
60 | return false; | 60 | return false; |
61 | } | 61 | } |
62 | 62 | ||
63 | QString Doc_DirLister::setStartPath(const QString&) { | 63 | QString Doc_DirLister::setStartPath(const QString&) { |
64 | static const QString Mtype_str("image/jpeg;image/gif;image/bmp;image/png"); | 64 | static const QString Mtype_str("image/jpeg;image/gif;image/bmp;image/png"); |
65 | if (!m_docreads) { | 65 | if (!m_docreads) { |
66 | Global::findDocuments(&m_ds,Mtype_str); | 66 | Global::findDocuments(&m_ds,Mtype_str); |
67 | m_docreads = true; | 67 | m_docreads = true; |
68 | } | 68 | } |
69 | return QString::null; | 69 | return QString::null; |
70 | } | 70 | } |
71 | 71 | ||
72 | QString Doc_DirLister::currentPath()const | 72 | QString Doc_DirLister::currentPath()const |
73 | { | 73 | { |
74 | return QString::null; | 74 | return QString::null; |
75 | } | 75 | } |
76 | 76 | ||
77 | 77 | ||
78 | QStringList Doc_DirLister::folders()const { | 78 | QStringList Doc_DirLister::folders()const { |
79 | return QStringList(); | 79 | return QStringList(); |
80 | } | 80 | } |
81 | 81 | ||
82 | QStringList Doc_DirLister::files()const { | 82 | QStringList Doc_DirLister::files()const { |
83 | QStringList out; | 83 | QStringList out; |
84 | QListIterator<DocLnk> dit(m_ds.children()); | 84 | QListIterator<DocLnk> dit(m_ds.children()); |
85 | for( ; dit.current(); ++dit) { | 85 | for( ; dit.current(); ++dit) { |
86 | if (!(*dit)->isValid()) continue; | 86 | /* check if the real file exists! */ |
87 | if (!(*dit)->fileKnown()||!QFile::exists( (*dit)->file())) continue; | ||
87 | if (!matchCat((*dit))) continue; | 88 | if (!matchCat((*dit))) continue; |
88 | QString s = (*dit)->name(); | 89 | QString s = (*dit)->name(); |
89 | s+=char(0); | 90 | s+=char(0); |
90 | s+=(*dit)->file(); | 91 | s+=(*dit)->file(); |
91 | out.append(s); | 92 | out.append(s); |
92 | } | 93 | } |
93 | return out; | 94 | return out; |
94 | } | 95 | } |
95 | 96 | ||
96 | void Doc_DirLister::deleteImage( const QString& f) | 97 | void Doc_DirLister::deleteImage( const QString& f) |
97 | { | 98 | { |
98 | /* | 99 | /* |
99 | * find the file in the set of doclnks | 100 | * find the file in the set of doclnks |
100 | */ | 101 | */ |
101 | QListIterator<DocLnk> dit(m_ds.children()); | 102 | QListIterator<DocLnk> dit(m_ds.children()); |
102 | for( ; dit.current(); ++dit) { | 103 | for( ; dit.current(); ++dit) { |
103 | if ( f == (*dit)->file() ) { | 104 | if ( f == (*dit)->file() ) { |
104 | (*dit)->removeFiles(); | 105 | (*dit)->removeFiles(); |
105 | return; | 106 | return; |
106 | } | 107 | } |
107 | } | 108 | } |
108 | } | 109 | } |
109 | 110 | ||
110 | void Doc_DirLister::thumbNail( const QString& str, int w, int h) | 111 | void Doc_DirLister::thumbNail( const QString& str, int w, int h) |
111 | { | 112 | { |
112 | SlaveMaster::self()->thumbNail( str, w, h ); | 113 | SlaveMaster::self()->thumbNail( str, w, h ); |
113 | } | 114 | } |
114 | 115 | ||
115 | QImage Doc_DirLister::image( const QString& str, Factor f, int m) | 116 | QImage Doc_DirLister::image( const QString& str, Factor f, int m) |
116 | { | 117 | { |
117 | return SlaveMaster::self()->image(str, f, m ); | 118 | return SlaveMaster::self()->image(str, f, m ); |
118 | } | 119 | } |
119 | 120 | ||
120 | void Doc_DirLister::imageInfo( const QString& str) { | 121 | void Doc_DirLister::imageInfo( const QString& str) { |
121 | SlaveMaster::self()->thumbInfo( str ); | 122 | SlaveMaster::self()->thumbInfo( str ); |
122 | } | 123 | } |
123 | 124 | ||
124 | void Doc_DirLister::fullImageInfo( const QString& str) { | 125 | void Doc_DirLister::fullImageInfo( const QString& str) { |
125 | SlaveMaster::self()->imageInfo(str); | 126 | SlaveMaster::self()->imageInfo(str); |
126 | } | 127 | } |
127 | 128 | ||
128 | void Doc_DirLister::slotFullInfo(const QString&f, const QString&t) | 129 | void Doc_DirLister::slotFullInfo(const QString&f, const QString&t) |
129 | { | 130 | { |
130 | emit sig_fullInfo(f, t); | 131 | emit sig_fullInfo(f, t); |
131 | } | 132 | } |
132 | 133 | ||
133 | void Doc_DirLister::slotThumbInfo(const QString&f, const QString&t) | 134 | void Doc_DirLister::slotThumbInfo(const QString&f, const QString&t) |
134 | { | 135 | { |
135 | emit sig_thumbInfo(f, t); | 136 | emit sig_thumbInfo(f, t); |
136 | } | 137 | } |
137 | 138 | ||
138 | void Doc_DirLister::slotThumbNail(const QString&f, const QPixmap&p) | 139 | void Doc_DirLister::slotThumbNail(const QString&f, const QPixmap&p) |
139 | { | 140 | { |
140 | emit sig_thumbNail(f, p); | 141 | emit sig_thumbNail(f, p); |
141 | } | 142 | } |
142 | 143 | ||
143 | QString Doc_DirLister::nameToFname(const QString&name)const | 144 | QString Doc_DirLister::nameToFname(const QString&name)const |
144 | { | 145 | { |
145 | return name; | 146 | return name; |
146 | } | 147 | } |
147 | 148 | ||
148 | QString Doc_DirLister::dirUp( const QString& p ) const{ | 149 | QString Doc_DirLister::dirUp( const QString& p ) const{ |
149 | return p; | 150 | return p; |
150 | } | 151 | } |
151 | 152 | ||
152 | QWidget* Doc_DirLister::widget(QWidget*parent) | 153 | QWidget* Doc_DirLister::widget(QWidget*parent) |
153 | { | 154 | { |
154 | CategorySelect * catmb = new CategorySelect(parent); | 155 | CategorySelect * catmb = new CategorySelect(parent); |
155 | Categories cats( 0 ); | 156 | Categories cats( 0 ); |
156 | cats.load( categoryFileName() ); | 157 | cats.load( categoryFileName() ); |
157 | QArray<int> vl( 0 ); | 158 | QArray<int> vl( 0 ); |
158 | catmb->setCategories( vl, "Document View", // No tr | 159 | catmb->setCategories( vl, "Document View", // No tr |
159 | "Document View" ); | 160 | "Document View" ); |
160 | catmb->setRemoveCategoryEdit( TRUE ); | 161 | catmb->setRemoveCategoryEdit( TRUE ); |
161 | catmb->setAllCategories( TRUE ); | 162 | catmb->setAllCategories( TRUE ); |
162 | connect(catmb, SIGNAL(signalSelected(int)), this, SLOT(showCategory(int))); | 163 | connect(catmb, SIGNAL(signalSelected(int)), this, SLOT(showCategory(int))); |
163 | catmb->setCurrentCategory(-2); | 164 | catmb->setCurrentCategory(-2); |
164 | return catmb; | 165 | return catmb; |
165 | } | 166 | } |
166 | 167 | ||
167 | void Doc_DirLister::showCategory(int which) | 168 | void Doc_DirLister::showCategory(int which) |
168 | { | 169 | { |
169 | odebug<<"Show cat " << which << oendl; | 170 | odebug<<"Show cat " << which << oendl; |
170 | m_catFilter = which==-2?0:which; | 171 | m_catFilter = which==-2?0:which; |
171 | setStartPath(""); | 172 | setStartPath(""); |
172 | odebug<<"Show cat before emit" << oendl; | 173 | odebug<<"Show cat before emit" << oendl; |
173 | emit sig_reloadDir(); | 174 | emit sig_reloadDir(); |
174 | odebug<<"Show cat - emit signal finished" << oendl; | 175 | odebug<<"Show cat - emit signal finished" << oendl; |
175 | } | 176 | } |
176 | 177 | ||
177 | void Doc_DirLister::systemMsg(const QCString &msg, const QByteArray &data) | 178 | void Doc_DirLister::systemMsg(const QCString &msg, const QByteArray &data) |
178 | { | 179 | { |
179 | if ( msg != "linkChanged(QString)"||!m_docreads) { | 180 | if ( msg != "linkChanged(QString)"||!m_docreads) { |
180 | return; | 181 | return; |
181 | } | 182 | } |
182 | #if 0 | 183 | #if 0 |
183 | // makes big problems on zaurus! | 184 | // makes big problems on zaurus! |
184 | QString link; | 185 | QString link; |
185 | QDataStream stream( data, IO_ReadOnly ); | 186 | QDataStream stream( data, IO_ReadOnly ); |
186 | stream >> link; | 187 | stream >> link; |
187 | odebug << "Doc_DirLister systemMsg -> linkchanged( " << link << " )" << oendl; | 188 | odebug << "Doc_DirLister systemMsg -> linkchanged( " << link << " )" << oendl; |
188 | if ( link.isNull() || OGlobal::isAppLnkFileName(link) ) { | 189 | if ( link.isNull() || OGlobal::isAppLnkFileName(link) ) { |
189 | return; | 190 | return; |
190 | } | 191 | } |
191 | QListIterator<DocLnk> dit(m_ds.children()); | 192 | QListIterator<DocLnk> dit(m_ds.children()); |
192 | bool must_reload = false; | 193 | bool must_reload = false; |
193 | bool found = false; | 194 | bool found = false; |
194 | while ( dit.current() ) { | 195 | while ( dit.current() ) { |
195 | DocLnk *doc = dit.current(); | 196 | DocLnk *doc = dit.current(); |
196 | ++dit; | 197 | ++dit; |
197 | if (doc->linkFile() == link) { | 198 | if (doc->linkFile() == link) { |
198 | found = true; | 199 | found = true; |
199 | DocLnk* dl = new DocLnk(link); | 200 | DocLnk* dl = new DocLnk(link); |
200 | if (dl->fileKnown()) { | 201 | if (dl->fileKnown()) { |
201 | // changing | 202 | // changing |
202 | m_ds.add(dl); | 203 | m_ds.add(dl); |
203 | } else { | 204 | } else { |
204 | delete dl; | 205 | delete dl; |
205 | } | 206 | } |
206 | if (matchCat(doc) || matchCat(dl)) { | 207 | if (matchCat(doc) || matchCat(dl)) { |
207 | must_reload = true; | 208 | must_reload = true; |
208 | } | 209 | } |
209 | m_ds.remove( doc ); // remove old link from docLnkSet | 210 | m_ds.remove( doc ); // remove old link from docLnkSet |
210 | delete doc; | 211 | delete doc; |
211 | } | 212 | } |
212 | } | 213 | } |
213 | if (must_reload) { | 214 | if (must_reload) { |
214 | setStartPath(""); | 215 | setStartPath(""); |
215 | emit sig_reloadDir(); | 216 | emit sig_reloadDir(); |
216 | } | 217 | } |
217 | #endif | 218 | #endif |
218 | } | 219 | } |