-rw-r--r-- | noncore/graphics/opie-eye/gui/mainwindow.cpp | 85 | ||||
-rw-r--r-- | noncore/graphics/opie-eye/gui/mainwindow.h | 6 |
2 files changed, 61 insertions, 30 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 @@ -43,16 +43,17 @@ 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 ); @@ -70,16 +71,19 @@ PMainWindow::PMainWindow(QWidget* wid, const char* name, WFlags style) 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() { @@ -249,19 +253,19 @@ void PMainWindow::initT( const char* name, T** ptr, int id) { 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())); @@ -301,27 +305,24 @@ void PMainWindow::setupViewWindow(bool current, bool forceDisplay) 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()) { @@ -349,70 +350,71 @@ void PMainWindow::slotFullScreenToggled(bool current) 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(); } @@ -617,16 +619,24 @@ void PMainWindow::setupActions() } 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 ); @@ -642,17 +652,17 @@ void PMainWindow::setupToolbar() 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() { @@ -685,16 +695,20 @@ void PMainWindow::setupMenu() 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; @@ -732,8 +746,23 @@ void PMainWindow::polish() 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); + } +} diff --git a/noncore/graphics/opie-eye/gui/mainwindow.h b/noncore/graphics/opie-eye/gui/mainwindow.h index 2f54090..a49a9d3 100644 --- a/noncore/graphics/opie-eye/gui/mainwindow.h +++ b/noncore/graphics/opie-eye/gui/mainwindow.h @@ -75,36 +75,38 @@ private: void setupViewWindow(bool full, bool forceDisplay); private: Opie::Core::OConfig *m_cfg; Opie::Ui::OWidgetStack *m_stack; PIconView* m_view; imageinfo *m_info; ImageView *m_disp; - bool autoSave; + bool autoSave:1; bool m_setDocCalled:1; bool m_polishDone:1; + bool m_SmallWindow:1; QToolButton*fsButton; QToolBar *toolBar; QPopupMenu *fileMenu,*dispMenu,*fsMenu,*listviewMenu,*settingsMenu; QAction*m_aShowInfo,*m_aBeam,*m_aTrash,*m_aViewfile,*m_aDirUp,*m_aStartSlide; QAction*m_aHideToolbar,*m_aSetup,*m_aDirName,*m_aDirShort,*m_aDirLong; QActionGroup *m_gListViewMode,*m_gDisplayType,*m_gPrevNext,*m_hGroup; QAction *m_aNext,*m_aPrevious,*m_aFullScreen; - QAction *m_aAutoRotate,*m_aUnscaled,*m_aZoomer; + QAction *m_aAutoRotate,*m_aUnscaled,*m_aZoomer,*m_aForceSmall; /* init funs */ void readConfig(); void setupActions(); void setupToolbar(); void setupMenu(); /* for the device submenu - ToDo: Merge with the special button */ StorageInfo *m_storage; QMap<QString, QString> m_dev; private slots: void slotConfig(); void slotSelectDir(int); void dirChanged(); + void slotForceSmall(bool); }; #endif |