author | drw <drw> | 2003-03-19 02:48:27 (UTC) |
---|---|---|
committer | drw <drw> | 2003-03-19 02:48:27 (UTC) |
commit | f35989ef21fb5a27ebe6f6924ee2cc601318c1b8 (patch) (side-by-side diff) | |
tree | f169286f925c01758d1456027eb43743bb0cd162 /noncore/settings/aqpkg/mainwin.cpp | |
parent | 06ddd131a6f33d341290617e71a14006fc9957a1 (diff) | |
download | opie-f35989ef21fb5a27ebe6f6924ee2cc601318c1b8.zip opie-f35989ef21fb5a27ebe6f6924ee2cc601318c1b8.tar.gz opie-f35989ef21fb5a27ebe6f6924ee2cc601318c1b8.tar.bz2 |
Fix for bug #741
Diffstat (limited to 'noncore/settings/aqpkg/mainwin.cpp') (more/less context) (ignore 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 @@ -331,24 +331,41 @@ void MainWindow :: setDocument( const QString &doc ) */ void MainWindow :: displaySettings() { SettingsImpl *dlg = new SettingsImpl( mgr, this, "Settings", true ); if ( dlg->showDlg() ) { stack->raiseWidget( progressWindow ); updateData(); stack->raiseWidget( networkPkgWindow ); } 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(); } void MainWindow :: displayJumpBar() { jumpBar->show(); } @@ -770,25 +787,26 @@ void MainWindow :: updateServer() // Disable buttons to stop silly people clicking lots on them :) // First, write out ipkg_conf file so that ipkg can use it mgr->writeOutIpkgConf(); Ipkg *ipkg = new Ipkg; ipkg->setOption( "update" ); 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; } void MainWindow :: upgradePackages() { // We're gonna do an upgrade of all packages // First warn user that this isn't recommended // TODO - ODevice???? QString text = tr( "WARNING: Upgrading while\nOpie/Qtopia is running\nis NOT recommended!\n\nAre you sure?\n" ); QMessageBox warn( tr( "Warning" ), text, QMessageBox::Warning, QMessageBox::Yes, @@ -799,25 +817,26 @@ void MainWindow :: upgradePackages() if ( warn.exec() == QMessageBox::Yes ) { // First, write out ipkg_conf file so that ipkg can use it mgr->writeOutIpkgConf(); // Now run upgrade Ipkg *ipkg = new Ipkg; ipkg->setOption( "upgrade" ); 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() { bool doUpdate = true; if ( downloadEnabled ) { // See if any packages are selected bool found = false; if ( serversList->currentText() != LOCAL_SERVER ) { @@ -940,25 +959,26 @@ void MainWindow :: downloadRemotePackage() // grab details from dialog // QString package = dlg.getPackageLocation(); InstallData *item = new InstallData(); item->option = "I"; item->packageName = package; QList<InstallData> workingPackages; workingPackages.setAutoDelete( TRUE ); 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() { stickyOption = ""; // First, write out ipkg_conf file so that ipkg can use it mgr->writeOutIpkgConf(); // Now for each selected item // deal with it @@ -978,25 +998,26 @@ void MainWindow :: applyChanges() if ( workingPackages.count() == 0 ) { // Nothing to do QMessageBox::information( this, tr( "Nothing to do" ), tr( "No packages selected" ), tr( "OK" ) ); return; } // 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: // If not installed - install // If installed and different version available - upgrade // If installed and version up to date - remove InstallData *MainWindow :: dealWithItem( QCheckListItem *item ) { QString name = item->text(); // Get package |