Diffstat (limited to 'noncore/graphics/opie-eye/gui/iconview.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/graphics/opie-eye/gui/iconview.cpp | 63 |
1 files changed, 61 insertions, 2 deletions
diff --git a/noncore/graphics/opie-eye/gui/iconview.cpp b/noncore/graphics/opie-eye/gui/iconview.cpp index 74a8d0f..b3f0006 100644 --- a/noncore/graphics/opie-eye/gui/iconview.cpp +++ b/noncore/graphics/opie-eye/gui/iconview.cpp @@ -1,41 +1,45 @@ /* * GPLv2 zecke@handhelds.org * No WArranty... */ #include "iconview.h" #include <lib/imagecache.h> #include <iface/dirview.h> #include <iface/dirlister.h> -#include <qpe/config.h> +#include <opie2/oconfig.h> +#include <opie2/okeyconfigwidget.h> + #include <qpe/resource.h> #include <qpe/qpemessagebox.h> #include <qpe/ir.h> #include <qpe/qcopenvelope_qws.h> + #include <qiconview.h> #include <qlabel.h> #include <qhbox.h> #include <qcombobox.h> #include <qdir.h> #include <qapplication.h> #include <qmainwindow.h> #include <qtimer.h> #include <qstyle.h> +using Opie::Ui::OKeyConfigItem; namespace { QPixmap* _dirPix = 0; QPixmap* _unkPix = 0; class IconViewItem : public QIconViewItem { public: IconViewItem( QIconView*, const QString& path, const QString& name, bool isDir = false); QPixmap* pixmap()const; QString path()const { return m_path; } bool isDir()const { return m_isDir; } void setText( const QString& ); void reCalc(); @@ -87,25 +91,25 @@ namespace { m_noInfo = true; QIconViewItem::setText( text ); reCalc(); } inline void IconViewItem::reCalc() { calcRect(); } } -PIconView::PIconView( QWidget* wid, Config* cfg ) +PIconView::PIconView( QWidget* wid, Opie::Core::OConfig* cfg ) : QVBox( wid ), m_cfg( cfg ) { { QCopEnvelope( "QPE/Application/opie-eye_slave", "refUp()" ); } m_path = QDir::homeDirPath(); QHBox *hbox = new QHBox( this ); QLabel* lbl = new QLabel( hbox ); lbl->setText( tr("View as" ) ); m_views = new QComboBox( hbox, "View As" ); @@ -115,55 +119,97 @@ PIconView::PIconView( QWidget* wid, Config* cfg ) m_view= new QIconView( this ); connect(m_view, SIGNAL(clicked(QIconViewItem*) ), this, SLOT(slotClicked(QIconViewItem*)) ); m_view->setArrangement( QIconView::LeftToRight ); m_view->setItemTextPos( QIconView::Right ); m_view->setResizeMode(QIconView::Adjust); int dw = QApplication::desktop()->width(); int viewerWidth = dw-style().scrollBarExtent().width(); m_view->setGridX( viewerWidth-2*m_view->spacing() ); m_view->setGridY( fontMetrics().height()*2+40 ); + + + initKeys(); + loadViews(); slotViewChanged( m_views->currentItem() ); } PIconView::~PIconView() { { QCopEnvelope( "QPE/Application/opie-eye_slave", "refDown()" ); } + m_viewManager->save(); + delete m_viewManager; +} + +Opie::Ui::OKeyConfigManager* PIconView::manager() { + return m_viewManager; +} + +void PIconView::initKeys() { + Opie::Ui::OKeyPair::List lst; + lst.append( Opie::Ui::OKeyPair::upArrowKey() ); + lst.append( Opie::Ui::OKeyPair::downArrowKey() ); + lst.append( Opie::Ui::OKeyPair::leftArrowKey() ); + lst.append( Opie::Ui::OKeyPair::rightArrowKey() ); + lst.append( Opie::Ui::OKeyPair::returnKey() ); + + m_viewManager = new Opie::Ui::OKeyConfigManager(m_cfg, "View-KeyBoard-Config", + lst, false,this, "keyconfig name" ); + m_viewManager->addKeyConfig( OKeyConfigItem(tr("Beam Current Item") , "beam", + QString::fromLatin1("beam"), BeamItem, + Opie::Ui::OKeyPair(Qt::Key_B, Qt::ShiftButton), + this, SLOT(slotBeam())) ); + m_viewManager->addKeyConfig( OKeyConfigItem(tr("Delete Current Item"), "delete", + QString::fromLatin1("trash"), DeleteItem, + Opie::Ui::OKeyPair(Qt::Key_D, Qt::ShiftButton), + this, SLOT(slotTrash())) ); + m_viewManager->addKeyConfig( OKeyConfigItem(tr("View Current Item"), "view", + QString::fromLatin1("1to1"), ViewItem, + Opie::Ui::OKeyPair(Qt::Key_V, Qt::ShiftButton), + this, SLOT(slotShowImage()))); + m_viewManager->addKeyConfig( OKeyConfigItem(tr("Show Image Info") , "info", + QString::fromLatin1("DocumentTypeWord"), InfoItem, + Opie::Ui::OKeyPair(Qt::Key_I, Qt::ShiftButton ), + this, SLOT(slotImageInfo()) ) ); + m_viewManager->load(); + m_viewManager->handleWidget( m_view ); } void PIconView::slotDirUp() { QDir dir( m_path ); dir.cdUp(); slotChangeDir( dir.absPath() ); } void PIconView::slotChangeDir(const QString& path) { if ( !currentView() ) return; PDirLister *lister = currentView()->dirLister(); if (!lister ) return; lister->setStartPath( path ); m_path = lister->currentPath(); + m_view->setUpdatesEnabled( false ); m_view->clear(); addFolders( lister->folders() ); addFiles( lister->files() ); + m_view->setUpdatesEnabled( true ); // Also invalidate the cache. We can't cancel the operations anyway g_stringPix.clear(); g_stringInf.clear(); // looks ugly static_cast<QMainWindow*>(parent())->setCaption( QObject::tr("%1 - O View", "Name of the dir").arg( m_path ) ); } QString PIconView::currentFileName(bool &isDir)const { isDir = false; QIconViewItem* _it = m_view->currentItem(); @@ -308,12 +354,25 @@ void PIconView::slotBeam() { void PIconView::slotBeamDone( Ir* ir) { delete ir; } void PIconView::slotStart() { m_view->setUpdatesEnabled( false ); } void PIconView::slotEnd() { m_view->setUpdatesEnabled( true ); } + +void PIconView::slotShowImage() { + +} +void PIconView::slotShowImage( const QString& ) { + +} +void PIconView::slotImageInfo() { + +} +void PIconView::slotImageInfo( const QString& ) { + +} |