History

Modified some usecases for async dialogs

vladest committed 9 years ago

Commit 4e5c6501 parent a87a93d6 files · +76 −55Browse files

Showing the changes to interface/src/scripting/WindowScriptingInterface.cpp (1 of 6 files). Show all

Unified · Split

interface/src/scripting/WindowScriptingInterface.cpp+11−5
@@ -116,11 +116,17 @@ QScriptValue WindowScriptingInterface::confirm(const QString& message) { · 115 unmodified lines
116116 /// Display a prompt with a text box
117117 /// \param const QString& message message to display
118118 /// \param const QString& defaultText default text in the text box
119−/// \return QScriptValue string text value in text box if the dialog was accepted, `null` otherwise.
120−QScriptValue WindowScriptingInterface::prompt(const QString& message, const QString& defaultText) {
121− bool ok = false;
122− QString result = OffscreenUi::getText(nullptr, "", message, QLineEdit::Normal, defaultText, &ok);
123− return ok ? QScriptValue(result) : QScriptValue::NullValue;
119+void WindowScriptingInterface::prompt(const QString& message, const QString& defaultText) {
120+ auto offscreenUi = DependencyManager::get<OffscreenUi>();
121+ connect(offscreenUi.data(), &OffscreenUi::inputDialogResponse,
122+ this, [=] (QVariant result) {
123+ auto offscreenUi = DependencyManager::get<OffscreenUi>();
124+ disconnect(offscreenUi.data(), &OffscreenUi::inputDialogResponse,
125+ this, nullptr);
126+ emit promptTextChanged(result.toString());
127+ });
128+
129+ OffscreenUi::getTextAsync(nullptr, "", message, QLineEdit::Normal, defaultText);
124130 }
125131
126132 CustomPromptResult WindowScriptingInterface::customPrompt(const QVariant& config) {