summaryrefslogtreecommitdiff
path: root/noncore/graphics/opie-eye/gui/mainwindow.cpp
Unidiff
Diffstat (limited to 'noncore/graphics/opie-eye/gui/mainwindow.cpp') (more/less context) (show whitespace changes)
-rw-r--r--noncore/graphics/opie-eye/gui/mainwindow.cpp52
1 files changed, 37 insertions, 15 deletions
diff --git a/noncore/graphics/opie-eye/gui/mainwindow.cpp b/noncore/graphics/opie-eye/gui/mainwindow.cpp
index 570ee45..ece51a1 100644
--- a/noncore/graphics/opie-eye/gui/mainwindow.cpp
+++ b/noncore/graphics/opie-eye/gui/mainwindow.cpp
@@ -40,14 +40,14 @@
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("phunkview"); 46 m_cfg = new Opie::Core::OConfig("opie-eye");
47 m_cfg->setGroup("Zecke_view" ); 47 m_cfg->setGroup("main" );
48 48
49 m_storage = new StorageInfo(); 49 m_storage = new StorageInfo();
50 connect(m_storage, SIGNAL(disksChanged() ), 50 connect(m_storage, SIGNAL(disksChanged() ),
51 this, SLOT( dirChanged() ) ); 51 this, SLOT( dirChanged() ) );
52 52
53 m_stack = new Opie::Ui::OWidgetStack( this ); 53 m_stack = new Opie::Ui::OWidgetStack( this );
@@ -105,13 +105,12 @@ void PMainWindow::slotToggleAutoscale()
105 bool cur = m_aAutoScale->isOn(); 105 bool cur = m_aAutoScale->isOn();
106 m_aAutoScale->setOn(!cur); 106 m_aAutoScale->setOn(!cur);
107} 107}
108 108
109void PMainWindow::slotRotateToggled(bool how) 109void PMainWindow::slotRotateToggled(bool how)
110{ 110{
111 odebug << "Autorotate: " << how << oendl;
112 autoRotate = how; 111 autoRotate = how;
113 if (m_disp) { 112 if (m_disp) {
114 m_disp->setAutoScaleRotate(!m_aAutoScale->isOn(),m_aAutoRotate->isOn()); 113 m_disp->setAutoScaleRotate(!m_aAutoScale->isOn(),m_aAutoRotate->isOn());
115 } 114 }
116} 115}
117 116
@@ -223,16 +222,18 @@ void PMainWindow::initT( const char* name, T** ptr, int id) {
223 m_stack->addWidget( *ptr, id ); 222 m_stack->addWidget( *ptr, id );
224 223
225 connect(*ptr, SIGNAL(sig_return()), 224 connect(*ptr, SIGNAL(sig_return()),
226 this,SLOT(slotReturn())); 225 this,SLOT(slotReturn()));
227 226
228} 227}
228
229void PMainWindow::initInfo() { 229void PMainWindow::initInfo() {
230 initT<imageinfo>( "Image Info", &m_info, ImageInfo ); 230 initT<imageinfo>( "Image Info", &m_info, ImageInfo );
231 connect(m_info,SIGNAL(dispImage(const QString&)),this,SLOT(slotDisplay(const QString&))); 231 connect(m_info,SIGNAL(dispImage(const QString&)),this,SLOT(slotDisplay(const QString&)));
232} 232}
233
233void PMainWindow::initDisp() { 234void PMainWindow::initDisp() {
234 initT<ImageView>( "Image ScrollView", &m_disp, ImageDisplay ); 235 initT<ImageView>( "Image ScrollView", &m_disp, ImageDisplay );
235 if (m_disp) { 236 if (m_disp) {
236 if (m_stack->mode() != Opie::Ui::OWidgetStack::SmallScreen) { 237 if (m_stack->mode() != Opie::Ui::OWidgetStack::SmallScreen) {
237 m_disp->setMinimumSize(QApplication::desktop()->size()/2); 238 m_disp->setMinimumSize(QApplication::desktop()->size()/2);
238 } 239 }
@@ -253,31 +254,45 @@ void PMainWindow::initDisp() {
253 slotFullScreenToggled(m_aFullScreen->isOn()); 254 slotFullScreenToggled(m_aFullScreen->isOn());
254 } 255 }
255} 256}
256 257
257void PMainWindow::slotToggleFullScreen() 258void PMainWindow::slotToggleFullScreen()
258{ 259{
259 odebug << "Toggle full " << oendl;
260 bool current = !m_aFullScreen->isOn(); 260 bool current = !m_aFullScreen->isOn();
261 m_aFullScreen->setOn(current); 261 m_aFullScreen->setOn(current);
262} 262}
263 263
264void PMainWindow::slotFullScreenToggled(bool current) 264void PMainWindow::slotFullScreenButton(bool current)
265{
266 if (m_disp) odebug << "Disp fenster ist hidden: "<<m_disp->isHidden()<<oendl;
267 if (!m_disp) return;
268
269 /* I can not solve this effects here - it seems that we require some
270 status variable, too. so we will live with some interesting effects
271 meanwhile */
272#if 0
273 bool th = m_disp->isHidden();
274 setupViewWindow(current, false);
275 /* realy - after setting up the fullscreenmode while the window is hidden
276 it is unvisibile not hidden!!!!! Hell. */
277 if (th) m_disp->hide();
278#endif
279 setupViewWindow(current, true);
280}
281
282void PMainWindow::setupViewWindow(bool current, bool forceDisplay)
265{ 283{
266 odebug << "slotFullScreenToggled " << current << oendl;
267 if (!m_disp) return; 284 if (!m_disp) return;
268 if (current) { 285 if (current) {
269 odebug << "full" << oendl;
270 m_disp->setBackgroundColor(black); 286 m_disp->setBackgroundColor(black);
271 m_disp->reparent(0, WStyle_Customize | WStyle_NoBorder, QPoint(0,0)); 287 m_disp->reparent(0, WStyle_Customize | WStyle_NoBorder, QPoint(0,0));
272 m_disp->setVScrollBarMode(QScrollView::AlwaysOff); 288 m_disp->setVScrollBarMode(QScrollView::AlwaysOff);
273 m_disp->setHScrollBarMode(QScrollView::AlwaysOff); 289 m_disp->setHScrollBarMode(QScrollView::AlwaysOff);
274 m_disp->resize(qApp->desktop()->width(), qApp->desktop()->height()); 290 m_disp->resize(qApp->desktop()->width(), qApp->desktop()->height());
275 } else { 291 } else {
276 setUpdatesEnabled(false); 292 setUpdatesEnabled(false);
277 odebug << "window" << oendl;
278 if (m_stack->mode() != Opie::Ui::OWidgetStack::SmallScreen) { 293 if (m_stack->mode() != Opie::Ui::OWidgetStack::SmallScreen) {
279 m_disp->setMinimumSize(QApplication::desktop()->size()/2); 294 m_disp->setMinimumSize(QApplication::desktop()->size()/2);
280 } else { 295 } else {
281 m_disp->setMinimumSize(10,10); 296 m_disp->setMinimumSize(10,10);
282 } 297 }
283 if (m_stack->mode() != Opie::Ui::OWidgetStack::SmallScreen) { 298 if (m_stack->mode() != Opie::Ui::OWidgetStack::SmallScreen) {
@@ -286,19 +301,25 @@ void PMainWindow::slotFullScreenToggled(bool current)
286 m_disp->reparent(0,QPoint(0,0)); 301 m_disp->reparent(0,QPoint(0,0));
287 } 302 }
288 m_disp->setBackgroundColor(white); 303 m_disp->setBackgroundColor(white);
289 m_stack->addWidget(m_disp,ImageDisplay); 304 m_stack->addWidget(m_disp,ImageDisplay);
290 m_disp->setVScrollBarMode(QScrollView::Auto); 305 m_disp->setVScrollBarMode(QScrollView::Auto);
291 m_disp->setHScrollBarMode(QScrollView::Auto); 306 m_disp->setHScrollBarMode(QScrollView::Auto);
307 if (forceDisplay || m_disp->isVisible())
292 m_stack->raiseWidget(m_disp); 308 m_stack->raiseWidget(m_disp);
293 if (m_stack->mode() != Opie::Ui::OWidgetStack::SmallScreen) { 309 if (m_stack->mode() != Opie::Ui::OWidgetStack::SmallScreen) {
294 m_disp->resize(m_disp->minimumSize()); 310 m_disp->resize(m_disp->minimumSize());
295 } 311 }
296 setUpdatesEnabled(true); 312 setUpdatesEnabled(true);
297 } 313 }
298 m_disp->setFullScreen(current); 314 m_disp->setFullScreen(current,forceDisplay);
315}
316
317void PMainWindow::slotFullScreenToggled(bool current)
318{
319 setupViewWindow(current,true);
299} 320}
300 321
301/** 322/**
302 * With big Screen the plan could be to 'detach' the image 323 * With big Screen the plan could be to 'detach' the image
303 * window if visible and to create a ne wone 324 * window if visible and to create a ne wone
304 * init* already supports it but I make no use of it for 325 * init* already supports it but I make no use of it for
@@ -326,13 +347,12 @@ void PMainWindow::slotShowInfo( const QString& inf ) {
326 fsButton->hide(); 347 fsButton->hide();
327 } 348 }
328 m_stack->raiseWidget( ImageInfo ); 349 m_stack->raiseWidget( ImageInfo );
329} 350}
330 351
331void PMainWindow::slotDisplay( const QString& inf ) { 352void PMainWindow::slotDisplay( const QString& inf ) {
332 odebug << "slotDisplay: " << inf << oendl;
333 if ( !m_disp ) { 353 if ( !m_disp ) {
334 initDisp(); 354 initDisp();
335 } 355 }
336 m_disp->setImage( inf ); 356 m_disp->setImage( inf );
337 if (m_stack->mode() == Opie::Ui::OWidgetStack::SmallScreen) { 357 if (m_stack->mode() == Opie::Ui::OWidgetStack::SmallScreen) {
338 if (m_gPrevNext->isEnabled()==false) { 358 if (m_gPrevNext->isEnabled()==false) {
@@ -344,13 +364,12 @@ void PMainWindow::slotDisplay( const QString& inf ) {
344 m_aViewfile->setEnabled(false); 364 m_aViewfile->setEnabled(false);
345 m_aStartSlide->setEnabled(false); 365 m_aStartSlide->setEnabled(false);
346 fsButton->hide(); 366 fsButton->hide();
347 } 367 }
348 } 368 }
349 if (m_disp->fullScreen()) { 369 if (m_disp->fullScreen()) {
350 //m_disp->showFullScreen();
351 qwsDisplay()->requestFocus( m_disp->winId(), TRUE); 370 qwsDisplay()->requestFocus( m_disp->winId(), TRUE);
352 } else { 371 } else {
353 m_stack->raiseWidget( ImageDisplay ); 372 m_stack->raiseWidget( ImageDisplay );
354 } 373 }
355} 374}
356 375
@@ -515,13 +534,13 @@ void PMainWindow::setupActions()
515 m_gPrevNext->insert(m_aNext); 534 m_gPrevNext->insert(m_aNext);
516 535
517 m_aFullScreen = new QAction( tr( "Show images fullscreen" ), 536 m_aFullScreen = new QAction( tr( "Show images fullscreen" ),
518 Resource::loadIconSet("fullscreen"), 0, 0, this, 0, true ); 537 Resource::loadIconSet("fullscreen"), 0, 0, this, 0, true );
519 m_aFullScreen->setToggleAction(true); 538 m_aFullScreen->setToggleAction(true);
520 m_aFullScreen->setOn(false); 539 m_aFullScreen->setOn(false);
521 connect(m_aFullScreen,SIGNAL(toggled(bool)),this,SLOT(slotFullScreenToggled(bool))); 540 connect(m_aFullScreen,SIGNAL(toggled(bool)),this,SLOT(slotFullScreenButton(bool)));
522 541
523 m_gDisplayType = new QActionGroup(this,"imagedisplaytype",false); 542 m_gDisplayType = new QActionGroup(this,"imagedisplaytype",false);
524 m_aAutoRotate = new QAction( tr( "Auto rotate images" ), Resource::loadIconSet( "rotate" ), 0, 0, this, 0, true ); 543 m_aAutoRotate = new QAction( tr( "Auto rotate images" ), Resource::loadIconSet( "rotate" ), 0, 0, this, 0, true );
525 m_aAutoRotate->setToggleAction(true); 544 m_aAutoRotate->setToggleAction(true);
526 if (m_stack->mode() == Opie::Ui::OWidgetStack::SmallScreen) { 545 if (m_stack->mode() == Opie::Ui::OWidgetStack::SmallScreen) {
527 m_aAutoRotate->setOn(true); 546 m_aAutoRotate->setOn(true);
@@ -566,13 +585,13 @@ void PMainWindow::setupToolbar()
566 585
567 if (m_aBeam) { 586 if (m_aBeam) {
568 m_aBeam->addTo( toolBar ); 587 m_aBeam->addTo( toolBar );
569 } 588 }
570 m_aShowInfo->addTo(toolBar); 589 m_aShowInfo->addTo(toolBar);
571 m_aTrash->addTo(toolBar); 590 m_aTrash->addTo(toolBar);
572 m_aSetup->addTo(toolBar); 591// m_aSetup->addTo(toolBar);
573 592
574 m_gDisplayType->addTo(toolBar); 593 m_gDisplayType->addTo(toolBar);
575 594
576 if (m_stack->mode() != Opie::Ui::OWidgetStack::SmallScreen) { 595 if (m_stack->mode() != Opie::Ui::OWidgetStack::SmallScreen) {
577 m_gPrevNext->addTo(toolBar); 596 m_gPrevNext->addTo(toolBar);
578 } else { 597 } else {
@@ -583,12 +602,14 @@ void PMainWindow::setupToolbar()
583void PMainWindow::setupMenu() 602void PMainWindow::setupMenu()
584{ 603{
585 fileMenu = new QPopupMenu( menuBar() ); 604 fileMenu = new QPopupMenu( menuBar() );
586 menuBar()->insertItem( tr( "File" ), fileMenu ); 605 menuBar()->insertItem( tr( "File" ), fileMenu );
587 dispMenu = new QPopupMenu( menuBar() ); 606 dispMenu = new QPopupMenu( menuBar() );
588 menuBar()->insertItem( tr( "Show" ), dispMenu ); 607 menuBar()->insertItem( tr( "Show" ), dispMenu );
608 settingsMenu = new QPopupMenu( menuBar() );
609 menuBar()->insertItem( tr( "Settings" ), settingsMenu );
589 610
590 m_aViewfile->addTo(fileMenu); 611 m_aViewfile->addTo(fileMenu);
591 m_aShowInfo->addTo(fileMenu); 612 m_aShowInfo->addTo(fileMenu);
592 m_aStartSlide->addTo(fileMenu); 613 m_aStartSlide->addTo(fileMenu);
593 614
594 fileMenu->insertSeparator(); 615 fileMenu->insertSeparator();
@@ -601,24 +622,25 @@ void PMainWindow::setupMenu()
601 622
602 if ( m_aBeam ) { 623 if ( m_aBeam ) {
603 fileMenu->insertSeparator(); 624 fileMenu->insertSeparator();
604 m_aBeam->addTo( fileMenu ); 625 m_aBeam->addTo( fileMenu );
605 } 626 }
606 fileMenu->insertSeparator(); 627 fileMenu->insertSeparator();
607 m_aSetup->addTo(fileMenu);
608 m_aTrash->addTo(fileMenu); 628 m_aTrash->addTo(fileMenu);
609 629
610 m_aHideToolbar->addTo(dispMenu);
611 listviewMenu = new QPopupMenu(dispMenu); 630 listviewMenu = new QPopupMenu(dispMenu);
612 dispMenu->insertItem(Resource::loadIconSet("opie-eye/opie-eye-thumb"),tr("Listview mode"),listviewMenu); 631 dispMenu->insertItem(Resource::loadIconSet("opie-eye/opie-eye-thumb"),tr("Listview mode"),listviewMenu);
613 m_gListViewMode->addTo(listviewMenu); 632 m_gListViewMode->addTo(listviewMenu);
614 dispMenu->insertSeparator(); 633 dispMenu->insertSeparator();
615 m_aFullScreen->addTo(dispMenu); 634 m_aFullScreen->addTo(dispMenu);
616 m_gDisplayType->addTo(dispMenu); 635 m_gDisplayType->addTo(dispMenu);
617 dispMenu->insertSeparator(); 636 dispMenu->insertSeparator();
618 m_gPrevNext->addTo(dispMenu); 637 m_gPrevNext->addTo(dispMenu);
638
639 m_aSetup->addTo(settingsMenu);
640 m_aHideToolbar->addTo(settingsMenu);
619} 641}
620 642
621void PMainWindow::listviewselected(QAction*which) 643void PMainWindow::listviewselected(QAction*which)
622{ 644{
623 if (!which || which->isOn()==false) return; 645 if (!which || which->isOn()==false) return;
624 int val = 1; 646 int val = 1;