summaryrefslogtreecommitdiff
path: root/noncore/graphics/opie-eye/impl
authorzecke <zecke>2004-03-22 23:32:41 (UTC)
committer zecke <zecke>2004-03-22 23:32:41 (UTC)
commit428b687982966dc2efabaf6dbcc55ad0ea30aa10 (patch) (side-by-side diff)
tree86da20abd2e4b97a59dc32e17996bde5ee74cc91 /noncore/graphics/opie-eye/impl
parent7ce623c6351646ce738a81e103632d73c5454ecc (diff)
downloadopie-428b687982966dc2efabaf6dbcc55ad0ea30aa10.zip
opie-428b687982966dc2efabaf6dbcc55ad0ea30aa10.tar.gz
opie-428b687982966dc2efabaf6dbcc55ad0ea30aa10.tar.bz2
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
Diffstat (limited to 'noncore/graphics/opie-eye/impl') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/graphics/opie-eye/impl/dir/dir_dirview.cpp29
-rw-r--r--noncore/graphics/opie-eye/impl/dir/dir_dirview.h24
-rw-r--r--noncore/graphics/opie-eye/impl/dir/dir_ifacceinfo.h21
-rw-r--r--noncore/graphics/opie-eye/impl/dir/dir_ifaceinfo.cpp47
-rw-r--r--noncore/graphics/opie-eye/impl/dir/dir_ifaceinfo.h21
-rw-r--r--noncore/graphics/opie-eye/impl/dir/dir_lister.cpp94
-rw-r--r--noncore/graphics/opie-eye/impl/dir/dir_lister.h34
7 files changed, 270 insertions, 0 deletions
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 <iface/dirview.h>
+
+
+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 <iface/ifaceinfo.h>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 <qwidget.h>
+#include <qcheckbox.h>
+#include <qhbox.h>
+#include <qlabel.h>
+
+#include <qpe/config.h>
+
+#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<DirImageWidget*>(_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 <iface/ifaceinfo.h>
+
+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 <lib/slavemaster.h>
+
+
+#include <qpe/config.h>
+#include <qpe/qpeapplication.h>
+
+#include <qdir.h>
+#include <qfileinfo.h>
+
+
+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 <qdir.h>
+
+#include <iface/dirlister.h>
+
+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