From e24f3fef770d250a40290a65bebd17f66121fc29 Mon Sep 17 00:00:00 2001 From: Tannin Date: Thu, 17 Jul 2014 20:04:22 +0200 Subject: - bugfix: broke qt4 compatibility in trying to support qt5 - bugfix: overwrite dialog displayed system drives if the overwrite directory didn't exist - bugfix: ini tweak activation wasn't saved --- src/mainwindow.cpp | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) (limited to 'src/mainwindow.cpp') diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 19cefa89..cf283b49 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -3221,14 +3221,20 @@ void MainWindow::displayModInformation(ModInfo::Ptr modInfo, unsigned int index, std::vector flags = modInfo->getFlags(); if (std::find(flags.begin(), flags.end(), ModInfo::FLAG_OVERWRITE) != flags.end()) { QDialog *dialog = this->findChild("__overwriteDialog"); - if (dialog == NULL) { - dialog = new OverwriteInfoDialog(modInfo, this); - dialog->setObjectName("__overwriteDialog"); - } - dialog->show(); - dialog->raise(); - dialog->activateWindow(); - connect(dialog, SIGNAL(finished(int)), this, SLOT(overwriteClosed(int))); + try { + if (dialog == NULL) { + dialog = new OverwriteInfoDialog(modInfo, this); + dialog->setObjectName("__overwriteDialog"); + } else { + qobject_cast(dialog)->setModInfo(modInfo); + } + dialog->show(); + dialog->raise(); + dialog->activateWindow(); + connect(dialog, SIGNAL(finished(int)), this, SLOT(overwriteClosed(int))); + } catch (const std::exception &e) { + reportError(tr("Failed to display overwrite dialog: %1").arg(e.what())); + } } else { modInfo->saveMeta(); ModInfoDialog dialog(modInfo, m_DirectoryStructure, modInfo->hasFlag(ModInfo::FLAG_FOREIGN), this); -- cgit v1.3.1