diff options
author | Katja Marttila <katja.marttila@qt.io> | 2020-04-29 14:33:28 +0300 |
---|---|---|
committer | Katja Marttila <katja.marttila@qt.io> | 2020-05-07 12:18:36 +0300 |
commit | 75540998b91fa34659887199ac48d82054361088 (patch) | |
tree | fd2f0af1b921ee3eacb2bb152262eafb25248f1d | |
parent | dc9b19cd649ce10bcd3296cb3198c3ea758bd8ec (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.cpp | 16 |
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; |