Remember most recently opened script location.

Previously when running a script from a file you were always taken back
to your desktop directory. Now you will be taken to the location of your
most recently opened script.
This commit is contained in:
James Brotchie 2014-03-31 22:08:38 +10:00
parent 91ecbe9086
commit 6880160bc0
3 changed files with 18 additions and 7 deletions

View file

@ -4,22 +4,22 @@
<context> <context>
<name>Application</name> <name>Application</name>
<message> <message>
<location filename="src/Application.cpp" line="1380"/> <location filename="src/Application.cpp" line="1381"/>
<source>Export Voxels</source> <source>Export Voxels</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="src/Application.cpp" line="1381"/> <location filename="src/Application.cpp" line="1382"/>
<source>Sparse Voxel Octree Files (*.svo)</source> <source>Sparse Voxel Octree Files (*.svo)</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="src/Application.cpp" line="3617"/> <location filename="src/Application.cpp" line="3623"/>
<source>Open Script</source> <source>Open Script</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="src/Application.cpp" line="3618"/> <location filename="src/Application.cpp" line="3624"/>
<source>JavaScript Files (*.js)</source> <source>JavaScript Files (*.js)</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>

View file

@ -169,6 +169,7 @@ Application::Application(int& argc, char** argv, timeval &startup_time) :
_bytesPerSecond(0), _bytesPerSecond(0),
_recentMaxPackets(0), _recentMaxPackets(0),
_resetRecentMaxPacketsSoon(true), _resetRecentMaxPacketsSoon(true),
_previousScriptLocation(),
_logger(new FileLogger(this)) _logger(new FileLogger(this))
{ {
// read the ApplicationInfo.ini file for Name/Version/Domain information // read the ApplicationInfo.ini file for Name/Version/Domain information
@ -3610,12 +3611,20 @@ void Application::loadScript(const QString& scriptName) {
} }
void Application::loadDialog() { void Application::loadDialog() {
// shut down and stop any existing script QString suggestedName;
QString desktopLocation = QStandardPaths::writableLocation(QStandardPaths::DesktopLocation);
QString suggestedName = desktopLocation.append("/script.js"); if (_previousScriptLocation.isEmpty()) {
QString desktopLocation = QStandardPaths::writableLocation(QStandardPaths::DesktopLocation);
suggestedName = desktopLocation.append("/script.js");
} else {
suggestedName = _previousScriptLocation;
}
QString fileNameString = QFileDialog::getOpenFileName(_glWidget, tr("Open Script"), suggestedName, QString fileNameString = QFileDialog::getOpenFileName(_glWidget, tr("Open Script"), suggestedName,
tr("JavaScript Files (*.js)")); tr("JavaScript Files (*.js)"));
if (!fileNameString.isEmpty()) {
_previousScriptLocation = fileNameString;
}
loadScript(fileNameString); loadScript(fileNameString);
} }

View file

@ -483,6 +483,8 @@ private:
ControllerScriptingInterface _controllerScriptingInterface; ControllerScriptingInterface _controllerScriptingInterface;
QPointer<LogDialog> _logDialog; QPointer<LogDialog> _logDialog;
QString _previousScriptLocation;
FileLogger* _logger; FileLogger* _logger;
void checkVersion(); void checkVersion();