summaryrefslogtreecommitdiff
path: root/noncore
authoralwin <alwin>2004-04-22 13:15:08 (UTC)
committer alwin <alwin>2004-04-22 13:15:08 (UTC)
commit162c71d6528515ea4b28520e9708c8ce9ca7fba2 (patch) (unidiff)
treeea538ee02a3edec808aacb1b4813221fd4939ac7 /noncore
parentb9509b7b90d7c70c5407f6774512037ff77fcec4 (diff)
downloadopie-162c71d6528515ea4b28520e9708c8ce9ca7fba2.zip
opie-162c71d6528515ea4b28520e9708c8ce9ca7fba2.tar.gz
opie-162c71d6528515ea4b28520e9708c8ce9ca7fba2.tar.bz2
resolved some problems with fullscreen mode.
Diffstat (limited to 'noncore') (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 @@
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;
18 block_next_focus = true;
17 m_cfg = cfg; 19 m_cfg = cfg;
18 m_isFullScreen = false; 20 m_isFullScreen = false;
19 QPEApplication::setStylusOperation(viewport(),QPEApplication::RightOnHold); 21 QPEApplication::setStylusOperation(viewport(),QPEApplication::RightOnHold);
20 initKeys(); 22 initKeys();
21} 23}
22 24
@@ -123,38 +125,61 @@ void ImageView::contentsMousePressEvent ( QMouseEvent * e)
123 m->setFocus(); 125 m->setFocus();
124 m->exec( QPoint( QCursor::pos().x(), QCursor::pos().y()) ); 126 m->exec( QPoint( QCursor::pos().x(), QCursor::pos().y()) );
125 delete m; 127 delete m;
126 /* if we were fullScreen() and must overlap the taskbar again */ 128 /* if we were fullScreen() and must overlap the taskbar again */
127 if (fullScreen() && old) { 129 if (fullScreen() && old) {
128 enableFullscreen(); 130 enableFullscreen();
129// parentWidget()->hide();
130// parentWidget()->show();
131 } 131 }
132} 132}
133 133
134void ImageView::setFullScreen(bool how) 134void ImageView::setFullScreen(bool how)
135{ 135{
136 m_isFullScreen = how; 136 m_isFullScreen = how;
137} 137}
138 138
139void ImageView::focusInEvent(QFocusEvent *) 139void ImageView::focusInEvent(QFocusEvent *)
140{ 140{
141 // Always do it here, no matter the size. 141 // Always do it here, no matter the size.
142 /* result in an endless loop */ 142 odebug << "Focus in" << oendl;
143// if (fullScreen()) enableFullscreen(); 143}
144
145void ImageView::focusOutEvent(QFocusEvent *)
146{
147 odebug << "Focus out" << oendl;
144} 148}
145 149
146void ImageView::enableFullscreen() 150void ImageView::enableFullscreen()
147{ 151{
148 if (!fullScreen()) return;
149 // Make sure size is correct
150 parentWidget()->setFixedSize(qApp->desktop()->size());
151 // This call is needed because showFullScreen won't work 152 // This call is needed because showFullScreen won't work
152 // correctly if the widget already considers itself to be fullscreen. 153 // correctly if the widget already considers itself to be fullscreen.
154 setUpdatesEnabled(false);
155 odebug << "showNormal();" << oendl;
153 parentWidget()->showNormal(); 156 parentWidget()->showNormal();
157 odebug << "showNormal(); done " << oendl;
154 // This is needed because showNormal() forcefully changes the window 158 // This is needed because showNormal() forcefully changes the window
155 // style to WSTyle_TopLevel. 159 // style to WSTyle_TopLevel.
160 odebug << " reparent(0, WStyle_Customize | WStyle_NoBorder, QPoint(0,0));" << oendl;
156 parentWidget()->reparent(0, WStyle_Customize | WStyle_NoBorder, QPoint(0,0)); 161 parentWidget()->reparent(0, WStyle_Customize | WStyle_NoBorder, QPoint(0,0));
162 odebug << " reparent(0, WStyle_Customize | WStyle_NoBorder, QPoint(0,0)); done" << oendl;
157 // Enable fullscreen. 163 // Enable fullscreen.
164 odebug << "showFullScreen();" << oendl;
158 parentWidget()->showFullScreen(); 165 parentWidget()->showFullScreen();
166 odebug << "showFullScreen(); done" << oendl;
167 setUpdatesEnabled(true);
168}
169
170void ImageWidget::show()
171{
172 QWidget::show();
159} 173}
160 174
175void ImageWidget::hide()
176{
177 QWidget::hide();
178}
179
180ImageWidget::ImageWidget(QWidget * parent, const char * name, WFlags f)
181 : QWidget(parent,name,f)
182{
183 // Make sure size is correct
184 setFixedSize(qApp->desktop()->size());
185}
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 @@
1#ifndef _IMAGE_VIEW_H 1#ifndef _IMAGE_VIEW_H
2#define _IMAGE_VIEW_H 2#define _IMAGE_VIEW_H
3 3
4#include <opie2/oimagescrollview.h> 4#include <opie2/oimagescrollview.h>
5 5
6#include <qwidget.h>
7
6namespace Opie { 8namespace Opie {
7 namespace Core { 9 namespace Core {
8 class OConfig; 10 class OConfig;
9 class OKeyConfigManager; 11 class OKeyConfigManager;
10 } 12 }
11} 13}
@@ -26,12 +28,13 @@ class ImageView:public Opie::MM::OImageScrollView
26 28
27public: 29public:
28 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 );
29 virtual ~ImageView(); 31 virtual ~ImageView();
30 Opie::Core::OKeyConfigManager* manager(); 32 Opie::Core::OKeyConfigManager* manager();
31 void setFullScreen(bool how); 33 void setFullScreen(bool how);
34 virtual void enableFullscreen();
32 bool fullScreen(){return m_isFullScreen;} 35 bool fullScreen(){return m_isFullScreen;}
33 36
34signals: 37signals:
35 void dispImageInfo(const QString&); 38 void dispImageInfo(const QString&);
36 void dispNext(); 39 void dispNext();
37 void dispPrev(); 40 void dispPrev();
@@ -43,16 +46,35 @@ signals:
43 46
44protected: 47protected:
45 Opie::Core::OConfig * m_cfg; 48 Opie::Core::OConfig * m_cfg;
46 Opie::Core::OKeyConfigManager*m_viewManager; 49 Opie::Core::OKeyConfigManager*m_viewManager;
47 void initKeys(); 50 void initKeys();
48 bool m_isFullScreen:1; 51 bool m_isFullScreen:1;
49 void enableFullscreen(); 52 bool m_focus_out:1;
53 bool block_next_focus:1;
54
55 virtual void focusInEvent ( QFocusEvent * );
56 virtual void focusOutEvent ( QFocusEvent * );
50 57
51protected slots: 58protected slots:
52 virtual void slotShowImageInfo(); 59 virtual void slotShowImageInfo();
53 virtual void keyReleaseEvent(QKeyEvent * e); 60 virtual void keyReleaseEvent(QKeyEvent * e);
54 virtual void contentsMousePressEvent ( QMouseEvent * e); 61 virtual void contentsMousePressEvent ( QMouseEvent * e);
55 virtual void focusInEvent ( QFocusEvent * ); 62};
63
64class ImageWidget:public QWidget
65{
66 Q_OBJECT
67public:
68 ImageWidget(QWidget * parent=0, const char * name=0, WFlags f = WStyle_Customize | WStyle_NoBorder);
69 virtual ~ImageWidget(){};
70
71protected:
72
73public slots:
74 virtual void show();
75 virtual void hide();
76
77protected slots:
56}; 78};
57 79
58#endif 80#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()
328 m_disp->setFullScreen(current); 328 m_disp->setFullScreen(current);
329 odebug << "Current = " << current << oendl; 329 odebug << "Current = " << current << oendl;
330 if (current) { 330 if (current) {
331 odebug << "full" << oendl; 331 odebug << "full" << oendl;
332 m_disp->setBackgroundColor(black); 332 m_disp->setBackgroundColor(black);
333 if (!tFrame) { 333 if (!tFrame) {
334 tFrame = new QWidget(0,0,WStyle_Customize|WStyle_NoBorder); 334 tFrame = new ImageWidget(0,0,WStyle_Customize|WStyle_NoBorder);
335 tFrame->resize(qApp->desktop()->width(), qApp->desktop()->height()); 335 tFrame->resize(qApp->desktop()->width(), qApp->desktop()->height());
336 tFrame->setMinimumSize(qApp->desktop()->width(), qApp->desktop()->height()); 336 tFrame->setMinimumSize(qApp->desktop()->width(), qApp->desktop()->height());
337 } 337 }
338 m_disp->reparent(tFrame,QPoint(0,0)); 338 m_disp->reparent(tFrame,QPoint(0,0));
339 m_disp->setVScrollBarMode(QScrollView::AlwaysOff); 339 m_disp->setVScrollBarMode(QScrollView::AlwaysOff);
340 m_disp->setHScrollBarMode(QScrollView::AlwaysOff); 340 m_disp->setHScrollBarMode(QScrollView::AlwaysOff);
@@ -395,14 +395,14 @@ 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->setActiveWindow(); 401// tFrame->showFullScreen();
402 tFrame->showFullScreen(); 402 m_disp->enableFullscreen();
403 } else { 403 } else {
404 m_stack->raiseWidget( ImageDisplay ); 404 m_stack->raiseWidget( ImageDisplay );
405 } 405 }
406} 406}
407 407
408void PMainWindow::slotReturn() { 408void 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{
19namespace Core{ 19namespace Core{
20 class OKeyConfigManager; 20 class OKeyConfigManager;
21} 21}
22} 22}
23 23
24class ImageView; 24class ImageView;
25class ImageWidget;
25class PIconView; 26class PIconView;
26class imageinfo; 27class imageinfo;
27 28
28class PMainWindow : public QMainWindow { 29class PMainWindow : public QMainWindow {
29 Q_OBJECT 30 Q_OBJECT
30 enum Views { IconView, ImageInfo, ImageDisplay }; 31 enum Views { IconView, ImageInfo, ImageDisplay };
@@ -64,13 +65,13 @@ private:
64 PIconView* m_view; 65 PIconView* m_view;
65 imageinfo *m_info; 66 imageinfo *m_info;
66 ImageView *m_disp; 67 ImageView *m_disp;
67 bool autoRotate; 68 bool autoRotate;
68 bool autoScale; 69 bool autoScale;
69 bool zoomerOn; 70 bool zoomerOn;
70 QWidget*tFrame; 71 ImageWidget*tFrame;
71 QToolButton*rotateButton,*upButton,*fsButton,*viewModeButton; 72 QToolButton*rotateButton,*upButton,*fsButton,*viewModeButton;
72 QToolButton*nextButton,*prevButton,*zoomButton,*scaleButton; 73 QToolButton*nextButton,*prevButton,*zoomButton,*scaleButton;
73 74
74private slots: 75private slots:
75 void slotConfig(); 76 void slotConfig();
76}; 77};