summaryrefslogtreecommitdiff
path: root/noncore/graphics/opie-eye
authoralwin <alwin>2004-11-02 00:30:38 (UTC)
committer alwin <alwin>2004-11-02 00:30:38 (UTC)
commit51b7bdf260bc2b5b066c6594a6d0c507add682fd (patch) (unidiff)
tree991e7658e5abc440343e03b83eb4f867ae6adbaf /noncore/graphics/opie-eye
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 (limited to 'noncore/graphics/opie-eye') (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
@@ -17,92 +17,95 @@ ImageView::ImageView(Opie::Core::OConfig *cfg, QWidget* parent, const char* name
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
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
@@ -193,58 +193,52 @@ void PMainWindow::slotConfig() {
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() {
@@ -267,56 +261,51 @@ void PMainWindow::initDisp() {
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);
@@ -348,64 +337,69 @@ void PMainWindow::slotFullScreenToggled(bool current)
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);