From a002be54e33d64e69c7edf2960d5e68a9a0609e4 Mon Sep 17 00:00:00 2001 From: alwin Date: Thu, 15 Apr 2004 16:14:56 +0000 Subject: previous/next image keys implemented ToDo: make it via keywidget, this moment the keywidget sends a key twice (on press and on release) --- (limited to 'noncore') diff --git a/noncore/graphics/opie-eye/gui/iconview.cpp b/noncore/graphics/opie-eye/gui/iconview.cpp index 5633312..f6e1816 100644 --- a/noncore/graphics/opie-eye/gui/iconview.cpp +++ b/noncore/graphics/opie-eye/gui/iconview.cpp @@ -268,6 +268,35 @@ QString PIconView::currentFileName(bool &isDir)const { return it->path(); } +QString PIconView::nextFileName(bool &isDir)const +{ + isDir = false; + QIconViewItem* _it1 = m_view->currentItem(); + if ( !_it1 ) + return QString::null; + QIconViewItem* _it = _it1->nextItem(); + if ( !_it ) + return QString::null; + IconViewItem* it = static_cast( _it ); + isDir = it->isDir(); + m_view->setCurrentItem(_it); + return it->path(); +} + +QString PIconView::prevFileName(bool &isDir)const{ + isDir = false; + QIconViewItem* _it = m_view->currentItem(); + if ( !_it ) + return QString::null; + _it = _it->prevItem(); + if ( !_it ) + return QString::null; + IconViewItem* it = static_cast( _it ); + isDir = it->isDir(); + m_view->setCurrentItem(_it); + return it->path(); +} + void PIconView::slotTrash() { bool isDir; QString pa = currentFileName( isDir ); @@ -446,6 +475,25 @@ void PIconView::slotEnd() { m_updatet = false; } +void PIconView::slotShowNext() +{ + bool isDir = false; + QString name = nextFileName(isDir); + if (isDir) return; + if (name.isEmpty()) return; + odebug << "Show next: " << name << oendl; + slotShowImage(name); +} + +void PIconView::slotShowPrev() +{ + bool isDir = false; + QString name = prevFileName(isDir); + if (isDir) return; + if (name.isEmpty()) return; + slotShowImage(name); +} + void PIconView::slotShowImage() { bool isDir = false; diff --git a/noncore/graphics/opie-eye/gui/iconview.h b/noncore/graphics/opie-eye/gui/iconview.h index 903c4fd..14ad168 100644 --- a/noncore/graphics/opie-eye/gui/iconview.h +++ b/noncore/graphics/opie-eye/gui/iconview.h @@ -39,12 +39,18 @@ signals: void sig_showInfo( const QString& ); void sig_display( const QString& ); +public slots: + virtual void slotShowNext(); + virtual void slotShowPrev(); + protected: void resizeEvent( QResizeEvent* ); private: void initKeys(); QString currentFileName(bool &isDir)const; + QString nextFileName(bool &isDir)const; + QString prevFileName(bool &isDir)const; void loadViews(); void calculateGrid(); diff --git a/noncore/graphics/opie-eye/gui/imageview.cpp b/noncore/graphics/opie-eye/gui/imageview.cpp index db3ae74..aa2b9bc 100644 --- a/noncore/graphics/opie-eye/gui/imageview.cpp +++ b/noncore/graphics/opie-eye/gui/imageview.cpp @@ -50,10 +50,35 @@ void ImageView::initKeys() Resource::loadPixmap("1to1"), ViewInfo, Opie::Core::OKeyPair(Qt::Key_I,Qt::ShiftButton), this, SLOT(slotShowImageInfo()))); +#if 0 + m_viewManager->addKeyConfig( Opie::Core::OKeyConfigItem(tr("Next image"), "nextimage", + Resource::loadPixmap("next"), ViewInfo, + Opie::Core::OKeyPair(Qt::Key_N,0), + this, SLOT(slotDispNext()))); +#endif m_viewManager->handleWidget( this ); m_viewManager->load(); } +void ImageView::keyReleaseEvent(QKeyEvent * e) +{ + if (!e || e->state()!=0) { + return; + } + if (e->key()==Qt::Key_N) slotDispNext(); + if (e->key()==Qt::Key_P) slotDispPrev(); +} + +void ImageView::slotDispNext() +{ + emit dispNext(); +} + +void ImageView::slotDispPrev() +{ + emit dispPrev(); +} + void ImageView::slotShowImageInfo() { emit dispImageInfo(m_lastName); diff --git a/noncore/graphics/opie-eye/gui/imageview.h b/noncore/graphics/opie-eye/gui/imageview.h index 1790c4f..f467f00 100644 --- a/noncore/graphics/opie-eye/gui/imageview.h +++ b/noncore/graphics/opie-eye/gui/imageview.h @@ -25,6 +25,8 @@ public: signals: void dispImageInfo(const QString&); + void dispNext(); + void dispPrev(); protected: Opie::Core::OConfig * m_cfg; @@ -32,5 +34,8 @@ protected: void initKeys(); protected slots: virtual void slotShowImageInfo(); + virtual void slotDispNext(); + virtual void slotDispPrev(); + virtual void keyReleaseEvent(QKeyEvent * e); }; #endif diff --git a/noncore/graphics/opie-eye/gui/mainwindow.cpp b/noncore/graphics/opie-eye/gui/mainwindow.cpp index 09f562a..57be247 100644 --- a/noncore/graphics/opie-eye/gui/mainwindow.cpp +++ b/noncore/graphics/opie-eye/gui/mainwindow.cpp @@ -266,6 +266,8 @@ void PMainWindow::initDisp() { m_disp->setAutoRotate(autoRotate); m_disp->setShowZoomer(zoomerOn); connect(m_disp,SIGNAL(dispImageInfo(const QString&)),this,SLOT(slotShowInfo(const QString&))); + connect(m_disp,SIGNAL(dispNext()),m_view,SLOT(slotShowNext())); + connect(m_disp,SIGNAL(dispPrev()),m_view,SLOT(slotShowPrev())); } } -- cgit v0.9.0.2