diff --git a/slsDetectorGui/CMakeLists.txt b/slsDetectorGui/CMakeLists.txt
index 0e5fcda2f..ba48a0be2 100755
--- a/slsDetectorGui/CMakeLists.txt
+++ b/slsDetectorGui/CMakeLists.txt
@@ -27,6 +27,7 @@ set(FORMS
forms/form_tab_advanced.ui
forms/form_tab_settings.ui
forms/form_tab_debugging.ui
+ forms/form_tab_messages.ui
)
qt4_wrap_ui(FORMS_H ${FORMS})
diff --git a/slsDetectorGui/forms/form_tab_messages.ui b/slsDetectorGui/forms/form_tab_messages.ui
index 1f75475e5..d352bce00 100755
--- a/slsDetectorGui/forms/form_tab_messages.ui
+++ b/slsDetectorGui/forms/form_tab_messages.ui
@@ -24,59 +24,115 @@
- 16777215
- 16777215
+ 775
+ 345
Form
- -
-
-
-
-
-
- TextLabel
-
-
-
- -
-
-
- Qt::Horizontal
-
-
- QSizePolicy::Fixed
-
-
-
- 20
- 20
-
-
-
-
- -
-
-
- -
-
-
- TextLabel
-
-
-
- -
-
-
- -
-
-
-
+ -
+
+
+ Qt::NoFocus
+
+
+ true
+
+
+
+ -
+
+
+
+ 0
+ 25
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 16777215
+ 35
+
+
+
+ Clear
+
+
+
+ :/icons/images/erase.png:/icons/images/erase.png
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 16777215
+ 35
+
+
+
+ Save
+
+
+
+ :/icons/images/save.png:/icons/images/save.png
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ Command:
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 1000
+ 20
+
+
+
-
+
+ btnSave
+ btnClear
+ dispCommand
+
+
+
+
diff --git a/slsDetectorGui/include/qTabDataOutput.h b/slsDetectorGui/include/qTabDataOutput.h
index e8cd5ed1b..bed06bb6e 100755
--- a/slsDetectorGui/include/qTabDataOutput.h
+++ b/slsDetectorGui/include/qTabDataOutput.h
@@ -8,7 +8,7 @@ class qTabDataOutput:public QWidget, private Ui::TabDataOutputObject{
Q_OBJECT
public:
- qTabDataOutput(QWidget *parent,multiSlsDetector* detector);
+ qTabDataOutput(QWidget *parent, multiSlsDetector* detector);
~qTabDataOutput();
void Refresh();
diff --git a/slsDetectorGui/include/qTabMessages.h b/slsDetectorGui/include/qTabMessages.h
index 5b79df059..e70598def 100755
--- a/slsDetectorGui/include/qTabMessages.h
+++ b/slsDetectorGui/include/qTabMessages.h
@@ -1,18 +1,18 @@
#pragma once
+#include "ui_form_tab_messages.h"
#include "qDebugStream.h"
-class QTextEdit;
-class QPushButton;
-
-class qTabMessages:public QWidget{
+class qTabMessages:public QWidget, private Ui::TabMessagesObject {
Q_OBJECT
public:
qTabMessages(QWidget* parent);
~qTabMessages();
+ void Refresh();
private slots:
+ void ExecuteCommand();
void customEvent(QEvent *e);
void SaveLog();
void ClearLog();
@@ -20,9 +20,6 @@ private slots:
private:
void SetupWidgetWindow();
void Initialization();
-
- QTextEdit *dispLog;
- QPushButton *btnSave;
- QPushButton *btnClear;
+ void PrintNextLine();
};
diff --git a/slsDetectorGui/src/qDetectorMain.cpp b/slsDetectorGui/src/qDetectorMain.cpp
index 9b8d2ff69..1ffddaf47 100755
--- a/slsDetectorGui/src/qDetectorMain.cpp
+++ b/slsDetectorGui/src/qDetectorMain.cpp
@@ -608,6 +608,7 @@ void qDetectorMain::Refresh(int index) {
tabDeveloper->Refresh();
break;
case MESSAGES:
+ tabMessages->Refresh();
break;
}
}
diff --git a/slsDetectorGui/src/qTabMessages.cpp b/slsDetectorGui/src/qTabMessages.cpp
index b5a5bbe6b..6fc620d68 100755
--- a/slsDetectorGui/src/qTabMessages.cpp
+++ b/slsDetectorGui/src/qTabMessages.cpp
@@ -1,57 +1,30 @@
#include "qTabMessages.h"
#include "qDefs.h"
-#include
-#include
-#include
#include
#include
#include
-#include
#include
+#include
+#include
#include
#include
-qTabMessages::qTabMessages(QWidget *parent) : QWidget(parent),
- dispLog(nullptr), btnSave(nullptr), btnClear(nullptr) {
+qTabMessages::qTabMessages(QWidget *parent) : QWidget(parent) {
+ setupUi(this);
SetupWidgetWindow();
FILE_LOG(logDEBUG) << "Messages ready";
}
-qTabMessages::~qTabMessages() {
- if (dispLog)
- delete dispLog;
- if (btnSave)
- delete btnSave;
- if (btnClear)
- delete btnClear;
+qTabMessages::~qTabMessages() {}
+
+void qTabMessages::Refresh() {
+ dispCommand->clear();
}
void qTabMessages::SetupWidgetWindow() {
- QGridLayout *gridLayout = new QGridLayout(this);
-
- dispLog = new QTextEdit(this);
- dispLog->setReadOnly(true);
- dispLog->setFocusPolicy(Qt::NoFocus);
- dispLog->setTextColor(Qt::darkBlue);
-
- btnSave = new QPushButton("Save Log ", this);
- btnSave->setFocusPolicy(Qt::NoFocus);
- btnSave->setFixedWidth(100);
- btnSave->setIcon(QIcon(":/icons/images/save.png"));
-
- btnClear = new QPushButton("Clear ", this);
- btnClear->setFocusPolicy(Qt::NoFocus);
- btnClear->setFixedWidth(100);
- btnClear->setIcon(QIcon(":/icons/images/erase.png"));
-
- gridLayout->addItem(new QSpacerItem(15, 10, QSizePolicy::Fixed, QSizePolicy::Fixed), 0, 0);
- gridLayout->addWidget(btnSave, 1, 0, 1, 1);
- gridLayout->addWidget(btnClear, 1, 4, 1, 1);
- gridLayout->addItem(new QSpacerItem(15, 10, QSizePolicy::Fixed, QSizePolicy::Fixed), 2, 0);
- gridLayout->addWidget(dispLog, 3, 0, 1, 5);
-
+ PrintNextLine();
qDebugStream(std::cout, this);
qDebugStream(std::cerr, this);
@@ -61,6 +34,29 @@ void qTabMessages::SetupWidgetWindow() {
void qTabMessages::Initialization() {
connect(btnSave, SIGNAL(clicked()), this, SLOT(SaveLog()));
connect(btnClear, SIGNAL(clicked()), this, SLOT(ClearLog()));
+ connect(dispCommand, SIGNAL(editingFinished()), this, SLOT(ExecuteCommand()));
+}
+
+void qTabMessages::ExecuteCommand() {
+ QString command = dispCommand->text();
+ dispLog->append(command);
+ dispCommand->clear();
+
+ // take 1st string as program
+ QStringList arguments;
+
+ QProcess *myProcess = new QProcess(this);
+ myProcess->start(command, arguments);
+
+ // print readall
+ QByteArray result = myProcess.readAll();
+
+ PrintNextLine();
+}
+
+void qTabMessages::PrintNextLine() {
+ QString path = QDir::cleanPath(QDir::currentPath());
+ dispLog->append(QString("\n") + path + QString("$"));
}
void qTabMessages::customEvent(QEvent *e) {
@@ -96,3 +92,4 @@ void qTabMessages::ClearLog() {
dispLog->clear();
FILE_LOG(logINFO) << "Log Cleared";
}
+