diff --git a/src/shared/Components/ErrorDisplayer/ErrorDisplayer.cpp b/src/shared/Components/ErrorDisplayer/ErrorDisplayer.cpp index be8af55d5733b16b0df0b62276d3506df60dfa1c..d337d5c7dae214fa5a97819054c44deedc56d798 100644 --- a/src/shared/Components/ErrorDisplayer/ErrorDisplayer.cpp +++ b/src/shared/Components/ErrorDisplayer/ErrorDisplayer.cpp @@ -56,7 +56,7 @@ void ErrorDisplayer::createError(QString title, QString description, auto* errorAddr = error.get(); layout.addWidget(errorAddr); errors.append(std::move(error)); - error->show(); + errorAddr->show(); reposition(); } diff --git a/src/shared/Core/MessageBroker/MessageBroker.cpp b/src/shared/Core/MessageBroker/MessageBroker.cpp index 5dfd504ff78f2c37fa7c34a7e6f196eeda6f5c3d..2745b3a7901b8acb50bda2b608d11cddd408c194 100644 --- a/src/shared/Core/MessageBroker/MessageBroker.cpp +++ b/src/shared/Core/MessageBroker/MessageBroker.cpp @@ -34,7 +34,7 @@ std::unique_ptr<Subscription> MessageBroker::subscribe( observers.insert(filter, subscription.get()); - return std::move(subscription); + return subscription; } void MessageBroker::unsubscribe(Subscription* sub) diff --git a/src/shared/Modules/FileStream/FileStreamModule.cpp b/src/shared/Modules/FileStream/FileStreamModule.cpp deleted file mode 100644 index bd2c94796c737319175ac6f93c1fc5e96fe01bc7..0000000000000000000000000000000000000000 --- a/src/shared/Modules/FileStream/FileStreamModule.cpp +++ /dev/null @@ -1,221 +0,0 @@ -#include "FileStreamModule.h" - -#include <Core/MessageBroker/MessageBroker.h> - -#include <QDebug> -#include <QDesktopServices> -#include <QDir> -#include <QMessageBox> -#include <QUrl> - -#include "Modules/SkywardHubStrings.h" -#include "ui_FileStreamModule.h" - -FileStreamModule::FileStreamModule() - : Module(ModuleId::FILE_STREAM), ui(new Ui::FileStreamModule) -{ - ui->setupUi(this); - connectUI(); - - ui->filePath_lineEdit->setText(SkywardHubStrings::defaultStreamFile); -} - -FileStreamModule::~FileStreamModule() -{ - if (file.isOpen()) - file.close(); - deleteAllTopicViews(); - delete ui; -} - -XmlObject FileStreamModule::toXmlObject() -{ - XmlObject obj = Module::toXmlObject(); - - if (getFilePath() != "") - obj.addAttribute("FilePath", getFilePath()); - - for (int i = 0; i < topicViewsList.count(); i++) - { - XmlObject subscription("Subscription"); - subscription.setTextValue(topicViewsList[i]->text().trimmed()); - obj.addChild(subscription); - } - return obj; -} - -void FileStreamModule::fromXmlObject(const XmlObject& xmlObject) -{ - if (xmlObject.hasAttribute("FilePath")) - { - ui->filePath_lineEdit->setText(xmlObject.getAttribute("FilePath")); - } - - for (int i = 0; i < xmlObject.childCount(); i++) - { - XmlObject child = xmlObject.childAt(i); - if (child.getObjectName() == "Subscription" && - child.getTextValue() != "") - { - addTopic(child.getTextValue()); - } - } -} - -void FileStreamModule::connectUI() -{ - connect(ui->start_button, &QPushButton::clicked, this, - &FileStreamModule::onStartClicked); - connect(ui->stop_button, &QPushButton::clicked, this, - &FileStreamModule::onStopClicked); - connect(ui->addTopic_button, &QPushButton::clicked, this, - &FileStreamModule::onAddTopicClicked); - connect(ui->showFile_button, &QPushButton::clicked, this, - &FileStreamModule::onShowFileClick); -} - -QString FileStreamModule::getFilePath() const -{ - return ui->filePath_lineEdit->text().trimmed(); -} - -QString FileStreamModule::getTopicName() const -{ - return ui->topicName_lineEdit->text().trimmed(); -} - -void FileStreamModule::resetTopicName() { ui->topicName_lineEdit->clear(); } - -void FileStreamModule::onMsgReceived(const Message& msg) -{ - // if(file.isOpen() ){ - // QTextStream out(&file); - // out << msg.payload() << Qt::endl; - // } - - QFile file(getFilePath()); - if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) - return; - - QTextStream out(&file); - out << msg.toString() << Qt::endl; -} - -void FileStreamModule::onAddTopicClicked() -{ - QString topicName = getTopicName(); - resetTopicName(); - if (topicName != "") - { - addTopic(topicName); - } -} - -void FileStreamModule::onStartClicked() -{ - file.setFileName(getFilePath()); - if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) - { // Append QIODevice::ReadWrite - error(tr("FileStream"), - tr("Error occurred while opening file ") + getFilePath()); - return; - } - - file.resize(0); - disableOnStartElement(); - for (int i = 0; i < topicViewsList.count(); i++) - { - subscriptions.push_back( - std::move(MessageBroker::getInstance().subscribe( - Filter::fromString(topicViewsList[i]->text().trimmed()), - [this](const Message& message, const Filter& filter) - { onMsgReceived(message); }))); - topicViewsList[i]->setEnabled(false); - } -} - -void FileStreamModule::onStopClicked() -{ - if (file.isOpen()) - file.close(); - enableElementOnStop(); - - for (int i = 0; i < topicViewsList.count(); i++) - { - subscriptions.pop_front(); - topicViewsList[i]->setEnabled(true); - } -} - -void FileStreamModule::onTopicEdit() -{ - for (int i = topicViewsList.count() - 1; i >= 0; i--) - { - if (topicViewsList[i]->text().trimmed() == "") - { - topicViewsList[i]->deleteLater(); - topicViewsList.removeAt(i); - } - } -} - -void FileStreamModule::disableOnStartElement() -{ - ui->start_button->setEnabled(false); - ui->addTopic_button->setEnabled(false); - ui->filePath_lineEdit->setEnabled(false); -} - -void FileStreamModule::enableElementOnStop() -{ - ui->start_button->setEnabled(true); - ui->addTopic_button->setEnabled(true); - ui->filePath_lineEdit->setEnabled(true); - ui->writeOnFile_radioButton->setEnabled(true); -} - -void FileStreamModule::onShowFileClick() -{ - QDir dir(SkywardHubStrings::defaultLogsFolder); - if (dir.exists()) - { - QDesktopServices::openUrl(QUrl::fromLocalFile(getFilePath())); - } - else - { - QString msg = "The file does not exist." + getFilePath(); - QMessageBox msgBox; - msgBox.setText(msg); - msgBox.exec(); - } -} - -void FileStreamModule::addTopic(const QString& topic) -{ - auto topicView = createTopicView(topic); - - ui->topics_layout->addWidget(topicView); - topicViewsList.append(std::move(topicView)); -} - -std::unique_ptr<QLineEdit> FileStreamModule::createTopicView( - const QString& topic) const -{ - auto topicView = std::make_unique<QLineEdit>(); - topicView->setText(topic); - - connect(topicView.get(), &QLineEdit::textEdited, this, - &FileStreamModule::onTopicEdit); - return std::move(topicView); -} - -void FileStreamModule::deleteAllTopicViews() -{ - for (int i = 0; i < topicViewsList.count(); i++) - { - ui->topics_layout->removeWidget(topicViewsList[i]); - topicViewsList[i]->deleteLater(); - } - subscriptions.clear(); - topicViewsList.clear(); -}