From 81cd1a4a916fb00b6c8867bdc1d945db155b12c0 Mon Sep 17 00:00:00 2001 From: alwin Date: Wed, 21 Apr 2004 18:31:44 +0000 Subject: - added DocView mode - fixed a bug in iconview and some small fixes more --- (limited to 'noncore') diff --git a/noncore/graphics/opie-eye/gui/iconview.cpp b/noncore/graphics/opie-eye/gui/iconview.cpp index 660c4fa..087db30 100644 --- a/noncore/graphics/opie-eye/gui/iconview.cpp +++ b/noncore/graphics/opie-eye/gui/iconview.cpp @@ -345,7 +345,7 @@ void PIconView::loadViews() { ViewMap::Iterator it; ViewMap* map = viewMap(); for ( it = map->begin(); it != map->end(); ++it ) - m_views->insertItem( QObject::tr(it.key() ) ); + m_views->insertItem( it.key() ); } void PIconView::resetView() { @@ -362,9 +362,15 @@ void PIconView::slotViewChanged( int i) { } PDirView* cur = currentView(); - delete cur; + if (cur) delete cur; QString str = m_views->text(i); - cur = (*(*viewMap())[str])(*m_cfg); + ViewMap* map = viewMap(); + if (!map) {setCurrentView(0l); return;} + if (map->find(str) == map->end()) { + owarn << "Key not found" << oendl; + setCurrentView(0l); return; + } + cur = (*(*map)[str])(*m_cfg); setCurrentView( cur ); /* connect to the signals of the lister */ @@ -406,9 +412,13 @@ void PIconView::addFiles( const QStringList& lst) { QStringList::ConstIterator it; IconViewItem * _iv; QPixmap*m_pix = 0; + QString pre = ""; + if (!m_path.isEmpty()) { + pre = m_path+"/"; + } for (it=lst.begin(); it!= lst.end(); ++it ) { - m_pix = PPixmapCache::self()->cachedImage( m_path+"/"+(*it), 64, 64 ); - _iv = new IconViewItem( m_view, m_path+"/"+(*it), (*it) ); + m_pix = PPixmapCache::self()->cachedImage( pre+(*it), 64, 64 ); + _iv = new IconViewItem( m_view, pre+(*it), (*it) ); if (m_mode==3) { _iv->setTextOnly(true); _iv->setPixmap(QPixmap()); @@ -543,11 +553,12 @@ void PIconView::slotShowImage() bool isDir = false; QString name = currentFileName(isDir); if (isDir) return; - slotShowImage( name ); } void PIconView::slotShowImage( const QString& name) { - emit sig_display( name ); + PDirLister *lister = currentView()->dirLister(); + QString r_name = lister->nameToFname(name); + emit sig_display( r_name ); } void PIconView::slotImageInfo() { bool isDir = false; @@ -558,7 +569,9 @@ void PIconView::slotImageInfo() { } void PIconView::slotImageInfo( const QString& name) { - emit sig_showInfo( name ); + PDirLister *lister = currentView()->dirLister(); + QString r_name = lister->nameToFname(name); + emit sig_showInfo(r_name ); } @@ -579,8 +592,6 @@ void PIconView::resizeEvent( QResizeEvent* re ) { void PIconView::calculateGrid() { - odebug << "Calc grid: x=" << m_view->gridX() << " y=" << m_view->gridY() << oendl; - odebug << "Size of view: " << m_view->size() << oendl; int dw = QApplication::desktop()->width(); int viewerWidth = dw-style().scrollBarExtent().width(); diff --git a/noncore/graphics/opie-eye/gui/mainwindow.cpp b/noncore/graphics/opie-eye/gui/mainwindow.cpp index 58f02ef..058fca0 100644 --- a/noncore/graphics/opie-eye/gui/mainwindow.cpp +++ b/noncore/graphics/opie-eye/gui/mainwindow.cpp @@ -34,7 +34,8 @@ -OPIE_EXPORT_APP_V2( Opie::Core::OApplicationFactory,"Opie Eye" ) +//OPIE_EXPORT_APP_V2( Opie::Core::OApplicationFactory,"Opie Eye" ) +OPIE_EXPORT_APP( Opie::Core::OApplicationFactory) PMainWindow::PMainWindow(QWidget* wid, const char* name, WFlags style) : QMainWindow( wid, name, style ), m_info( 0 ), m_disp( 0 ) diff --git a/noncore/graphics/opie-eye/iface/dirlister.h b/noncore/graphics/opie-eye/iface/dirlister.h index fcc55ec..9c7b2a9 100644 --- a/noncore/graphics/opie-eye/iface/dirlister.h +++ b/noncore/graphics/opie-eye/iface/dirlister.h @@ -29,6 +29,7 @@ public slots: virtual void fullImageInfo( const QString& ) = 0; virtual void thumbNail( const QString&, int max_wid, int max_h ) = 0; virtual QImage image( const QString&, Factor, int max = 0) = 0; + virtual QString nameToFname(const QString&name)const = 0; signals: void sig_dirchanged(); @@ -41,7 +42,7 @@ signals: void sig_thumbNail( const QString&, const QPixmap& ); protected: - ~PDirLister(); + virtual ~PDirLister(); }; #endif diff --git a/noncore/graphics/opie-eye/impl/dir/dir_ifacceinfo.h b/noncore/graphics/opie-eye/impl/dir/dir_ifacceinfo.h index 8c6262f..c919dde 100644 --- a/noncore/graphics/opie-eye/impl/dir/dir_ifacceinfo.h +++ b/noncore/graphics/opie-eye/impl/dir/dir_ifacceinfo.h @@ -6,12 +6,12 @@ #ifndef DIR_IFACE_INFO_H #define DIR_IFACE_INFO_H -#include s +#include class DirInterfaceInfo : public PInterfaceInfo { public: DirInterfaceInfo(); - ~DirInterfaceInfo(); + virtual ~DirInterfaceInfo(); QString name()const; QWidget* configWidget(const Config&); diff --git a/noncore/graphics/opie-eye/impl/dir/dir_lister.cpp b/noncore/graphics/opie-eye/impl/dir/dir_lister.cpp index 16758d7..3717297 100644 --- a/noncore/graphics/opie-eye/impl/dir/dir_lister.cpp +++ b/noncore/graphics/opie-eye/impl/dir/dir_lister.cpp @@ -20,7 +20,7 @@ Dir_DirLister::Dir_DirLister( bool list ) : PDirLister( "dir_dir_lister" ) { m_allFiles = list; - owarn << "All Files " << m_allFiles << "" << oendl; + owarn << "All Files " << m_allFiles << "" << oendl; SlaveMaster* master = SlaveMaster::self(); connect( master, SIGNAL(sig_start()), this, SIGNAL(sig_start()) ); @@ -95,3 +95,8 @@ void Dir_DirLister::imageInfo( const QString& str) { void Dir_DirLister::fullImageInfo( const QString& str) { SlaveMaster::self()->imageInfo( str ); } + +QString Dir_DirLister::nameToFname(const QString&name)const +{ + return name; +} diff --git a/noncore/graphics/opie-eye/impl/dir/dir_lister.h b/noncore/graphics/opie-eye/impl/dir/dir_lister.h index fc63bb0..d6ca6c0 100644 --- a/noncore/graphics/opie-eye/impl/dir/dir_lister.h +++ b/noncore/graphics/opie-eye/impl/dir/dir_lister.h @@ -11,8 +11,10 @@ class Config; class Dir_DirLister : public PDirLister { + Q_OBJECT public: Dir_DirLister( bool ); + virtual ~Dir_DirLister(){} QString defaultPath()const; QString setStartPath( const QString& ); @@ -25,6 +27,7 @@ public: QImage image( const QString&, Factor, int ); void imageInfo( const QString& ); void fullImageInfo( const QString& ); + virtual QString nameToFname(const QString&name)const; private: bool m_allFiles; diff --git a/noncore/graphics/opie-eye/impl/doc/doc_dirview.cpp b/noncore/graphics/opie-eye/impl/doc/doc_dirview.cpp new file mode 100644 index 0000000..0d6e25f --- a/dev/null +++ b/noncore/graphics/opie-eye/impl/doc/doc_dirview.cpp @@ -0,0 +1,28 @@ +#include "doc_lister.h" +#include "doc_ifaceinfo.h" +#include "doc_dirview.h" + +PHUNK_VIEW_INTERFACE("Document View", Doc_DirView ); + + +Doc_DirView::Doc_DirView( const Config& cfg) + : PDirView(cfg) +{ + m_lister = 0; + m_info = 0; +} + +Doc_DirView::~Doc_DirView() { +} + +PInterfaceInfo* Doc_DirView::interfaceInfo()const{ + if (!m_info ) + m_info =new DocInterfaceInfo; + return m_info; +} + +PDirLister* Doc_DirView::dirLister()const{ + if (!m_lister ) + m_lister = new Doc_DirLister(); + return m_lister; +} diff --git a/noncore/graphics/opie-eye/impl/doc/doc_dirview.h b/noncore/graphics/opie-eye/impl/doc/doc_dirview.h new file mode 100644 index 0000000..3a2fd71 --- a/dev/null +++ b/noncore/graphics/opie-eye/impl/doc/doc_dirview.h @@ -0,0 +1,24 @@ +/* + * GPLv2 only zecke@handhelds.org + */ + +#ifndef DOC_DIR_VIEW_H +#define DOC_DIR_VIEW_H + +#include + + +struct Doc_DirView : public PDirView { + Doc_DirView( const Config& ); + ~Doc_DirView(); + + PInterfaceInfo* interfaceInfo()const; + PDirLister* dirLister()const; +private: + bool m_cfg : 1; + mutable PDirLister* m_lister; + mutable PInterfaceInfo *m_info; +}; + + +#endif diff --git a/noncore/graphics/opie-eye/impl/doc/doc_ifaceinfo.cpp b/noncore/graphics/opie-eye/impl/doc/doc_ifaceinfo.cpp new file mode 100644 index 0000000..a6d6f3c --- a/dev/null +++ b/noncore/graphics/opie-eye/impl/doc/doc_ifaceinfo.cpp @@ -0,0 +1,57 @@ +/* + * GPLv2 + * zecke@handhelds.org + */ + +#include "doc_ifaceinfo.h" + +/* OPIE */ +#include +#include +using namespace Opie::Core; + +/* QT */ +#include +#include +#include +#include + +#if 0 +namespace { + class DirImageWidget : public QHBox { + public: + DirImageWidget() { + chkbox = new QCheckBox( QObject::tr("Show all files"), this ); + } + ~DirImageWidget() {} + QCheckBox* chkbox; + }; +} +#endif + +DocInterfaceInfo::DocInterfaceInfo() { +} +DocInterfaceInfo::~DocInterfaceInfo() { +} + +QString DocInterfaceInfo::name()const { + return QString::fromLatin1(QObject::tr("DocView" )); +} + +QWidget* DocInterfaceInfo::configWidget(const Config& cfg) { +#if 0 + DirImageWidget* wid = new DirImageWidget(); + wid->chkbox->setChecked( cfg.readBoolEntry("Dir_Check_All_Files", true) ); + + return wid; +#endif + return 0L; +} + +void DocInterfaceInfo::writeConfig( QWidget* , Config& ) { +#if 0 + owarn << "Write Config" << oendl; + DirImageWidget* wid = static_cast(_wid); + cfg.writeEntry("Dir_Check_All_Files", wid->chkbox->isChecked() ); +#endif +} diff --git a/noncore/graphics/opie-eye/impl/doc/doc_ifaceinfo.h b/noncore/graphics/opie-eye/impl/doc/doc_ifaceinfo.h new file mode 100644 index 0000000..73986c9 --- a/dev/null +++ b/noncore/graphics/opie-eye/impl/doc/doc_ifaceinfo.h @@ -0,0 +1,21 @@ +/* + * GPLv2 + * zecke@handhelds.org + */ + +#ifndef DOC_IFACE_INFO_H +#define DOC_IFACE_INFO_H + +#include + +class DocInterfaceInfo : public PInterfaceInfo { +public: + DocInterfaceInfo(); + virtual ~DocInterfaceInfo(); + + QString name()const; + QWidget* configWidget(const Config&); + void writeConfig( QWidget* wid, Config& ); +}; + +#endif diff --git a/noncore/graphics/opie-eye/impl/doc/doc_lister.cpp b/noncore/graphics/opie-eye/impl/doc/doc_lister.cpp new file mode 100644 index 0000000..f695a76 --- a/dev/null +++ b/noncore/graphics/opie-eye/impl/doc/doc_lister.cpp @@ -0,0 +1,148 @@ +/* + * GPLv2 zecke@handhelds.org + */ + +#include "doc_lister.h" + +#include + +/* OPIE */ +#include +#include +#include +#include + +using namespace Opie::Core; + +/* QT */ +#include +#include + +Doc_DirLister::Doc_DirLister() + : PDirLister( "doc_dir_lister" ) +{ + SlaveMaster* master = SlaveMaster::self(); + connect( master, SIGNAL(sig_start()), this, SIGNAL(sig_start()) ); + connect( master, SIGNAL(sig_end()), this, SIGNAL(sig_end()) ); + connect( master, SIGNAL(sig_thumbInfo(const QString&, const QString&)), + this, SLOT(slotThumbInfo(const QString&, const QString&)) ); + connect( master, SIGNAL(sig_fullInfo(const QString&, const QString&)), + this, SLOT(slotFullInfo(const QString&, const QString&)) ); + connect( master, SIGNAL(sig_thumbNail(const QString&, const QPixmap&)), + this, SLOT(slotThumbNail(const QString&, const QPixmap&)) ); + +} + +QString Doc_DirLister::defaultPath()const { + return ""; QPEApplication::documentDir(); +} + +QString Doc_DirLister::setStartPath( const QString& path ) { + m_namemap.clear(); + m_out.clear(); + static const QString Mtype_str("image/jpeg;image/gif;image/bmp;image/png"); + owarn << "Set start path" << oendl; + DocLnkSet ds; + Global::findDocuments(&ds,Mtype_str); + QListIterator dit(ds.children()); + for( ; dit.current(); ++dit) { + owarn << (*dit)->file() << oendl; + m_namemap[(*dit)->name()]=(*dit)->file(); + m_filemap[(*dit)->file()]=(*dit)->name(); + m_out.append((*dit)->name()); + } + owarn << "Set start path end" << oendl; + return ""; +} + +QString Doc_DirLister::currentPath()const { + return ""; +} + + +QStringList Doc_DirLister::folders()const { + return QStringList(); +} + +QStringList Doc_DirLister::files()const { + return m_out; +} + +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()) { + owarn << "Item " << str << " not found" << oendl; + return; + } + QString fname = m_namemap[str]; + SlaveMaster::self()->thumbNail( fname, w, h ); +} + +QImage Doc_DirLister::image( const QString& str, Factor f, int m) { + if (m_namemap.find(str)==m_namemap.end()) { + owarn << "Item " << str << " not found" << oendl; + return QImage(); + } + QString fname = m_namemap[str]; + return SlaveMaster::self()->image( fname, f, m ); +} + +void Doc_DirLister::imageInfo( const QString& str) { + if (m_namemap.find(str)==m_namemap.end()) { + owarn << "Item " << str << " not found" << oendl; + return; + } + QString fname = m_namemap[str]; + owarn << "Image info: " << fname << oendl; + SlaveMaster::self()->thumbInfo( fname ); +} + +void Doc_DirLister::fullImageInfo( const QString& str) { + if (m_namemap.find(str)==m_namemap.end()) { + owarn << "Item " << str << " not found" << oendl; + return; + } + QString fname = m_namemap[str]; + SlaveMaster::self()->imageInfo( fname ); +} + +void Doc_DirLister::slotFullInfo(const QString&f, const QString&t) +{ + if (m_filemap.find(f)==m_filemap.end()) { + owarn << "Item " << f << " not found" << oendl; + return; + } + QString name = m_filemap[f]; + emit sig_fullInfo(name, t); +} + +void Doc_DirLister::slotThumbInfo(const QString&f, const QString&t) +{ + if (m_filemap.find(f)==m_filemap.end()) { + owarn << "Item " << f << " not found" << oendl; + return; + } + QString name = m_filemap[f]; + emit sig_thumbInfo(name, t); +} + +void Doc_DirLister::slotThumbNail(const QString&f, const QPixmap&p) +{ + if (m_filemap.find(f)==m_filemap.end()) { + owarn << "Item " << f << " not found" << oendl; + return; + } + QString name = m_filemap[f]; + emit sig_thumbNail(name, p); +} + +QString Doc_DirLister::nameToFname(const QString&name)const +{ + if (m_namemap.find(name)==m_namemap.end()) { + owarn << "Item " << name << " not found" << oendl; + return QString::null; + } + return m_namemap[name]; +} diff --git a/noncore/graphics/opie-eye/impl/doc/doc_lister.h b/noncore/graphics/opie-eye/impl/doc/doc_lister.h new file mode 100644 index 0000000..d89b579 --- a/dev/null +++ b/noncore/graphics/opie-eye/impl/doc/doc_lister.h @@ -0,0 +1,42 @@ +/* + * GPLv2 zecke@handhelds.org + */ + +#ifndef DOC_LISTER_INTERFACE_LISTER_H +#define DOC_LISTER_INTERFACE_LISTER_H + +#include + +#include +#include + +class Config; +class Doc_DirLister : public PDirLister { + Q_OBJECT +public: + Doc_DirLister(); + virtual ~Doc_DirLister(){} + + QString defaultPath()const; + QString setStartPath( const QString& ); + QString currentPath()const; + QStringList folders()const; + QStringList files()const; + + void deleteImage( const QString& ); + void thumbNail( const QString&, int, int ); + QImage image( const QString&, Factor, int ); + void imageInfo( const QString& ); + void fullImageInfo( const QString& ); + virtual QString nameToFname(const QString&name)const; + +private: + QMap m_namemap,m_filemap; + QStringList m_out; +protected slots: + virtual void slotFullInfo(const QString&, const QString&); + virtual void slotThumbInfo(const QString&, const QString&); + virtual void slotThumbNail(const QString&, const QPixmap&); +}; + +#endif diff --git a/noncore/graphics/opie-eye/phunk_view.pro b/noncore/graphics/opie-eye/phunk_view.pro index 57e69b6..0a57a0f 100644 --- a/noncore/graphics/opie-eye/phunk_view.pro +++ b/noncore/graphics/opie-eye/phunk_view.pro @@ -12,7 +12,9 @@ HEADERS = gui/iconview.h gui/filesystem.h gui/mainwindow.h \ iface/slaveiface.h \ gui/imageinfoui.h \ gui/imageview.h \ - gui/viewmodebutton.h + gui/viewmodebutton.h \ + impl/doc/doc_lister.h impl/doc/doc_dirview.h \ + impl/doc/doc_ifaceinfo.h # A list header files @@ -24,7 +26,9 @@ SOURCES = gui/iconview.cpp gui/filesystem.cpp gui/mainwindow.cpp \ impl/dir/dir_ifaceinfo.cpp lib/slavemaster.cpp \ gui/imageinfoui.cpp \ gui/imageview.cpp \ - gui/viewmodebutton.cpp + gui/viewmodebutton.cpp \ + impl/doc/doc_lister.cpp impl/doc/doc_dirview.cpp \ + impl/doc/doc_ifaceinfo.cpp # A list of source files INTERFACES = -- cgit v0.9.0.2