diff --git a/src/main.cpp b/src/main.cpp index 31356f0..f487ffd 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -6,12 +6,21 @@ #include #include #include +#include #include "ui/mainwindow.h" #include "items/itemstore.h" #include "mainobject.h" #include "programmode.h" +void sigHandler(int s) +{ + std::signal(s, SIG_DFL); + QCoreApplication *app = QCoreApplication::instance(); + if(app) + app->quit(); +} + int main(int argc, char *argv[]) { QCoreApplication::setOrganizationName("UVOS"); @@ -58,6 +67,10 @@ int main(int argc, char *argv[]) int retVal; + std::signal(SIGINT, sigHandler); + std::signal(SIGTERM, sigHandler); + std::signal(SIGHUP, sigHandler); + QString uiSettingsPath = QStandardPaths::writableLocation(QStandardPaths::ConfigLocation) + "/smartvos_ui.json"; if(programMode == PROGRAM_MODE_PRIMARY || programMode == PROGRAM_MODE_HEADLESS_PRIMARY) diff --git a/src/mainobject.cpp b/src/mainobject.cpp index b70b891..95623fb 100644 --- a/src/mainobject.cpp +++ b/src/mainobject.cpp @@ -87,6 +87,8 @@ PrimaryMainObject::PrimaryMainObject(QIODevice* microDevice, const QString& sett { MqttItem::client = mqttClient; + connect(tcpServer, &Server::sigRequestSave, this, [this](){storeToDisk(this->settingsPath);}); + //connect sensors subsystem connect(&globalSensors, &SensorStore::sensorChangedState, tcpServer, &TcpServer::sensorEvent); connect(tcpServer, &TcpServer::gotSensor, &globalSensors, &SensorStore::sensorGotState); diff --git a/src/ui/actorwidgets/polynomalactorwidget.cpp b/src/ui/actorwidgets/polynomalactorwidget.cpp index 930a3f8..e1477c2 100644 --- a/src/ui/actorwidgets/polynomalactorwidget.cpp +++ b/src/ui/actorwidgets/polynomalactorwidget.cpp @@ -25,10 +25,10 @@ PolynomalActorWidget::PolynomalActorWidget(std::shared_ptr actor ui->doubleSpinBox_pow2->setValue(pow2); ui->doubleSpinBox_pow3->setValue(pow3); - connect(ui->doubleSpinBox_pow3, &QDoubleSpinBox::editingFinished, this, &PolynomalActorWidget::setPow); - connect(ui->doubleSpinBox_pow2, &QDoubleSpinBox::editingFinished, this, &PolynomalActorWidget::setPow); - connect(ui->doubleSpinBox_pow1, &QDoubleSpinBox::editingFinished, this, &PolynomalActorWidget::setPow); - connect(ui->doubleSpinBox_pow0, &QDoubleSpinBox::editingFinished, this, &PolynomalActorWidget::setPow); + connect(ui->doubleSpinBox_pow3, &QDoubleSpinBox::valueChanged, this, &PolynomalActorWidget::setPow); + connect(ui->doubleSpinBox_pow2, &QDoubleSpinBox::valueChanged, this, &PolynomalActorWidget::setPow); + connect(ui->doubleSpinBox_pow1, &QDoubleSpinBox::valueChanged, this, &PolynomalActorWidget::setPow); + connect(ui->doubleSpinBox_pow0, &QDoubleSpinBox::valueChanged, this, &PolynomalActorWidget::setPow); connect(ui->listView, &SensorListWidget::clicked, this, &PolynomalActorWidget::setSensor); } diff --git a/src/ui/itemsettingsdialog.cpp b/src/ui/itemsettingsdialog.cpp index 07a2ddd..5ef701e 100644 --- a/src/ui/itemsettingsdialog.cpp +++ b/src/ui/itemsettingsdialog.cpp @@ -13,6 +13,7 @@ #include "itemsettingswidgets/relayitemsettingswidget.h" #include "itemsettingswidgets/mqttitemsettingswidget.h" #include "../items/mqttitem.h" + #include ItemSettingsDialog::ItemSettingsDialog(std::shared_ptr item, bool noGroup, QWidget *parent) : @@ -157,7 +158,6 @@ void ItemSettingsDialog::addActor() if(dialog != nullptr) { dialog->setParent(this); - dialog->show(); if(dialog->exec() == QDialog::Accepted) { item_->addActor(actor); @@ -204,7 +204,6 @@ void ItemSettingsDialog::editActor() else dialog = new ActorSettingsDialog(actor, this); - dialog->show(); dialog->exec(); for(int i = 0; i < ui->tableWidget->rowCount() && i < static_cast(item_->getActors().size()); ++i)