Skip to content
Snippets Groups Projects
Commit 1ea22323 authored by ucart's avatar ucart
Browse files

Added scripts menu

parent 100cf3a4
No related branches found
No related tags found
No related merge requests found
......@@ -18,12 +18,14 @@ SOURCES += main.cpp\
mainwindow.cpp \
trackerworker.cpp \
controlworker.cpp \
quaditem.cpp
quaditem.cpp \
slotprocess.cpp
HEADERS += mainwindow.h \
trackerworker.h \
controlworker.h \
quaditem.h
quaditem.h \
slotprocess.h
FORMS += mainwindow.ui
......
......@@ -12,6 +12,7 @@
#include "controlworker.h"
#include "graph_blocks.h"
#include "quaditem.h"
#include "slotprocess.h"
#include <iostream>
MainWindow::MainWindow(QWidget *parent) :
......@@ -100,6 +101,16 @@ MainWindow::MainWindow(QWidget *parent) :
/* Connect various things that can result in sending setpoints */
connect(ui->pbSendSetpoint, SIGNAL (clicked()), this, SLOT (sendSetpoints()));
connect(ui->setpointList, SIGNAL (doubleClicked(QModelIndex)), this, SLOT (sendSelectedSetpoint()));
/* Populate scripts list */
QDir scriptsDir("scripts/");
QStringList scripts = scriptsDir.entryList();
for (int i = 0; i < scripts.size(); i++) {
QAction * action = ui->menuScripts->addAction(scripts[i]);
SlotProcess * scriptProcess = new SlotProcess(action);
scriptProcess->setProgram(scriptsDir.filePath(scripts[i]));
connect(action, SIGNAL (triggered()), scriptProcess, SLOT (startProcess()));
}
}
MainWindow::~MainWindow()
......
......@@ -1131,6 +1131,12 @@
<height>27</height>
</rect>
</property>
<widget class="QMenu" name="menuScripts">
<property name="title">
<string>Scripts</string>
</property>
</widget>
<addaction name="menuScripts"/>
</widget>
<widget class="QToolBar" name="mainToolBar">
<attribute name="toolBarArea">
......
#include "slotprocess.h"
#include <QDebug>
void SlotProcess::startProcess()
{
qInfo() << "Started process " + program();
setProcessChannelMode(QProcess::ForwardedChannels);
connect(this, SIGNAL (finished(int, QProcess::ExitStatus)), this, SLOT (notifyFinished(int, QProcess::ExitStatus)));
connect(this, SIGNAL (errorOccurred(QProcess::ProcessError)), this, SLOT (notifyError(QProcess::ProcessError)));
start();
}
void SlotProcess::notifyFinished(int status, QProcess::ExitStatus exitStatus)
{
qInfo() << "Finished process " + program();
if (exitStatus != QProcess::NormalExit) {
qInfo() << "Did not exit normally!" + QString::number(status);
}
}
void SlotProcess::notifyError(QProcess::ProcessError error)
{
qInfo() << "Error with process " + program() + " " + errorString();
}
SlotProcess::SlotProcess(QObject * parent) :
QProcess(parent)
{
}
#ifndef SLOTPROCESS_H
#define SLOTPROCESS_H
#include <QObject>
#include <QProcess>
class SlotProcess : public QProcess
{
Q_OBJECT
public:
SlotProcess(QObject *);
public slots:
void startProcess();
void notifyFinished(int status, QProcess::ExitStatus);
void notifyError(QProcess::ProcessError error);
};
#endif // SLOTPROCESS_H
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment