summaryrefslogtreecommitdiff
path: root/noncore/graphics/opie-eye/impl
Side-by-side diff
Diffstat (limited to 'noncore/graphics/opie-eye/impl') (more/less context) (show whitespace changes)
-rw-r--r--noncore/graphics/opie-eye/impl/doc/doc_lister.cpp129
-rw-r--r--noncore/graphics/opie-eye/impl/doc/doc_lister.h8
2 files changed, 76 insertions, 61 deletions
diff --git a/noncore/graphics/opie-eye/impl/doc/doc_lister.cpp b/noncore/graphics/opie-eye/impl/doc/doc_lister.cpp
index f5c711a..8bcf01d 100644
--- a/noncore/graphics/opie-eye/impl/doc/doc_lister.cpp
+++ b/noncore/graphics/opie-eye/impl/doc/doc_lister.cpp
@@ -13,2 +13,3 @@
#include <qpe/applnk.h>
+#include <opie2/oglobal.h>
@@ -22,2 +23,3 @@ using namespace Opie::Core;
#include <qfileinfo.h>
+#include <qtopia/qcopenvelope_qws.h>
@@ -37,6 +39,10 @@ Doc_DirLister::Doc_DirLister()
this, SLOT(slotThumbNail(const QString&, const QPixmap&)) );
-
- m_namemap.clear();
- m_filemap.clear();
m_docreads = false;
+ syschannel = new QCopChannel("QPE/System", this);
+ connect(syschannel, SIGNAL(received(const QCString&,const QByteArray&)),
+ this, SLOT(systemMsg(const QCString&,const QByteArray&)) );
+}
+
+Doc_DirLister::~Doc_DirLister()
+{
}
@@ -47,3 +53,3 @@ QString Doc_DirLister::defaultPath()const {
-bool Doc_DirLister::matchCat(const AppLnk* app)
+bool Doc_DirLister::matchCat(const AppLnk* app)const
{
@@ -58,3 +64,2 @@ QString Doc_DirLister::setStartPath(const QString&) {
static const QString Mtype_str("image/jpeg;image/gif;image/bmp;image/png");
- if (m_namemap.isEmpty()) {
if (!m_docreads) {
@@ -63,9 +68,2 @@ QString Doc_DirLister::setStartPath(const QString&) {
}
- QListIterator<DocLnk> dit(m_ds.children());
- for( ; dit.current(); ++dit) {
- if (!matchCat((*dit))) continue;
- m_namemap[(*dit)->name()]=(*dit)->file();
- m_filemap[(*dit)->file()]=(*dit)->name();
- }
- }
return QString::null;
@@ -73,3 +71,4 @@ QString Doc_DirLister::setStartPath(const QString&) {
-QString Doc_DirLister::currentPath()const {
+QString Doc_DirLister::currentPath()const
+{
return QString::null;
@@ -84,5 +83,9 @@ QStringList Doc_DirLister::files()const {
QStringList out;
- QMap<QString,QString>::ConstIterator it;
- for (it = m_namemap.begin();it != m_namemap.end();++it) {
- out.append(it.key());
+ QListIterator<DocLnk> dit(m_ds.children());
+ for( ; dit.current(); ++dit) {
+ if (!matchCat((*dit))) continue;
+ QString s = (*dit)->name();
+ s+=char(0);
+ s+=(*dit)->file();
+ out.append(s);
}
@@ -95,16 +98,10 @@ void Doc_DirLister::deleteImage( const QString& )
-void Doc_DirLister::thumbNail( const QString& str, int w, int h) {
- if (m_namemap.find(str)==m_namemap.end()) {
- return;
- }
- QString fname = m_namemap[str];
- SlaveMaster::self()->thumbNail( fname, w, h );
+void Doc_DirLister::thumbNail( const QString& str, int w, int h)
+{
+ SlaveMaster::self()->thumbNail( str, w, h );
}
-QImage Doc_DirLister::image( const QString& str, Factor f, int m) {
- if (m_namemap.find(str)==m_namemap.end()) {
- return QImage();
- }
- QString fname = m_namemap[str];
- return SlaveMaster::self()->image( fname, f, m );
+QImage Doc_DirLister::image( const QString& str, Factor f, int m)
+{
+ return SlaveMaster::self()->image(str, f, m );
}
@@ -112,7 +109,3 @@ QImage Doc_DirLister::image( const QString& str, Factor f, int m) {
void Doc_DirLister::imageInfo( const QString& str) {
- if (m_namemap.find(str)==m_namemap.end()) {
- return;
- }
- QString fname = m_namemap[str];
- SlaveMaster::self()->thumbInfo( fname );
+ SlaveMaster::self()->thumbInfo( str );
}
@@ -120,7 +113,3 @@ void Doc_DirLister::imageInfo( const QString& str) {
void Doc_DirLister::fullImageInfo( const QString& str) {
- if (m_namemap.find(str)==m_namemap.end()) {
- return;
- }
- QString fname = m_namemap[str];
- SlaveMaster::self()->imageInfo( fname );
+ SlaveMaster::self()->imageInfo(str);
}
@@ -129,7 +118,3 @@ void Doc_DirLister::slotFullInfo(const QString&f, const QString&t)
{
- if (m_filemap.find(f)==m_filemap.end()) {
- return;
- }
- QString name = m_filemap[f];
- emit sig_fullInfo(name, t);
+ emit sig_fullInfo(f, t);
}
@@ -138,7 +123,3 @@ void Doc_DirLister::slotThumbInfo(const QString&f, const QString&t)
{
- if (m_filemap.find(f)==m_filemap.end()) {
- return;
- }
- QString name = m_filemap[f];
- emit sig_thumbInfo(name, t);
+ emit sig_thumbInfo(f, t);
}
@@ -147,7 +128,3 @@ void Doc_DirLister::slotThumbNail(const QString&f, const QPixmap&p)
{
- if (m_filemap.find(f)==m_filemap.end()) {
- return;
- }
- QString name = m_filemap[f];
- emit sig_thumbNail(name, p);
+ emit sig_thumbNail(f, p);
}
@@ -156,6 +133,3 @@ QString Doc_DirLister::nameToFname(const QString&name)const
{
- if (m_namemap.find(name)==m_namemap.end()) {
- return QString::null;
- }
- return m_namemap[name];
+ return name;
}
@@ -184,3 +158,2 @@ void Doc_DirLister::showCategory(int which)
m_catFilter = which==-2?0:which;
- m_namemap.clear();
setStartPath("");
@@ -188 +161,41 @@ void Doc_DirLister::showCategory(int which)
}
+
+void Doc_DirLister::systemMsg(const QCString &msg, const QByteArray &data)
+{
+ if ( msg != "linkChanged(QString)"||!m_docreads) {
+ return;
+ }
+ QString link;
+ QDataStream stream( data, IO_ReadOnly );
+ stream >> link;
+ odebug << "Doc_DirLister systemMsg -> linkchanged( " << link << " )" << oendl;
+ if ( link.isNull() || OGlobal::isAppLnkFileName(link) ) {
+ return;
+ }
+ QListIterator<DocLnk> dit(m_ds.children());
+ bool must_reload = false;
+ bool found = false;
+ while ( dit.current() ) {
+ DocLnk *doc = dit.current();
+ ++dit;
+ if (doc->linkFile() == link) {
+ found = true;
+ DocLnk* dl = new DocLnk(link);
+ if (dl->fileKnown()) {
+ // changing
+ m_ds.add(dl);
+ } else {
+ delete dl;
+ }
+ if (matchCat(doc) || matchCat(dl)) {
+ must_reload = true;
+ }
+ m_ds.remove( doc ); // remove old link from docLnkSet
+ delete doc;
+ }
+ }
+ if (must_reload) {
+ setStartPath("");
+ emit sig_reloadDir();
+ }
+}
diff --git a/noncore/graphics/opie-eye/impl/doc/doc_lister.h b/noncore/graphics/opie-eye/impl/doc/doc_lister.h
index 403241c..3f8825f 100644
--- a/noncore/graphics/opie-eye/impl/doc/doc_lister.h
+++ b/noncore/graphics/opie-eye/impl/doc/doc_lister.h
@@ -16,2 +16,3 @@ class Config;
class AppLnk;
+class QCopChannel;
@@ -21,3 +22,3 @@ public:
Doc_DirLister();
- virtual ~Doc_DirLister(){}
+ virtual ~Doc_DirLister();
@@ -39,5 +40,4 @@ public:
private:
- QMap<QString,QString> m_namemap,m_filemap;
int m_catFilter;
- bool matchCat(const AppLnk* app);
+ bool matchCat(const AppLnk* app)const;
bool m_docreads;
@@ -50,2 +50,4 @@ protected slots:
virtual void showCategory(int);
+ void systemMsg(const QCString &, const QByteArray &);
+ QCopChannel *syschannel;
};