summaryrefslogtreecommitdiff
authoralwin <alwin>2004-04-22 13:15:08 (UTC)
committer alwin <alwin>2004-04-22 13:15:08 (UTC)
commit162c71d6528515ea4b28520e9708c8ce9ca7fba2 (patch) (unidiff)
treeea538ee02a3edec808aacb1b4813221fd4939ac7
parentb9509b7b90d7c70c5407f6774512037ff77fcec4 (diff)
downloadopie-162c71d6528515ea4b28520e9708c8ce9ca7fba2.zip
opie-162c71d6528515ea4b28520e9708c8ce9ca7fba2.tar.gz
opie-162c71d6528515ea4b28520e9708c8ce9ca7fba2.tar.bz2
resolved some problems with fullscreen mode.
Diffstat (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
@@ -1,160 +1,185 @@
1#include "imageview.h" 1#include "imageview.h"
2 2
3#include <opie2/odebug.h> 3#include <opie2/odebug.h>
4#include <opie2/oconfig.h> 4#include <opie2/oconfig.h>
5#include <opie2/okeyconfigwidget.h> 5#include <opie2/okeyconfigwidget.h>
6 6
7#include <qpe/resource.h> 7#include <qpe/resource.h>
8#include <qpe/qpeapplication.h> 8#include <qpe/qpeapplication.h>
9#include <qpopupmenu.h> 9#include <qpopupmenu.h>
10 10
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
23ImageView::~ImageView() 25ImageView::~ImageView()
24{ 26{
25 odebug << "Delete Imageview" << oendl; 27 odebug << "Delete Imageview" << oendl;
26 if (m_viewManager) { 28 if (m_viewManager) {
27 delete m_viewManager; 29 delete m_viewManager;
28 } 30 }
29} 31}
30 32
31Opie::Core::OKeyConfigManager* ImageView::manager() 33Opie::Core::OKeyConfigManager* ImageView::manager()
32{ 34{
33 if (!m_viewManager) { 35 if (!m_viewManager) {
34 initKeys(); 36 initKeys();
35 } 37 }
36 return m_viewManager; 38 return m_viewManager;
37} 39}
38 40
39void ImageView::initKeys() 41void ImageView::initKeys()
40{ 42{
41 odebug << "init imageview keys" << oendl; 43 odebug << "init imageview keys" << oendl;
42 if (!m_cfg) { 44 if (!m_cfg) {
43 m_cfg = new Opie::Core::OConfig("phunkview"); 45 m_cfg = new Opie::Core::OConfig("phunkview");
44 m_cfg->setGroup("image_view_keys" ); 46 m_cfg->setGroup("image_view_keys" );
45 } 47 }
46 Opie::Core::OKeyPair::List lst; 48 Opie::Core::OKeyPair::List lst;
47 lst.append( Opie::Core::OKeyPair::upArrowKey() ); 49 lst.append( Opie::Core::OKeyPair::upArrowKey() );
48 lst.append( Opie::Core::OKeyPair::downArrowKey() ); 50 lst.append( Opie::Core::OKeyPair::downArrowKey() );
49 lst.append( Opie::Core::OKeyPair::leftArrowKey() ); 51 lst.append( Opie::Core::OKeyPair::leftArrowKey() );
50 lst.append( Opie::Core::OKeyPair::rightArrowKey() ); 52 lst.append( Opie::Core::OKeyPair::rightArrowKey() );
51 lst.append( Opie::Core::OKeyPair(Qt::Key_Escape,0)); 53 lst.append( Opie::Core::OKeyPair(Qt::Key_Escape,0));
52 54
53 m_viewManager = new Opie::Core::OKeyConfigManager(m_cfg, "image_view_keys", 55 m_viewManager = new Opie::Core::OKeyConfigManager(m_cfg, "image_view_keys",
54 lst, false,this, "image_view_keys" ); 56 lst, false,this, "image_view_keys" );
55 57
56 m_viewManager->addKeyConfig( Opie::Core::OKeyConfigItem(tr("View Image Info"), "imageviewinfo", 58 m_viewManager->addKeyConfig( Opie::Core::OKeyConfigItem(tr("View Image Info"), "imageviewinfo",
57 Resource::loadPixmap("1to1"), ViewInfo, 59 Resource::loadPixmap("1to1"), ViewInfo,
58 Opie::Core::OKeyPair(Qt::Key_I,0), 60 Opie::Core::OKeyPair(Qt::Key_I,0),
59 this, SLOT(slotShowImageInfo()))); 61 this, SLOT(slotShowImageInfo())));
60 62
61 m_viewManager->addKeyConfig( Opie::Core::OKeyConfigItem(tr("Toggle autorotate"), "imageautorotate", 63 m_viewManager->addKeyConfig( Opie::Core::OKeyConfigItem(tr("Toggle autorotate"), "imageautorotate",
62 Resource::loadPixmap("rotate"), Autorotate, 64 Resource::loadPixmap("rotate"), Autorotate,
63 Opie::Core::OKeyPair(Qt::Key_R,0), 65 Opie::Core::OKeyPair(Qt::Key_R,0),
64 this, SIGNAL(toggleAutorotate()))); 66 this, SIGNAL(toggleAutorotate())));
65 m_viewManager->addKeyConfig( Opie::Core::OKeyConfigItem(tr("Toggle autoscale"), "imageautoscale", 67 m_viewManager->addKeyConfig( Opie::Core::OKeyConfigItem(tr("Toggle autoscale"), "imageautoscale",
66 Resource::loadPixmap("1to1"), Autoscale, 68 Resource::loadPixmap("1to1"), Autoscale,
67 Opie::Core::OKeyPair(Qt::Key_S,0), 69 Opie::Core::OKeyPair(Qt::Key_S,0),
68 this, SIGNAL(toggleAutoscale()))); 70 this, SIGNAL(toggleAutoscale())));
69 71
70 m_viewManager->addKeyConfig( Opie::Core::OKeyConfigItem(tr("Switch to next image"), "imageshownext", 72 m_viewManager->addKeyConfig( Opie::Core::OKeyConfigItem(tr("Switch to next image"), "imageshownext",
71 Resource::loadPixmap("forward"), ShowNext, 73 Resource::loadPixmap("forward"), ShowNext,
72 Opie::Core::OKeyPair(Qt::Key_Return,0), 74 Opie::Core::OKeyPair(Qt::Key_Return,0),
73 this, SIGNAL(dispNext()))); 75 this, SIGNAL(dispNext())));
74 m_viewManager->addKeyConfig( Opie::Core::OKeyConfigItem(tr("Switch to previous image"), "imageshowprev", 76 m_viewManager->addKeyConfig( Opie::Core::OKeyConfigItem(tr("Switch to previous image"), "imageshowprev",
75 Resource::loadPixmap("back"), ShowPrevious, 77 Resource::loadPixmap("back"), ShowPrevious,
76 Opie::Core::OKeyPair(Qt::Key_P,0), 78 Opie::Core::OKeyPair(Qt::Key_P,0),
77 this, SIGNAL(dispPrev()))); 79 this, SIGNAL(dispPrev())));
78 m_viewManager->addKeyConfig( Opie::Core::OKeyConfigItem(tr("Toggle fullscreen"), "imagefullscreen", 80 m_viewManager->addKeyConfig( Opie::Core::OKeyConfigItem(tr("Toggle fullscreen"), "imagefullscreen",
79 Resource::loadPixmap("fullscreen"), FullScreen, 81 Resource::loadPixmap("fullscreen"), FullScreen,
80 Opie::Core::OKeyPair(Qt::Key_F,0), 82 Opie::Core::OKeyPair(Qt::Key_F,0),
81 this, SIGNAL(toggleFullScreen()))); 83 this, SIGNAL(toggleFullScreen())));
82 m_viewManager->addKeyConfig( Opie::Core::OKeyConfigItem(tr("Toggle thumbnail"), "imagezoomer", 84 m_viewManager->addKeyConfig( Opie::Core::OKeyConfigItem(tr("Toggle thumbnail"), "imagezoomer",
83 Resource::loadPixmap("mag"), Zoomer, 85 Resource::loadPixmap("mag"), Zoomer,
84 Opie::Core::OKeyPair(Qt::Key_T,0), 86 Opie::Core::OKeyPair(Qt::Key_T,0),
85 this, SIGNAL(toggleZoomer()))); 87 this, SIGNAL(toggleZoomer())));
86 m_viewManager->handleWidget( this ); 88 m_viewManager->handleWidget( this );
87 m_viewManager->load(); 89 m_viewManager->load();
88} 90}
89 91
90void ImageView::keyReleaseEvent(QKeyEvent * e) 92void ImageView::keyReleaseEvent(QKeyEvent * e)
91{ 93{
92 if (!e || e->state()!=0) { 94 if (!e || e->state()!=0) {
93 return; 95 return;
94 } 96 }
95 if (e->key()==Qt::Key_Escape && fullScreen()) emit hideMe(); 97 if (e->key()==Qt::Key_Escape && fullScreen()) emit hideMe();
96} 98}
97 99
98void ImageView::slotShowImageInfo() 100void ImageView::slotShowImageInfo()
99{ 101{
100 emit dispImageInfo(m_lastName); 102 emit dispImageInfo(m_lastName);
101} 103}
102 104
103void ImageView::contentsMousePressEvent ( QMouseEvent * e) 105void ImageView::contentsMousePressEvent ( QMouseEvent * e)
104{ 106{
105 if (e->button()==1) { 107 if (e->button()==1) {
106 return OImageScrollView::contentsMousePressEvent(e); 108 return OImageScrollView::contentsMousePressEvent(e);
107 } 109 }
108// if (!fullScreen()) return; 110// if (!fullScreen()) return;
109 odebug << "Popup " << oendl; 111 odebug << "Popup " << oendl;
110 QPopupMenu *m = new QPopupMenu(0); 112 QPopupMenu *m = new QPopupMenu(0);
111 if (!m) return; 113 if (!m) return;
112 bool old = fullScreen(); 114 bool old = fullScreen();
113 m->insertItem(tr("Toggle fullscreen"),this, SIGNAL(toggleFullScreen())); 115 m->insertItem(tr("Toggle fullscreen"),this, SIGNAL(toggleFullScreen()));
114 if (fullScreen()) { 116 if (fullScreen()) {
115 m->insertSeparator(); 117 m->insertSeparator();
116 m->insertItem(tr("Previous image"),this,SIGNAL(dispPrev())); 118 m->insertItem(tr("Previous image"),this,SIGNAL(dispPrev()));
117 m->insertItem(tr("Next image"),this,SIGNAL(dispNext())); 119 m->insertItem(tr("Next image"),this,SIGNAL(dispNext()));
118 m->insertSeparator(); 120 m->insertSeparator();
119 m->insertItem(tr("Toggle autoscale"),this, SIGNAL(toggleAutoscale())); 121 m->insertItem(tr("Toggle autoscale"),this, SIGNAL(toggleAutoscale()));
120 m->insertItem(tr("Toggle autorotate"),this, SIGNAL(toggleAutorotate())); 122 m->insertItem(tr("Toggle autorotate"),this, SIGNAL(toggleAutorotate()));
121 m->insertItem(tr("Toggle thumbnail"),this, SIGNAL(toggleZoomer())); 123 m->insertItem(tr("Toggle thumbnail"),this, SIGNAL(toggleZoomer()));
122 } 124 }
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,58 +1,80 @@
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}
12 14
13class ImageView:public Opie::MM::OImageScrollView 15class ImageView:public Opie::MM::OImageScrollView
14{ 16{
15 Q_OBJECT 17 Q_OBJECT
16 18
17 enum ActionIds { 19 enum ActionIds {
18 ViewInfo, 20 ViewInfo,
19 FullScreen, 21 FullScreen,
20 ShowNext, 22 ShowNext,
21 ShowPrevious, 23 ShowPrevious,
22 Zoomer, 24 Zoomer,
23 Autorotate, 25 Autorotate,
24 Autoscale 26 Autoscale
25 }; 27 };
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();
38 void toggleFullScreen(); 41 void toggleFullScreen();
39 void hideMe(); 42 void hideMe();
40 void toggleZoomer(); 43 void toggleZoomer();
41 void toggleAutoscale(); 44 void toggleAutoscale();
42 void toggleAutorotate(); 45 void toggleAutorotate();
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
@@ -206,252 +206,252 @@ void PMainWindow::slotScaleToggled(bool how)
206 206
207void PMainWindow::slotConfig() { 207void PMainWindow::slotConfig() {
208 /* 208 /*
209 * have a tab with the possible views 209 * have a tab with the possible views
210 * a tab for globals image cache size.. scaled loading 210 * a tab for globals image cache size.. scaled loading
211 * and one tab for the KeyConfigs 211 * and one tab for the KeyConfigs
212 */ 212 */
213 QDialog dlg(this, 0, true); 213 QDialog dlg(this, 0, true);
214 dlg.setCaption( tr("Phunk View - Config" ) ); 214 dlg.setCaption( tr("Phunk View - Config" ) );
215 215
216 QHBoxLayout *lay = new QHBoxLayout(&dlg); 216 QHBoxLayout *lay = new QHBoxLayout(&dlg);
217 Opie::Ui::OTabWidget *wid = new Opie::Ui::OTabWidget(&dlg ); 217 Opie::Ui::OTabWidget *wid = new Opie::Ui::OTabWidget(&dlg );
218 lay->addWidget( wid ); 218 lay->addWidget( wid );
219 ViewMap *vM = viewMap(); 219 ViewMap *vM = viewMap();
220 ViewMap::Iterator _it = vM->begin(); 220 ViewMap::Iterator _it = vM->begin();
221 QMap<PDirView*, QWidget*> lst; 221 QMap<PDirView*, QWidget*> lst;
222 222
223 for( ; _it != vM->end(); ++_it ) { 223 for( ; _it != vM->end(); ++_it ) {
224 PDirView *view = (_it.data())(*m_cfg); 224 PDirView *view = (_it.data())(*m_cfg);
225 PInterfaceInfo *inf = view->interfaceInfo(); 225 PInterfaceInfo *inf = view->interfaceInfo();
226 QWidget *_wid = inf->configWidget( *m_cfg ); 226 QWidget *_wid = inf->configWidget( *m_cfg );
227 if (!_wid) continue; 227 if (!_wid) continue;
228 _wid->reparent(wid, QPoint() ); 228 _wid->reparent(wid, QPoint() );
229 lst.insert( view, _wid ); 229 lst.insert( view, _wid );
230 wid->addTab( _wid, "fileopen", inf->name() ); 230 wid->addTab( _wid, "fileopen", inf->name() );
231 } 231 }
232 232
233/* 233/*
234 * Add the KeyConfigWidget 234 * Add the KeyConfigWidget
235 */ 235 */
236 Opie::Ui::OKeyConfigWidget* keyWid = new Opie::Ui::OKeyConfigWidget( wid, "key config" ); 236 Opie::Ui::OKeyConfigWidget* keyWid = new Opie::Ui::OKeyConfigWidget( wid, "key config" );
237 keyWid->setChangeMode( Opie::Ui::OKeyConfigWidget::Queue ); 237 keyWid->setChangeMode( Opie::Ui::OKeyConfigWidget::Queue );
238 keyWid->insert( tr("Browser Keyboard Actions"), m_view->manager() ); 238 keyWid->insert( tr("Browser Keyboard Actions"), m_view->manager() );
239 239
240 if ( !m_info ) { 240 if ( !m_info ) {
241 initInfo(); 241 initInfo();
242 } 242 }
243 keyWid->insert( tr("Imageinfo Keyboard Actions"), m_info->manager() ); 243 keyWid->insert( tr("Imageinfo Keyboard Actions"), m_info->manager() );
244 244
245 if ( !m_disp ) { 245 if ( !m_disp ) {
246 initDisp(); 246 initDisp();
247 } 247 }
248 keyWid->insert( tr("Imageview Keyboard Actions"), m_disp->manager() ); 248 keyWid->insert( tr("Imageview Keyboard Actions"), m_disp->manager() );
249 249
250 keyWid->load(); 250 keyWid->load();
251 wid->addTab( keyWid, QString::fromLatin1("AppsIcon" ), tr("Keyboard Configuration") ); 251 wid->addTab( keyWid, QString::fromLatin1("AppsIcon" ), tr("Keyboard Configuration") );
252 252
253 253
254 bool act = ( QPEApplication::execDialog( &dlg ) == QDialog::Accepted ); 254 bool act = ( QPEApplication::execDialog( &dlg ) == QDialog::Accepted );
255 255
256/* 256/*
257 * clean up 257 * clean up
258 *apply changes 258 *apply changes
259 */ 259 */
260 260
261 QMap<PDirView*, QWidget*>::Iterator it; 261 QMap<PDirView*, QWidget*>::Iterator it;
262 for ( it = lst.begin(); it != lst.end(); ++it ) { 262 for ( it = lst.begin(); it != lst.end(); ++it ) {
263 if ( act ) 263 if ( act )
264 it.key()->interfaceInfo()->writeConfig(it.data(), *m_cfg); 264 it.key()->interfaceInfo()->writeConfig(it.data(), *m_cfg);
265 delete it.key(); 265 delete it.key();
266 } 266 }
267 267
268 268
269 if ( act ) { 269 if ( act ) {
270 m_view->resetView(); 270 m_view->resetView();
271 keyWid->save(); 271 keyWid->save();
272 m_disp->manager()->save(); 272 m_disp->manager()->save();
273 m_info->manager()->save(); 273 m_info->manager()->save();
274 m_view->manager()->save(); 274 m_view->manager()->save();
275 } 275 }
276 delete keyWid; 276 delete keyWid;
277} 277}
278 278
279/* 279/*
280 * create a new image info component 280 * create a new image info component
281 * and detach the current one 281 * and detach the current one
282 * we will make the other delete on exit 282 * we will make the other delete on exit
283 */ 283 */
284template<class T> 284template<class T>
285void PMainWindow::initT( const char* name, T** ptr, int id) { 285void PMainWindow::initT( const char* name, T** ptr, int id) {
286 if ( *ptr ) { 286 if ( *ptr ) {
287 (*ptr)->disconnect(this, SLOT(slotReturn())); 287 (*ptr)->disconnect(this, SLOT(slotReturn()));
288 (*ptr)->setDestructiveClose(); 288 (*ptr)->setDestructiveClose();
289 m_stack->removeWidget( *ptr ); 289 m_stack->removeWidget( *ptr );
290 } 290 }
291 *ptr = new T(m_cfg, m_stack, name ); 291 *ptr = new T(m_cfg, m_stack, name );
292 m_stack->addWidget( *ptr, id ); 292 m_stack->addWidget( *ptr, id );
293 293
294 connect(*ptr, SIGNAL(sig_return()), 294 connect(*ptr, SIGNAL(sig_return()),
295 this,SLOT(slotReturn())); 295 this,SLOT(slotReturn()));
296 296
297} 297}
298void PMainWindow::initInfo() { 298void PMainWindow::initInfo() {
299 initT<imageinfo>( "Image Info", &m_info, ImageInfo ); 299 initT<imageinfo>( "Image Info", &m_info, ImageInfo );
300 connect(m_info,SIGNAL(dispImage(const QString&)),this,SLOT(slotDisplay(const QString&))); 300 connect(m_info,SIGNAL(dispImage(const QString&)),this,SLOT(slotDisplay(const QString&)));
301} 301}
302void PMainWindow::initDisp() { 302void PMainWindow::initDisp() {
303 initT<ImageView>( "Image ScrollView", &m_disp, ImageDisplay ); 303 initT<ImageView>( "Image ScrollView", &m_disp, ImageDisplay );
304 if (m_disp) { 304 if (m_disp) {
305 if (m_stack->mode() != Opie::Ui::OWidgetStack::SmallScreen) { 305 if (m_stack->mode() != Opie::Ui::OWidgetStack::SmallScreen) {
306 m_disp->setMinimumSize(QApplication::desktop()->size()/2); 306 m_disp->setMinimumSize(QApplication::desktop()->size()/2);
307 } 307 }
308 m_disp->setAutoScale(autoScale); 308 m_disp->setAutoScale(autoScale);
309 m_disp->setAutoRotate(autoRotate); 309 m_disp->setAutoRotate(autoRotate);
310 m_disp->setShowZoomer(zoomerOn); 310 m_disp->setShowZoomer(zoomerOn);
311 m_disp->setBackgroundColor(white); 311 m_disp->setBackgroundColor(white);
312 connect(m_disp,SIGNAL(dispImageInfo(const QString&)),this,SLOT(slotShowInfo(const QString&))); 312 connect(m_disp,SIGNAL(dispImageInfo(const QString&)),this,SLOT(slotShowInfo(const QString&)));
313 connect(m_disp,SIGNAL(dispNext()),m_view,SLOT(slotShowNext())); 313 connect(m_disp,SIGNAL(dispNext()),m_view,SLOT(slotShowNext()));
314 connect(m_disp,SIGNAL(dispPrev()),m_view,SLOT(slotShowPrev())); 314 connect(m_disp,SIGNAL(dispPrev()),m_view,SLOT(slotShowPrev()));
315 connect(m_disp,SIGNAL(toggleFullScreen()),this,SLOT(slotToggleFullScreen())); 315 connect(m_disp,SIGNAL(toggleFullScreen()),this,SLOT(slotToggleFullScreen()));
316 connect(m_disp,SIGNAL(hideMe()),this,SLOT(raiseIconView())); 316 connect(m_disp,SIGNAL(hideMe()),this,SLOT(raiseIconView()));
317 connect(m_disp,SIGNAL(toggleZoomer()),this,SLOT(slotToggleZoomer())); 317 connect(m_disp,SIGNAL(toggleZoomer()),this,SLOT(slotToggleZoomer()));
318 connect(m_disp,SIGNAL(toggleAutoscale()),this,SLOT(slotToggleAutoscale())); 318 connect(m_disp,SIGNAL(toggleAutoscale()),this,SLOT(slotToggleAutoscale()));
319 connect(m_disp,SIGNAL(toggleAutorotate()),this,SLOT(slotToggleAutorotate())); 319 connect(m_disp,SIGNAL(toggleAutorotate()),this,SLOT(slotToggleAutorotate()));
320 } 320 }
321} 321}
322 322
323void PMainWindow::slotToggleFullScreen() 323void PMainWindow::slotToggleFullScreen()
324{ 324{
325 odebug << "Toggle full " << oendl; 325 odebug << "Toggle full " << oendl;
326 if (!m_disp) return; 326 if (!m_disp) return;
327 bool current = !m_disp->fullScreen(); 327 bool current = !m_disp->fullScreen();
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);
341 m_disp->resize(qApp->desktop()->width(), qApp->desktop()->height()); 341 m_disp->resize(qApp->desktop()->width(), qApp->desktop()->height());
342 tFrame->showFullScreen(); 342 tFrame->showFullScreen();
343 } else { 343 } else {
344 setUpdatesEnabled(false); 344 setUpdatesEnabled(false);
345 odebug << "window" << oendl; 345 odebug << "window" << oendl;
346 m_disp->reparent(0,QPoint(0,0)); 346 m_disp->reparent(0,QPoint(0,0));
347 m_disp->showNormal(); 347 m_disp->showNormal();
348 /* don't forget it! */ 348 /* don't forget it! */
349 tFrame->hide(); 349 tFrame->hide();
350 m_disp->setBackgroundColor(white); 350 m_disp->setBackgroundColor(white);
351 m_stack->addWidget(m_disp,ImageDisplay); 351 m_stack->addWidget(m_disp,ImageDisplay);
352 m_disp->setVScrollBarMode(QScrollView::Auto); 352 m_disp->setVScrollBarMode(QScrollView::Auto);
353 m_disp->setHScrollBarMode(QScrollView::Auto); 353 m_disp->setHScrollBarMode(QScrollView::Auto);
354 m_stack->raiseWidget(m_disp); 354 m_stack->raiseWidget(m_disp);
355 if (m_stack->mode() != Opie::Ui::OWidgetStack::SmallScreen) { 355 if (m_stack->mode() != Opie::Ui::OWidgetStack::SmallScreen) {
356 m_disp->resize(m_disp->minimumSize()); 356 m_disp->resize(m_disp->minimumSize());
357 } 357 }
358 setUpdatesEnabled(true); 358 setUpdatesEnabled(true);
359 } 359 }
360} 360}
361 361
362/** 362/**
363 * With big Screen the plan could be to 'detach' the image 363 * With big Screen the plan could be to 'detach' the image
364 * window if visible and to create a ne wone 364 * window if visible and to create a ne wone
365 * init* already supports it but I make no use of it for 365 * init* already supports it but I make no use of it for
366 * now. We set filename and raise 366 * now. We set filename and raise
367 * 367 *
368 * ### FIXME and talk to alwin 368 * ### FIXME and talk to alwin
369 */ 369 */
370void PMainWindow::slotShowInfo( const QString& inf ) { 370void PMainWindow::slotShowInfo( const QString& inf ) {
371 if (m_disp && m_disp->fullScreen() && m_disp->isVisible()) { 371 if (m_disp && m_disp->fullScreen() && m_disp->isVisible()) {
372 return; 372 return;
373 } 373 }
374 if ( !m_info ) { 374 if ( !m_info ) {
375 initInfo(); 375 initInfo();
376 } 376 }
377 m_info->setPath( inf ); 377 m_info->setPath( inf );
378 if (m_stack->mode() == Opie::Ui::OWidgetStack::SmallScreen) { 378 if (m_stack->mode() == Opie::Ui::OWidgetStack::SmallScreen) {
379 prevButton->hide(); 379 prevButton->hide();
380 nextButton->hide(); 380 nextButton->hide();
381 upButton->hide(); 381 upButton->hide();
382 fsButton->hide(); 382 fsButton->hide();
383 viewModeButton->hide(); 383 viewModeButton->hide();
384 } 384 }
385 m_stack->raiseWidget( ImageInfo ); 385 m_stack->raiseWidget( ImageInfo );
386} 386}
387 387
388void PMainWindow::slotDisplay( const QString& inf ) { 388void PMainWindow::slotDisplay( const QString& inf ) {
389 if ( !m_disp ) { 389 if ( !m_disp ) {
390 initDisp(); 390 initDisp();
391 } 391 }
392 m_disp->setImage( inf ); 392 m_disp->setImage( inf );
393 if (m_stack->mode() == Opie::Ui::OWidgetStack::SmallScreen) { 393 if (m_stack->mode() == Opie::Ui::OWidgetStack::SmallScreen) {
394 prevButton->show(); 394 prevButton->show();
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() {
409 raiseIconView(); 409 raiseIconView();
410} 410}
411 411
412 412
413void PMainWindow::closeEvent( QCloseEvent* ev ) { 413void PMainWindow::closeEvent( QCloseEvent* ev ) {
414 /* 414 /*
415 * return from view 415 * return from view
416 * or properly quit 416 * or properly quit
417 */ 417 */
418 if ( m_stack->visibleWidget() == m_info || 418 if ( m_stack->visibleWidget() == m_info ||
419 m_stack->visibleWidget() == m_disp ) { 419 m_stack->visibleWidget() == m_disp ) {
420 ev->ignore(); 420 ev->ignore();
421 raiseIconView(); 421 raiseIconView();
422 return; 422 return;
423 } 423 }
424 if (m_disp && m_disp->fullScreen()) { 424 if (m_disp && m_disp->fullScreen()) {
425 /* otherwise opie-eye crashes in bigscreen mode! */ 425 /* otherwise opie-eye crashes in bigscreen mode! */
426 m_disp->reparent(0,QPoint(0,0)); 426 m_disp->reparent(0,QPoint(0,0));
427 m_stack->addWidget(m_disp,ImageDisplay); 427 m_stack->addWidget(m_disp,ImageDisplay);
428 } 428 }
429 ev->accept(); 429 ev->accept();
430 QTimer::singleShot(0, qApp, SLOT(closeAllWindows())); 430 QTimer::singleShot(0, qApp, SLOT(closeAllWindows()));
431} 431}
432 432
433void PMainWindow::raiseIconView() { 433void PMainWindow::raiseIconView() {
434 setUpdatesEnabled(false); 434 setUpdatesEnabled(false);
435 if (m_stack->mode() == Opie::Ui::OWidgetStack::SmallScreen) { 435 if (m_stack->mode() == Opie::Ui::OWidgetStack::SmallScreen) {
436 prevButton->hide(); 436 prevButton->hide();
437 nextButton->hide(); 437 nextButton->hide();
438 upButton->show(); 438 upButton->show();
439 fsButton->show(); 439 fsButton->show();
440 viewModeButton->show(); 440 viewModeButton->show();
441 } 441 }
442 if (m_disp && m_disp->fullScreen() && m_disp->isVisible()) { 442 if (m_disp && m_disp->fullScreen() && m_disp->isVisible()) {
443 tFrame->hide(); 443 tFrame->hide();
444 } 444 }
445 m_stack->raiseWidget( IconView ); 445 m_stack->raiseWidget( IconView );
446 setUpdatesEnabled(true); 446 setUpdatesEnabled(true);
447 repaint(); 447 repaint();
448} 448}
449 449
450void PMainWindow::setDocument( const QString& showImg ) { 450void PMainWindow::setDocument( const QString& showImg ) {
451 QString file = showImg; 451 QString file = showImg;
452 DocLnk lnk(showImg); 452 DocLnk lnk(showImg);
453 if (lnk.isValid() ) 453 if (lnk.isValid() )
454 file = lnk.file(); 454 file = lnk.file();
455 455
456 slotDisplay( file ); 456 slotDisplay( file );
457} 457}
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
@@ -1,78 +1,79 @@
1/* 1/*
2 * GPLv2 zecke@handhelds.org 2 * GPLv2 zecke@handhelds.org
3 * No WArranty... 3 * No WArranty...
4 */ 4 */
5 5
6#ifndef PHUNK_MAIN_WINDOW_H 6#ifndef PHUNK_MAIN_WINDOW_H
7#define PHUNK_MAIN_WINDOW_H 7#define PHUNK_MAIN_WINDOW_H
8 8
9#include <opie2/oconfig.h> 9#include <opie2/oconfig.h>
10 10
11#include <qmainwindow.h> 11#include <qmainwindow.h>
12 12
13 13
14 14
15namespace Opie { 15namespace Opie {
16namespace Ui{ 16namespace Ui{
17 class OWidgetStack; 17 class OWidgetStack;
18} 18}
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 };
31public: 32public:
32 static QString appName() { return QString::fromLatin1("opie-eye" ); } 33 static QString appName() { return QString::fromLatin1("opie-eye" ); }
33 PMainWindow(QWidget*, const char*, WFlags ); 34 PMainWindow(QWidget*, const char*, WFlags );
34 ~PMainWindow(); 35 ~PMainWindow();
35 36
36signals: 37signals:
37 void configChanged(); 38 void configChanged();
38 39
39public slots: 40public slots:
40 void slotShowInfo( const QString& inf ); 41 void slotShowInfo( const QString& inf );
41 void slotDisplay( const QString& inf ); 42 void slotDisplay( const QString& inf );
42 void slotReturn(); 43 void slotReturn();
43 void slotRotateToggled(bool); 44 void slotRotateToggled(bool);
44 void slotScaleToggled(bool); 45 void slotScaleToggled(bool);
45 void slotZoomerToggled(bool); 46 void slotZoomerToggled(bool);
46 void slotToggleZoomer(); 47 void slotToggleZoomer();
47 void slotToggleAutorotate(); 48 void slotToggleAutorotate();
48 void slotToggleAutoscale(); 49 void slotToggleAutoscale();
49 void setDocument( const QString& ); 50 void setDocument( const QString& );
50 virtual void slotToggleFullScreen(); 51 virtual void slotToggleFullScreen();
51 52
52protected slots: 53protected slots:
53 void raiseIconView(); 54 void raiseIconView();
54 void closeEvent( QCloseEvent* ); 55 void closeEvent( QCloseEvent* );
55 56
56private: 57private:
57 template<class T> void initT( const char* name, T**, int ); 58 template<class T> void initT( const char* name, T**, int );
58 void initInfo(); 59 void initInfo();
59 void initDisp(); 60 void initDisp();
60 61
61private: 62private:
62 Opie::Core::OConfig *m_cfg; 63 Opie::Core::OConfig *m_cfg;
63 Opie::Ui::OWidgetStack *m_stack; 64 Opie::Ui::OWidgetStack *m_stack;
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};
77 78
78#endif 79#endif