summaryrefslogtreecommitdiff
authoralwin <alwin>2004-11-02 00:30:38 (UTC)
committer alwin <alwin>2004-11-02 00:30:38 (UTC)
commit51b7bdf260bc2b5b066c6594a6d0c507add682fd (patch) (unidiff)
tree991e7658e5abc440343e03b83eb4f867ae6adbaf
parent2dc92f4bfe9e81edc2b0b24ecacf3bc44b344984 (diff)
downloadopie-51b7bdf260bc2b5b066c6594a6d0c507add682fd.zip
opie-51b7bdf260bc2b5b066c6594a6d0c507add682fd.tar.gz
opie-51b7bdf260bc2b5b066c6594a6d0c507add682fd.tar.bz2
ok. now we have real working, simple solution how to act with switching fullscreen
when imagewindow is hidden. It is realy impressive what a brain can generate brainf* ideas finding such a solution - I should stop programming on holidays.
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/graphics/opie-eye/gui/imageview.cpp3
-rw-r--r--noncore/graphics/opie-eye/gui/mainwindow.cpp24
2 files changed, 12 insertions, 15 deletions
diff --git a/noncore/graphics/opie-eye/gui/imageview.cpp b/noncore/graphics/opie-eye/gui/imageview.cpp
index be58c72..ebdfc60 100644
--- a/noncore/graphics/opie-eye/gui/imageview.cpp
+++ b/noncore/graphics/opie-eye/gui/imageview.cpp
@@ -1,148 +1,151 @@
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#include <qtimer.h> 10#include <qtimer.h>
11#include <qaction.h> 11#include <qaction.h>
12 12
13using namespace Opie::Core; 13using namespace Opie::Core;
14 14
15ImageView::ImageView(Opie::Core::OConfig *cfg, QWidget* parent, const char* name, WFlags fl ) 15ImageView::ImageView(Opie::Core::OConfig *cfg, QWidget* parent, const char* name, WFlags fl )
16 : Opie::MM::OImageScrollView(parent,name,fl) 16 : Opie::MM::OImageScrollView(parent,name,fl)
17{ 17{
18 m_viewManager = 0; 18 m_viewManager = 0;
19 focus_in_count = 0; 19 focus_in_count = 0;
20 m_cfg = cfg; 20 m_cfg = cfg;
21 m_isFullScreen = false; 21 m_isFullScreen = false;
22 m_ignore_next_in = false; 22 m_ignore_next_in = false;
23 m_slideTimer = 0; 23 m_slideTimer = 0;
24 QPEApplication::setStylusOperation(viewport(),QPEApplication::RightOnHold); 24 QPEApplication::setStylusOperation(viewport(),QPEApplication::RightOnHold);
25 initKeys(); 25 initKeys();
26 m_slideValue = 5; 26 m_slideValue = 5;
27 m_gDisplayType = 0; 27 m_gDisplayType = 0;
28 m_gPrevNext = 0; 28 m_gPrevNext = 0;
29 m_hGroup = 0; 29 m_hGroup = 0;
30} 30}
31 31
32void ImageView::setMenuActions(QActionGroup*hGroup,QActionGroup*nextprevGroup, QActionGroup*disptypeGroup) 32void ImageView::setMenuActions(QActionGroup*hGroup,QActionGroup*nextprevGroup, QActionGroup*disptypeGroup)
33{ 33{
34 m_gDisplayType = disptypeGroup; 34 m_gDisplayType = disptypeGroup;
35 m_gPrevNext = nextprevGroup; 35 m_gPrevNext = nextprevGroup;
36 m_hGroup = hGroup; 36 m_hGroup = hGroup;
37} 37}
38 38
39ImageView::~ImageView() 39ImageView::~ImageView()
40{ 40{
41 odebug << "Destructor imageview" << oendl;
41 delete m_viewManager; 42 delete m_viewManager;
42} 43}
43 44
44Opie::Core::OKeyConfigManager* ImageView::manager() 45Opie::Core::OKeyConfigManager* ImageView::manager()
45{ 46{
46 if (!m_viewManager) { 47 if (!m_viewManager) {
47 initKeys(); 48 initKeys();
48 } 49 }
49 return m_viewManager; 50 return m_viewManager;
50} 51}
51 52
52void ImageView::startSlide(int value) 53void ImageView::startSlide(int value)
53{ 54{
54 if (!m_slideTimer) { 55 if (!m_slideTimer) {
55 m_slideTimer = new QTimer(this); 56 m_slideTimer = new QTimer(this);
56 } 57 }
57 m_slideValue=value; 58 m_slideValue=value;
58 connect(m_slideTimer,SIGNAL(timeout()),SLOT(nextSlide())); 59 connect(m_slideTimer,SIGNAL(timeout()),SLOT(nextSlide()));
59 /* this "+1" is one millisecond. with that we can setup a slideshowvalue 60 /* this "+1" is one millisecond. with that we can setup a slideshowvalue
60 of 0. eg "as fast as possible". 61 of 0. eg "as fast as possible".
61 */ 62 */
62 m_slideTimer->start(m_slideValue*1000+1,true); 63 m_slideTimer->start(m_slideValue*1000+1,true);
63} 64}
64 65
65void ImageView::stopSlide() 66void ImageView::stopSlide()
66{ 67{
67 if (!m_slideTimer) { 68 if (!m_slideTimer) {
68 return; 69 return;
69 } 70 }
70 m_slideTimer->stop(); 71 m_slideTimer->stop();
71 delete m_slideTimer; 72 delete m_slideTimer;
72 m_slideTimer = 0; 73 m_slideTimer = 0;
73} 74}
74 75
75void ImageView::nextSlide() 76void ImageView::nextSlide()
76{ 77{
77 if (!m_slideTimer) { 78 if (!m_slideTimer) {
78 return; 79 return;
79 } 80 }
81#if 0
80 if (isHidden()) { 82 if (isHidden()) {
81 delete m_slideTimer; 83 delete m_slideTimer;
82 m_slideTimer = 0; 84 m_slideTimer = 0;
83 return; 85 return;
84 } 86 }
87#endif
85 emit dispNext(); 88 emit dispNext();
86 m_slideTimer->start(m_slideValue*1000,true); 89 m_slideTimer->start(m_slideValue*1000,true);
87} 90}
88void ImageView::initKeys() 91void ImageView::initKeys()
89{ 92{
90 odebug << "init imageview keys" << oendl; 93 odebug << "init imageview keys" << oendl;
91 if (!m_cfg) { 94 if (!m_cfg) {
92 m_cfg = new Opie::Core::OConfig("opie-eye"); 95 m_cfg = new Opie::Core::OConfig("opie-eye");
93 m_cfg->setGroup("image_view_keys" ); 96 m_cfg->setGroup("image_view_keys" );
94 } 97 }
95 Opie::Core::OKeyPair::List lst; 98 Opie::Core::OKeyPair::List lst;
96 lst.append( Opie::Core::OKeyPair::upArrowKey() ); 99 lst.append( Opie::Core::OKeyPair::upArrowKey() );
97 lst.append( Opie::Core::OKeyPair::downArrowKey() ); 100 lst.append( Opie::Core::OKeyPair::downArrowKey() );
98 lst.append( Opie::Core::OKeyPair::leftArrowKey() ); 101 lst.append( Opie::Core::OKeyPair::leftArrowKey() );
99 lst.append( Opie::Core::OKeyPair::rightArrowKey() ); 102 lst.append( Opie::Core::OKeyPair::rightArrowKey() );
100 lst.append( Opie::Core::OKeyPair(Qt::Key_Escape,0)); 103 lst.append( Opie::Core::OKeyPair(Qt::Key_Escape,0));
101 104
102 m_viewManager = new Opie::Core::OKeyConfigManager(m_cfg, "image_view_keys", 105 m_viewManager = new Opie::Core::OKeyConfigManager(m_cfg, "image_view_keys",
103 lst, false,this, "image_view_keys" ); 106 lst, false,this, "image_view_keys" );
104 107
105 /** 108 /**
106 * Handle KeyEvents when they're pressed. This avoids problems 109 * Handle KeyEvents when they're pressed. This avoids problems
107 * with 'double next' on Return. 110 * with 'double next' on Return.
108 * The Return press would switch to this view and the return 111 * The Return press would switch to this view and the return
109 * release would emit the dispNext Signal. 112 * release would emit the dispNext Signal.
110 */ 113 */
111 m_viewManager->setEventMask( Opie::Core::OKeyConfigManager::MaskPressed ); 114 m_viewManager->setEventMask( Opie::Core::OKeyConfigManager::MaskPressed );
112 115
113 m_viewManager->addKeyConfig( Opie::Core::OKeyConfigItem(tr("View Image Info"), "imageviewinfo", 116 m_viewManager->addKeyConfig( Opie::Core::OKeyConfigItem(tr("View Image Info"), "imageviewinfo",
114 Resource::loadPixmap("1to1"), ViewInfo, 117 Resource::loadPixmap("1to1"), ViewInfo,
115 Opie::Core::OKeyPair(Qt::Key_I,0), 118 Opie::Core::OKeyPair(Qt::Key_I,0),
116 this, SLOT(slotShowImageInfo()))); 119 this, SLOT(slotShowImageInfo())));
117 120
118 m_viewManager->addKeyConfig( Opie::Core::OKeyConfigItem(tr("Toggle autorotate"), "imageautorotate", 121 m_viewManager->addKeyConfig( Opie::Core::OKeyConfigItem(tr("Toggle autorotate"), "imageautorotate",
119 Resource::loadPixmap("rotate"), Autorotate, 122 Resource::loadPixmap("rotate"), Autorotate,
120 Opie::Core::OKeyPair(Qt::Key_R,0), 123 Opie::Core::OKeyPair(Qt::Key_R,0),
121 this, SIGNAL(toggleAutorotate()))); 124 this, SIGNAL(toggleAutorotate())));
122 m_viewManager->addKeyConfig( Opie::Core::OKeyConfigItem(tr("Toggle autoscale"), "imageautoscale", 125 m_viewManager->addKeyConfig( Opie::Core::OKeyConfigItem(tr("Toggle autoscale"), "imageautoscale",
123 Resource::loadPixmap("1to1"), Autoscale, 126 Resource::loadPixmap("1to1"), Autoscale,
124 Opie::Core::OKeyPair(Qt::Key_S,0), 127 Opie::Core::OKeyPair(Qt::Key_S,0),
125 this, SIGNAL(toggleAutoscale()))); 128 this, SIGNAL(toggleAutoscale())));
126 129
127 m_viewManager->addKeyConfig( Opie::Core::OKeyConfigItem(tr("Switch to next image"), "imageshownext", 130 m_viewManager->addKeyConfig( Opie::Core::OKeyConfigItem(tr("Switch to next image"), "imageshownext",
128 Resource::loadPixmap("forward"), ShowNext, 131 Resource::loadPixmap("forward"), ShowNext,
129 Opie::Core::OKeyPair(Qt::Key_Return,0), 132 Opie::Core::OKeyPair(Qt::Key_Return,0),
130 this, SIGNAL(dispNext()))); 133 this, SIGNAL(dispNext())));
131 m_viewManager->addKeyConfig( Opie::Core::OKeyConfigItem(tr("Switch to previous image"), "imageshowprev", 134 m_viewManager->addKeyConfig( Opie::Core::OKeyConfigItem(tr("Switch to previous image"), "imageshowprev",
132 Resource::loadPixmap("back"), ShowPrevious, 135 Resource::loadPixmap("back"), ShowPrevious,
133 Opie::Core::OKeyPair(Qt::Key_P,0), 136 Opie::Core::OKeyPair(Qt::Key_P,0),
134 this, SIGNAL(dispPrev()))); 137 this, SIGNAL(dispPrev())));
135 m_viewManager->addKeyConfig( Opie::Core::OKeyConfigItem(tr("Toggle fullscreen"), "imagefullscreen", 138 m_viewManager->addKeyConfig( Opie::Core::OKeyConfigItem(tr("Toggle fullscreen"), "imagefullscreen",
136 Resource::loadPixmap("fullscreen"), FullScreen, 139 Resource::loadPixmap("fullscreen"), FullScreen,
137 Opie::Core::OKeyPair(Qt::Key_F,0), 140 Opie::Core::OKeyPair(Qt::Key_F,0),
138 this, SIGNAL(toggleFullScreen()))); 141 this, SIGNAL(toggleFullScreen())));
139 m_viewManager->addKeyConfig( Opie::Core::OKeyConfigItem(tr("Toggle thumbnail"), "imagezoomer", 142 m_viewManager->addKeyConfig( Opie::Core::OKeyConfigItem(tr("Toggle thumbnail"), "imagezoomer",
140 Resource::loadPixmap("mag"), Zoomer, 143 Resource::loadPixmap("mag"), Zoomer,
141 Opie::Core::OKeyPair(Qt::Key_T,0), 144 Opie::Core::OKeyPair(Qt::Key_T,0),
142 this, SIGNAL(toggleZoomer()))); 145 this, SIGNAL(toggleZoomer())));
143 m_viewManager->handleWidget( this ); 146 m_viewManager->handleWidget( this );
144 m_viewManager->load(); 147 m_viewManager->load();
145} 148}
146 149
147void ImageView::keyReleaseEvent(QKeyEvent * e) 150void ImageView::keyReleaseEvent(QKeyEvent * e)
148{ 151{
diff --git a/noncore/graphics/opie-eye/gui/mainwindow.cpp b/noncore/graphics/opie-eye/gui/mainwindow.cpp
index 5eb065f..6660eb2 100644
--- a/noncore/graphics/opie-eye/gui/mainwindow.cpp
+++ b/noncore/graphics/opie-eye/gui/mainwindow.cpp
@@ -153,299 +153,293 @@ void PMainWindow::slotConfig() {
153 153
154 for( ; _it != vM->end(); ++_it ) { 154 for( ; _it != vM->end(); ++_it ) {
155 PDirView *view = (_it.data())(*m_cfg); 155 PDirView *view = (_it.data())(*m_cfg);
156 PInterfaceInfo *inf = view->interfaceInfo(); 156 PInterfaceInfo *inf = view->interfaceInfo();
157 QWidget *_wid = inf->configWidget( *m_cfg ); 157 QWidget *_wid = inf->configWidget( *m_cfg );
158 if (!_wid) continue; 158 if (!_wid) continue;
159 _wid->reparent(wid, QPoint() ); 159 _wid->reparent(wid, QPoint() );
160 lst.insert( view, _wid ); 160 lst.insert( view, _wid );
161 wid->addTab( _wid, "fileopen", inf->name() ); 161 wid->addTab( _wid, "fileopen", inf->name() );
162 } 162 }
163 163
164/* 164/*
165 * Add the KeyConfigWidget 165 * Add the KeyConfigWidget
166 */ 166 */
167 Opie::Ui::OKeyConfigWidget* keyWid = new Opie::Ui::OKeyConfigWidget( wid, "key config" ); 167 Opie::Ui::OKeyConfigWidget* keyWid = new Opie::Ui::OKeyConfigWidget( wid, "key config" );
168 keyWid->setChangeMode( Opie::Ui::OKeyConfigWidget::Queue ); 168 keyWid->setChangeMode( Opie::Ui::OKeyConfigWidget::Queue );
169 keyWid->insert( tr("Browser Keyboard Actions"), m_view->manager() ); 169 keyWid->insert( tr("Browser Keyboard Actions"), m_view->manager() );
170 QWidget*w = m_stack->visibleWidget(); 170 QWidget*w = m_stack->visibleWidget();
171 171
172 bool reminfo = false; 172 bool reminfo = false;
173 if ( !m_info ) { 173 if ( !m_info ) {
174 reminfo = true; 174 reminfo = true;
175 initInfo(); 175 initInfo();
176 } 176 }
177 keyWid->insert( tr("Imageinfo Keyboard Actions"), m_info->manager() ); 177 keyWid->insert( tr("Imageinfo Keyboard Actions"), m_info->manager() );
178 178
179 bool remdisp = false; 179 bool remdisp = false;
180 if ( !m_disp ) { 180 if ( !m_disp ) {
181 remdisp = true; 181 remdisp = true;
182 initDisp(); 182 initDisp();
183 } 183 }
184 keyWid->insert( tr("Imageview Keyboard Actions"), m_disp->manager() ); 184 keyWid->insert( tr("Imageview Keyboard Actions"), m_disp->manager() );
185 185
186 keyWid->load(); 186 keyWid->load();
187 wid->addTab( keyWid, QString::fromLatin1("AppsIcon" ), tr("Keyboard Configuration") ); 187 wid->addTab( keyWid, QString::fromLatin1("AppsIcon" ), tr("Keyboard Configuration") );
188 wid->setCurrentTab(0); 188 wid->setCurrentTab(0);
189 bool act = ( QPEApplication::execDialog( &dlg ) == QDialog::Accepted ); 189 bool act = ( QPEApplication::execDialog( &dlg ) == QDialog::Accepted );
190 190
191/* 191/*
192 * clean up 192 * clean up
193 *apply changes 193 *apply changes
194 */ 194 */
195 195
196 QMap<PDirView*, QWidget*>::Iterator it; 196 QMap<PDirView*, QWidget*>::Iterator it;
197 for ( it = lst.begin(); it != lst.end(); ++it ) { 197 for ( it = lst.begin(); it != lst.end(); ++it ) {
198 if ( act ) 198 if ( act )
199 it.key()->interfaceInfo()->writeConfig(it.data(), *m_cfg); 199 it.key()->interfaceInfo()->writeConfig(it.data(), *m_cfg);
200 delete it.key(); 200 delete it.key();
201 } 201 }
202 202
203 203
204 if ( act ) { 204 if ( act ) {
205 m_view->resetView(); 205 m_view->resetView();
206 keyWid->save(); 206 keyWid->save();
207 m_disp->manager()->save(); 207 m_disp->manager()->save();
208 m_info->manager()->save(); 208 m_info->manager()->save();
209 m_view->manager()->save(); 209 m_view->manager()->save();
210 bSetup->save_values(); 210 bSetup->save_values();
211 readConfig(); 211 readConfig();
212 } 212 }
213 delete keyWid; 213 delete keyWid;
214 214
215 m_stack->raiseWidget(w); 215 m_stack->raiseWidget(w);
216 if (remdisp) { 216 if (remdisp) {
217 m_disp->disconnect(this, SLOT(slotReturn())); 217 m_disp->hide();
218 m_disp->setDestructiveClose();
219 m_stack->removeWidget(m_disp);
220 m_disp = 0;
221 } 218 }
222 if (reminfo) { 219 if (reminfo) {
223 m_info->disconnect(this, SLOT(slotReturn())); 220 m_info->hide();
224 m_info->setDestructiveClose();
225 m_stack->removeWidget(m_info);
226 m_info = 0;
227 } 221 }
228} 222}
229 223
230/* 224/*
231 * create a new image info component 225 * create a new image info component
232 * and detach the current one 226 * and detach the current one
233 * we will make the other delete on exit 227 * we will make the other delete on exit
234 */ 228 */
235template<class T> 229template<class T>
236void PMainWindow::initT( const char* name, T** ptr, int id) { 230void PMainWindow::initT( const char* name, T** ptr, int id) {
237 if ( *ptr ) { 231 if ( *ptr ) {
238 (*ptr)->disconnect(this, SLOT(slotReturn())); 232 (*ptr)->disconnect(this, SLOT(slotReturn()));
239 (*ptr)->setDestructiveClose(); 233 (*ptr)->setDestructiveClose();
240 m_stack->removeWidget( *ptr ); 234 m_stack->removeWidget( *ptr );
241 } 235 }
242 *ptr = new T(m_cfg, m_stack, name ); 236 *ptr = new T(m_cfg, m_stack, name );
243 m_stack->addWidget( *ptr, id ); 237 m_stack->addWidget( *ptr, id );
244 238
245 connect(*ptr, SIGNAL(sig_return()), 239 connect(*ptr, SIGNAL(sig_return()),
246 this,SLOT(slotReturn())); 240 this,SLOT(slotReturn()));
247 241
248} 242}
249 243
250void PMainWindow::initInfo() { 244void PMainWindow::initInfo() {
251 initT<imageinfo>( "Image Info", &m_info, ImageInfo ); 245 initT<imageinfo>( "Image Info", &m_info, ImageInfo );
252 connect(m_info,SIGNAL(dispImage(const QString&)),this,SLOT(slotDisplay(const QString&))); 246 connect(m_info,SIGNAL(dispImage(const QString&)),this,SLOT(slotDisplay(const QString&)));
253} 247}
254 248
255void PMainWindow::initDisp() { 249void PMainWindow::initDisp() {
256 initT<ImageView>( "Image ScrollView", &m_disp, ImageDisplay ); 250 initT<ImageView>( "Image ScrollView", &m_disp, ImageDisplay );
257 if (m_disp) { 251 if (m_disp) {
258 if (m_stack->mode() != Opie::Ui::OWidgetStack::SmallScreen) { 252 if (m_stack->mode() != Opie::Ui::OWidgetStack::SmallScreen) {
259 m_disp->setMinimumSize(QApplication::desktop()->size()/2); 253 m_disp->setMinimumSize(QApplication::desktop()->size()/2);
260 } 254 }
261 m_disp->setMenuActions(m_hGroup,m_gPrevNext,m_gDisplayType); 255 m_disp->setMenuActions(m_hGroup,m_gPrevNext,m_gDisplayType);
262 m_disp->setAutoScale(!m_aUnscaled->isOn()); 256 m_disp->setAutoScale(!m_aUnscaled->isOn());
263 m_disp->setAutoRotate(m_aAutoRotate->isOn()); 257 m_disp->setAutoRotate(m_aAutoRotate->isOn());
264 m_disp->setShowZoomer(m_aZoomer->isOn()); 258 m_disp->setShowZoomer(m_aZoomer->isOn());
265 m_disp->setBackgroundColor(white); 259 m_disp->setBackgroundColor(white);
266 connect(m_disp,SIGNAL(dispImageInfo(const QString&)),this,SLOT(slotShowInfo(const QString&))); 260 connect(m_disp,SIGNAL(dispImageInfo(const QString&)),this,SLOT(slotShowInfo(const QString&)));
267 connect(m_disp,SIGNAL(dispNext()),m_view,SLOT(slotShowNext())); 261 connect(m_disp,SIGNAL(dispNext()),m_view,SLOT(slotShowNext()));
268 connect(m_disp,SIGNAL(dispPrev()),m_view,SLOT(slotShowPrev())); 262 connect(m_disp,SIGNAL(dispPrev()),m_view,SLOT(slotShowPrev()));
269 connect(m_disp,SIGNAL(toggleFullScreen()),this,SLOT(slotToggleFullScreen())); 263 connect(m_disp,SIGNAL(toggleFullScreen()),this,SLOT(slotToggleFullScreen()));
270 connect(m_disp,SIGNAL(hideMe()),this,SLOT(raiseIconView())); 264 connect(m_disp,SIGNAL(hideMe()),this,SLOT(raiseIconView()));
271 connect(m_disp,SIGNAL(toggleZoomer()),this,SLOT(slotToggleZoomer())); 265 connect(m_disp,SIGNAL(toggleZoomer()),this,SLOT(slotToggleZoomer()));
272 connect(m_disp,SIGNAL(toggleAutoscale()),this,SLOT(slotToggleAutoscale())); 266 connect(m_disp,SIGNAL(toggleAutoscale()),this,SLOT(slotToggleAutoscale()));
273 connect(m_disp,SIGNAL(toggleAutorotate()),this,SLOT(slotToggleAutorotate())); 267 connect(m_disp,SIGNAL(toggleAutorotate()),this,SLOT(slotToggleAutorotate()));
274 connect(m_view,SIGNAL(sig_startslide(int)),m_disp,SLOT(startSlide(int))); 268 connect(m_view,SIGNAL(sig_startslide(int)),m_disp,SLOT(startSlide(int)));
275 slotFullScreenToggled(m_aFullScreen->isOn()); 269 slotFullScreenToggled(m_aFullScreen->isOn());
276 } 270 }
277} 271}
278 272
279void PMainWindow::slotToggleFullScreen() 273void PMainWindow::slotToggleFullScreen()
280{ 274{
281 bool current = !m_aFullScreen->isOn(); 275 bool current = !m_aFullScreen->isOn();
282 m_aFullScreen->setOn(current); 276 m_aFullScreen->setOn(current);
283} 277}
284 278
285void PMainWindow::slotFullScreenButton(bool current) 279void PMainWindow::slotFullScreenButton(bool current)
286{ 280{
287 if (autoSave) { 281 if (autoSave) {
288 m_cfg->writeEntry("fullscreen",current); 282 m_cfg->writeEntry("fullscreen",current);
289 } 283 }
290 if (!m_disp) return; 284 if (!m_disp) return;
291 285 if (m_disp->isVisible()) {
292 if (m_disp->isHidden()) { 286 setupViewWindow(current, true);
293 /* it must get some setups for switch we can just do if the window is visible.
294 so we must delete the imageview window and re-create it when displaying new
295 image */
296 return;
297 } 287 }
298 setupViewWindow(current, true);
299} 288}
300 289
301void PMainWindow::setupViewWindow(bool current, bool forceDisplay) 290void PMainWindow::setupViewWindow(bool current, bool forceDisplay)
302{ 291{
303 if (!m_disp) return; 292 if (!m_disp) return;
304 if (current) { 293 if (current) {
305 m_disp->setBackgroundColor(black); 294 m_disp->setBackgroundColor(black);
306 m_disp->reparent(0, WStyle_Customize | WStyle_NoBorder, QPoint(0,0)); 295 m_disp->reparent(0, WStyle_Customize | WStyle_NoBorder, QPoint(0,0));
307 m_disp->setVScrollBarMode(QScrollView::AlwaysOff); 296 m_disp->setVScrollBarMode(QScrollView::AlwaysOff);
308 m_disp->setHScrollBarMode(QScrollView::AlwaysOff); 297 m_disp->setHScrollBarMode(QScrollView::AlwaysOff);
309 m_disp->resize(qApp->desktop()->width(), qApp->desktop()->height()); 298 m_disp->resize(qApp->desktop()->width(), qApp->desktop()->height());
310 } else { 299 } else {
311 setUpdatesEnabled(false); 300 setUpdatesEnabled(false);
312 if (m_stack->mode() != Opie::Ui::OWidgetStack::SmallScreen) { 301 if (m_stack->mode() != Opie::Ui::OWidgetStack::SmallScreen) {
313 m_disp->setMinimumSize(QApplication::desktop()->size()/2); 302 m_disp->setMinimumSize(QApplication::desktop()->size()/2);
314 } else { 303 } else {
315 m_disp->setMinimumSize(10,10); 304 m_disp->setMinimumSize(10,10);
316 } 305 }
317 if (m_stack->mode() != Opie::Ui::OWidgetStack::SmallScreen) { 306 if (m_stack->mode() != Opie::Ui::OWidgetStack::SmallScreen) {
318 m_disp->reparent(0,QPoint(50,50)); 307 m_disp->reparent(0,QPoint(50,50));
319 } else { 308 } else {
320 m_disp->reparent(0,QPoint(0,0)); 309 m_disp->reparent(0,QPoint(0,0));
321 } 310 }
322 m_disp->setBackgroundColor(white); 311 m_disp->setBackgroundColor(white);
323 m_stack->addWidget(m_disp,ImageDisplay); 312 m_stack->addWidget(m_disp,ImageDisplay);
324 m_disp->setVScrollBarMode(QScrollView::Auto); 313 m_disp->setVScrollBarMode(QScrollView::Auto);
325 m_disp->setHScrollBarMode(QScrollView::Auto); 314 m_disp->setHScrollBarMode(QScrollView::Auto);
326 if (forceDisplay || m_disp->isVisible()) 315 if (forceDisplay || m_disp->isVisible())
327 m_stack->raiseWidget(m_disp); 316 m_stack->raiseWidget(m_disp);
328 if (m_stack->mode() != Opie::Ui::OWidgetStack::SmallScreen) { 317 if (m_stack->mode() != Opie::Ui::OWidgetStack::SmallScreen) {
329 m_disp->resize(m_disp->minimumSize()); 318 m_disp->resize(m_disp->minimumSize());
330 } 319 }
331 setUpdatesEnabled(true); 320 setUpdatesEnabled(true);
332 } 321 }
333 m_disp->setFullScreen(current,forceDisplay); 322 m_disp->setFullScreen(current,forceDisplay);
334} 323}
335 324
336void PMainWindow::slotFullScreenToggled(bool current) 325void PMainWindow::slotFullScreenToggled(bool current)
337{ 326{
338 setupViewWindow(current,true); 327 setupViewWindow(current,true);
339} 328}
340 329
341/** 330/**
342 * With big Screen the plan could be to 'detach' the image 331 * With big Screen the plan could be to 'detach' the image
343 * window if visible and to create a ne wone 332 * window if visible and to create a ne wone
344 * init* already supports it but I make no use of it for 333 * init* already supports it but I make no use of it for
345 * now. We set filename and raise 334 * now. We set filename and raise
346 * 335 *
347 * ### FIXME and talk to alwin 336 * ### FIXME and talk to alwin
348 */ 337 */
349void PMainWindow::slotShowInfo( const QString& inf ) { 338void PMainWindow::slotShowInfo( const QString& inf ) {
350 if (m_disp && m_disp->fullScreen() && m_disp->isVisible()) { 339 if (m_disp && m_disp->fullScreen() && m_disp->isVisible()) {
351 return; 340 return;
352 } 341 }
353 if ( !m_info ) { 342 if ( !m_info ) {
354 initInfo(); 343 initInfo();
355 } 344 }
356 m_info->setPath( inf ); 345 m_info->setPath( inf );
357 if (m_stack->mode() == Opie::Ui::OWidgetStack::SmallScreen) { 346 if (m_stack->mode() == Opie::Ui::OWidgetStack::SmallScreen) {
358 m_aNext->removeFrom(toolBar); 347 m_aNext->removeFrom(toolBar);
359 m_aPrevious->removeFrom(toolBar); 348 m_aPrevious->removeFrom(toolBar);
360 m_aNext->setEnabled(false); 349 m_aNext->setEnabled(false);
361 m_aPrevious->setEnabled(false); 350 m_aPrevious->setEnabled(false);
362 m_aDirUp->setEnabled(false); 351 m_aDirUp->setEnabled(false);
363 m_aShowInfo->setEnabled(false); 352 m_aShowInfo->setEnabled(false);
364 m_aViewfile->setEnabled(true); 353 m_aViewfile->setEnabled(true);
365 m_aStartSlide->setEnabled(false); 354 m_aStartSlide->setEnabled(false);
366 fsButton->hide(); 355 fsButton->hide();
367 } 356 }
368 m_stack->raiseWidget( ImageInfo ); 357 m_stack->raiseWidget( ImageInfo );
369} 358}
370 359
371void PMainWindow::slotDisplay( const QString& inf ) { 360void PMainWindow::slotDisplay( const QString& inf ) {
361 bool nwindow = false;
372 if ( !m_disp ) { 362 if ( !m_disp ) {
363 nwindow = true;
373 initDisp(); 364 initDisp();
374 } 365 }
375 m_disp->setImage( inf ); 366 m_disp->setImage( inf );
376 if (m_stack->mode() == Opie::Ui::OWidgetStack::SmallScreen) { 367 if (m_stack->mode() == Opie::Ui::OWidgetStack::SmallScreen) {
377 if (m_gPrevNext->isEnabled()==false) { 368 if (m_gPrevNext->isEnabled()==false) {
378 m_gPrevNext->addTo(toolBar); 369 m_gPrevNext->addTo(toolBar);
379 m_gPrevNext->setEnabled(true); 370 m_gPrevNext->setEnabled(true);
380 371
381 m_aDirUp->setEnabled(false); 372 m_aDirUp->setEnabled(false);
382 m_aShowInfo->setEnabled(true); 373 m_aShowInfo->setEnabled(true);
383 m_aViewfile->setEnabled(false); 374 m_aViewfile->setEnabled(false);
384 m_aStartSlide->setEnabled(false); 375 m_aStartSlide->setEnabled(false);
385 fsButton->hide(); 376 fsButton->hide();
386 } 377 }
387 } 378 }
379 if (!nwindow && m_disp->fullScreen()!=m_aFullScreen->isOn()) {
380 slotFullScreenToggled(m_aFullScreen->isOn());
381 }
388 if (m_disp->fullScreen()) { 382 if (m_disp->fullScreen()) {
389 qwsDisplay()->requestFocus( m_disp->winId(), TRUE); 383 qwsDisplay()->requestFocus( m_disp->winId(), TRUE);
390 } else { 384 } else {
391 m_stack->raiseWidget( ImageDisplay ); 385 m_stack->raiseWidget( ImageDisplay );
392 } 386 }
393} 387}
394 388
395void PMainWindow::raiseIconView() { 389void PMainWindow::raiseIconView() {
396 setUpdatesEnabled(false); 390 setUpdatesEnabled(false);
397 if (m_stack->mode() == Opie::Ui::OWidgetStack::SmallScreen) { 391 if (m_stack->mode() == Opie::Ui::OWidgetStack::SmallScreen) {
398 m_gPrevNext->removeFrom(toolBar); 392 m_gPrevNext->removeFrom(toolBar);
399 m_gPrevNext->setEnabled(false); 393 m_gPrevNext->setEnabled(false);
400 m_aDirUp->setEnabled(true); 394 m_aDirUp->setEnabled(true);
401 m_aShowInfo->setEnabled(true); 395 m_aShowInfo->setEnabled(true);
402 m_aViewfile->setEnabled(true); 396 m_aViewfile->setEnabled(true);
403 m_aStartSlide->setEnabled(true); 397 m_aStartSlide->setEnabled(true);
404 fsButton->show(); 398 fsButton->show();
405 } 399 }
406 if (m_disp && m_disp->fullScreen() && m_disp->isVisible()) { 400 if (m_disp && m_disp->fullScreen() && m_disp->isVisible()) {
407 m_disp->stopSlide(); 401 m_disp->stopSlide();
408 m_disp->hide(); 402 m_disp->hide();
409 } 403 }
410 m_stack->raiseWidget( IconView ); 404 m_stack->raiseWidget( IconView );
411 setUpdatesEnabled(true); 405 setUpdatesEnabled(true);
412 repaint(); 406 repaint();
413} 407}
414 408
415void PMainWindow::slotReturn() { 409void PMainWindow::slotReturn() {
416 raiseIconView(); 410 raiseIconView();
417} 411}
418 412
419 413
420void PMainWindow::closeEvent( QCloseEvent* ev ) { 414void PMainWindow::closeEvent( QCloseEvent* ev ) {
421 /* 415 /*
422 * return from view 416 * return from view
423 * or properly quit 417 * or properly quit
424 */ 418 */
425 if ( m_stack->visibleWidget() == m_info || 419 if ( m_stack->visibleWidget() == m_info ||
426 m_stack->visibleWidget() == m_disp ) { 420 m_stack->visibleWidget() == m_disp ) {
427 ev->ignore(); 421 ev->ignore();
428 raiseIconView(); 422 raiseIconView();
429 return; 423 return;
430 } 424 }
431 if (m_disp && m_disp->fullScreen()) { 425 if (m_disp && m_disp->fullScreen()) {
432 /* otherwise opie-eye crashes in bigscreen mode! */ 426 /* otherwise opie-eye crashes in bigscreen mode! */
433 m_disp->reparent(0,QPoint(0,0)); 427 m_disp->reparent(0,QPoint(0,0));
434 m_stack->addWidget(m_disp,ImageDisplay); 428 m_stack->addWidget(m_disp,ImageDisplay);
435 } 429 }
436 ev->accept(); 430 ev->accept();
437 QTimer::singleShot(0, qApp, SLOT(closeAllWindows())); 431 QTimer::singleShot(0, qApp, SLOT(closeAllWindows()));
438} 432}
439 433
440void PMainWindow::setDocument( const QString& showImg ) { 434void PMainWindow::setDocument( const QString& showImg ) {
441 QString file = showImg; 435 QString file = showImg;
442 DocLnk lnk(showImg); 436 DocLnk lnk(showImg);
443 if (lnk.isValid() ) 437 if (lnk.isValid() )
444 file = lnk.file(); 438 file = lnk.file();
445 439
446 slotDisplay( file ); 440 slotDisplay( file );
447} 441}
448 442
449void PMainWindow::slotSelectDir(int id) 443void PMainWindow::slotSelectDir(int id)
450{ 444{
451 emit changeDir( m_dev[fsMenu->text(id )] ); 445 emit changeDir( m_dev[fsMenu->text(id )] );