History

New Snap FTUE flow

Zach Fox committed 9 years ago

Commit 32212141 parent 92187e25 files · +41 −2Browse files

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

Unified · Split

interface/src/scripting/WindowScriptingInterface.cpp+22−0
@@ -168,6 +168,28 @@ void WindowScriptingInterface::ensureReticleVisible() const { · 167 unmodified lines
168168 }
169169 }
170170
171+/// Display a "browse to directory" dialog. If `directory` is an invalid file or directory the browser will start at the current
172+/// working directory.
173+/// \param const QString& title title of the window
174+/// \param const QString& directory directory to start the file browser at
175+/// \param const QString& nameFilter filter to filter filenames by - see `QFileDialog`
176+/// \return QScriptValue file path as a string if one was selected, otherwise `QScriptValue::NullValue`
177+QScriptValue WindowScriptingInterface::browseDir(const QString& title, const QString& directory) {
178+ ensureReticleVisible();
179+ QString path = directory;
180+ if (path.isEmpty()) {
181+ path = getPreviousBrowseLocation();
182+ }
183+#ifndef Q_OS_WIN
184+ path = fixupPathForMac(directory);
185+#endif
186+ QString result = OffscreenUi::getExistingDirectory(nullptr, title, path);
187+ if (!result.isEmpty()) {
188+ setPreviousBrowseLocation(QFileInfo(result).absolutePath());
189+ }
190+ return result.isEmpty() ? QScriptValue::NullValue : QScriptValue(result);
191+}
192+
171193 /// Display an open file dialog. If `directory` is an invalid file or directory the browser will start at the current
172194 /// working directory.
173195 /// \param const QString& title title of the window