Diffstat (limited to 'noncore/settings/aqpkg/mainwin.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | noncore/settings/aqpkg/mainwin.cpp | 29 |
1 files changed, 25 insertions, 4 deletions
diff --git a/noncore/settings/aqpkg/mainwin.cpp b/noncore/settings/aqpkg/mainwin.cpp index dfe6d9c..7fa311d 100644 --- a/noncore/settings/aqpkg/mainwin.cpp +++ b/noncore/settings/aqpkg/mainwin.cpp @@ -340,8 +340,25 @@ void MainWindow :: displaySettings() } delete dlg; } +void MainWindow :: closeEvent( QCloseEvent *e ) +{ + // If install dialog is visible, return to main view, otherwise close app + QWidget *widget = stack->visibleWidget(); + + if ( widget != networkPkgWindow && widget != progressWindow ) + { + if ( widget ) delete widget; + stack->raiseWidget( networkPkgWindow ); + e->ignore(); + } + else + { + e->accept(); + } +} + void MainWindow :: displayFindBar() { findBar->show(); findEdit->setFocus(); @@ -778,9 +795,10 @@ void MainWindow :: updateServer() InstallDlgImpl *dlg = new InstallDlgImpl( ipkg, tr( "Refreshing server package lists" ), tr( "Update lists" ) ); connect( dlg, SIGNAL( reloadData( InstallDlgImpl * ) ), this, SLOT( reloadData( InstallDlgImpl * ) ) ); - dlg->showMaximized(); + stack->addWidget( dlg, 3 ); + stack->raiseWidget( dlg ); // delete progDlg; } @@ -807,9 +825,10 @@ void MainWindow :: upgradePackages() InstallDlgImpl *dlg = new InstallDlgImpl( ipkg, tr( "Upgrading installed packages" ), tr ( "Upgrade" ) ); connect( dlg, SIGNAL( reloadData( InstallDlgImpl * ) ), this, SLOT( reloadData( InstallDlgImpl * ) ) ); - dlg->showMaximized(); + stack->addWidget( dlg, 3 ); + stack->raiseWidget( dlg ); } } void MainWindow :: downloadPackage() @@ -948,9 +967,10 @@ void MainWindow :: downloadRemotePackage() workingPackages.append( item ); InstallDlgImpl *dlg = new InstallDlgImpl( workingPackages, mgr, tr( "Download" ) ); connect( dlg, SIGNAL( reloadData( InstallDlgImpl * ) ), this, SLOT( reloadData( InstallDlgImpl * ) ) ); - dlg->showMaximized(); + stack->addWidget( dlg, 3 ); + stack->raiseWidget( dlg ); } void MainWindow :: applyChanges() @@ -986,9 +1006,10 @@ void MainWindow :: applyChanges() // do the stuff InstallDlgImpl *dlg = new InstallDlgImpl( workingPackages, mgr, tr( "Apply changes" ) ); connect( dlg, SIGNAL( reloadData( InstallDlgImpl * ) ), this, SLOT( reloadData( InstallDlgImpl * ) ) ); - dlg->showMaximized(); + stack->addWidget( dlg, 3 ); + stack->raiseWidget( dlg ); } // decide what to do - either remove, upgrade or install // Current rules: |