summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKatja Marttila <katja.marttila@qt.io>2020-04-29 14:33:28 +0300
committerKatja Marttila <katja.marttila@qt.io>2020-05-07 12:18:36 +0300
commit75540998b91fa34659887199ac48d82054361088 (patch)
treefd2f0af1b921ee3eacb2bb152262eafb25248f1d
parentdc9b19cd649ce10bcd3296cb3198c3ea758bd8ec (diff)
Use default button if auto-answer value not found
Invalid button values are already handled when parsing auto-answer values. But if valid button is given but it does not match to given messagebox answer, warning is printed and default value is used instead. Also print answer to console when using --auto-answer Change-Id: Ie7bb3bf671018ec84be9a8258692e6e0024d9a80 Reviewed-by: Iikka Eklund <iikka.eklund@qt.io> Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
-rw-r--r--src/libs/installer/messageboxhandler.cpp16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/libs/installer/messageboxhandler.cpp b/src/libs/installer/messageboxhandler.cpp
index c2cc492f1..2412cdf70 100644
--- a/src/libs/installer/messageboxhandler.cpp
+++ b/src/libs/installer/messageboxhandler.cpp
@@ -400,8 +400,20 @@ QMessageBox::StandardButton MessageBoxHandler::showMessageBox(MessageType messag
qCDebug(QInstaller::lcInstallerInstallLog).noquote() << identifier << ":" << title << ":" << text
<< availableAnswers;
- if (m_automaticAnswers.contains(identifier))
- return m_automaticAnswers.value(identifier);
+ if (m_automaticAnswers.contains(identifier)) {
+ QMessageBox::StandardButton selectedButton = m_automaticAnswers.value(identifier);
+ const QString buttonName = enumToString(QMessageBox::staticMetaObject, "StandardButton", selectedButton);
+ if (buttons & selectedButton) {
+ qCDebug(QInstaller::lcInstallerInstallLog).nospace() << "Automatic answer for "<< identifier
+ << ": " << buttonName;
+ } else {
+ qCDebug(QInstaller::lcInstallerInstallLog()).nospace() << "Invalid answer " << buttonName
+ << "for " << identifier << ". Using default value " << enumToString(QMessageBox::staticMetaObject,
+ "StandardButton", defaultButton) << " instead.";
+ selectedButton = defaultButton;
+ }
+ return selectedButton;
+ }
if (qobject_cast<QApplication*> (qApp) == nullptr) {
QMessageBox::StandardButton button = defaultButton;