From 4b10991429b4cfb6878b85da0dbe3cd65bf54346 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Fri, 5 Jul 2019 19:12:46 +0200 Subject: [PATCH] WIP --- slsDetectorGui/CMakeLists.txt | 1 + slsDetectorGui/forms/form_tab_messages.ui | 146 +++++++++++++++------- slsDetectorGui/include/qTabDataOutput.h | 2 +- slsDetectorGui/include/qTabMessages.h | 13 +- slsDetectorGui/src/qDetectorMain.cpp | 1 + slsDetectorGui/src/qTabMessages.cpp | 69 +++++----- 6 files changed, 142 insertions(+), 90 deletions(-) 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"; } +