summaryrefslogtreecommitdiff
path: root/noncore/graphics/opie-eye
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 /noncore/graphics/opie-eye
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 (limited to 'noncore/graphics/opie-eye') (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() {