From e428f55c82254e68539f518d10f1000d35cc1ada Mon Sep 17 00:00:00 2001 From: f4exb Date: Mon, 18 Dec 2017 13:56:10 +0100 Subject: [PATCH] Server: load presets on start and save them on exit --- sdrgui/mainwindow.cpp | 6 ++--- sdrgui/mainwindow.h | 2 +- sdrgui/webapi/webapiadaptergui.cpp | 2 +- sdrsrv/maincore.cpp | 37 +++++++++++++++++++++++++++++- sdrsrv/maincore.h | 3 +++ 5 files changed, 44 insertions(+), 6 deletions(-) diff --git a/sdrgui/mainwindow.cpp b/sdrgui/mainwindow.cpp index 903189a15..bf89bdf33 100644 --- a/sdrgui/mainwindow.cpp +++ b/sdrgui/mainwindow.cpp @@ -526,7 +526,7 @@ void MainWindow::loadSettings() } } - setLoggingOpions(); + setLoggingOptions(); } void MainWindow::loadPresetSettings(const Preset* preset, int tabIndex) @@ -987,7 +987,7 @@ void MainWindow::on_action_Logging_triggered() { LoggingDialog loggingDialog(m_settings, this); loggingDialog.exec(); - setLoggingOpions(); + setLoggingOptions(); } void MainWindow::on_action_My_Position_triggered() @@ -1290,7 +1290,7 @@ void MainWindow::updateStatus() m_dateTimeWidget->setText(QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss t")); } -void MainWindow::setLoggingOpions() +void MainWindow::setLoggingOptions() { m_logger->setConsoleMinMessageLevel(m_settings.getConsoleMinLogLevel()); diff --git a/sdrgui/mainwindow.h b/sdrgui/mainwindow.h index 560c7beae..07f3ed494 100644 --- a/sdrgui/mainwindow.h +++ b/sdrgui/mainwindow.h @@ -297,7 +297,7 @@ private: void addSinkDevice(); void removeLastDevice(); - void setLoggingOpions(); + void setLoggingOptions(); bool handleMessage(const Message& cmd); diff --git a/sdrgui/webapi/webapiadaptergui.cpp b/sdrgui/webapi/webapiadaptergui.cpp index 6902dcf4c..b2ba3d8e8 100644 --- a/sdrgui/webapi/webapiadaptergui.cpp +++ b/sdrgui/webapi/webapiadaptergui.cpp @@ -184,7 +184,7 @@ int WebAPIAdapterGUI::instanceLoggingPut( m_mainWindow.m_settings.setLogFileName(*fileName); } - m_mainWindow.setLoggingOpions(); + m_mainWindow.setLoggingOptions(); // build response response.init(); diff --git a/sdrsrv/maincore.cpp b/sdrsrv/maincore.cpp index 06796fc7d..04ad3eb8f 100644 --- a/sdrsrv/maincore.cpp +++ b/sdrsrv/maincore.cpp @@ -52,6 +52,8 @@ MainCore::MainCore(qtwebapp::LoggerWithFile *logger, const MainParser& parser, Q connect(&m_inputMessageQueue, SIGNAL(messageEnqueued()), this, SLOT(handleMessages()), Qt::QueuedConnection); m_masterTimer.start(50); + loadSettings(); + m_apiAdapter = new WebAPIAdapterSrv(*this); m_requestMapper = new WebAPIRequestMapper(this); m_requestMapper->setAdapter(m_apiAdapter); @@ -63,7 +65,8 @@ MainCore::MainCore(qtwebapp::LoggerWithFile *logger, const MainParser& parser, Q MainCore::~MainCore() { - m_apiServer->stop(); + m_apiServer->stop(); + m_settings.save(); delete m_apiServer; delete m_requestMapper; delete m_apiAdapter; @@ -99,3 +102,35 @@ void MainCore::handleMessages() } } +void MainCore::loadSettings() +{ + qDebug() << "MainCore::loadSettings"; + + m_settings.load(); + m_settings.sortPresets(); + setLoggingOptions(); +} + +void MainCore::setLoggingOptions() +{ + m_logger->setConsoleMinMessageLevel(m_settings.getConsoleMinLogLevel()); + + if (m_settings.getUseLogFile()) + { + qtwebapp::FileLoggerSettings fileLoggerSettings; // default values + + if (m_logger->hasFileLogger()) { + fileLoggerSettings = m_logger->getFileLoggerSettings(); // values from file logger if it exists + } + + fileLoggerSettings.fileName = m_settings.getLogFileName(); // put new values + m_logger->createOrSetFileLogger(fileLoggerSettings, 2000); // create file logger if it does not exist and apply settings in any case + } + + if (m_logger->hasFileLogger()) { + m_logger->setFileMinMessageLevel(m_settings.getFileMinLogLevel()); + } + + m_logger->setUseFileLogger(m_settings.getUseLogFile()); +} + diff --git a/sdrsrv/maincore.h b/sdrsrv/maincore.h index 1cb041341..584921d6a 100644 --- a/sdrsrv/maincore.h +++ b/sdrsrv/maincore.h @@ -98,6 +98,9 @@ private: WebAPIServer *m_apiServer; WebAPIAdapterSrv *m_apiAdapter; + void loadSettings(); + void setLoggingOptions(); + bool handleMessage(const Message& cmd); private slots: