History

Merge branch 'master' into 19840

Resolved conflicts in editModels.js

David Rowe committed 12 years ago

Commit fbaeeef2 parents 53602c2 0650169304 files · +13636 −7456Browse files

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

Unified · Split

interface/src/scripting/WindowScriptingInterface.cpp+19−2
@@ -67,6 +67,15 @@ QScriptValue WindowScriptingInterface::browse(const QString& title, const QStrin · 66 unmodified lines
6767 return retVal;
6868 }
6969
70+QScriptValue WindowScriptingInterface::save(const QString& title, const QString& directory, const QString& nameFilter) {
71+ QScriptValue retVal;
72+ QMetaObject::invokeMethod(this, "showBrowse", Qt::BlockingQueuedConnection,
73+ Q_RETURN_ARG(QScriptValue, retVal),
74+ Q_ARG(const QString&, title), Q_ARG(const QString&, directory), Q_ARG(const QString&, nameFilter),
75+ Q_ARG(QFileDialog::AcceptMode, QFileDialog::AcceptSave));
76+ return retVal;
77+}
78+
7079 QScriptValue WindowScriptingInterface::s3Browse(const QString& nameFilter) {
7180 QScriptValue retVal;
7281 QMetaObject::invokeMethod(this, "showS3Browse", Qt::BlockingQueuedConnection,
@@ -280,18 +289,26 @@ QScriptValue WindowScriptingInterface::showPrompt(const QString& message, const · 207 unmodified lines
280289 /// \param const QString& directory directory to start the file browser at
281290 /// \param const QString& nameFilter filter to filter filenames by - see `QFileDialog`
282291 /// \return QScriptValue file path as a string if one was selected, otherwise `QScriptValue::NullValue`
283−QScriptValue WindowScriptingInterface::showBrowse(const QString& title, const QString& directory, const QString& nameFilter) {
292+QScriptValue WindowScriptingInterface::showBrowse(const QString& title, const QString& directory, const QString& nameFilter,
293+ QFileDialog::AcceptMode acceptMode) {
284294 // On OS X `directory` does not work as expected unless a file is included in the path, so we append a bogus
285295 // filename if the directory is valid.
286296 QString path = "";
287297 QFileInfo fileInfo = QFileInfo(directory);
298+ qDebug() << "File: " << directory << fileInfo.isFile();
288299 if (fileInfo.isDir()) {
289300 fileInfo.setFile(directory, "__HIFI_INVALID_FILE__");
290301 path = fileInfo.filePath();
291302 }
292303
293304 QFileDialog fileDialog(Application::getInstance()->getWindow(), title, path, nameFilter);
294− fileDialog.setFileMode(QFileDialog::ExistingFile);
305+ fileDialog.setAcceptMode(acceptMode);
306+ qDebug() << "Opening!";
307+ QUrl fileUrl(directory);
308+ if (acceptMode == QFileDialog::AcceptSave) {
309+ fileDialog.setFileMode(QFileDialog::Directory);
310+ fileDialog.selectFile(fileUrl.fileName());
311+ }
295312 if (fileDialog.exec()) {
296313 return QScriptValue(fileDialog.selectedFiles().first());
297314 }