dialog parent fix, etc
[fapman] / mainwindow.cpp
index 28009c1..02b325b 100644 (file)
@@ -313,6 +313,10 @@ void MainWindow::operationQueueFinished(QList<AAptInterface::interfaceMode> last
                GdkEventIconThemeReload();
        }
 
+       QWidget* dialogParent = this;
+       if( iWinPackageView->isVisible() )
+               dialogParent = iWinPackageView;
+
        if( iNextOperation == OpOpenPkgView && success )
        {
                iWinPackageView->openWin();
@@ -422,30 +426,30 @@ void MainWindow::operationQueueFinished(QList<AAptInterface::interfaceMode> last
                pkglist += "</font>";
 
                if( mismatch ) {
-                       ConfirmDialog m(false, this);
+                       ConfirmDialog m(false, dialogParent);
                        m.setText("Warning", "There is a version mismatch between your original package selections and some of the packages being installed " \
                                          "from the repositories. This could be due to your application catalogs being out of date.");
                        m.exec();
                }
                if( installing_blacklisted ) {
-                       ConfirmDialog b(false, this);
+                       ConfirmDialog b(false, dialogParent);
                        b.setText("Warning","Blacklisted package(s) will be installed");
                        b.exec();
                }
                if( warn_system_package_remove ) {
-                       ConfirmDialog s(false, this);
+                       ConfirmDialog s(false, dialogParent);
                        s.setText("Warning","You are about to remove a critical system package.");
                        s.exec();
                }
                if( warn_system_package_install ) {
-                       ConfirmDialog s(false, this);
+                       ConfirmDialog s(false, dialogParent);
                        s.setText("Warning","You are trying to perform an install/upgrade operation on a critical system package. Doing a system upgrade with " \
                                          "Faster Application Manager has not been tested and it could result in a horrible failure. You have been warned.");
                        s.exec();
                }
 
                busyDialog(false);
-               ConfirmDialog d(true, this);
+               ConfirmDialog d(true, dialogParent);
                if( inst.count()==0 && remv.count()==0 )
                {
                        pkglist = "None of the packages can be installed";
@@ -491,14 +495,14 @@ void MainWindow::operationQueueFinished(QList<AAptInterface::interfaceMode> last
 
                QRect r = QApplication::desktop()->rect();
                if(r.width() < r.height()) {
-                       ConfirmDialog d(false, this);
+                       ConfirmDialog d(false, dialogParent);
                        d.setText(title,msgs.join("<br>"));
                        d.exec();
                } else {
 #ifdef Q_WS_MAEMO_5
                        QMaemo5InformationBox::information(0, text, QMaemo5InformationBox::NoTimeout);
 #else
-                       ConfirmDialog d(false, this);
+                       ConfirmDialog d(false, dialogParent);
                        d.setText(title,msgs.join("<br>"));
                        d.exec();
 #endif
@@ -571,14 +575,22 @@ void MainWindow::on_actionOptions_triggered()
 
 void MainWindow::notifyDialog(QString title, QString msg)
 {
-       ConfirmDialog d(false, this);
+       QWidget* dialogParent = this;
+       if( iWinPackageView->isVisible() )
+               dialogParent = iWinPackageView;
+
+       ConfirmDialog d(false, dialogParent);
        d.setText(title, msg);
        d.exec();
 }
 
 bool MainWindow::confirmDialog(QString title, QString msg)
 {
-       ConfirmDialog d(true, this);
+       QWidget* dialogParent = this;
+       if( iWinPackageView->isVisible() )
+               dialogParent = iWinPackageView;
+
+       ConfirmDialog d(true, dialogParent);
        d.setText(title, msg);
        return d.exec();
 }