From 428b687982966dc2efabaf6dbcc55ad0ea30aa10 Mon Sep 17 00:00:00 2001 From: zecke Date: Mon, 22 Mar 2004 23:32:41 +0000 Subject: Initial Check in of the Eye Of Zilla. This ImageViewer features Image Infos, EXIF, Jpeg,Png,Gif support. It supports scaled loading of Jpegs. an smart image cache.... GUI needs some work and we need to find a bug in QCOP as well. TODO: Add Image Service for example Mailer Add ImageCanvas/Zoomer/Display --- (limited to 'noncore/graphics/opie-eye/impl/dir') diff --git a/noncore/graphics/opie-eye/impl/dir/dir_dirview.cpp b/noncore/graphics/opie-eye/impl/dir/dir_dirview.cpp new file mode 100644 index 0000000..97e3dcb --- a/dev/null +++ b/noncore/graphics/opie-eye/impl/dir/dir_dirview.cpp @@ -0,0 +1,29 @@ +#include "dir_lister.h" +#include "dir_ifaceinfo.h" +#include "dir_dirview.h" + +PHUNK_VIEW_INTERFACE("Dir View", Dir_DirView ); + + +Dir_DirView::Dir_DirView( const Config& cfg) + : PDirView(cfg) +{ + m_cfg = cfg.readBoolEntry( "Dir_Check_All_Files", true); + m_lister = 0; + m_info = 0; +} + +Dir_DirView::~Dir_DirView() { +} + +PInterfaceInfo* Dir_DirView::interfaceInfo()const{ + if (!m_info ) + m_info =new DirInterfaceInfo; + return m_info; +} + +PDirLister* Dir_DirView::dirLister()const{ + if (!m_lister ) + m_lister = new Dir_DirLister(m_cfg); + return m_lister; +} diff --git a/noncore/graphics/opie-eye/impl/dir/dir_dirview.h b/noncore/graphics/opie-eye/impl/dir/dir_dirview.h new file mode 100644 index 0000000..3b9b7a6 --- a/dev/null +++ b/noncore/graphics/opie-eye/impl/dir/dir_dirview.h @@ -0,0 +1,24 @@ +/* + * GPLv2 only zecke@handhelds.org + */ + +#ifndef DIR_DIR_VIEW_H +#define DIR_DIR_VIEW_H + +#include + + +struct Dir_DirView : public PDirView { + Dir_DirView( const Config& ); + ~Dir_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/dir/dir_ifacceinfo.h b/noncore/graphics/opie-eye/impl/dir/dir_ifacceinfo.h new file mode 100644 index 0000000..8c6262f --- a/dev/null +++ b/noncore/graphics/opie-eye/impl/dir/dir_ifacceinfo.h @@ -0,0 +1,21 @@ +/* + * GPLv2 + * zecke@handhelds.org + */ + +#ifndef DIR_IFACE_INFO_H +#define DIR_IFACE_INFO_H + +#include s + +class DirInterfaceInfo : public PInterfaceInfo { +public: + DirInterfaceInfo(); + ~DirInterfaceInfo(); + + QString name()const; + QWidget* configWidget(const Config&); + void writeConfig( QWidget* wid, Config& ); +}; + +#endif diff --git a/noncore/graphics/opie-eye/impl/dir/dir_ifaceinfo.cpp b/noncore/graphics/opie-eye/impl/dir/dir_ifaceinfo.cpp new file mode 100644 index 0000000..79f4510 --- a/dev/null +++ b/noncore/graphics/opie-eye/impl/dir/dir_ifaceinfo.cpp @@ -0,0 +1,47 @@ +/* + * GPLv2 + * zecke@handhelds.org + */ + +#include +#include +#include +#include + +#include + +#include "dir_ifaceinfo.h" + +namespace { + class DirImageWidget : public QHBox { + public: + DirImageWidget() { + chkbox = new QCheckBox( QObject::tr("Show all files"), this ); + } + ~DirImageWidget() {} + QCheckBox* chkbox; + }; +} + + +DirInterfaceInfo::DirInterfaceInfo() { +} +DirInterfaceInfo::~DirInterfaceInfo() { +} + +QString DirInterfaceInfo::name()const { + return QString::fromLatin1(QObject::tr("DirView" )); +} + +QWidget* DirInterfaceInfo::configWidget(const Config& cfg) { + DirImageWidget* wid = new DirImageWidget(); + wid->chkbox->setChecked( cfg.readBoolEntry("Dir_Check_All_Files", true) ); + + return wid; +} + +void DirInterfaceInfo::writeConfig( QWidget* _wid, Config& cfg) { + qWarning( "Write Config" ); + DirImageWidget* wid = static_cast(_wid); + cfg.writeEntry("Dir_Check_All_Files", wid->chkbox->isChecked() ); +} diff --git a/noncore/graphics/opie-eye/impl/dir/dir_ifaceinfo.h b/noncore/graphics/opie-eye/impl/dir/dir_ifaceinfo.h new file mode 100644 index 0000000..c919dde --- a/dev/null +++ b/noncore/graphics/opie-eye/impl/dir/dir_ifaceinfo.h @@ -0,0 +1,21 @@ +/* + * GPLv2 + * zecke@handhelds.org + */ + +#ifndef DIR_IFACE_INFO_H +#define DIR_IFACE_INFO_H + +#include + +class DirInterfaceInfo : public PInterfaceInfo { +public: + DirInterfaceInfo(); + virtual ~DirInterfaceInfo(); + + QString name()const; + QWidget* configWidget(const Config&); + void writeConfig( QWidget* wid, Config& ); +}; + +#endif diff --git a/noncore/graphics/opie-eye/impl/dir/dir_lister.cpp b/noncore/graphics/opie-eye/impl/dir/dir_lister.cpp new file mode 100644 index 0000000..ffea29e --- a/dev/null +++ b/noncore/graphics/opie-eye/impl/dir/dir_lister.cpp @@ -0,0 +1,94 @@ +/* + * GPLv2 zecke@handhelds.org + */ + +#include "dir_lister.h" + +#include + + +#include +#include + +#include +#include + + +Dir_DirLister::Dir_DirLister( bool list ) + : PDirLister( "dir_dir_lister" ) +{ + m_allFiles = list; + qWarning("All Files %d", m_allFiles ); + + 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&)) ); + +} + +QString Dir_DirLister::defaultPath()const { + return QPEApplication::documentDir(); +} + +QString Dir_DirLister::setStartPath( const QString& path ) { + m_currentDir.cd( path ); + if (!m_currentDir.exists() ) + m_currentDir.cd(defaultPath()); + + + return m_currentDir.absPath(); +} + +QString Dir_DirLister::currentPath()const { + return m_currentDir.absPath(); +} + + +QStringList Dir_DirLister::folders()const { + return m_currentDir.entryList( QDir::Dirs ); +} + +QStringList Dir_DirLister::files()const { + if ( m_allFiles ) + return m_currentDir.entryList( QDir::Files ); + else { + QStringList out; + QStringList list = m_currentDir.entryList( QDir::Files | QDir::Readable ); + for (QStringList::Iterator it = list.begin(); it != list.end();++it ) { + QFileInfo inf( *it ); + QString ext = inf.extension(false).lower(); + if( ext == QString::fromLatin1("jpg") || + ext == QString::fromLatin1("jpeg" ) || + ext == QString::fromLatin1("png" ) || + ext == QString::fromLatin1("gif" ) ) + out.append( *it ); + } + return out; + } +} + +void Dir_DirLister::deleteImage( const QString& fl) { + QFile::remove( fl ); +} + +void Dir_DirLister::thumbNail( const QString& str, int w, int h) { + SlaveMaster::self()->thumbNail( str, w, h ); +} + +QImage Dir_DirLister::image( const QString& str, Factor f, int m) { + return SlaveMaster::self()->image( str, f, m ); +} + +void Dir_DirLister::imageInfo( const QString& str) { + SlaveMaster::self()->thumbInfo( str ); +} + +void Dir_DirLister::fullImageInfo( const QString& str) { + SlaveMaster::self()->imageInfo( str ); +} diff --git a/noncore/graphics/opie-eye/impl/dir/dir_lister.h b/noncore/graphics/opie-eye/impl/dir/dir_lister.h new file mode 100644 index 0000000..fc63bb0 --- a/dev/null +++ b/noncore/graphics/opie-eye/impl/dir/dir_lister.h @@ -0,0 +1,34 @@ +/* + * GPLv2 zecke@handhelds.org + */ + +#ifndef DIR_LISTER_INTERFACE_LISTER_H +#define DIR_LISTER_INTERFACE_LISTER_H + +#include + +#include + +class Config; +class Dir_DirLister : public PDirLister { +public: + Dir_DirLister( bool ); + + 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& ); + +private: + bool m_allFiles; + QDir m_currentDir; +}; + +#endif -- cgit v0.9.0.2