Diffstat (limited to 'noncore/graphics/opie-eye/gui/mainwindow.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/graphics/opie-eye/gui/mainwindow.cpp | 85 |
1 files changed, 57 insertions, 28 deletions
diff --git a/noncore/graphics/opie-eye/gui/mainwindow.cpp b/noncore/graphics/opie-eye/gui/mainwindow.cpp index 90e2e99..a96bfbd 100644 --- a/noncore/graphics/opie-eye/gui/mainwindow.cpp +++ b/noncore/graphics/opie-eye/gui/mainwindow.cpp @@ -39,24 +39,25 @@ //OPIE_EXPORT_APP_V2( Opie::Core::OApplicationFactory<PMainWindow>,"Opie Eye" ) OPIE_EXPORT_APP( Opie::Core::OApplicationFactory<PMainWindow>) PMainWindow::PMainWindow(QWidget* wid, const char* name, WFlags style) : QMainWindow( wid, name, style ), m_info( 0 ), m_disp( 0 ) { setCaption( QObject::tr("Opie Eye" ) ); m_cfg = new Opie::Core::OConfig("opie-eye"); m_cfg->setGroup("main" ); readConfig(); m_setDocCalled = false; m_polishDone = false; + m_SmallWindow = QApplication::desktop()->size().width()<330; m_storage = new StorageInfo(); connect(m_storage, SIGNAL(disksChanged() ), this, SLOT( dirChanged() ) ); m_stack = new Opie::Ui::OWidgetStack( this ); setCentralWidget( m_stack ); m_view = new PIconView( m_stack, m_cfg ); m_stack->addWidget( m_view, IconView ); m_stack->raiseWidget( IconView ); @@ -66,24 +67,27 @@ PMainWindow::PMainWindow(QWidget* wid, const char* name, WFlags style) this, SLOT(slotShowInfo(const QString&)) ); connect(this,SIGNAL(changeListMode(int)),m_view,SLOT(slotChangeMode(int))); m_stack->forceMode(Opie::Ui::OWidgetStack::NoForce); listviewMenu = 0; /* setup menu and toolbar */ setupActions(); setupToolbar(); setupMenu(); m_aHideToolbar->setOn(m_cfg->readBoolEntry("showtoolbar",true)); m_aAutoRotate->setEnabled(!m_aUnscaled->isOn()); + if (m_aForceSmall) { + m_aForceSmall->setOn(m_cfg->readBoolEntry("dontshowseperate",true)); + } odebug << "mainwindow constructor done" << oendl; } PMainWindow::~PMainWindow() { } void PMainWindow::slotToggleZoomer() { m_aZoomer->setOn(!m_aZoomer->isOn()); } void PMainWindow::slotZoomerToggled(bool how) @@ -245,27 +249,27 @@ void PMainWindow::initT( const char* name, T** ptr, int id) { this,SLOT(slotReturn())); } void PMainWindow::initInfo() { initT<imageinfo>( "Image Info", &m_info, ImageInfo ); connect(m_info,SIGNAL(dispImage(const QString&)),this,SLOT(slotDisplay(const QString&))); } void PMainWindow::initDisp() { initT<ImageView>( "Image ScrollView", &m_disp, ImageDisplay ); if (m_disp) { - if (m_stack->mode() != Opie::Ui::OWidgetStack::SmallScreen) { +// if (m_stack->mode() != Opie::Ui::OWidgetStack::SmallScreen) { //m_disp->setMinimumSize(QApplication::desktop()->size()/2); - } +// } m_disp->setMenuActions(m_hGroup,m_gPrevNext,m_gDisplayType); m_disp->setAutoScale(!m_aUnscaled->isOn()); m_disp->setAutoRotate(m_aAutoRotate->isOn()); m_disp->setShowZoomer(m_aZoomer->isOn()); m_disp->setBackgroundColor(white); connect(m_disp,SIGNAL(dispImageInfo(const QString&)),this,SLOT(slotShowInfo(const QString&))); connect(m_disp,SIGNAL(dispNext()),m_view,SLOT(slotShowNext())); connect(m_disp,SIGNAL(dispPrev()),m_view,SLOT(slotShowPrev())); connect(m_disp,SIGNAL(toggleFullScreen()),this,SLOT(slotToggleFullScreen())); connect(m_disp,SIGNAL(hideMe()),this,SLOT(raiseIconView())); connect(m_disp,SIGNAL(toggleZoomer()),this,SLOT(slotToggleZoomer())); connect(m_disp,SIGNAL(toggleAutoscale()),this,SLOT(slotToggleAutoscale())); @@ -297,35 +301,32 @@ void PMainWindow::setupViewWindow(bool current, bool forceDisplay) if (!m_disp) { return; } if (current) { m_disp->setBackgroundColor(black); m_disp->reparent(0, WStyle_Customize | WStyle_NoBorder, QPoint(0,0)); m_disp->setVScrollBarMode(QScrollView::AlwaysOff); m_disp->setHScrollBarMode(QScrollView::AlwaysOff); m_disp->resize(qApp->desktop()->width(), qApp->desktop()->height()); m_disp->setFullScreen(current,forceDisplay); } else { setUpdatesEnabled(false); +#if 0 if (m_stack->mode() != Opie::Ui::OWidgetStack::SmallScreen) { //m_disp->setMinimumSize(QApplication::desktop()->size()/2); } else { //m_disp->setMinimumSize(10,10); } - if (m_stack->mode() != Opie::Ui::OWidgetStack::SmallScreen) { - m_disp->reparent(0,QPoint(10,10)); - } else { - m_disp->reparent(0,QPoint(0,0)); - } +#endif m_disp->setBackgroundColor(white); m_stack->addWidget(m_disp,ImageDisplay); m_disp->setVScrollBarMode(QScrollView::Auto); m_disp->setHScrollBarMode(QScrollView::Auto); if (m_stack->mode() != Opie::Ui::OWidgetStack::SmallScreen) { m_disp->setGeometry(30,30,QApplication::desktop()->width()-60,QApplication::desktop()->height()-60); } if (forceDisplay || m_disp->isVisible()) { m_stack->raiseWidget(m_disp); m_disp->setFocus(); } setUpdatesEnabled(true); @@ -345,78 +346,79 @@ void PMainWindow::slotFullScreenToggled(bool current) * now. We set filename and raise * * ### FIXME and talk to alwin */ void PMainWindow::slotShowInfo( const QString& inf ) { if (m_disp && m_disp->fullScreen() && m_disp->isVisible()) { return; } if ( !m_info ) { initInfo(); } m_info->setPath( inf ); - if (m_stack->mode() == Opie::Ui::OWidgetStack::SmallScreen) { + if (m_SmallWindow) { m_aNext->removeFrom(toolBar); m_aPrevious->removeFrom(toolBar); - m_aNext->setEnabled(false); - m_aPrevious->setEnabled(false); - m_aDirUp->setEnabled(false); - m_aShowInfo->setEnabled(false); - m_aViewfile->setEnabled(true); - m_aStartSlide->setEnabled(false); fsButton->hide(); } + m_aNext->setEnabled(false); + m_aPrevious->setEnabled(false); + m_aDirUp->setEnabled(false); + m_aShowInfo->setEnabled(false); + m_aViewfile->setEnabled(true); + m_aStartSlide->setEnabled(false); m_stack->raiseWidget( ImageInfo ); } void PMainWindow::slotDisplay( const QString& inf ) { bool nwindow = false; if ( !m_disp ) { nwindow = true; initDisp(); } m_disp->setImage( inf ); - if (m_stack->mode() == Opie::Ui::OWidgetStack::SmallScreen) { + if (m_SmallWindow) { if (m_gPrevNext->isEnabled()==false) { m_gPrevNext->addTo(toolBar); - m_gPrevNext->setEnabled(true); - - m_aDirUp->setEnabled(false); - m_aShowInfo->setEnabled(true); - m_aViewfile->setEnabled(false); - m_aStartSlide->setEnabled(false); fsButton->hide(); } } + m_gPrevNext->setEnabled(true); + m_aDirUp->setEnabled(false); + m_aShowInfo->setEnabled(true); + m_aViewfile->setEnabled(false); + m_aStartSlide->setEnabled(false); + if (!nwindow && m_disp->fullScreen()!=m_aFullScreen->isOn()) { slotFullScreenToggled(m_aFullScreen->isOn()); } if (m_disp->fullScreen()) { qwsDisplay()->requestFocus( m_disp->winId(), TRUE); } else { m_stack->raiseWidget( ImageDisplay ); } } void PMainWindow::raiseIconView() { setUpdatesEnabled(false); - if (m_stack->mode() == Opie::Ui::OWidgetStack::SmallScreen) { + if (m_SmallWindow) { m_gPrevNext->removeFrom(toolBar); - m_gPrevNext->setEnabled(false); - m_aDirUp->setEnabled(true); - m_aShowInfo->setEnabled(true); - m_aViewfile->setEnabled(true); - m_aStartSlide->setEnabled(true); fsButton->show(); } + m_gPrevNext->setEnabled(false); + m_aDirUp->setEnabled(true); + m_aShowInfo->setEnabled(true); + m_aViewfile->setEnabled(true); + m_aStartSlide->setEnabled(true); + if (m_disp && m_disp->fullScreen() && m_disp->isVisible()) { m_disp->stopSlide(); m_disp->hide(); } m_stack->raiseWidget( IconView ); setUpdatesEnabled(true); repaint(); } void PMainWindow::slotReturn() { raiseIconView(); } @@ -613,24 +615,32 @@ void PMainWindow::setupActions() if (autoSave) { m_aZoomer->setOn(m_cfg->readBoolEntry("zoomeron",true)); } else { m_aZoomer->setOn (true); } connect(m_aZoomer,SIGNAL(toggled(bool)),this,SLOT(slotZoomerToggled(bool))); m_gDisplayType->insert(m_aAutoRotate); m_gDisplayType->insert(m_aUnscaled); m_gDisplayType->insert(m_aZoomer); m_hGroup = new QActionGroup(this,"actioncollection",false); m_hGroup->insert(m_aFullScreen); + + if (!m_SmallWindow) { + m_aForceSmall = new QAction(tr("Dont show seperate windows"),Resource::loadIconSet( "AppsIcon" ), 0, 0, this, 0, true); + m_aForceSmall->setToggleAction(true); + connect(m_aForceSmall,SIGNAL(toggled(bool)),this,SLOT(slotForceSmall(bool))); + } else { + m_aForceSmall = 0; + } } void PMainWindow::setupToolbar() { toolBar = new QToolBar( this ); addToolBar(toolBar); toolBar->setHorizontalStretchable( true ); setToolBarsMovable( false ); m_aDirUp->addTo( toolBar ); fsButton = new PFileSystem( toolBar ); connect( fsButton, SIGNAL( changeDir( const QString& ) ), @@ -638,25 +648,25 @@ void PMainWindow::setupToolbar() connect( this, SIGNAL( changeDir( const QString& ) ), m_view, SLOT(slotChangeDir( const QString& ) ) ); if (m_aBeam) { m_aBeam->addTo( toolBar ); } m_aShowInfo->addTo(toolBar); m_aTrash->addTo(toolBar); // m_aSetup->addTo(toolBar); m_gDisplayType->addTo(toolBar); - if (m_stack->mode() != Opie::Ui::OWidgetStack::SmallScreen) { + if (!m_SmallWindow) { m_gPrevNext->addTo(toolBar); } else { m_gPrevNext->setEnabled(false); } } void PMainWindow::setupMenu() { fileMenu = new QPopupMenu( menuBar() ); menuBar()->insertItem( tr( "File" ), fileMenu ); dispMenu = new QPopupMenu( menuBar() ); menuBar()->insertItem( tr( "Show" ), dispMenu ); @@ -681,24 +691,28 @@ void PMainWindow::setupMenu() } fileMenu->insertSeparator(); m_aTrash->addTo(fileMenu); listviewMenu = new QPopupMenu(dispMenu); dispMenu->insertItem(Resource::loadIconSet("opie-eye/opie-eye-thumb"),tr("Listview mode"),listviewMenu); m_gListViewMode->addTo(listviewMenu); dispMenu->insertSeparator(); m_aFullScreen->addTo(dispMenu); m_gDisplayType->addTo(dispMenu); dispMenu->insertSeparator(); m_gPrevNext->addTo(dispMenu); + if (m_aForceSmall) { + dispMenu->insertSeparator(); + m_aForceSmall->addTo(dispMenu); + } m_aSetup->addTo(settingsMenu); m_aHideToolbar->addTo(settingsMenu); } void PMainWindow::listviewselected(QAction*which) { if (!which || which->isOn()==false) return; int val = 1; if (which==m_aDirName) { val = 3; @@ -728,12 +742,27 @@ void PMainWindow::polish() m_setDocCalled = false; m_view->setDoccalled(false); } m_polishDone = true; QMainWindow::polish(); if (m_setDocCalled) { if (m_aFullScreen->isOn()) { QTimer::singleShot(0,this,SLOT(check_view_fullscreen())); } else if (m_stack->mode() != Opie::Ui::OWidgetStack::SmallScreen) { } } } + +void PMainWindow::slotForceSmall(bool how) +{ + odebug << "Disable separate windows: " << how << oendl; + if (m_stack) { + if (how) { + m_stack->forceMode(Opie::Ui::OWidgetStack::SmallScreen); + } else { + m_stack->forceMode(Opie::Ui::OWidgetStack::NoForce); + } + } + if (autoSave) { + m_cfg->writeEntry("dontshowseperate",how); + } +} |