summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRainer Keller <rainer.keller@nokia.com>2011-02-17 10:07:06 +0000
committerRainer Keller <rainer.keller@nokia.com>2011-02-17 11:13:47 +0000
commit617e4b23be9ccc26ad484097125a4e3a05012c63 (patch)
treec87b5535669b5d339057a4d33caba3f15f6c2019
parentfd2ede6b1a55a36ebc7b0dc937f15e733e621c28 (diff)
Add button to run arbitrary script
A file dialog is opened to let the user choose a script which may not reside in the simulator script directory.
-rw-r--r--library/components/scriptui.cpp37
-rw-r--r--library/components/scriptui.h1
2 files changed, 27 insertions, 11 deletions
diff --git a/library/components/scriptui.cpp b/library/components/scriptui.cpp
index c998e47..ba5c894 100644
--- a/library/components/scriptui.cpp
+++ b/library/components/scriptui.cpp
@@ -49,6 +49,7 @@
#include <QtGui/QToolButton>
#include <QtGui/QMenu>
#include <QtGui/QDesktopServices>
+#include <QtGui/QFileDialog>
ScriptUi::ScriptUi(ScriptAdapter *adapter, QWidget *parent)
: ToolBoxPage(parent)
@@ -107,7 +108,7 @@ ScriptUi::ScriptUi(ScriptAdapter *adapter, QWidget *parent)
QVBoxLayout *scriptRunnerButtonLayout = new QVBoxLayout();
{
- QPushButton *runButton = new QPushButton(tr("Run"));
+ QPushButton *runButton = new QPushButton(tr("Run Selected Script"));
connect(runButton, SIGNAL(clicked()), this, SLOT(runSelectedScript()));
scriptRunnerButtonLayout->addWidget(runButton);
@@ -121,6 +122,11 @@ ScriptUi::ScriptUi(ScriptAdapter *adapter, QWidget *parent)
this, SLOT(editScript()));
scriptRunnerButtonLayout->addWidget(editScriptButton);
+ QPushButton *runCustomScriptButton = new QPushButton(tr("Run Other Script"));
+ connect(runCustomScriptButton, SIGNAL(clicked()),
+ this, SLOT(runCustomScript()));
+ scriptRunnerButtonLayout->addWidget(runCustomScriptButton);
+
scriptRunnerButtonLayout->addStretch();
}
scriptingLayout->addLayout(scriptRunnerButtonLayout, 0, 1);
@@ -150,22 +156,31 @@ void ScriptUi::setScriptDirectory(const QString &path)
void ScriptUi::runScript(const QString &filePath)
{
- mAdapter->run(filePath);
+ if (filePath.endsWith(".gpx"))
+ generateLocationReplayScript("GPX", filePath);
+ else if (filePath.endsWith(".nmea"))
+ generateLocationReplayScript("NMEA", filePath);
+ else
+ mAdapter->run(filePath);
}
void ScriptUi::runSelectedScript()
{
QModelIndex index = mFileView->currentIndex();
- if (index.isValid() && !mFileModel->isDir(index)) {
- QString scriptFilePath = mFileModel->filePath(index);
- if (scriptFilePath.endsWith(".gpx"))
- generateLocationReplayScript("GPX", scriptFilePath);
- else if (scriptFilePath.endsWith(".nmea"))
- generateLocationReplayScript("NMEA", scriptFilePath);
- else
- runScript(scriptFilePath);
- }
+ if (index.isValid() && !mFileModel->isDir(index))
+ runScript(mFileModel->filePath(index));
+}
+
+void ScriptUi::runCustomScript()
+{
+ QString scriptFilePath;
+ scriptFilePath = QFileDialog::getOpenFileName(
+ this, tr("Choose script to execute"), QString(),
+ tr("All Scriptable Files (*.js *.qs *.gpx *.nmea);;Scripts (*.js *.qs);;GPS Data Files (*.gpx *.nmea)"));
+
+ if(!scriptFilePath.isEmpty())
+ runScript(scriptFilePath);
}
void ScriptUi::abortScript()
diff --git a/library/components/scriptui.h b/library/components/scriptui.h
index 3a2818d..ba860fa 100644
--- a/library/components/scriptui.h
+++ b/library/components/scriptui.h
@@ -57,6 +57,7 @@ public:
private slots:
void runScript(const QString &filePath);
void runSelectedScript();
+ void runCustomScript();
void abortScript();
void togglePauseScript();