summaryrefslogtreecommitdiff
path: root/noncore
authorzecke <zecke>2004-10-08 21:34:32 (UTC)
committer zecke <zecke>2004-10-08 21:34:32 (UTC)
commit16afa90172c9b1facaa8888780ed8bb8bd93598c (patch) (side-by-side diff)
tree3642810e51ceaacff2f6fba499e78d0cff0121b9 /noncore
parent0c3966672847b3b81c96c942727178368ac70e65 (diff)
downloadopie-16afa90172c9b1facaa8888780ed8bb8bd93598c.zip
opie-16afa90172c9b1facaa8888780ed8bb8bd93598c.tar.gz
opie-16afa90172c9b1facaa8888780ed8bb8bd93598c.tar.bz2
Use KeyPressed instead of KeyReleased for the Accelerator
Key in the Image Display component. This fixes the double 'next' problem when going from the browser to the viewer/display
Diffstat (limited to 'noncore') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/graphics/opie-eye/gui/imageview.cpp14
1 files changed, 10 insertions, 4 deletions
diff --git a/noncore/graphics/opie-eye/gui/imageview.cpp b/noncore/graphics/opie-eye/gui/imageview.cpp
index b4f3110..5522131 100644
--- a/noncore/graphics/opie-eye/gui/imageview.cpp
+++ b/noncore/graphics/opie-eye/gui/imageview.cpp
@@ -16,27 +16,25 @@ ImageView::ImageView(Opie::Core::OConfig *cfg, QWidget* parent, const char* name
m_viewManager = 0;
focus_in_count = 0;
m_cfg = cfg;
m_isFullScreen = false;
m_ignore_next_in = false;
QPEApplication::setStylusOperation(viewport(),QPEApplication::RightOnHold);
initKeys();
}
ImageView::~ImageView()
{
odebug << "Delete Imageview" << oendl;
- if (m_viewManager) {
- delete m_viewManager;
- }
+ delete m_viewManager;
}
Opie::Core::OKeyConfigManager* ImageView::manager()
{
if (!m_viewManager) {
initKeys();
}
return m_viewManager;
}
void ImageView::initKeys()
{
@@ -46,24 +44,32 @@ void ImageView::initKeys()
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() );
lst.append( Opie::Core::OKeyPair(Qt::Key_Escape,0));
m_viewManager = new Opie::Core::OKeyConfigManager(m_cfg, "image_view_keys",
lst, false,this, "image_view_keys" );
+ /**
+ * Handle KeyEvents when they're pressed. This avoids problems
+ * with 'double next' on Return.
+ * The Return press would switch to this view and the return
+ * release would emit the dispNext Signal.
+ */
+ m_viewManager->setEventMask( Opie::Core::OKeyConfigManager::MaskPressed );
+
m_viewManager->addKeyConfig( Opie::Core::OKeyConfigItem(tr("View Image Info"), "imageviewinfo",
Resource::loadPixmap("1to1"), ViewInfo,
Opie::Core::OKeyPair(Qt::Key_I,0),
this, SLOT(slotShowImageInfo())));
m_viewManager->addKeyConfig( Opie::Core::OKeyConfigItem(tr("Toggle autorotate"), "imageautorotate",
Resource::loadPixmap("rotate"), Autorotate,
Opie::Core::OKeyPair(Qt::Key_R,0),
this, SIGNAL(toggleAutorotate())));
m_viewManager->addKeyConfig( Opie::Core::OKeyConfigItem(tr("Toggle autoscale"), "imageautoscale",
Resource::loadPixmap("1to1"), Autoscale,
Opie::Core::OKeyPair(Qt::Key_S,0),
@@ -137,25 +143,25 @@ void ImageView::setFullScreen(bool how)
}
}
void ImageView::focusInEvent(QFocusEvent *)
{
// Always do it here, no matter the size.
odebug << "Focus in (view)" << oendl;
//if (fullScreen()) parentWidget()->showNormal();
if (m_ignore_next_in){m_ignore_next_in=false;return;}
if (fullScreen()) enableFullscreen();
}
-void ImageView::hide()
+void ImageView::hide()
{
if (fullScreen()) {
m_ignore_next_in = true;
showNormal();
}
QWidget::hide();
}
void ImageView::enableFullscreen()
{
if (!fullScreen()) return;
if (m_ignore_next_in) {m_ignore_next_in = false;return;}