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) (unidiff)
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 @@
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() {