summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/graphics/opie-eye/gui/imageview.cpp41
-rw-r--r--noncore/graphics/opie-eye/gui/imageview.h26
-rw-r--r--noncore/graphics/opie-eye/gui/mainwindow.cpp6
-rw-r--r--noncore/graphics/opie-eye/gui/mainwindow.h3
4 files changed, 62 insertions, 14 deletions
diff --git a/noncore/graphics/opie-eye/gui/imageview.cpp b/noncore/graphics/opie-eye/gui/imageview.cpp
index 53376c0..5b00dea 100644
--- a/noncore/graphics/opie-eye/gui/imageview.cpp
+++ b/noncore/graphics/opie-eye/gui/imageview.cpp
@@ -13,8 +13,10 @@ using namespace Opie::Core;
ImageView::ImageView(Opie::Core::OConfig *cfg, QWidget* parent, const char* name, WFlags fl )
: Opie::MM::OImageScrollView(parent,name,fl)
{
m_viewManager = 0;
+ m_focus_out = false;
+ block_next_focus = true;
m_cfg = cfg;
m_isFullScreen = false;
QPEApplication::setStylusOperation(viewport(),QPEApplication::RightOnHold);
initKeys();
@@ -125,36 +127,59 @@ void ImageView::contentsMousePressEvent ( QMouseEvent * e)
delete m;
/* if we were fullScreen() and must overlap the taskbar again */
if (fullScreen() && old) {
enableFullscreen();
-// parentWidget()->hide();
-// parentWidget()->show();
}
}
void ImageView::setFullScreen(bool how)
{
m_isFullScreen = how;
}
-void ImageView::focusInEvent(QFocusEvent *)
+void ImageView::focusInEvent(QFocusEvent *)
{
// Always do it here, no matter the size.
- /* result in an endless loop */
-// if (fullScreen()) enableFullscreen();
+ odebug << "Focus in" << oendl;
+}
+
+void ImageView::focusOutEvent(QFocusEvent *)
+{
+ odebug << "Focus out" << oendl;
}
void ImageView::enableFullscreen()
{
- if (!fullScreen()) return;
- // Make sure size is correct
- parentWidget()->setFixedSize(qApp->desktop()->size());
// This call is needed because showFullScreen won't work
// correctly if the widget already considers itself to be fullscreen.
+ setUpdatesEnabled(false);
+ odebug << "showNormal();" << oendl;
parentWidget()->showNormal();
+ odebug << "showNormal(); done " << oendl;
// This is needed because showNormal() forcefully changes the window
// style to WSTyle_TopLevel.
+ odebug << " reparent(0, WStyle_Customize | WStyle_NoBorder, QPoint(0,0));" << oendl;
parentWidget()->reparent(0, WStyle_Customize | WStyle_NoBorder, QPoint(0,0));
+ odebug << " reparent(0, WStyle_Customize | WStyle_NoBorder, QPoint(0,0)); done" << oendl;
// Enable fullscreen.
+ odebug << "showFullScreen();" << oendl;
parentWidget()->showFullScreen();
+ odebug << "showFullScreen(); done" << oendl;
+ setUpdatesEnabled(true);
+}
+
+void ImageWidget::show()
+{
+ QWidget::show();
}
+void ImageWidget::hide()
+{
+ QWidget::hide();
+}
+
+ImageWidget::ImageWidget(QWidget * parent, const char * name, WFlags f)
+ : QWidget(parent,name,f)
+{
+ // Make sure size is correct
+ setFixedSize(qApp->desktop()->size());
+}
diff --git a/noncore/graphics/opie-eye/gui/imageview.h b/noncore/graphics/opie-eye/gui/imageview.h
index 4d2405f..5f15bc9 100644
--- a/noncore/graphics/opie-eye/gui/imageview.h
+++ b/noncore/graphics/opie-eye/gui/imageview.h
@@ -2,8 +2,10 @@
#define _IMAGE_VIEW_H
#include <opie2/oimagescrollview.h>
+#include <qwidget.h>
+
namespace Opie {
namespace Core {
class OConfig;
class OKeyConfigManager;
@@ -28,8 +30,9 @@ public:
ImageView(Opie::Core::OConfig *cfg, QWidget* parent, const char* name = 0, WFlags fl = 0 );
virtual ~ImageView();
Opie::Core::OKeyConfigManager* manager();
void setFullScreen(bool how);
+ virtual void enableFullscreen();
bool fullScreen(){return m_isFullScreen;}
signals:
void dispImageInfo(const QString&);
@@ -45,14 +48,33 @@ protected:
Opie::Core::OConfig * m_cfg;
Opie::Core::OKeyConfigManager*m_viewManager;
void initKeys();
bool m_isFullScreen:1;
- void enableFullscreen();
+ bool m_focus_out:1;
+ bool block_next_focus:1;
+
+ virtual void focusInEvent ( QFocusEvent * );
+ virtual void focusOutEvent ( QFocusEvent * );
protected slots:
virtual void slotShowImageInfo();
virtual void keyReleaseEvent(QKeyEvent * e);
virtual void contentsMousePressEvent ( QMouseEvent * e);
- virtual void focusInEvent ( QFocusEvent * );
+};
+
+class ImageWidget:public QWidget
+{
+ Q_OBJECT
+public:
+ ImageWidget(QWidget * parent=0, const char * name=0, WFlags f = WStyle_Customize | WStyle_NoBorder);
+ virtual ~ImageWidget(){};
+
+protected:
+
+public slots:
+ virtual void show();
+ virtual void hide();
+
+protected slots:
};
#endif
diff --git a/noncore/graphics/opie-eye/gui/mainwindow.cpp b/noncore/graphics/opie-eye/gui/mainwindow.cpp
index ec6b051..fa1680c 100644
--- a/noncore/graphics/opie-eye/gui/mainwindow.cpp
+++ b/noncore/graphics/opie-eye/gui/mainwindow.cpp
@@ -330,9 +330,9 @@ void PMainWindow::slotToggleFullScreen()
if (current) {
odebug << "full" << oendl;
m_disp->setBackgroundColor(black);
if (!tFrame) {
- tFrame = new QWidget(0,0,WStyle_Customize|WStyle_NoBorder);
+ tFrame = new ImageWidget(0,0,WStyle_Customize|WStyle_NoBorder);
tFrame->resize(qApp->desktop()->width(), qApp->desktop()->height());
tFrame->setMinimumSize(qApp->desktop()->width(), qApp->desktop()->height());
}
m_disp->reparent(tFrame,QPoint(0,0));
@@ -397,10 +397,10 @@ void PMainWindow::slotDisplay( const QString& inf ) {
fsButton->hide();
viewModeButton->hide();
}
if (m_disp->fullScreen()) {
- tFrame->setActiveWindow();
- tFrame->showFullScreen();
+// tFrame->showFullScreen();
+ m_disp->enableFullscreen();
} else {
m_stack->raiseWidget( ImageDisplay );
}
}
diff --git a/noncore/graphics/opie-eye/gui/mainwindow.h b/noncore/graphics/opie-eye/gui/mainwindow.h
index 1f90f9f..9e94c60 100644
--- a/noncore/graphics/opie-eye/gui/mainwindow.h
+++ b/noncore/graphics/opie-eye/gui/mainwindow.h
@@ -21,8 +21,9 @@ namespace Core{
}
}
class ImageView;
+class ImageWidget;
class PIconView;
class imageinfo;
class PMainWindow : public QMainWindow {
@@ -66,9 +67,9 @@ private:
ImageView *m_disp;
bool autoRotate;
bool autoScale;
bool zoomerOn;
- QWidget*tFrame;
+ ImageWidget*tFrame;
QToolButton*rotateButton,*upButton,*fsButton,*viewModeButton;
QToolButton*nextButton,*prevButton,*zoomButton,*scaleButton;
private slots: