Files
qt5-legatus-legacy/Lts/Plugins/NmeaManagement/Gui/BatteryNotification/nme_shutdown_dialog.cpp
T
2026-08-13 18:33:10 +02:00

109 lines
2.4 KiB
C++
Executable File

/**
* @RDE_HEADER@
* SimChooser Payload UI
* $Id$
* $HeadURL$
* $Author$
*
* Created by Mike Wille, SLSE, 2017-03-21
*/
#include "nme_shutdown_dialog.h"
#include "ui_nme_shutdown_dialog.h"
#include <LtsSession/lts_session.h>
#include <LtsSession/lts_session_data.h>
#include <LtsUtilsSettings/settings.h>
#include <LtsWidgets/lts_global_wait_dialog.h>
#include <LtsWidgets/lts_message_dialog.h>
#include <LtsWidgets/lts_base_layout_widget.h>
#include <QCloseEvent>
#include <QApplication>
#include <QDesktopWidget>
#include <QScreen>
#include <QDebug>
NmeShutdownDialog::NmeShutdownDialog(const std::shared_ptr<TrainingAreaBase::Interface::Ftc> &tabFtc,
QWidget *parent)
: LtsWidgets::LtsFramelessDialog(parent, LtsWidgets::Behaviour::Modal)
, m_selected(false)
, m_ui(new Ui::NmeShutdownDialog)
, m_tabFtc(tabFtc)
, m_requestHelper(new LtsUtils::RequestHelper(this))
{
m_ui->setupUi(this);
setWindowFlags( Qt::Dialog | Qt::WindowStaysOnTopHint | Qt::CustomizeWindowHint | Qt::WindowTitleHint ); // hints..
connect(m_ui->pbQuit, &QPushButton::clicked, this, [this]()
{
LtsWidgets::LtsGlobalWaitDialog::getInstance()->setVisible(true);
m_close = true;
close();
});
connect(m_ui->pbShutdownAccept, &QPushButton::clicked,
this, &NmeShutdownDialog::onShutdownClicked);
}
NmeShutdownDialog::~NmeShutdownDialog()
{
delete m_ui;
}
void NmeShutdownDialog::reject()
{
if (!m_selected /* do not quit session if this dialog is misused as import dialog for a running app */)
emit signalQuit();
QDialog::reject();
}
void NmeShutdownDialog::onShutdownClicked()
{
if(!m_tabFtc)
return;
TrainingAreaBase::SetDevicePowerRequest request;
request.equipmentNumber(1);// Only the EqNumber 1 will be consumed from NmeaTabPlugin
request.powerType(TrainingAreaBase::PowerMethod::PowerOff); //Need to be PowerOff
request.subdeviceId(0); // Not used in TAB
auto cb = [request, this]()
{
return m_tabFtc->setDevicePowerRequest(request, this);
};
m_requestHelper->startSingleRequest(cb);
}
void NmeShutdownDialog::onEnaDisa()
{
}
void NmeShutdownDialog::closeEvent(QCloseEvent *event)
{
if (!m_close)
{
event->ignore();
return;
}
}
void NmeShutdownDialog::onSetDevicePowerReply(const Core::FunctionReplyObject &reply)
{
m_requestHelper->requestReply(reply);
QDialog::accept();
}