summaryrefslogtreecommitdiff
authoralwin <alwin>2004-04-22 13:15:08 (UTC)
committer alwin <alwin>2004-04-22 13:15:08 (UTC)
commit162c71d6528515ea4b28520e9708c8ce9ca7fba2 (patch) (side-by-side diff)
treeea538ee02a3edec808aacb1b4813221fd4939ac7
parentb9509b7b90d7c70c5407f6774512037ff77fcec4 (diff)
downloadopie-162c71d6528515ea4b28520e9708c8ce9ca7fba2.zip
opie-162c71d6528515ea4b28520e9708c8ce9ca7fba2.tar.gz
opie-162c71d6528515ea4b28520e9708c8ce9ca7fba2.tar.bz2
resolved some problems with fullscreen mode.
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--noncore/graphics/opie-eye/gui/imageview.cpp39
-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, 61 insertions, 13 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
@@ -14,6 +14,8 @@ ImageView::ImageView(Opie::Core::OConfig *cfg, QWidget* parent, const char* name
: 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);
@@ -126,8 +128,6 @@ void ImageView::contentsMousePressEvent ( QMouseEvent * e)
/* if we were fullScreen() and must overlap the taskbar again */
if (fullScreen() && old) {
enableFullscreen();
-// parentWidget()->hide();
-// parentWidget()->show();
}
}
@@ -139,22 +139,47 @@ void ImageView::setFullScreen(bool how)
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
@@ -3,6 +3,8 @@
#include <opie2/oimagescrollview.h>
+#include <qwidget.h>
+
namespace Opie {
namespace Core {
class OConfig;
@@ -29,6 +31,7 @@ public:
virtual ~ImageView();
Opie::Core::OKeyConfigManager* manager();
void setFullScreen(bool how);
+ virtual void enableFullscreen();
bool fullScreen(){return m_isFullScreen;}
signals:
@@ -46,13 +49,32 @@ protected:
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
@@ -331,7 +331,7 @@ void PMainWindow::slotToggleFullScreen()
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());
}
@@ -398,8 +398,8 @@ void PMainWindow::slotDisplay( const QString& inf ) {
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
@@ -22,6 +22,7 @@ namespace Core{
}
class ImageView;
+class ImageWidget;
class PIconView;
class imageinfo;
@@ -67,7 +68,7 @@ private:
bool autoRotate;
bool autoScale;
bool zoomerOn;
- QWidget*tFrame;
+ ImageWidget*tFrame;
QToolButton*rotateButton,*upButton,*fsButton,*viewModeButton;
QToolButton*nextButton,*prevButton,*zoomButton,*scaleButton;