Diffstat (limited to 'noncore/graphics/opie-eye/impl') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/graphics/opie-eye/impl/dcim/dcim.pro | 10 | ||||
-rw-r--r-- | noncore/graphics/opie-eye/impl/dcim/dcim_dirview.cpp | 28 | ||||
-rw-r--r-- | noncore/graphics/opie-eye/impl/dcim/dcim_dirview.h | 26 | ||||
-rw-r--r-- | noncore/graphics/opie-eye/impl/dcim/dcim_ifaceinfo.cpp | 22 | ||||
-rw-r--r-- | noncore/graphics/opie-eye/impl/dcim/dcim_ifaceinfo.h | 22 | ||||
-rw-r--r-- | noncore/graphics/opie-eye/impl/dcim/dcim_lister.cpp | 181 | ||||
-rw-r--r-- | noncore/graphics/opie-eye/impl/dcim/dcim_lister.h | 71 | ||||
-rw-r--r-- | noncore/graphics/opie-eye/impl/dir/dir.pro | 10 | ||||
-rw-r--r-- | noncore/graphics/opie-eye/impl/dir/dir_ifaceinfo.cpp | 5 | ||||
-rw-r--r-- | noncore/graphics/opie-eye/impl/dir/dir_lister.cpp | 12 | ||||
-rw-r--r-- | noncore/graphics/opie-eye/impl/doc/doc.pro | 7 | ||||
-rw-r--r-- | noncore/graphics/opie-eye/impl/doc/doc_ifaceinfo.cpp | 4 | ||||
-rw-r--r-- | noncore/graphics/opie-eye/impl/doc/doc_lister.cpp | 17 | ||||
-rw-r--r-- | noncore/graphics/opie-eye/impl/doc/doc_lister.h | 1 |
14 files changed, 390 insertions, 26 deletions
diff --git a/noncore/graphics/opie-eye/impl/dcim/dcim.pro b/noncore/graphics/opie-eye/impl/dcim/dcim.pro new file mode 100644 index 0000000..a8e8f05 --- a/dev/null +++ b/noncore/graphics/opie-eye/impl/dcim/dcim.pro @@ -0,0 +1,10 @@ +HEADERS += impl/dcim/dcim_dirview.h \ + impl/dcim/dcim_ifaceinfo.h \ + impl/dcim/dcim_lister.h + + + +SOURCES += impl/dcim/dcim_dirview.cpp \ + impl/dcim/dcim_ifaceinfo.cpp \ + impl/dcim/dcim_lister.cpp + diff --git a/noncore/graphics/opie-eye/impl/dcim/dcim_dirview.cpp b/noncore/graphics/opie-eye/impl/dcim/dcim_dirview.cpp new file mode 100644 index 0000000..e55c27a --- a/dev/null +++ b/noncore/graphics/opie-eye/impl/dcim/dcim_dirview.cpp @@ -0,0 +1,28 @@ +#include "dcim_dirview.h" + +#include "dcim_lister.h" +#include "dcim_ifaceinfo.h" + +PHUNK_VIEW_INTERFACE( "Digital Camera", DCIM_DirView ); + +DCIM_DirView::DCIM_DirView( const Config& cfg ) + : PDirView( cfg ), m_lister( 0l ), m_info( 0l ) +{} + +DCIM_DirView::~DCIM_DirView() +{} + +PInterfaceInfo* DCIM_DirView::interfaceInfo()const { + if ( !m_info ) + m_info = new DCIM_InterfaceInfo; + + return m_info; +} + + +PDirLister* DCIM_DirView::dirLister()const { + if ( !m_lister ) + m_lister = new DCIM_DirLister(); + + return m_lister; +} diff --git a/noncore/graphics/opie-eye/impl/dcim/dcim_dirview.h b/noncore/graphics/opie-eye/impl/dcim/dcim_dirview.h new file mode 100644 index 0000000..7fc38ec --- a/dev/null +++ b/noncore/graphics/opie-eye/impl/dcim/dcim_dirview.h @@ -0,0 +1,26 @@ +/* + * GPLv2 only zecke@handhelds.org + */ + +#ifndef DCIM_DIR_VIEW_H +#define DCIM_DIR_VIEW_H + +#include <iface/dirview.h> + +/* + * Implementation for USB Host Digital Cameras + * like my Casio QV 500 and boring Yakumo + */ +struct DCIM_DirView : public PDirView { + DCIM_DirView( const Config& ); + ~DCIM_DirView(); + + PInterfaceInfo* interfaceInfo()const; + PDirLister * dirLister ()const; + +private: + mutable PDirLister *m_lister; + mutable PInterfaceInfo *m_info ; +}; + +#endif diff --git a/noncore/graphics/opie-eye/impl/dcim/dcim_ifaceinfo.cpp b/noncore/graphics/opie-eye/impl/dcim/dcim_ifaceinfo.cpp new file mode 100644 index 0000000..ca94dc5 --- a/dev/null +++ b/noncore/graphics/opie-eye/impl/dcim/dcim_ifaceinfo.cpp @@ -0,0 +1,22 @@ +/* + * GPLv2 + * zecke@handhelds.org + */ + + +#include "dcim_ifaceinfo.h" + +#include <qobject.h> + +DCIM_InterfaceInfo::DCIM_InterfaceInfo() {} +DCIM_InterfaceInfo::~DCIM_InterfaceInfo() {} + +QString DCIM_InterfaceInfo::name()const { + return QObject::tr( "Digital Camera View" ); +} + +QWidget* DCIM_InterfaceInfo::configWidget( const Config& ) { + return 0l; +} + +void DCIM_InterfaceInfo::writeConfig( QWidget*, Config& ) {} diff --git a/noncore/graphics/opie-eye/impl/dcim/dcim_ifaceinfo.h b/noncore/graphics/opie-eye/impl/dcim/dcim_ifaceinfo.h new file mode 100644 index 0000000..6396047 --- a/dev/null +++ b/noncore/graphics/opie-eye/impl/dcim/dcim_ifaceinfo.h @@ -0,0 +1,22 @@ +/* + * GPLv2 + * zecke@handhelds.org + */ + +#ifndef DCIM_IFACE_INFO_H +#define DCIM_IFACE_INFO_H + +#include <iface/ifaceinfo.h> + +class DCIM_InterfaceInfo : public PInterfaceInfo { +public: + DCIM_InterfaceInfo(); + virtual ~DCIM_InterfaceInfo(); + + QString name()const; + QWidget* configWidget( const Config& ); + void writeConfig( QWidget* wid, Config& ); +}; + + +#endif diff --git a/noncore/graphics/opie-eye/impl/dcim/dcim_lister.cpp b/noncore/graphics/opie-eye/impl/dcim/dcim_lister.cpp new file mode 100644 index 0000000..3c3d702 --- a/dev/null +++ b/noncore/graphics/opie-eye/impl/dcim/dcim_lister.cpp @@ -0,0 +1,181 @@ +/* + * GPLv2 zecke@handhelds.org + */ + +#include "dcim_lister.h" +#include <lib/slavemaster.h> + +#include <opie2/odebug.h> +#include <qpe/storage.h> + +#include <qdir.h> +#include <qfileinfo.h> +#include <qimage.h> + +DCIM_DirLister::DCIM_DirLister() + : PDirLister( "dcim_dirlister" ) +{ + + /* + * create a SlaveMaster and lets connect the signal of + * it to our interface + */ + SlaveHelper::slaveConnectSignals( this ); + m_mode = ListingUnknown; +} + +DCIM_DirLister::~DCIM_DirLister() {} + +QString DCIM_DirLister::defaultPath()const { + m_mode = ListingStart; + return QString::null; +} + +QString DCIM_DirLister::setStartPath( const QString& str) { + /** + * IconView adds a '/' to path. Lets strip + * that. + */ + QString st = str.mid( 1 ); + if ( ListingStart == m_mode && m_map.contains( st ) ) { + m_path = m_map[st]+ "/dcim"; + m_mode = ListingFolder; + }else if ( m_mode == ListingFolder ) { + m_mode = ListingFiles; + m_path = str; + }else if ( m_mode == ListingReFolder ) { + m_mode = ListingFolder; + } + + owarn << " StartPath2 " << str << " " << m_path << oendl; + + return m_path; +} + + +QString DCIM_DirLister::currentPath()const { + return m_path; +} + +/* + * depending on the mode we will either + * Find Digital Cameras + */ +QStringList DCIM_DirLister::folders()const { + QStringList lst; + + switch( m_mode ) { + case ListingUnknown: + case ListingStart: + lst = findCameras(); + break; + case ListingFolder: + lst = findAlbums(); + break; + case ListingFiles: + default: + break; + } + + return lst; +} + +QStringList DCIM_DirLister::files()const { + if ( m_mode != ListingFiles ) + return QStringList(); + else + return findImages(); +} + +QString DCIM_DirLister::dirUp( const QString& p )const { + QString str; + + switch( m_mode ) { + case ListingFiles: + m_mode = ListingReFolder; + str = PDirLister::dirUp( p ); + break; + case ListingFolder: + m_mode = ListingStart; + break; + case ListingUnknown: + case ListingStart: + default: + break; + } + + /* down cases */ + owarn << " New String " << str << " old path " << m_mode << oendl; + m_path = str; + return str; +} + + +QStringList DCIM_DirLister::findCameras()const { + QStringList lst; + StorageInfo inf; + + m_map.clear(); + + const QList<FileSystem> &list = inf.fileSystems(); + QListIterator<FileSystem> it( list ); + + + FileSystem *sys; + for ( sys = it.current(); (sys=it.current())!=0 ; ++it ) + if ( QFileInfo( sys->path() + "/dcim/" ).exists() ) { + lst << sys->name(); + m_map.insert( sys->name(), sys->path() ); + } + + if ( lst.isEmpty() ) { + m_mode = ListingUnknown; + lst << QObject::tr("Error no Camera Dir found"); + }else + m_mode = ListingStart; + + return lst; +} + +QStringList DCIM_DirLister::findAlbums()const { + QStringList lst = QDir( m_path ).entryList( QDir::Dirs ); + lst.remove( "." ); + lst.remove( ".." ); + + return lst; +} + +QStringList DCIM_DirLister::findImages()const { + return QDir( m_path ).entryList("*.jpg *.jpeg *.png", QDir::Files ); +} + +void DCIM_DirLister::deleteImage( const QString& fl ) { + QFileInfo inf( fl ); + QFile::remove( fl ); + QFile::remove( inf.dirPath ()+"/preview"+ + inf.fileName() ); +} + +void DCIM_DirLister::thumbNail( const QString& _str, int w, int h ) { + QFileInfo inf( _str ); + QString str = QFileInfo( inf.dirPath()+"/preview"+ inf.fileName() ).exists() ? + inf.dirPath()+"/preview"+ inf.fileName() : _str; + + SlaveMaster::self()->thumbNail( str, w, h ); +} + +QImage DCIM_DirLister::image( const QString& str, Factor f, int m ) { + return SlaveMaster::self()->image( str, f, m ); +} + +void DCIM_DirLister::imageInfo( const QString& str ) { + SlaveMaster::self()->thumbInfo( str ); +} + +void DCIM_DirLister::fullImageInfo( const QString& str ) { + SlaveMaster::self()->imageInfo( str ); +} + +QString DCIM_DirLister::nameToFname( const QString& name )const { + return name; +} diff --git a/noncore/graphics/opie-eye/impl/dcim/dcim_lister.h b/noncore/graphics/opie-eye/impl/dcim/dcim_lister.h new file mode 100644 index 0000000..d0a2031 --- a/dev/null +++ b/noncore/graphics/opie-eye/impl/dcim/dcim_lister.h @@ -0,0 +1,71 @@ +/* + * GPLv2 zecke@handhelds.org + */ + +#ifndef DCIM_LISTER_H +#define DCIM_LISTER_H + +#include <iface/dirlister.h> + +#include <qmap.h> + +class Config; + +/** + * The DirLister is responsible for + * telling the GUI about files and folders + * and to load them. + * The DCIM is a special FileSystem lister + * in the that it starts with an overview + * of available 'Cameras'. It looks via 'Storage' + * for paths including a 'dcim' directory. + * And offers these as folders. + * Then it only lists Images. It tries to use + * the 'preview' directory to generate a thumbnail + * but will use the full image for the QImage + * call. + * + */ +class DCIM_DirLister : public PDirLister { + Q_OBJECT +public: + enum ListMode{ + ListingUnknown = -1, + ListingStart=1, /* give an overview over files */ + ListingFolder, /* give access to albums */ + ListingFiles, /* list the content of the album */ + ListingReFolder + }; + DCIM_DirLister(); + ~DCIM_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& )const; + virtual QString dirUp(const QString& )const; + +private: + QStringList findCameras()const; + QStringList findAlbums ()const; + QStringList findImages ()const; + +private: + mutable QString m_path; + mutable ListMode m_mode; + mutable QMap<QString, QString> m_map; +}; + +#endif diff --git a/noncore/graphics/opie-eye/impl/dir/dir.pro b/noncore/graphics/opie-eye/impl/dir/dir.pro new file mode 100644 index 0000000..675c327 --- a/dev/null +++ b/noncore/graphics/opie-eye/impl/dir/dir.pro @@ -0,0 +1,10 @@ +HEADERS += impl/dir/dir_dirview.h \ + impl/dir/dir_ifaceinfo.h \ + impl/dir/dir_lister.h + + + +SOURCES += impl/dir/dir_dirview.cpp \ + impl/dir/dir_ifaceinfo.cpp \ + impl/dir/dir_lister.cpp + diff --git a/noncore/graphics/opie-eye/impl/dir/dir_ifaceinfo.cpp b/noncore/graphics/opie-eye/impl/dir/dir_ifaceinfo.cpp index 5599ad1..f4a6a87 100644 --- a/noncore/graphics/opie-eye/impl/dir/dir_ifaceinfo.cpp +++ b/noncore/graphics/opie-eye/impl/dir/dir_ifaceinfo.cpp @@ -9,5 +9,4 @@ #include <opie2/odebug.h> #include <qpe/config.h> -using namespace Opie::Core; /* QT */ @@ -35,5 +34,5 @@ DirInterfaceInfo::~DirInterfaceInfo() { QString DirInterfaceInfo::name()const { - return QString::fromLatin1(QObject::tr("DirView" )); + return QObject::tr("Directory View" ); } @@ -46,5 +45,5 @@ QWidget* DirInterfaceInfo::configWidget(const Config& cfg) { void DirInterfaceInfo::writeConfig( QWidget* _wid, Config& cfg) { - owarn << "Write Config" << oendl; + owarn << "Write Config" << oendl; DirImageWidget* wid = static_cast<DirImageWidget*>(_wid); cfg.writeEntry("Dir_Check_All_Files", wid->chkbox->isChecked() ); diff --git a/noncore/graphics/opie-eye/impl/dir/dir_lister.cpp b/noncore/graphics/opie-eye/impl/dir/dir_lister.cpp index 3717297..d8b332a 100644 --- a/noncore/graphics/opie-eye/impl/dir/dir_lister.cpp +++ b/noncore/graphics/opie-eye/impl/dir/dir_lister.cpp @@ -22,15 +22,5 @@ Dir_DirLister::Dir_DirLister( bool list ) m_allFiles = list; owarn << "All Files " << m_allFiles << "" << oendl; - - 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, SIGNAL(sig_thumbInfo(const QString&, const QString&)) ); - connect( master, SIGNAL(sig_fullInfo(const QString&, const QString&)), - this, SIGNAL(sig_fullInfo(const QString&, const QString&)) ); - connect( master, SIGNAL(sig_thumbNail(const QString&, const QPixmap&)), - this, SIGNAL(sig_thumbNail(const QString&, const QPixmap&)) ); - + SlaveHelper::slaveConnectSignals( this ); } diff --git a/noncore/graphics/opie-eye/impl/doc/doc.pro b/noncore/graphics/opie-eye/impl/doc/doc.pro new file mode 100644 index 0000000..076aa3b --- a/dev/null +++ b/noncore/graphics/opie-eye/impl/doc/doc.pro @@ -0,0 +1,7 @@ +HEADERS += impl/doc/doc_dirview.h \ + impl/doc/doc_ifaceinfo.h \ + impl/doc/doc_lister.h + +SOURCES += impl/doc/doc_dirview.cpp \ + impl/doc/doc_ifaceinfo.cpp \ + impl/doc/doc_lister.cpp diff --git a/noncore/graphics/opie-eye/impl/doc/doc_ifaceinfo.cpp b/noncore/graphics/opie-eye/impl/doc/doc_ifaceinfo.cpp index a6d6f3c..356a4b6 100644 --- a/noncore/graphics/opie-eye/impl/doc/doc_ifaceinfo.cpp +++ b/noncore/graphics/opie-eye/impl/doc/doc_ifaceinfo.cpp @@ -39,5 +39,5 @@ QString DocInterfaceInfo::name()const { } -QWidget* DocInterfaceInfo::configWidget(const Config& cfg) { +QWidget* DocInterfaceInfo::configWidget(const Config& ) { #if 0 DirImageWidget* wid = new DirImageWidget(); @@ -51,5 +51,5 @@ QWidget* DocInterfaceInfo::configWidget(const Config& cfg) { void DocInterfaceInfo::writeConfig( QWidget* , Config& ) { #if 0 - owarn << "Write Config" << oendl; + owarn << "Write Config" << oendl; DirImageWidget* wid = static_cast<DirImageWidget*>(_wid); cfg.writeEntry("Dir_Check_All_Files", wid->chkbox->isChecked() ); diff --git a/noncore/graphics/opie-eye/impl/doc/doc_lister.cpp b/noncore/graphics/opie-eye/impl/doc/doc_lister.cpp index d4d1831..722fb95 100644 --- a/noncore/graphics/opie-eye/impl/doc/doc_lister.cpp +++ b/noncore/graphics/opie-eye/impl/doc/doc_lister.cpp @@ -22,7 +22,8 @@ Doc_DirLister::Doc_DirLister() : PDirLister( "doc_dir_lister" ) { + /* connect the signals */ 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_end()), this, SIGNAL(sig_end()) ); connect( master, SIGNAL(sig_thumbInfo(const QString&, const QString&)), this, SLOT(slotThumbInfo(const QString&, const QString&)) ); @@ -37,5 +38,5 @@ Doc_DirLister::Doc_DirLister() QString Doc_DirLister::defaultPath()const { - return ""; QPEApplication::documentDir(); + return QString::null; } @@ -79,5 +80,4 @@ 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; } @@ -88,5 +88,4 @@ void Doc_DirLister::thumbNail( const QString& str, int w, int 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(); } @@ -97,5 +96,4 @@ 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()) { - owarn << "Item " << str << " not found" << oendl; return; } @@ -106,5 +104,4 @@ void Doc_DirLister::imageInfo( const QString& str) { void Doc_DirLister::fullImageInfo( const QString& str) { if (m_namemap.find(str)==m_namemap.end()) { - owarn << "Item " << str << " not found" << oendl; return; } @@ -116,5 +113,4 @@ 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; } @@ -126,5 +122,4 @@ 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; } @@ -136,5 +131,4 @@ 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; } @@ -146,7 +140,10 @@ 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]; } + +QString Doc_DirLister::dirUp( const QString& p ) const{ + return p; +} diff --git a/noncore/graphics/opie-eye/impl/doc/doc_lister.h b/noncore/graphics/opie-eye/impl/doc/doc_lister.h index a65b616..5884a35 100644 --- a/noncore/graphics/opie-eye/impl/doc/doc_lister.h +++ b/noncore/graphics/opie-eye/impl/doc/doc_lister.h @@ -30,4 +30,5 @@ public: void fullImageInfo( const QString& ); virtual QString nameToFname(const QString&name)const; + QString dirUp( const QString& )const; private: |