History

isolate calls to the QtScript libraries to an interface we control

Heather Anderson committed 5 years ago

Commit 1e018db1 parent 713b29e260 files · +6904 −5064Browse files

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

Unified · Split

interface/src/scripting/WindowScriptingInterface.cpp+25−24
@@ -14,7 +14,7 @@ · 13 unmodified lines
1414 #include <QClipboard>
1515 #include <QtCore/QDir>
1616 #include <QMessageBox>
17−#include <QtScript/QScriptValue>
17+#include <ScriptValue.h>
1818 #include <QtGui/QDesktopServices>
1919 #include <shared/QtHelpers.h>
2020 #include <SettingHandle.h>
@@ -76,8 +76,8 @@ WindowScriptingInterface::~WindowScriptingInterface() { · 55 unmodified lines
7676 _messageBoxes.clear();
7777 }
7878
79−QScriptValue WindowScriptingInterface::hasFocus() {
80− return qApp->hasFocus();
79+ScriptValuePointer WindowScriptingInterface::hasFocus() {
80+ return engine()->newValue(qApp->hasFocus());
8181 }
8282
8383 void WindowScriptingInterface::setFocus() {
@@ -96,28 +96,29 @@ void WindowScriptingInterface::raise() { · 12 unmodified lines
9696
9797 /// Display an alert box
9898 /// \param const QString& message message to display
99−/// \return QScriptValue::UndefinedValue
99+/// \return ScriptValuePointer::UndefinedValue
100100 void WindowScriptingInterface::alert(const QString& message) {
101101 OffscreenUi::asyncWarning("", message, QMessageBox::Ok, QMessageBox::Ok);
102102 }
103103
104104 /// Display a confirmation box with the options 'Yes' and 'No'
105105 /// \param const QString& message message to display
106−/// \return QScriptValue `true` if 'Yes' was clicked, `false` otherwise
107−QScriptValue WindowScriptingInterface::confirm(const QString& message) {
108− return QScriptValue((QMessageBox::Yes == OffscreenUi::question("", message, QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes)));
106+/// \return ScriptValuePointer `true` if 'Yes' was clicked, `false` otherwise
107+ScriptValuePointer WindowScriptingInterface::confirm(const QString& message) {
108+ return engine()->newValue((QMessageBox::Yes == OffscreenUi::question("", message, QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes)));
109109 }
110110
111111 /// Display a prompt with a text box
112112 /// \param const QString& message message to display
113113 /// \param const QString& defaultText default text in the text box
114−/// \return QScriptValue string text value in text box if the dialog was accepted, `null` otherwise.
115−QScriptValue WindowScriptingInterface::prompt(const QString& message, const QString& defaultText) {
114+/// \return ScriptValuePointer string text value in text box if the dialog was accepted, `null` otherwise.
115+ScriptValuePointer WindowScriptingInterface::prompt(const QString& message, const QString& defaultText) {
116116 QString result = OffscreenUi::getText(nullptr, "", message, QLineEdit::Normal, defaultText);
117− if (QScriptValue(result).equals("")) {
118− return QScriptValue::NullValue;
117+ auto sResult = engine()->newValue(result);
118+ if (sResult->equals(engine()->newValue(""))) {
119+ return engine()->nullValue();
119120 }
120− return QScriptValue(result);
121+ return sResult;
121122 }
122123
123124 /// Display a prompt with a text box
@@ -217,8 +218,8 @@ void WindowScriptingInterface::ensureReticleVisible() const { · 93 unmodified lines
217218 /// working directory.
218219 /// \param const QString& title title of the window
219220 /// \param const QString& directory directory to start the directory browser at
220−/// \return QScriptValue file path as a string if one was selected, otherwise `QScriptValue::NullValue`
221−QScriptValue WindowScriptingInterface::browseDir(const QString& title, const QString& directory) {
221+/// \return ScriptValuePointer file path as a string if one was selected, otherwise `ScriptValuePointer::NullValue`
222+ScriptValuePointer WindowScriptingInterface::browseDir(const QString& title, const QString& directory) {
222223 ensureReticleVisible();
223224 QString path = directory;
224225 if (path.isEmpty()) {
@@ -231,7 +232,7 @@ QScriptValue WindowScriptingInterface::browseDir(const QString& title, const QSt · 6 unmodified lines
231232 if (!result.isEmpty()) {
232233 setPreviousBrowseLocation(QFileInfo(result).absolutePath());
233234 }
234− return result.isEmpty() ? QScriptValue::NullValue : QScriptValue(result);
235+ return result.isEmpty() ? engine()->nullValue() : engine()->newValue(result);
235236 }
236237
237238 /// Display a "browse to directory" dialog. If `directory` is an invalid file or directory the browser will start at the current
@@ -261,8 +262,8 @@ void WindowScriptingInterface::browseDirAsync(const QString& title, const QStrin · 23 unmodified lines
261262 /// \param const QString& title title of the window
262263 /// \param const QString& directory directory to start the file browser at
263264 /// \param const QString& nameFilter filter to filter filenames by - see `QFileDialog`
264−/// \return QScriptValue file path as a string if one was selected, otherwise `QScriptValue::NullValue`
265−QScriptValue WindowScriptingInterface::browse(const QString& title, const QString& directory, const QString& nameFilter) {
265+/// \return ScriptValuePointer file path as a string if one was selected, otherwise `ScriptValuePointer::NullValue`
266+ScriptValuePointer WindowScriptingInterface::browse(const QString& title, const QString& directory, const QString& nameFilter) {
266267 ensureReticleVisible();
267268 QString path = directory;
268269 if (path.isEmpty()) {
@@ -275,7 +276,7 @@ QScriptValue WindowScriptingInterface::browse(const QString& title, const QStrin · 6 unmodified lines
275276 if (!result.isEmpty()) {
276277 setPreviousBrowseLocation(QFileInfo(result).absolutePath());
277278 }
278− return result.isEmpty() ? QScriptValue::NullValue : QScriptValue(result);
279+ return result.isEmpty() ? engine()->nullValue() : engine()->newValue(result);
279280 }
280281
281282 /// Display an open file dialog. If `directory` is an invalid file or directory the browser will start at the current
@@ -308,8 +309,8 @@ void WindowScriptingInterface::browseAsync(const QString& title, const QString& · 26 unmodified lines
308309 /// \param const QString& title title of the window
309310 /// \param const QString& directory directory to start the file browser at
310311 /// \param const QString& nameFilter filter to filter filenames by - see `QFileDialog`
311−/// \return QScriptValue file path as a string if one was selected, otherwise `QScriptValue::NullValue`
312−QScriptValue WindowScriptingInterface::save(const QString& title, const QString& directory, const QString& nameFilter) {
312+/// \return ScriptValuePointer file path as a string if one was selected, otherwise `ScriptValuePointer::NullValue`
313+ScriptValuePointer WindowScriptingInterface::save(const QString& title, const QString& directory, const QString& nameFilter) {
313314 ensureReticleVisible();
314315 QString path = directory;
315316 if (path.isEmpty()) {
@@ -322,7 +323,7 @@ QScriptValue WindowScriptingInterface::save(const QString& title, const QString& · 6 unmodified lines
322323 if (!result.isEmpty()) {
323324 setPreviousBrowseLocation(QFileInfo(result).absolutePath());
324325 }
325− return result.isEmpty() ? QScriptValue::NullValue : QScriptValue(result);
326+ return result.isEmpty() ? engine()->nullValue() : engine()->newValue(result);
326327 }
327328
328329 /// Display a save file dialog. If `directory` is an invalid file or directory the browser will start at the current
@@ -355,8 +356,8 @@ void WindowScriptingInterface::saveAsync(const QString& title, const QString& di · 26 unmodified lines
355356 /// \param const QString& title title of the window
356357 /// \param const QString& directory directory to start the asset browser at
357358 /// \param const QString& nameFilter filter to filter asset names by - see `QFileDialog`
358−/// \return QScriptValue asset path as a string if one was selected, otherwise `QScriptValue::NullValue`
359−QScriptValue WindowScriptingInterface::browseAssets(const QString& title, const QString& directory, const QString& nameFilter) {
359+/// \return ScriptValuePointer asset path as a string if one was selected, otherwise `ScriptValuePointer::NullValue`
360+ScriptValuePointer WindowScriptingInterface::browseAssets(const QString& title, const QString& directory, const QString& nameFilter) {
360361 ensureReticleVisible();
361362 QString path = directory;
362363 if (path.isEmpty()) {
@@ -372,7 +373,7 @@ QScriptValue WindowScriptingInterface::browseAssets(const QString& title, const · 9 unmodified lines
372373 if (!result.isEmpty()) {
373374 setPreviousBrowseAssetLocation(QFileInfo(result).absolutePath());
374375 }
375− return result.isEmpty() ? QScriptValue::NullValue : QScriptValue(result);
376+ return result.isEmpty() ? engine()->nullValue() : engine()->newValue(result);
376377 }
377378
378379 /// Display a select asset dialog that lets the user select an asset from the Asset Server. If `directory` is an invalid