summaryrefslogtreecommitdiff
authoralwin <alwin>2004-04-22 20:57:40 (UTC)
committer alwin <alwin>2004-04-22 20:57:40 (UTC)
commitd93cb43bb2c79a9a8357e195fcdfd8ff140f8a75 (patch) (side-by-side diff)
tree066b20a65a2300c50308916027d3c055fd22a085
parent42977c57028a94735aaf9870097e1269815c6229 (diff)
downloadopie-d93cb43bb2c79a9a8357e195fcdfd8ff140f8a75.zip
opie-d93cb43bb2c79a9a8357e195fcdfd8ff140f8a75.tar.gz
opie-d93cb43bb2c79a9a8357e195fcdfd8ff140f8a75.tar.bz2
ok. next variant of fullscreen toggeling. It seems, that now within all
circumstances the viewer get fullscreen back and we don't run into an endless loop.
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/graphics/opie-eye/gui/imageview.cpp45
-rw-r--r--noncore/graphics/opie-eye/gui/imageview.h11
-rw-r--r--noncore/graphics/opie-eye/gui/mainwindow.cpp3
3 files changed, 19 insertions, 40 deletions
diff --git a/noncore/graphics/opie-eye/gui/imageview.cpp b/noncore/graphics/opie-eye/gui/imageview.cpp
index 5b00dea..03f3c1c 100644
--- a/noncore/graphics/opie-eye/gui/imageview.cpp
+++ b/noncore/graphics/opie-eye/gui/imageview.cpp
@@ -11,16 +11,16 @@
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;
+ focus_in_count = 0;
m_cfg = cfg;
m_isFullScreen = false;
+ m_ignore_next_in = false;
QPEApplication::setStylusOperation(viewport(),QPEApplication::RightOnHold);
initKeys();
}
ImageView::~ImageView()
{
@@ -104,13 +104,12 @@ void ImageView::slotShowImageInfo()
void ImageView::contentsMousePressEvent ( QMouseEvent * e)
{
if (e->button()==1) {
return OImageScrollView::contentsMousePressEvent(e);
}
-// if (!fullScreen()) return;
odebug << "Popup " << oendl;
QPopupMenu *m = new QPopupMenu(0);
if (!m) return;
bool old = fullScreen();
m->insertItem(tr("Toggle fullscreen"),this, SIGNAL(toggleFullScreen()));
if (fullScreen()) {
@@ -122,64 +121,48 @@ void ImageView::contentsMousePressEvent ( QMouseEvent * e)
m->insertItem(tr("Toggle autorotate"),this, SIGNAL(toggleAutorotate()));
m->insertItem(tr("Toggle thumbnail"),this, SIGNAL(toggleZoomer()));
}
m->setFocus();
m->exec( QPoint( QCursor::pos().x(), QCursor::pos().y()) );
delete m;
- /* if we were fullScreen() and must overlap the taskbar again */
- if (fullScreen() && old) {
- enableFullscreen();
- }
}
void ImageView::setFullScreen(bool how)
{
m_isFullScreen = how;
}
void ImageView::focusInEvent(QFocusEvent *)
{
// Always do it here, no matter the size.
- odebug << "Focus in" << oendl;
-}
-
-void ImageView::focusOutEvent(QFocusEvent *)
-{
- odebug << "Focus out" << oendl;
+ 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::enableFullscreen()
{
// This call is needed because showFullScreen won't work
// correctly if the widget already considers itself to be fullscreen.
+ if (!fullScreen()) return;
+ if (m_ignore_next_in) {m_ignore_next_in = false;return;}
+
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;
+ /* this is the trick - I don't now why, but after a showFullScreen QTE toggles the focus
+ * so we must block it here! */
+ m_ignore_next_in = true;
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());
+ // 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 5f15bc9..f3c37b5 100644
--- a/noncore/graphics/opie-eye/gui/imageview.h
+++ b/noncore/graphics/opie-eye/gui/imageview.h
@@ -28,14 +28,14 @@ class ImageView:public Opie::MM::OImageScrollView
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;}
+ virtual void enableFullscreen();
signals:
void dispImageInfo(const QString&);
void dispNext();
void dispPrev();
void toggleFullScreen();
@@ -46,17 +46,16 @@ signals:
protected:
Opie::Core::OConfig * m_cfg;
Opie::Core::OKeyConfigManager*m_viewManager;
void initKeys();
bool m_isFullScreen:1;
- bool m_focus_out:1;
- bool block_next_focus:1;
-
+ bool m_ignore_next_in:1;
+ int focus_in_count;
virtual void focusInEvent ( QFocusEvent * );
- virtual void focusOutEvent ( QFocusEvent * );
+
protected slots:
virtual void slotShowImageInfo();
virtual void keyReleaseEvent(QKeyEvent * e);
virtual void contentsMousePressEvent ( QMouseEvent * e);
};
@@ -68,13 +67,11 @@ 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 fa1680c..cdaf34c 100644
--- a/noncore/graphics/opie-eye/gui/mainwindow.cpp
+++ b/noncore/graphics/opie-eye/gui/mainwindow.cpp
@@ -395,14 +395,13 @@ void PMainWindow::slotDisplay( const QString& inf ) {
nextButton->show();
upButton->hide();
fsButton->hide();
viewModeButton->hide();
}
if (m_disp->fullScreen()) {
-// tFrame->showFullScreen();
- m_disp->enableFullscreen();
+ tFrame->show();//FullScreen();
} else {
m_stack->raiseWidget( ImageDisplay );
}
}
void PMainWindow::slotReturn() {