summaryrefslogtreecommitdiff
authoralwin <alwin>2004-04-22 20:57:40 (UTC)
committer alwin <alwin>2004-04-22 20:57:40 (UTC)
commitd93cb43bb2c79a9a8357e195fcdfd8ff140f8a75 (patch) (unidiff)
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 @@
11using namespace Opie::Core; 11using namespace Opie::Core;
12 12
13ImageView::ImageView(Opie::Core::OConfig *cfg, QWidget* parent, const char* name, WFlags fl ) 13ImageView::ImageView(Opie::Core::OConfig *cfg, QWidget* parent, const char* name, WFlags fl )
14 : Opie::MM::OImageScrollView(parent,name,fl) 14 : Opie::MM::OImageScrollView(parent,name,fl)
15{ 15{
16 m_viewManager = 0; 16 m_viewManager = 0;
17 m_focus_out = false; 17 focus_in_count = 0;
18 block_next_focus = true;
19 m_cfg = cfg; 18 m_cfg = cfg;
20 m_isFullScreen = false; 19 m_isFullScreen = false;
20 m_ignore_next_in = false;
21 QPEApplication::setStylusOperation(viewport(),QPEApplication::RightOnHold); 21 QPEApplication::setStylusOperation(viewport(),QPEApplication::RightOnHold);
22 initKeys(); 22 initKeys();
23} 23}
24 24
25ImageView::~ImageView() 25ImageView::~ImageView()
26{ 26{
@@ -104,13 +104,12 @@ void ImageView::slotShowImageInfo()
104 104
105void ImageView::contentsMousePressEvent ( QMouseEvent * e) 105void ImageView::contentsMousePressEvent ( QMouseEvent * e)
106{ 106{
107 if (e->button()==1) { 107 if (e->button()==1) {
108 return OImageScrollView::contentsMousePressEvent(e); 108 return OImageScrollView::contentsMousePressEvent(e);
109 } 109 }
110// if (!fullScreen()) return;
111 odebug << "Popup " << oendl; 110 odebug << "Popup " << oendl;
112 QPopupMenu *m = new QPopupMenu(0); 111 QPopupMenu *m = new QPopupMenu(0);
113 if (!m) return; 112 if (!m) return;
114 bool old = fullScreen(); 113 bool old = fullScreen();
115 m->insertItem(tr("Toggle fullscreen"),this, SIGNAL(toggleFullScreen())); 114 m->insertItem(tr("Toggle fullscreen"),this, SIGNAL(toggleFullScreen()));
116 if (fullScreen()) { 115 if (fullScreen()) {
@@ -122,64 +121,48 @@ void ImageView::contentsMousePressEvent ( QMouseEvent * e)
122 m->insertItem(tr("Toggle autorotate"),this, SIGNAL(toggleAutorotate())); 121 m->insertItem(tr("Toggle autorotate"),this, SIGNAL(toggleAutorotate()));
123 m->insertItem(tr("Toggle thumbnail"),this, SIGNAL(toggleZoomer())); 122 m->insertItem(tr("Toggle thumbnail"),this, SIGNAL(toggleZoomer()));
124 } 123 }
125 m->setFocus(); 124 m->setFocus();
126 m->exec( QPoint( QCursor::pos().x(), QCursor::pos().y()) ); 125 m->exec( QPoint( QCursor::pos().x(), QCursor::pos().y()) );
127 delete m; 126 delete m;
128 /* if we were fullScreen() and must overlap the taskbar again */
129 if (fullScreen() && old) {
130 enableFullscreen();
131 }
132} 127}
133 128
134void ImageView::setFullScreen(bool how) 129void ImageView::setFullScreen(bool how)
135{ 130{
136 m_isFullScreen = how; 131 m_isFullScreen = how;
137} 132}
138 133
139void ImageView::focusInEvent(QFocusEvent *) 134void ImageView::focusInEvent(QFocusEvent *)
140{ 135{
141 // Always do it here, no matter the size. 136 // Always do it here, no matter the size.
142 odebug << "Focus in" << oendl; 137 odebug << "Focus in (view)" << oendl;
143} 138 //if (fullScreen()) parentWidget()->showNormal();
144 139 if (m_ignore_next_in){m_ignore_next_in=false;return;}
145void ImageView::focusOutEvent(QFocusEvent *) 140 if (fullScreen()) enableFullscreen();
146{
147 odebug << "Focus out" << oendl;
148} 141}
149 142
150void ImageView::enableFullscreen() 143void ImageView::enableFullscreen()
151{ 144{
152 // This call is needed because showFullScreen won't work 145 // This call is needed because showFullScreen won't work
153 // correctly if the widget already considers itself to be fullscreen. 146 // correctly if the widget already considers itself to be fullscreen.
147 if (!fullScreen()) return;
148 if (m_ignore_next_in) {m_ignore_next_in = false;return;}
149
154 setUpdatesEnabled(false); 150 setUpdatesEnabled(false);
155 odebug << "showNormal();" << oendl;
156 parentWidget()->showNormal(); 151 parentWidget()->showNormal();
157 odebug << "showNormal(); done " << oendl;
158 // This is needed because showNormal() forcefully changes the window 152 // This is needed because showNormal() forcefully changes the window
159 // style to WSTyle_TopLevel. 153 // style to WSTyle_TopLevel.
160 odebug << " reparent(0, WStyle_Customize | WStyle_NoBorder, QPoint(0,0));" << oendl;
161 parentWidget()->reparent(0, WStyle_Customize | WStyle_NoBorder, QPoint(0,0)); 154 parentWidget()->reparent(0, WStyle_Customize | WStyle_NoBorder, QPoint(0,0));
162 odebug << " reparent(0, WStyle_Customize | WStyle_NoBorder, QPoint(0,0)); done" << oendl;
163 // Enable fullscreen. 155 // Enable fullscreen.
164 odebug << "showFullScreen();" << oendl; 156 /* this is the trick - I don't now why, but after a showFullScreen QTE toggles the focus
157 * so we must block it here! */
158 m_ignore_next_in = true;
165 parentWidget()->showFullScreen(); 159 parentWidget()->showFullScreen();
166 odebug << "showFullScreen(); done" << oendl;
167 setUpdatesEnabled(true); 160 setUpdatesEnabled(true);
168} 161}
169 162
170void ImageWidget::show()
171{
172 QWidget::show();
173}
174
175void ImageWidget::hide()
176{
177 QWidget::hide();
178}
179
180ImageWidget::ImageWidget(QWidget * parent, const char * name, WFlags f) 163ImageWidget::ImageWidget(QWidget * parent, const char * name, WFlags f)
181 : QWidget(parent,name,f) 164 : QWidget(parent,name,f)
182{ 165{
183 // Make sure size is correct 166 // Make sure size is correct
184 setFixedSize(qApp->desktop()->size()); 167 setFixedSize(qApp->desktop()->size());
185} 168}
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
28 28
29public: 29public:
30 ImageView(Opie::Core::OConfig *cfg, QWidget* parent, const char* name = 0, WFlags fl = 0 ); 30 ImageView(Opie::Core::OConfig *cfg, QWidget* parent, const char* name = 0, WFlags fl = 0 );
31 virtual ~ImageView(); 31 virtual ~ImageView();
32 Opie::Core::OKeyConfigManager* manager(); 32 Opie::Core::OKeyConfigManager* manager();
33 void setFullScreen(bool how); 33 void setFullScreen(bool how);
34 virtual void enableFullscreen();
35 bool fullScreen(){return m_isFullScreen;} 34 bool fullScreen(){return m_isFullScreen;}
35 virtual void enableFullscreen();
36 36
37signals: 37signals:
38 void dispImageInfo(const QString&); 38 void dispImageInfo(const QString&);
39 void dispNext(); 39 void dispNext();
40 void dispPrev(); 40 void dispPrev();
41 void toggleFullScreen(); 41 void toggleFullScreen();
@@ -46,17 +46,16 @@ signals:
46 46
47protected: 47protected:
48 Opie::Core::OConfig * m_cfg; 48 Opie::Core::OConfig * m_cfg;
49 Opie::Core::OKeyConfigManager*m_viewManager; 49 Opie::Core::OKeyConfigManager*m_viewManager;
50 void initKeys(); 50 void initKeys();
51 bool m_isFullScreen:1; 51 bool m_isFullScreen:1;
52 bool m_focus_out:1; 52 bool m_ignore_next_in:1;
53 bool block_next_focus:1; 53 int focus_in_count;
54
55 virtual void focusInEvent ( QFocusEvent * ); 54 virtual void focusInEvent ( QFocusEvent * );
56 virtual void focusOutEvent ( QFocusEvent * ); 55
57 56
58protected slots: 57protected slots:
59 virtual void slotShowImageInfo(); 58 virtual void slotShowImageInfo();
60 virtual void keyReleaseEvent(QKeyEvent * e); 59 virtual void keyReleaseEvent(QKeyEvent * e);
61 virtual void contentsMousePressEvent ( QMouseEvent * e); 60 virtual void contentsMousePressEvent ( QMouseEvent * e);
62}; 61};
@@ -68,13 +67,11 @@ public:
68 ImageWidget(QWidget * parent=0, const char * name=0, WFlags f = WStyle_Customize | WStyle_NoBorder); 67 ImageWidget(QWidget * parent=0, const char * name=0, WFlags f = WStyle_Customize | WStyle_NoBorder);
69 virtual ~ImageWidget(){}; 68 virtual ~ImageWidget(){};
70 69
71protected: 70protected:
72 71
73public slots: 72public slots:
74 virtual void show();
75 virtual void hide();
76 73
77protected slots: 74protected slots:
78}; 75};
79 76
80#endif 77#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 ) {
395 nextButton->show(); 395 nextButton->show();
396 upButton->hide(); 396 upButton->hide();
397 fsButton->hide(); 397 fsButton->hide();
398 viewModeButton->hide(); 398 viewModeButton->hide();
399 } 399 }
400 if (m_disp->fullScreen()) { 400 if (m_disp->fullScreen()) {
401// tFrame->showFullScreen(); 401 tFrame->show();//FullScreen();
402 m_disp->enableFullscreen();
403 } else { 402 } else {
404 m_stack->raiseWidget( ImageDisplay ); 403 m_stack->raiseWidget( ImageDisplay );
405 } 404 }
406} 405}
407 406
408void PMainWindow::slotReturn() { 407void PMainWindow::slotReturn() {