summaryrefslogtreecommitdiff
path: root/noncore/graphics/opie-eye/gui
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 /noncore/graphics/opie-eye/gui
parentb9509b7b90d7c70c5407f6774512037ff77fcec4 (diff)
downloadopie-162c71d6528515ea4b28520e9708c8ce9ca7fba2.zip
opie-162c71d6528515ea4b28520e9708c8ce9ca7fba2.tar.gz
opie-162c71d6528515ea4b28520e9708c8ce9ca7fba2.tar.bz2
resolved some problems with fullscreen mode.
Diffstat (limited to 'noncore/graphics/opie-eye/gui') (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
@@ -11,12 +11,14 @@
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();
}
@@ -123,38 +125,61 @@ void ImageView::contentsMousePressEvent ( QMouseEvent * e)
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();
-// 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
@@ -1,11 +1,13 @@
#ifndef _IMAGE_VIEW_H
#define _IMAGE_VIEW_H
#include <opie2/oimagescrollview.h>
+#include <qwidget.h>
+
namespace Opie {
namespace Core {
class OConfig;
class OKeyConfigManager;
}
}
@@ -26,12 +28,13 @@ 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;}
signals:
void dispImageInfo(const QString&);
void dispNext();
void dispPrev();
@@ -43,16 +46,35 @@ signals:
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
@@ -328,13 +328,13 @@ void PMainWindow::slotToggleFullScreen()
m_disp->setFullScreen(current);
odebug << "Current = " << current << oendl;
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));
m_disp->setVScrollBarMode(QScrollView::AlwaysOff);
m_disp->setHScrollBarMode(QScrollView::AlwaysOff);
@@ -395,14 +395,14 @@ void PMainWindow::slotDisplay( const QString& inf ) {
nextButton->show();
upButton->hide();
fsButton->hide();
viewModeButton->hide();
}
if (m_disp->fullScreen()) {
- tFrame->setActiveWindow();
- tFrame->showFullScreen();
+// tFrame->showFullScreen();
+ m_disp->enableFullscreen();
} else {
m_stack->raiseWidget( ImageDisplay );
}
}
void PMainWindow::slotReturn() {
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
@@ -19,12 +19,13 @@ namespace Ui{
namespace Core{
class OKeyConfigManager;
}
}
class ImageView;
+class ImageWidget;
class PIconView;
class imageinfo;
class PMainWindow : public QMainWindow {
Q_OBJECT
enum Views { IconView, ImageInfo, ImageDisplay };
@@ -64,13 +65,13 @@ private:
PIconView* m_view;
imageinfo *m_info;
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:
void slotConfig();
};