summaryrefslogtreecommitdiff
authoralwin <alwin>2004-11-07 14:14:02 (UTC)
committer alwin <alwin>2004-11-07 14:14:02 (UTC)
commite11d189bfd48ab072da4753240a4ab0bbf81296f (patch) (unidiff)
tree0117c440ff2d95b2d967df8b1c9ccea00e818a65
parentebed03682190e26f1ff7d8fc90e34324114b9c40 (diff)
downloadopie-e11d189bfd48ab072da4753240a4ab0bbf81296f.zip
opie-e11d189bfd48ab072da4753240a4ab0bbf81296f.tar.gz
opie-e11d189bfd48ab072da4753240a4ab0bbf81296f.tar.bz2
when last view state was fullscreen and user tabbed on an image the
imagedisplay was behind the application gui 'cause gui was painted after the imagewindow. So now opie-eye starts a short timer in setDocument when first start checking the visibility of imagewindow.
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/graphics/opie-eye/gui/mainwindow.cpp18
-rw-r--r--noncore/graphics/opie-eye/gui/mainwindow.h1
2 files changed, 17 insertions, 2 deletions
diff --git a/noncore/graphics/opie-eye/gui/mainwindow.cpp b/noncore/graphics/opie-eye/gui/mainwindow.cpp
index 67eb277..f443ccb 100644
--- a/noncore/graphics/opie-eye/gui/mainwindow.cpp
+++ b/noncore/graphics/opie-eye/gui/mainwindow.cpp
@@ -28,96 +28,97 @@
28 28
29#include <qtoolbar.h> 29#include <qtoolbar.h>
30#include <qtoolbutton.h> 30#include <qtoolbutton.h>
31#include <qlayout.h> 31#include <qlayout.h>
32#include <qdialog.h> 32#include <qdialog.h>
33#include <qmap.h> 33#include <qmap.h>
34#include <qtimer.h> 34#include <qtimer.h>
35#include <qframe.h> 35#include <qframe.h>
36#include <qmenubar.h> 36#include <qmenubar.h>
37#include <qaction.h> 37#include <qaction.h>
38 38
39//OPIE_EXPORT_APP_V2( Opie::Core::OApplicationFactory<PMainWindow>,"Opie Eye" ) 39//OPIE_EXPORT_APP_V2( Opie::Core::OApplicationFactory<PMainWindow>,"Opie Eye" )
40OPIE_EXPORT_APP( Opie::Core::OApplicationFactory<PMainWindow>) 40OPIE_EXPORT_APP( Opie::Core::OApplicationFactory<PMainWindow>)
41 41
42PMainWindow::PMainWindow(QWidget* wid, const char* name, WFlags style) 42PMainWindow::PMainWindow(QWidget* wid, const char* name, WFlags style)
43 : QMainWindow( wid, name, style ), m_info( 0 ), m_disp( 0 ) 43 : QMainWindow( wid, name, style ), m_info( 0 ), m_disp( 0 )
44{ 44{
45 setCaption( QObject::tr("Opie Eye Caramba" ) ); 45 setCaption( QObject::tr("Opie Eye Caramba" ) );
46 m_cfg = new Opie::Core::OConfig("opie-eye"); 46 m_cfg = new Opie::Core::OConfig("opie-eye");
47 m_cfg->setGroup("main" ); 47 m_cfg->setGroup("main" );
48 readConfig(); 48 readConfig();
49 49
50 m_storage = new StorageInfo(); 50 m_storage = new StorageInfo();
51 connect(m_storage, SIGNAL(disksChanged() ), 51 connect(m_storage, SIGNAL(disksChanged() ),
52 this, SLOT( dirChanged() ) ); 52 this, SLOT( dirChanged() ) );
53 53
54 m_stack = new Opie::Ui::OWidgetStack( this ); 54 m_stack = new Opie::Ui::OWidgetStack( this );
55 setCentralWidget( m_stack ); 55 setCentralWidget( m_stack );
56 56
57 m_view = new PIconView( m_stack, m_cfg ); 57 m_view = new PIconView( m_stack, m_cfg );
58 m_stack->addWidget( m_view, IconView ); 58 m_stack->addWidget( m_view, IconView );
59 m_stack->raiseWidget( IconView ); 59 m_stack->raiseWidget( IconView );
60 60
61 connect(m_view, SIGNAL(sig_display(const QString&)), 61 connect(m_view, SIGNAL(sig_display(const QString&)),
62 this, SLOT(slotDisplay(const QString&))); 62 this, SLOT(slotDisplay(const QString&)));
63 connect(m_view, SIGNAL(sig_showInfo(const QString&)), 63 connect(m_view, SIGNAL(sig_showInfo(const QString&)),
64 this, SLOT(slotShowInfo(const QString&)) ); 64 this, SLOT(slotShowInfo(const QString&)) );
65 connect(this,SIGNAL(changeListMode(int)),m_view,SLOT(slotChangeMode(int))); 65 connect(this,SIGNAL(changeListMode(int)),m_view,SLOT(slotChangeMode(int)));
66 66
67 m_stack->forceMode(Opie::Ui::OWidgetStack::NoForce); 67 m_stack->forceMode(Opie::Ui::OWidgetStack::NoForce);
68 68
69 listviewMenu = 0; 69 listviewMenu = 0;
70 /* setup menu and toolbar */ 70 /* setup menu and toolbar */
71 setupActions(); 71 setupActions();
72 setupToolbar(); 72 setupToolbar();
73 setupMenu(); 73 setupMenu();
74 m_aHideToolbar->setOn(m_cfg->readBoolEntry("showtoolbar",true)); 74 m_aHideToolbar->setOn(m_cfg->readBoolEntry("showtoolbar",true));
75 m_aAutoRotate->setEnabled(!m_aUnscaled->isOn()); 75 m_aAutoRotate->setEnabled(!m_aUnscaled->isOn());
76 odebug << "mainwindow constructor done" << oendl;
76} 77}
77 78
78PMainWindow::~PMainWindow() { 79PMainWindow::~PMainWindow() {
79} 80}
80 81
81void PMainWindow::slotToggleZoomer() 82void PMainWindow::slotToggleZoomer()
82{ 83{
83 m_aZoomer->setOn(!m_aZoomer->isOn()); 84 m_aZoomer->setOn(!m_aZoomer->isOn());
84} 85}
85 86
86void PMainWindow::slotZoomerToggled(bool how) 87void PMainWindow::slotZoomerToggled(bool how)
87{ 88{
88 if (m_disp) { 89 if (m_disp) {
89 m_disp->setShowZoomer(how); 90 m_disp->setShowZoomer(how);
90 } 91 }
91 if (autoSave) { 92 if (autoSave) {
92 m_cfg->writeEntry("zoomeron",how); 93 m_cfg->writeEntry("zoomeron",how);
93 } 94 }
94} 95}
95 96
96void PMainWindow::slotToggleAutorotate() 97void PMainWindow::slotToggleAutorotate()
97{ 98{
98 if (!m_aAutoRotate->isEnabled()) return; 99 if (!m_aAutoRotate->isEnabled()) return;
99 m_aAutoRotate->setOn(!m_aAutoRotate->isOn()); 100 m_aAutoRotate->setOn(!m_aAutoRotate->isOn());
100} 101}
101 102
102void PMainWindow::slotToggleAutoscale() 103void PMainWindow::slotToggleAutoscale()
103{ 104{
104 m_aUnscaled->setOn(!m_aUnscaled->isOn()); 105 m_aUnscaled->setOn(!m_aUnscaled->isOn());
105} 106}
106 107
107void PMainWindow::slotRotateToggled(bool how) 108void PMainWindow::slotRotateToggled(bool how)
108{ 109{
109 if (autoSave) { 110 if (autoSave) {
110 m_cfg->writeEntry("autorotate",how); 111 m_cfg->writeEntry("autorotate",how);
111 } 112 }
112 if (m_disp) { 113 if (m_disp) {
113 m_disp->setAutoScaleRotate(!m_aUnscaled->isOn(),how); 114 m_disp->setAutoScaleRotate(!m_aUnscaled->isOn(),how);
114 } 115 }
115} 116}
116 117
117void PMainWindow::slotScaleToggled(bool how) 118void PMainWindow::slotScaleToggled(bool how)
118{ 119{
119 if (autoSave) { 120 if (autoSave) {
120 m_cfg->writeEntry("unscaled",how); 121 m_cfg->writeEntry("unscaled",how);
121 } 122 }
122 odebug << "Unscaled: " << m_aUnscaled->isOn() << oendl; 123 odebug << "Unscaled: " << m_aUnscaled->isOn() << oendl;
123 odebug << "How: " << how << oendl; 124 odebug << "How: " << how << oendl;
@@ -388,103 +389,116 @@ void PMainWindow::slotDisplay( const QString& inf ) {
388 } 389 }
389} 390}
390 391
391void PMainWindow::raiseIconView() { 392void PMainWindow::raiseIconView() {
392 setUpdatesEnabled(false); 393 setUpdatesEnabled(false);
393 if (m_stack->mode() == Opie::Ui::OWidgetStack::SmallScreen) { 394 if (m_stack->mode() == Opie::Ui::OWidgetStack::SmallScreen) {
394 m_gPrevNext->removeFrom(toolBar); 395 m_gPrevNext->removeFrom(toolBar);
395 m_gPrevNext->setEnabled(false); 396 m_gPrevNext->setEnabled(false);
396 m_aDirUp->setEnabled(true); 397 m_aDirUp->setEnabled(true);
397 m_aShowInfo->setEnabled(true); 398 m_aShowInfo->setEnabled(true);
398 m_aViewfile->setEnabled(true); 399 m_aViewfile->setEnabled(true);
399 m_aStartSlide->setEnabled(true); 400 m_aStartSlide->setEnabled(true);
400 fsButton->show(); 401 fsButton->show();
401 } 402 }
402 if (m_disp && m_disp->fullScreen() && m_disp->isVisible()) { 403 if (m_disp && m_disp->fullScreen() && m_disp->isVisible()) {
403 m_disp->stopSlide(); 404 m_disp->stopSlide();
404 m_disp->hide(); 405 m_disp->hide();
405 } 406 }
406 m_stack->raiseWidget( IconView ); 407 m_stack->raiseWidget( IconView );
407 setUpdatesEnabled(true); 408 setUpdatesEnabled(true);
408 repaint(); 409 repaint();
409} 410}
410 411
411void PMainWindow::slotReturn() { 412void PMainWindow::slotReturn() {
412 raiseIconView(); 413 raiseIconView();
413} 414}
414 415
415 416
416void PMainWindow::closeEvent( QCloseEvent* ev ) { 417void PMainWindow::closeEvent( QCloseEvent* ev ) {
417 /* 418 /*
418 * return from view 419 * return from view
419 * or properly quit 420 * or properly quit
420 */ 421 */
421 if ( m_stack->visibleWidget() == m_info || 422 if ( m_stack->visibleWidget() == m_info ||
422 m_stack->visibleWidget() == m_disp ) { 423 m_stack->visibleWidget() == m_disp ) {
423 ev->ignore(); 424 ev->ignore();
424 raiseIconView(); 425 raiseIconView();
425 return; 426 return;
426 } 427 }
427 if (m_disp && m_disp->fullScreen()) { 428 if (m_disp && m_disp->fullScreen()) {
428 /* otherwise opie-eye crashes in bigscreen mode! */ 429 /* otherwise opie-eye crashes in bigscreen mode! */
429 m_disp->reparent(0,QPoint(0,0)); 430 m_disp->reparent(0,QPoint(0,0));
430 m_stack->addWidget(m_disp,ImageDisplay); 431 m_stack->addWidget(m_disp,ImageDisplay);
431 } 432 }
432 ev->accept(); 433 ev->accept();
433 QTimer::singleShot(0, qApp, SLOT(closeAllWindows())); 434 QTimer::singleShot(0, qApp, SLOT(closeAllWindows()));
434} 435}
435 436
436void PMainWindow::setDocument( const QString& showImg ) { 437void PMainWindow::setDocument( const QString& showImg )
438{
439 bool first_start = m_disp==0;
440
437 QString file = showImg; 441 QString file = showImg;
438 DocLnk lnk(showImg); 442 DocLnk lnk(showImg);
439 if (lnk.isValid() ) 443 if (lnk.isValid() )
440 file = lnk.file(); 444 file = lnk.file();
441
442 slotDisplay( file ); 445 slotDisplay( file );
446 if (first_start && m_aFullScreen->isOn()) {
447 QTimer::singleShot(0,this,SLOT(check_view_fullscreen()));
448 }
449}
450
451void PMainWindow::check_view_fullscreen()
452{
453 if (!m_view) return;
454 if (!m_view->hasFocus()&&m_aFullScreen->isOn()) {
455 qwsDisplay()->requestFocus( m_disp->winId(), TRUE);
456 }
443} 457}
444 458
445void PMainWindow::slotSelectDir(int id) 459void PMainWindow::slotSelectDir(int id)
446{ 460{
447 emit changeDir( m_dev[fsMenu->text(id )] ); 461 emit changeDir( m_dev[fsMenu->text(id )] );
448} 462}
449 463
450void PMainWindow::dirChanged() 464void PMainWindow::dirChanged()
451{ 465{
452 fsMenu->clear(); 466 fsMenu->clear();
453 m_dev.clear(); 467 m_dev.clear();
454 468
455 /* home dir, too */ 469 /* home dir, too */
456 QString f = getenv( "HOME" ); 470 QString f = getenv( "HOME" );
457 if (!f.isEmpty()) { 471 if (!f.isEmpty()) {
458 m_dev.insert("Home directory",f); 472 m_dev.insert("Home directory",f);
459 fsMenu->insertItem("Home directory"); 473 fsMenu->insertItem("Home directory");
460 } 474 }
461 const QList<FileSystem> &fs = m_storage->fileSystems(); 475 const QList<FileSystem> &fs = m_storage->fileSystems();
462 QListIterator<FileSystem> it(fs ); 476 QListIterator<FileSystem> it(fs );
463 for ( ; it.current(); ++it ) { 477 for ( ; it.current(); ++it ) {
464 const QString disk = (*it)->name(); 478 const QString disk = (*it)->name();
465 const QString path = (*it)->path(); 479 const QString path = (*it)->path();
466 m_dev.insert( disk, path ); 480 m_dev.insert( disk, path );
467 fsMenu->insertItem( disk ); 481 fsMenu->insertItem( disk );
468 } 482 }
469} 483}
470 484
471void PMainWindow::showToolbar(bool how) 485void PMainWindow::showToolbar(bool how)
472{ 486{
473 if (!how) toolBar->hide(); 487 if (!how) toolBar->hide();
474 else toolBar->show(); 488 else toolBar->show();
475 if (autoSave) { 489 if (autoSave) {
476 m_cfg->writeEntry("showtoolbar",how); 490 m_cfg->writeEntry("showtoolbar",how);
477 } 491 }
478} 492}
479 493
480void PMainWindow::setupActions() 494void PMainWindow::setupActions()
481{ 495{
482 m_aDirUp = new QAction( tr( "Go dir up" ), Resource::loadIconSet( "up" ), 0, 0, this, 0, true ); 496 m_aDirUp = new QAction( tr( "Go dir up" ), Resource::loadIconSet( "up" ), 0, 0, this, 0, true );
483 m_aDirUp->setToggleAction(false); 497 m_aDirUp->setToggleAction(false);
484 connect(m_aDirUp,SIGNAL(activated()),m_view,SLOT(slotDirUp())); 498 connect(m_aDirUp,SIGNAL(activated()),m_view,SLOT(slotDirUp()));
485 499
486 if ( Ir::supported() ) { 500 if ( Ir::supported() ) {
487 m_aBeam = new QAction( tr( "Beam file" ), Resource::loadIconSet( "beam" ),0, 0, this, 0, true ); 501 m_aBeam = new QAction( tr( "Beam file" ), Resource::loadIconSet( "beam" ),0, 0, this, 0, true );
488 m_aBeam->setToggleAction(false); 502 m_aBeam->setToggleAction(false);
489 connect(m_aBeam,SIGNAL(activated()),m_view,SLOT(slotBeam())); 503 connect(m_aBeam,SIGNAL(activated()),m_view,SLOT(slotBeam()));
490 } else { 504 } else {
diff --git a/noncore/graphics/opie-eye/gui/mainwindow.h b/noncore/graphics/opie-eye/gui/mainwindow.h
index 5707568..465e352 100644
--- a/noncore/graphics/opie-eye/gui/mainwindow.h
+++ b/noncore/graphics/opie-eye/gui/mainwindow.h
@@ -20,87 +20,88 @@ namespace Core{
20 class OKeyConfigManager; 20 class OKeyConfigManager;
21} 21}
22} 22}
23 23
24class ImageView; 24class ImageView;
25class ImageWidget; 25class ImageWidget;
26class PIconView; 26class PIconView;
27class imageinfo; 27class imageinfo;
28class QMenuBar; 28class QMenuBar;
29class QToolBar; 29class QToolBar;
30class QPopupMenu; 30class QPopupMenu;
31class QAction; 31class QAction;
32class QActionGroup; 32class QActionGroup;
33class StorageInfo; 33class StorageInfo;
34 34
35class PMainWindow : public QMainWindow { 35class PMainWindow : public QMainWindow {
36 Q_OBJECT 36 Q_OBJECT
37 enum Views { IconView, ImageInfo, ImageDisplay }; 37 enum Views { IconView, ImageInfo, ImageDisplay };
38public: 38public:
39 static QString appName() { return QString::fromLatin1("opie-eye" ); } 39 static QString appName() { return QString::fromLatin1("opie-eye" ); }
40 PMainWindow(QWidget*, const char*, WFlags ); 40 PMainWindow(QWidget*, const char*, WFlags );
41 ~PMainWindow(); 41 ~PMainWindow();
42 42
43signals: 43signals:
44 void configChanged(); 44 void configChanged();
45 void changeDir( const QString& ); 45 void changeDir( const QString& );
46 void changeListMode(int); 46 void changeListMode(int);
47 47
48public slots: 48public slots:
49 void slotShowInfo( const QString& inf ); 49 void slotShowInfo( const QString& inf );
50 void slotDisplay( const QString& inf ); 50 void slotDisplay( const QString& inf );
51 void slotReturn(); 51 void slotReturn();
52 void slotRotateToggled(bool); 52 void slotRotateToggled(bool);
53 void slotScaleToggled(bool); 53 void slotScaleToggled(bool);
54 void slotZoomerToggled(bool); 54 void slotZoomerToggled(bool);
55 void slotToggleZoomer(); 55 void slotToggleZoomer();
56 void slotToggleAutorotate(); 56 void slotToggleAutorotate();
57 void slotToggleAutoscale(); 57 void slotToggleAutoscale();
58 void setDocument( const QString& ); 58 void setDocument( const QString& );
59 virtual void slotToggleFullScreen(); 59 virtual void slotToggleFullScreen();
60 virtual void slotFullScreenToggled(bool); 60 virtual void slotFullScreenToggled(bool);
61 61
62protected slots: 62protected slots:
63 void raiseIconView(); 63 void raiseIconView();
64 void closeEvent( QCloseEvent* ); 64 void closeEvent( QCloseEvent* );
65 void showToolbar(bool); 65 void showToolbar(bool);
66 void listviewselected(QAction*); 66 void listviewselected(QAction*);
67 void slotFullScreenButton(bool); 67 void slotFullScreenButton(bool);
68 void check_view_fullscreen();
68 69
69private: 70private:
70 template<class T> void initT( const char* name, T**, int ); 71 template<class T> void initT( const char* name, T**, int );
71 void initInfo(); 72 void initInfo();
72 void initDisp(); 73 void initDisp();
73 void setupViewWindow(bool full, bool forceDisplay); 74 void setupViewWindow(bool full, bool forceDisplay);
74 75
75private: 76private:
76 Opie::Core::OConfig *m_cfg; 77 Opie::Core::OConfig *m_cfg;
77 Opie::Ui::OWidgetStack *m_stack; 78 Opie::Ui::OWidgetStack *m_stack;
78 PIconView* m_view; 79 PIconView* m_view;
79 imageinfo *m_info; 80 imageinfo *m_info;
80 ImageView *m_disp; 81 ImageView *m_disp;
81 bool autoSave; 82 bool autoSave;
82 QToolButton*fsButton; 83 QToolButton*fsButton;
83 QToolBar *toolBar; 84 QToolBar *toolBar;
84 QPopupMenu *fileMenu,*dispMenu,*fsMenu,*listviewMenu,*settingsMenu; 85 QPopupMenu *fileMenu,*dispMenu,*fsMenu,*listviewMenu,*settingsMenu;
85 QAction*m_aShowInfo,*m_aBeam,*m_aTrash,*m_aViewfile,*m_aDirUp,*m_aStartSlide; 86 QAction*m_aShowInfo,*m_aBeam,*m_aTrash,*m_aViewfile,*m_aDirUp,*m_aStartSlide;
86 QAction*m_aHideToolbar,*m_aSetup,*m_aDirName,*m_aDirShort,*m_aDirLong; 87 QAction*m_aHideToolbar,*m_aSetup,*m_aDirName,*m_aDirShort,*m_aDirLong;
87 QActionGroup *m_gListViewMode,*m_gDisplayType,*m_gPrevNext,*m_hGroup; 88 QActionGroup *m_gListViewMode,*m_gDisplayType,*m_gPrevNext,*m_hGroup;
88 QAction *m_aNext,*m_aPrevious,*m_aFullScreen; 89 QAction *m_aNext,*m_aPrevious,*m_aFullScreen;
89 QAction *m_aAutoRotate,*m_aUnscaled,*m_aZoomer; 90 QAction *m_aAutoRotate,*m_aUnscaled,*m_aZoomer;
90 91
91 /* init funs */ 92 /* init funs */
92 void readConfig(); 93 void readConfig();
93 void setupActions(); 94 void setupActions();
94 void setupToolbar(); 95 void setupToolbar();
95 void setupMenu(); 96 void setupMenu();
96 /* for the device submenu - ToDo: Merge with the special button */ 97 /* for the device submenu - ToDo: Merge with the special button */
97 StorageInfo *m_storage; 98 StorageInfo *m_storage;
98 QMap<QString, QString> m_dev; 99 QMap<QString, QString> m_dev;
99 100
100private slots: 101private slots:
101 void slotConfig(); 102 void slotConfig();
102 void slotSelectDir(int); 103 void slotSelectDir(int);
103 void dirChanged(); 104 void dirChanged();
104}; 105};
105 106
106#endif 107#endif