History

Added S3 browser

Atlante45 committed 12 years ago

Commit 7ab8b5a1 parent 87ff6b95 files · +53 −13Browse files

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

Unified · Split

interface/src/scripting/WindowScriptingInterface.cpp+24−1
@@ -18,6 +18,7 @@ · 17 unmodified lines
1818
1919 #include "Application.h"
2020 #include "Menu.h"
21+#include "ui/ModelsBrowser.h"
2122
2223 #include "WindowScriptingInterface.h"
2324
@@ -66,6 +67,14 @@ QScriptValue WindowScriptingInterface::browse(const QString& title, const QStrin · 42 unmodified lines
6667 return retVal;
6768 }
6869
70+QScriptValue WindowScriptingInterface::s3Browse(const QString& nameFilter) {
71+ QScriptValue retVal;
72+ QMetaObject::invokeMethod(this, "showS3Browse", Qt::BlockingQueuedConnection,
73+ Q_RETURN_ARG(QScriptValue, retVal),
74+ Q_ARG(const QString&, nameFilter));
75+ return retVal;
76+}
77+
6978 /// Display an alert box
7079 /// \param const QString& message message to display
7180 /// \return QScriptValue::UndefinedValue
@@ -182,7 +191,7 @@ QScriptValue WindowScriptingInterface::showBrowse(const QString& title, const QS · 110 unmodified lines
182191 fileInfo.setFile(directory, "__HIFI_INVALID_FILE__");
183192 path = fileInfo.filePath();
184193 }
185−
194+
186195 QFileDialog fileDialog(Application::getInstance()->getWindow(), title, path, nameFilter);
187196 fileDialog.setFileMode(QFileDialog::ExistingFile);
188197 if (fileDialog.exec()) {
@@ -191,6 +200,20 @@ QScriptValue WindowScriptingInterface::showBrowse(const QString& title, const QS · 2 unmodified lines
191200 return QScriptValue::NullValue;
192201 }
193202
203+/// Display a browse window for S3 models
204+/// \param const QString& nameFilter filter to filter filenames
205+/// \return QScriptValue file path as a string if one was selected, otherwise `QScriptValue::NullValue`
206+QScriptValue WindowScriptingInterface::showS3Browse(const QString& nameFilter) {
207+ ModelsBrowser browser(ENTITY_MODEL);
208+ browser.setNameFilter(nameFilter);
209+ QEventLoop loop;
210+ connect(&browser, &ModelsBrowser::selected, &loop, &QEventLoop::quit);
211+ QMetaObject::invokeMethod(&browser, "browse", Qt::QueuedConnection);
212+ loop.exec();
213+
214+ return browser.getSelectedFile();
215+}
216+
194217 int WindowScriptingInterface::getInnerWidth() {
195218 return Application::getInstance()->getWindow()->geometry().width();
196219 }