summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/graphics/opie-eye/gui/iconview.cpp48
-rw-r--r--noncore/graphics/opie-eye/gui/iconview.h6
-rw-r--r--noncore/graphics/opie-eye/gui/imageview.cpp25
-rw-r--r--noncore/graphics/opie-eye/gui/imageview.h5
-rw-r--r--noncore/graphics/opie-eye/gui/mainwindow.cpp2
5 files changed, 86 insertions, 0 deletions
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
@@ -255,32 +255,61 @@ void PIconView::slotChangeDir(const QString& path) {
/**
* get the current file name
* @param isDir see if this is a dir or real file
*/
QString PIconView::currentFileName(bool &isDir)const {
isDir = false;
QIconViewItem* _it = m_view->currentItem();
if ( !_it )
return QString::null;
IconViewItem* it = static_cast<IconViewItem*>( _it );
isDir = it->isDir();
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<IconViewItem*>( _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<IconViewItem*>( _it );
+ isDir = it->isDir();
+ m_view->setCurrentItem(_it);
+ return it->path();
+}
+
void PIconView::slotTrash() {
bool isDir;
QString pa = currentFileName( isDir );
if ( isDir && pa.isEmpty() )
return;
if (!QPEMessageBox::confirmDelete( this,
tr("Delete Image" ),
tr("the Image %1" ).arg(pa)))
return
currentView()->dirLister()->deleteImage( pa );
delete m_view->currentItem();
}
@@ -433,32 +462,51 @@ void PIconView::slotBeam() {
*/
void PIconView::slotBeamDone( Ir* ir) {
delete ir;
}
void PIconView::slotStart() {
m_view->viewport()->setUpdatesEnabled( false );
}
void PIconView::slotEnd() {
if ( m_updatet )
m_view->arrangeItemsInGrid( );
m_view->viewport()->setUpdatesEnabled( true );
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;
QString name = currentFileName(isDir);
if (isDir) return;
slotShowImage( name );
}
void PIconView::slotShowImage( const QString& name) {
emit sig_display( name );
}
void PIconView::slotImageInfo() {
bool isDir = false;
QString name = currentFileName(isDir);
if (isDir) return;
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
@@ -26,38 +26,44 @@ namespace Core{
class PIconView : public QVBox {
Q_OBJECT
friend class PIconViewItem;
enum ActionIds {
BeamItem, DeleteItem, ViewItem, InfoItem
};
public:
PIconView( QWidget* wid, Opie::Core::OConfig *cfg );
~PIconView();
void resetView();
Opie::Core::OKeyConfigManager* manager();
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();
private slots:
void slotDirUp();
void slotChangeDir(const QString&);
void slotTrash();
void slotViewChanged( int );
void slotReloadDir();
void slotRename();
void slotBeam();
void slotBeamDone( Ir* );
void slotShowImage();
void slotShowImage( const QString& );
void slotImageInfo();
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
@@ -37,24 +37,49 @@ void ImageView::initKeys()
if (!m_cfg) {
m_cfg = new Opie::Core::OConfig("phunkview");
m_cfg->setGroup("image_view_keys" );
}
Opie::Core::OKeyPair::List lst;
lst.append( Opie::Core::OKeyPair::upArrowKey() );
lst.append( Opie::Core::OKeyPair::downArrowKey() );
lst.append( Opie::Core::OKeyPair::leftArrowKey() );
lst.append( Opie::Core::OKeyPair::rightArrowKey() );
m_viewManager = new Opie::Core::OKeyConfigManager(m_cfg, "image_view_keys",
lst, false,this, "image_view_keys" );
m_viewManager->addKeyConfig( Opie::Core::OKeyConfigItem(tr("View Image Info"), "imageviewinfo",
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
@@ -12,25 +12,30 @@ namespace Opie {
class ImageView:public Opie::MM::OImageScrollView
{
Q_OBJECT
enum ActionIds {
ViewInfo
};
public:
ImageView(Opie::Core::OConfig *cfg, QWidget* parent, const char* name = 0, WFlags fl = 0 );
virtual ~ImageView();
Opie::Core::OKeyConfigManager* manager();
signals:
void dispImageInfo(const QString&);
+ void dispNext();
+ void dispPrev();
protected:
Opie::Core::OConfig * m_cfg;
Opie::Core::OKeyConfigManager*m_viewManager;
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
@@ -253,32 +253,34 @@ void PMainWindow::initT( const char* name, T** ptr, int id) {
}
void PMainWindow::initInfo() {
initT<imageinfo>( "Image Info", &m_info, ImageInfo );
connect(m_info,SIGNAL(dispImage(const QString&)),this,SLOT(slotDisplay(const QString&)));
}
void PMainWindow::initDisp() {
initT<ImageView>( "Image ScrollView", &m_disp, ImageDisplay );
if (m_disp) {
if (m_stack->mode() != Opie::Ui::OWidgetStack::SmallScreen) {
m_disp->setMinimumSize(QApplication::desktop()->size()/2);
}
m_disp->setAutoScale(autoScale);
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()));
}
}
/**
* With big Screen the plan could be to 'detach' the image
* window if visible and to create a ne wone
* init* already supports it but I make no use of it for
* now. We set filename and raise
*
* ### FIXME and talk to alwin
*/
void PMainWindow::slotShowInfo( const QString& inf ) {
if ( !m_info ) {
initInfo();
}
m_info->setPath( inf );