aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/android/androidsdkmanager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/android/androidsdkmanager.cpp')
-rw-r--r--src/plugins/android/androidsdkmanager.cpp20
1 files changed, 17 insertions, 3 deletions
diff --git a/src/plugins/android/androidsdkmanager.cpp b/src/plugins/android/androidsdkmanager.cpp
index 1cba998f1aa..ebf28506c17 100644
--- a/src/plugins/android/androidsdkmanager.cpp
+++ b/src/plugins/android/androidsdkmanager.cpp
@@ -8,6 +8,7 @@
#include <coreplugin/icore.h>
+#include <solutions/tasking/conditional.h>
#include <solutions/tasking/tasktreerunner.h>
#include <utils/algorithm.h>
@@ -77,6 +78,7 @@ public:
emit answerClicked(true);
});
connect(m_dialogButtonBox, &QDialogButtonBox::rejected, this, &QDialog::reject);
+ connect(m_dialogButtonBox, &QDialogButtonBox::accepted, this, &QDialog::accept);
// GUI tuning
setModal(true);
@@ -100,6 +102,10 @@ public:
m_outputTextEdit->ensureCursorVisible();
}
void setProgress(int value) { m_progressBar->setValue(value); }
+ void setDone()
+ {
+ m_dialogButtonBox->setStandardButtons(QDialogButtonBox::Close);
+ }
signals:
void answerClicked(bool accepted);
@@ -546,12 +552,20 @@ void AndroidSdkManagerPrivate::runDialogRecipe(const Storage<DialogStorage> &dia
const auto onCancelSetup = [dialogStorage] {
return std::make_pair(dialogStorage->m_dialog.get(), &QDialog::rejected);
};
+ const auto onAcceptSetup = [dialogStorage] {
+ return std::make_pair(dialogStorage->m_dialog.get(), &QDialog::accepted);
+ };
+ const auto onError = [dialogStorage] { dialogStorage->m_dialog->setDone(); };
const Group root {
dialogStorage,
Group {
- licensesRecipe,
- Sync([dialogStorage] { dialogStorage->m_dialog->setQuestionVisible(false); }),
- continuationRecipe
+ If (!Group {
+ licensesRecipe,
+ Sync([dialogStorage] { dialogStorage->m_dialog->setQuestionVisible(false); }),
+ continuationRecipe
+ }) >> Then {
+ Sync(onError).withAccept(onAcceptSetup)
+ }
}.withCancel(onCancelSetup)
};
m_taskTreeRunner.start(root, {}, [this](DoneWith) {