Initial commit
This commit is contained in:
commit
b7d90b9afe
16245 files changed
+3396666
No files matched your search
@@ -0,0 +1,48 @@
|
||||
#
|
||||
# $Id$
|
||||
# $HeadURL$
|
||||
# $Author$
|
||||
# Created by Christian Ehrlicher, SLSE, 2016-02-29
|
||||
#
|
||||
|
||||
SET(san_edit_gui_SRCS
|
||||
san_nine_liner_edit_gui_plugin.cpp
|
||||
san_nine_liner_edit_gui_plugin.h
|
||||
san_nine_liner_dialog.cpp
|
||||
san_nine_liner_dialog.h
|
||||
san_nine_liner_dialog_model.cpp
|
||||
san_nine_liner_dialog_model.h
|
||||
san_nine_liner_edit_dialog.cpp
|
||||
san_nine_liner_edit_dialog.h
|
||||
)
|
||||
|
||||
NGL_WRAP_UI(san_edit_gui_SRCS
|
||||
san_nine_liner_dialog.ui
|
||||
san_nine_liner_edit_dialog.ui
|
||||
)
|
||||
|
||||
NGL_ADD_LIBRARY(WS EvlSanNineLinerEditGuiPlugin MODULE ${san_edit_gui_SRCS})
|
||||
NGL_TARGET_LINK_LIBRARIES(EvlSanNineLinerEditGuiPlugin
|
||||
ngltools # dtg
|
||||
ngltranslator
|
||||
NGLLogger
|
||||
LtsSession
|
||||
EvlDataPluginInterface
|
||||
EvlGuiPluginInterface
|
||||
|
||||
svcEvlCommon
|
||||
Qt5::Widgets
|
||||
LtsCoordTrans
|
||||
ltsCoordWidget
|
||||
LtsWidgets
|
||||
LtsDataView
|
||||
LtsUtilsGuiDds
|
||||
LtsUtilsSettings
|
||||
LtsSessionData
|
||||
ProjectConfig
|
||||
LtsUtilsGuiConnectDialog
|
||||
)
|
||||
|
||||
NGL_INSTALL_TARGET(EvlSanNineLinerEditGuiPlugin)
|
||||
|
||||
|
||||
@@ -0,0 +1,136 @@
|
||||
/**
|
||||
* @RDE_HEADER@
|
||||
* SanNineLiner - Overview Dialog
|
||||
* $Id$
|
||||
* $HeadURL$
|
||||
* $Author$
|
||||
* Created by Hanna E. Rathje, SLSE, 2020-05-14
|
||||
*/
|
||||
|
||||
|
||||
#include "san_nine_liner_dialog.h"
|
||||
#include "ui_san_nine_liner_dialog.h"
|
||||
|
||||
#include "san_nine_liner_dialog_model.h"
|
||||
#include "san_nine_liner_edit_dialog.h"
|
||||
|
||||
#include <Plugins/Evaluations/evl_data_plugin_interface.h>
|
||||
#include <LtsSession/lts_session_data.h>
|
||||
#include <LtsUtilsSettings/settings.h>
|
||||
|
||||
|
||||
namespace Evaluations
|
||||
{
|
||||
//---------------------------------
|
||||
// SanNineLinerDialog
|
||||
//---------------------------------
|
||||
SanNineLinerDialog::SanNineLinerDialog(const QString &menuGroup, QWidget *parent)
|
||||
: LtsWidgets::LtsDialog(parent, LtsWidgets::ButtonCombination::CloseOnly)
|
||||
, m_ui(new Ui::SanNineLinerDialog)
|
||||
, m_menuGroup(menuGroup)
|
||||
, m_requestHelper(new LtsUtils::RequestHelper(this))
|
||||
, m_logger(getLogger("SanNineLinerDialog"))
|
||||
{
|
||||
m_ui->setupUi(this);
|
||||
setOnlineHelpFilename(QStringLiteral("Situation-SanNineLiner"));
|
||||
|
||||
m_buttonBox->connectButton(LtsWidgets::DialogButton::Add, this, &SanNineLinerDialog::onAddSanNineLiner);
|
||||
m_buttonBox->connectButton(LtsWidgets::DialogButton::Edit, this, &SanNineLinerDialog::onEditSanNineLiner);
|
||||
m_buttonBox->connectButton(LtsWidgets::DialogButton::Remove, this, &SanNineLinerDialog::onRemoveSanNineLiner);
|
||||
|
||||
connect(m_ui->widget, &LtsDataView::LtsDataView::signalDoubleClicked,
|
||||
this, &SanNineLinerDialog::onEditSanNineLiner);
|
||||
}
|
||||
|
||||
SanNineLinerDialog::~SanNineLinerDialog()
|
||||
{
|
||||
delete m_ui;
|
||||
}
|
||||
|
||||
void SanNineLinerDialog::retranslate()
|
||||
{
|
||||
translate(m_ui, tr("SanNineLiner"));
|
||||
}
|
||||
|
||||
void SanNineLinerDialog::tableColumnOrganiserSetting()
|
||||
{
|
||||
//LtsColumnOrganiser
|
||||
m_ui->widget->setColumnsOrganiserEnabled(identifier(), true);
|
||||
}
|
||||
|
||||
bool SanNineLinerDialog::init(LtsSession::LtsSessionDataDds *session)
|
||||
{
|
||||
m_session = session;
|
||||
std::shared_ptr<Evaluations::Interface::Dtc> dtc;
|
||||
|
||||
if (!m_session->getDtc<Evaluations::DataInterface>(dtc))
|
||||
return false;
|
||||
if (!m_session->getFtc<Evaluations::DataInterface>(m_ftc))
|
||||
return false;
|
||||
|
||||
m_model = new SanNineLinerDialogModel(this);
|
||||
m_model->initModel(dtc);
|
||||
auto proxy = new SanNineLinerProxyModel(this);
|
||||
proxy->setSourceModel(m_model);
|
||||
|
||||
m_ui->widget->setModel(proxy);
|
||||
|
||||
connect(m_ui->widget, &LtsDataView::LtsDataView::signalSelectionChanged,
|
||||
this, &SanNineLinerDialog::enaDisa);
|
||||
|
||||
enaDisa();
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void SanNineLinerDialog::enaDisa()
|
||||
{
|
||||
QModelIndexList selectedRows = m_ui->widget->selectedRows();
|
||||
const int cntSelectedRows = selectedRows.size();
|
||||
m_buttonBox->setButtonEnabled(LtsWidgets::DialogButton::Edit, cntSelectedRows == 1);
|
||||
const QModelIndex curIdx = m_ui->widget->currentIndex();
|
||||
m_buttonBox->setButtonEnabled(LtsWidgets::DialogButton::Remove, curIdx.isValid() && cntSelectedRows == 1);
|
||||
}
|
||||
|
||||
void SanNineLinerDialog::onAddSanNineLiner()
|
||||
{
|
||||
SanNineLinerEditDialog *dialog = new SanNineLinerEditDialog(this);
|
||||
dialog->init(m_session, m_menuGroup, 0 /* new sanNineLiner */);
|
||||
|
||||
addDialog(dialog, m_menuGroup, QStringLiteral("New SanNineLiner"));
|
||||
}
|
||||
|
||||
void SanNineLinerDialog::onRemoveSanNineLiner()
|
||||
{
|
||||
const QModelIndex curIdx = m_ui->widget->currentIndex();
|
||||
if (!curIdx.isValid())
|
||||
return;
|
||||
const int sanNineLinerId = m_model->getRowData(curIdx.row()).id();
|
||||
|
||||
|
||||
Core::RemoveElementRequest req(sanNineLinerId);
|
||||
m_requestHelper->startSingleRequest([req, this]()
|
||||
{
|
||||
return m_ftc->sanNineLinerRemoveRequest(req, this);
|
||||
});
|
||||
}
|
||||
|
||||
void SanNineLinerDialog::onEditSanNineLiner()
|
||||
{
|
||||
const QModelIndex idx = m_ui->widget->currentIndex();
|
||||
const Evaluations::SanNineLiner san = m_model->getRowData(idx.row());
|
||||
|
||||
if (san.id() <= 0)
|
||||
return;
|
||||
DEBUG_LOG(m_logger) << "current SanNineLinerId: " << san.id();
|
||||
|
||||
SanNineLinerEditDialog *dialog = new SanNineLinerEditDialog(this);
|
||||
|
||||
dialog->init(m_session, m_menuGroup, san.id());
|
||||
const QString identifier = QStringLiteral("EditSanNineLiner%1").arg(san.id());
|
||||
|
||||
addDialog(dialog, m_menuGroup, identifier);
|
||||
}
|
||||
|
||||
} // namespace Evaluations
|
||||
@@ -0,0 +1,60 @@
|
||||
/**
|
||||
* @RDE_HEADER@
|
||||
* SanNineLiner - Overview Dialog
|
||||
* $Id$
|
||||
* $HeadURL$
|
||||
* $Author$
|
||||
* Created by Hanna E. Rathje, SLSE, 2020-05-14
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <Evaluations/evl_ftc.h>
|
||||
#include <Evaluations/logger.h>
|
||||
#include <LtsWidgets/lts_dialog.h>
|
||||
#include <LtsUtilsGuiDds/request_helper.h>
|
||||
#include <LtsSession/lts_session_data_dds.h>
|
||||
|
||||
namespace Ui
|
||||
{
|
||||
class SanNineLinerDialog;
|
||||
}
|
||||
|
||||
namespace Evaluations
|
||||
{
|
||||
class SanNineLinerDialogModel;
|
||||
// --------------------------------------------------------
|
||||
// SanNineLinerDialog
|
||||
// --------------------------------------------------------
|
||||
class SanNineLinerDialog : public LtsWidgets::LtsDialog
|
||||
, protected Evaluations::Interface::Ftc::SanNineLinerRemoveReplyHandler
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit SanNineLinerDialog(const QString &menuGroup, QWidget *parent = nullptr);
|
||||
~SanNineLinerDialog();
|
||||
|
||||
bool init(LtsSession::LtsSessionDataDds *session);
|
||||
|
||||
private slots:
|
||||
void enaDisa();
|
||||
void onAddSanNineLiner();
|
||||
void onEditSanNineLiner();
|
||||
void onRemoveSanNineLiner();
|
||||
|
||||
private:
|
||||
void retranslate() override;
|
||||
void onSanNineLinerRemoveReply(const Core::FunctionReplyObject &replyObject) override final { m_requestHelper->requestReply(replyObject); }
|
||||
void tableColumnOrganiserSetting() override;
|
||||
|
||||
SanNineLinerDialogModel *m_model{nullptr};
|
||||
Ui::SanNineLinerDialog *m_ui{nullptr};
|
||||
LtsSession::LtsSessionDataDds *m_session{nullptr};
|
||||
std::shared_ptr<Evaluations::Interface::Ftc> m_ftc;
|
||||
QString m_menuGroup;
|
||||
LtsUtils::RequestHelper *m_requestHelper{nullptr};
|
||||
|
||||
LOGGER_T m_logger;
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>SanNineLinerDialog</class>
|
||||
<widget class="QWidget" name="SanNineLinerDialog">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>600</width>
|
||||
<height>500</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string notr="true">Exercise Management</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<widget class="LtsDataView::LtsDataView" name="widget">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>250</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<customwidgets>
|
||||
<customwidget>
|
||||
<class>LtsDataView::LtsDataView</class>
|
||||
<extends>QWidget</extends>
|
||||
<header>LtsDataView/lts_data_view.h</header>
|
||||
<container>1</container>
|
||||
</customwidget>
|
||||
</customwidgets>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
+90
@@ -0,0 +1,90 @@
|
||||
/**
|
||||
* @RDE_HEADER@
|
||||
* HMI Plugin for SanNineLiner - San NineLiner Dialog Model
|
||||
* $Id$
|
||||
* $HeadURL$
|
||||
* $Author$
|
||||
* Created by Hanna E. Rathje, 2020-05-18
|
||||
*/
|
||||
|
||||
|
||||
#include "san_nine_liner_dialog_model.h"
|
||||
|
||||
#include <LtsUtilsCore/dds_vector.h>
|
||||
#include <ngltools/ngltools_dtg.h>
|
||||
#include <Evaluations/evl_translation.h>
|
||||
#include <LtsCoordTrans/lts_coord_trans.h>
|
||||
|
||||
namespace Evaluations
|
||||
{
|
||||
|
||||
//---------------------------------
|
||||
// SanNineLinerDialogModel
|
||||
//---------------------------------
|
||||
SanNineLinerDialogModel::SanNineLinerDialogModel(QObject *parent)
|
||||
: LtsWidgets::LtsAbstractTableModel<Evaluations::SanNineLiner>({tr("Id"),
|
||||
tr("Created"),
|
||||
tr("Position"),
|
||||
tr("Radio frequency / Call Sign / Suffix")
|
||||
},
|
||||
parent)
|
||||
, m_logger(getLogger("SanNineLinerDialogModel"))
|
||||
{}
|
||||
|
||||
bool SanNineLinerDialogModel::initModel(const std::shared_ptr<Evaluations::Interface::Dtc> &dtc)
|
||||
{
|
||||
m_evlDtc = dtc;
|
||||
|
||||
connect(m_evlDtc.get(), &Evaluations::Interface::Dtc::sanNineLinerChanged,
|
||||
this, &SanNineLinerDialogModel::onDataChanged);
|
||||
|
||||
// insert Model
|
||||
m_evlDtc->sanNineLiners([this](const Evaluations::SanNineLiner &san)
|
||||
{
|
||||
insertRow(san);
|
||||
});
|
||||
|
||||
INFO_LOG(m_logger) << "initModel - #sanNineLiner: " << m_vecData.size();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
QVariant SanNineLinerDialogModel::data(const QModelIndex &index, int role) const
|
||||
{
|
||||
if (role != Qt::DisplayRole || !indexIsValid(index))
|
||||
return QVariant();
|
||||
|
||||
const Evaluations::SanNineLiner &san = m_vecData.at(index.row());
|
||||
|
||||
switch (index.column())
|
||||
{
|
||||
case SanNineLinerDialogModel::Columns::Id:
|
||||
return san.id();
|
||||
case SanNineLinerDialogModel::Columns::Created:
|
||||
return QDateTime::fromMSecsSinceEpoch(san.lastModified());
|
||||
case SanNineLinerDialogModel::Columns::Position:
|
||||
{
|
||||
if (std::isnan(san.line1_position().lat()) || std::isnan(san.line1_position().lon()))
|
||||
return tr("---");
|
||||
return LtsCoordTrans::mgrsFromGeographic(san.line1_position().lon(), san.line1_position().lat());
|
||||
}
|
||||
case SanNineLinerDialogModel::Columns::RadioFrequencyCallSignSuffix:
|
||||
return QString::fromStdString(san.line2_RadioFrequencyCallSignSuffix());
|
||||
default:
|
||||
return QVariant();
|
||||
}
|
||||
return QVariant();
|
||||
}
|
||||
|
||||
//
|
||||
// SanNineLinerProxyModel
|
||||
//
|
||||
|
||||
void SanNineLinerProxyModel::setSourceModel(QAbstractItemModel *sourceModel)
|
||||
{
|
||||
m_sourceModel = qobject_cast<SanNineLinerDialogModel*>(sourceModel);
|
||||
LtsWidgets::LtsColumnFilterProxyModel::setSourceModel(sourceModel);
|
||||
}
|
||||
|
||||
|
||||
} // namespace Evaluations
|
||||
@@ -0,0 +1,58 @@
|
||||
/**
|
||||
* @RDE_HEADER@
|
||||
* HMI Plugin for SanNineLiner - San NineLiner Dialog Model
|
||||
* $Id$
|
||||
* $HeadURL$
|
||||
* $Author$
|
||||
* Created by Hanna E. Rathje, 2020-05-18
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <Evaluations/logger.h>
|
||||
#include <LtsWidgets/lts_abstract_table_model.h>
|
||||
#include <LtsWidgets/lts_column_filter_proxy_model.h>
|
||||
#include <Evaluations/evl_dtc.h>
|
||||
|
||||
namespace Evaluations
|
||||
{
|
||||
|
||||
// --------------------------------------------------------
|
||||
// SanNineLinerModel
|
||||
// --------------------------------------------------------
|
||||
class SanNineLinerDialogModel final : public LtsWidgets::LtsAbstractTableModel<Evaluations::SanNineLiner>
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
enum Columns
|
||||
{
|
||||
Id,
|
||||
Created,
|
||||
Position,
|
||||
RadioFrequencyCallSignSuffix
|
||||
};
|
||||
|
||||
explicit SanNineLinerDialogModel(QObject *parent = nullptr);
|
||||
bool initModel(const std::shared_ptr<Evaluations::Interface::Dtc> &dtc);
|
||||
|
||||
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override final;
|
||||
|
||||
private:
|
||||
std::shared_ptr<Evaluations::Interface::Dtc> m_evlDtc;
|
||||
LOGGER_T m_logger;
|
||||
|
||||
friend class SanNineLinerProxyModel;
|
||||
};
|
||||
|
||||
class SanNineLinerProxyModel final : public LtsWidgets::LtsColumnFilterProxyModel
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
using LtsWidgets::LtsColumnFilterProxyModel::LtsColumnFilterProxyModel;
|
||||
|
||||
void setSourceModel(QAbstractItemModel *sourceModel) override;
|
||||
private:
|
||||
SanNineLinerDialogModel *m_sourceModel{nullptr};
|
||||
};
|
||||
}
|
||||
+332
@@ -0,0 +1,332 @@
|
||||
/**
|
||||
* @RDE_HEADER@
|
||||
* Evaluations - SanNineLiner Edit Dialog
|
||||
* $Id$
|
||||
* $HeadURL$
|
||||
* $Author$
|
||||
* Created by Hanna E. Rathje, SLSE, 2020-05-18
|
||||
*/
|
||||
|
||||
|
||||
#include "san_nine_liner_edit_dialog.h"
|
||||
#include "ui_san_nine_liner_edit_dialog.h"
|
||||
#include <Services/Evaluations/san_category_line_json.h>
|
||||
|
||||
#include <LtsWidgets/lts_message_dialog.h>
|
||||
#include <LtsUtilsCore/dds_vector.h>
|
||||
|
||||
#include <LtsUtilsSettings/settings.h>
|
||||
#include <LtsSession/lts_session_data.h>
|
||||
#include <PluginInterfaces/gui_plugin_interface.h>
|
||||
#include <Plugins/SituationMapPlugin/situation_map_gui_plugin_interface.h>
|
||||
#include <Plugins/Evaluations/evl_data_plugin_interface.h>
|
||||
|
||||
#include <ngltools/ngltools_dtg.h>
|
||||
#include <ngltranslator/ngltranslator.h>
|
||||
|
||||
#include <QJsonDocument>
|
||||
|
||||
#include <QIntValidator>
|
||||
|
||||
namespace Evaluations
|
||||
{
|
||||
// --------------------------------------------------------
|
||||
// ExerciseManangementEditDialog
|
||||
// --------------------------------------------------------
|
||||
SanNineLinerEditDialog::SanNineLinerEditDialog(QWidget *parent)
|
||||
: LtsWidgets::LtsDialog(parent, LtsWidgets::ButtonCombination::OkApplyCancel)
|
||||
, m_ui(new Ui::SanNineLinerEditDialog)
|
||||
, m_validator(new QIntValidator(this))
|
||||
, m_requestHelper(new LtsUtils::RequestHelper(this))
|
||||
, m_logger(getLogger("SanNineLinerEditDialog"))
|
||||
{
|
||||
m_ui->setupUi(this);
|
||||
|
||||
m_validator->setRange(0, 99);
|
||||
|
||||
m_ui->le3A->setValidator(m_validator);
|
||||
m_ui->le3B->setValidator(m_validator);
|
||||
m_ui->le3C->setValidator(m_validator);
|
||||
m_ui->le3D->setValidator(m_validator);
|
||||
m_ui->le3E->setValidator(m_validator);
|
||||
m_ui->le4A->setValidator(m_validator);
|
||||
m_ui->le4B->setValidator(m_validator);
|
||||
m_ui->le4C->setValidator(m_validator);
|
||||
m_ui->le4D->setValidator(m_validator);
|
||||
m_ui->le5A->setValidator(m_validator);
|
||||
m_ui->le5B->setValidator(m_validator);
|
||||
m_ui->le8A->setValidator(m_validator);
|
||||
m_ui->le8B->setValidator(m_validator);
|
||||
m_ui->le8C->setValidator(m_validator);
|
||||
m_ui->le8D->setValidator(m_validator);
|
||||
m_ui->le8E->setValidator(m_validator);
|
||||
|
||||
connect(m_ui->pbClear, &QPushButton::clicked,
|
||||
m_ui->positionEdit, &LtsCoordWidget::LtsCoordWidget::clear);
|
||||
}
|
||||
|
||||
|
||||
SanNineLinerEditDialog::~SanNineLinerEditDialog()
|
||||
{
|
||||
delete m_ui;
|
||||
}
|
||||
|
||||
|
||||
void SanNineLinerEditDialog::retranslate()
|
||||
{
|
||||
translate(m_ui, QLatin1String("SanNineLiner"), m_sanNineLinerId, QLatin1String("Custom"), tr("SanNineLiner Edit"));
|
||||
}
|
||||
|
||||
|
||||
bool SanNineLinerEditDialog::init(LtsSession::LtsSessionDataDds *session,
|
||||
const QString &menuGroup,
|
||||
const int sanNineLinerId)
|
||||
{
|
||||
m_session = session;
|
||||
m_menuGroup = menuGroup;
|
||||
m_sanNineLinerId = sanNineLinerId;
|
||||
|
||||
if (!m_session->getDtc<Evaluations::DataInterface>(m_dtc))
|
||||
return false;
|
||||
if (!m_session->getFtc<Evaluations::DataInterface>(m_ftc))
|
||||
return false;
|
||||
|
||||
m_session->getForeignGuiInterface<SituationMap::ForeignGuiInterface>(m_sitMapGuiIfc);
|
||||
|
||||
if (m_sitMapGuiIfc)
|
||||
connect(m_ui->pbPosition, &QPushButton::clicked, this, &SanNineLinerEditDialog::getPosition);
|
||||
else
|
||||
m_ui->pbPosition->setEnabled(false);
|
||||
|
||||
m_ui->dtTime->setRetrieveCurrentTimeCallback([this]() { return m_session->partitionTime(); });
|
||||
|
||||
Evaluations::SanNineLiner data = m_dtc->sanNineLiner(sanNineLinerId);
|
||||
|
||||
// set data from dds
|
||||
if (data.id() > 0)
|
||||
{
|
||||
m_ui->dtTime->setMsecsSinceEpoch(data.lastModified());
|
||||
m_ui->leRadioFrequencyCallSignSuffix->setText(QString::fromStdString(data.line2_RadioFrequencyCallSignSuffix()));
|
||||
QPointF position(data.line1_position().lon(), data.line1_position().lat());
|
||||
if (!position.isNull())
|
||||
m_ui->positionEdit->setCoordinate(position);
|
||||
|
||||
// FromJson line 3 - 9
|
||||
QVector<Database::SanCategoryLine> linesCategory = SanCategoryLine::fromJson(data.lines(), data.id());
|
||||
|
||||
INFO_LOG(m_logger) << "linesCategory size: " << linesCategory.size();
|
||||
|
||||
for (const Database::SanCategoryLine &cl : qAsConst(linesCategory))
|
||||
{
|
||||
// line 3,4,5,8
|
||||
QString leName = QStringLiteral("le") + QString::number(cl.line) + cl.category;
|
||||
QLineEdit *leLineAmount = findChild<QLineEdit*>(leName);
|
||||
if (leLineAmount)
|
||||
{
|
||||
INFO_LOG(m_logger) << "leName: " << leName << ", amount: " << cl.amount;
|
||||
leLineAmount->setText(QString::number(cl.amount));
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
// line 6
|
||||
QString rbName = QStringLiteral("rb") + QString::number(cl.line) + cl.category;
|
||||
QRadioButton *rbCategory = findChild<QRadioButton*>(rbName);
|
||||
if (rbCategory)
|
||||
{
|
||||
INFO_LOG(m_logger) << "rbName: " << rbName;
|
||||
rbCategory->setChecked(true);
|
||||
continue;
|
||||
}
|
||||
|
||||
// line 7, 9
|
||||
|
||||
QString cbxName = QStringLiteral("cbx") + QString::number(cl.line) + cl.category + (cl.category == QStringLiteral("N") ? QStringLiteral("u") : QString());
|
||||
QCheckBox *cbxCategory = findChild<QCheckBox*>(cbxName);
|
||||
if (cbxCategory)
|
||||
{
|
||||
INFO_LOG(m_logger) << "cbxName: " << cbxName;
|
||||
cbxCategory->setChecked(true);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
m_ui->dtTime->setMsecsSinceEpoch(m_session->partitionTime());
|
||||
}
|
||||
setOnlineHelpFilename(QStringLiteral("Situation-SanNineLiner"));
|
||||
enaDisa();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
void SanNineLinerEditDialog::enaDisa()
|
||||
{
|
||||
m_ui->lblLine1_DE->hide();
|
||||
m_ui->lblLine2_DE->hide();
|
||||
m_ui->lblLine3_DE->hide();
|
||||
m_ui->lblLine4_DE->hide();
|
||||
m_ui->lblLine5_DE->hide();
|
||||
m_ui->lblLine6_DE->hide();
|
||||
m_ui->lblLine7_DE->hide();
|
||||
m_ui->lblLine8_DE->hide();
|
||||
m_ui->lblLine9_DE->hide();
|
||||
if (NGL::translationLocale() == "de_DE")
|
||||
{
|
||||
m_ui->lblLine1_DE->show();
|
||||
m_ui->lblLine2_DE->show();
|
||||
m_ui->gbLine3->setTitle(m_ui->gbLine3->title()+m_ui->lblLine3_DE->text());
|
||||
m_ui->gbLine4->setTitle(m_ui->gbLine4->title()+m_ui->lblLine4_DE->text());
|
||||
m_ui->gbLine5->setTitle(m_ui->gbLine5->title()+m_ui->lblLine5_DE->text());
|
||||
m_ui->gbLine6->setTitle(m_ui->gbLine6->title()+m_ui->lblLine6_DE->text());
|
||||
m_ui->gbLine7->setTitle(m_ui->gbLine7->title()+m_ui->lblLine7_DE->text());
|
||||
m_ui->gbLine8->setTitle(m_ui->gbLine8->title()+m_ui->lblLine8_DE->text());
|
||||
m_ui->gbLine9->setTitle(m_ui->gbLine9->title()+m_ui->lblLine9_DE->text());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
bool SanNineLinerEditDialog::apply() // TODO: clean me up !
|
||||
{
|
||||
|
||||
SanNineLinerModifyRequest request;
|
||||
request.id(m_sanNineLinerId);
|
||||
|
||||
// Update Data of Existing san nine liner
|
||||
request.id(m_sanNineLinerId);
|
||||
request.lastModified(m_ui->dtTime->msecsSinceEpoch());
|
||||
const Core::GeoPosition2D pos(m_ui->positionEdit->coordinate().x(), m_ui->positionEdit->coordinate().y());
|
||||
request.line1_position(pos);
|
||||
request.line2_radioFrequencyCallSignSuffix(m_ui->leRadioFrequencyCallSignSuffix->text().toStdString());
|
||||
|
||||
m_vecCategoryLine.clear();
|
||||
// line 3 to 9 in m_vecCategoryLine
|
||||
int line = 3;
|
||||
// line 3
|
||||
setCategoryLine(line, QStringLiteral("A"), m_ui->le3A);
|
||||
setCategoryLine(line, QStringLiteral("B"), m_ui->le3B);
|
||||
setCategoryLine(line, QStringLiteral("C"), m_ui->le3C);
|
||||
setCategoryLine(line, QStringLiteral("D"), m_ui->le3D);
|
||||
setCategoryLine(line, QStringLiteral("E"), m_ui->le3E);
|
||||
// line 4
|
||||
line = 4;
|
||||
setCategoryLine(line, QStringLiteral("A"), m_ui->le4A);
|
||||
setCategoryLine(line, QStringLiteral("B"), m_ui->le4B);
|
||||
setCategoryLine(line, QStringLiteral("C"), m_ui->le4C);
|
||||
setCategoryLine(line, QStringLiteral("D"), m_ui->le4D);
|
||||
// line 5
|
||||
line = 5;
|
||||
setCategoryLine(line, QStringLiteral("A"), m_ui->le5A);
|
||||
setCategoryLine(line, QStringLiteral("B"), m_ui->le5B);
|
||||
// line 6
|
||||
line = 6;
|
||||
setCategoryLine(line, QStringLiteral("A"), m_ui->rb6A);
|
||||
setCategoryLine(line, QStringLiteral("B"), m_ui->rb6B);
|
||||
// line 7
|
||||
line = 7;
|
||||
setCategoryLine(line, QStringLiteral("A"), m_ui->cbx7A);
|
||||
setCategoryLine(line, QStringLiteral("B"), m_ui->cbx7B);
|
||||
setCategoryLine(line, QStringLiteral("C"), m_ui->cbx7C);
|
||||
setCategoryLine(line, QStringLiteral("D"), m_ui->cbx7D);
|
||||
setCategoryLine(line, QStringLiteral("E"), m_ui->cbx7E);
|
||||
// line 8
|
||||
line = 8;
|
||||
setCategoryLine(line, QStringLiteral("A"), m_ui->le8A);
|
||||
setCategoryLine(line, QStringLiteral("B"), m_ui->le8B);
|
||||
setCategoryLine(line, QStringLiteral("C"), m_ui->le8C);
|
||||
setCategoryLine(line, QStringLiteral("D"), m_ui->le8D);
|
||||
setCategoryLine(line, QStringLiteral("E"), m_ui->le8E);
|
||||
// line 9
|
||||
line = 9;
|
||||
setCategoryLine(line, QStringLiteral("N"), m_ui->cbx9Nu);
|
||||
setCategoryLine(line, QStringLiteral("B"), m_ui->cbx9B);
|
||||
setCategoryLine(line, QStringLiteral("C"), m_ui->cbx9C);
|
||||
setCategoryLine(line, QStringLiteral("None"), m_ui->cbx9None);
|
||||
|
||||
QJsonDocument doc = SanCategoryLine::toJson(m_vecCategoryLine);
|
||||
request.lines(doc.toJson().toStdString());
|
||||
|
||||
if (!m_requestHelper->startSingleRequest([this, request]()
|
||||
{
|
||||
return m_ftc->sanNineLinerModifyRequest(request, this);
|
||||
}))
|
||||
return false;
|
||||
|
||||
if (request.id() <= 0)
|
||||
{
|
||||
m_sanNineLinerId = m_requestHelper->getRepliedId();
|
||||
ERROR_LOG(m_logger) << "Created new san nine liner with id " << m_sanNineLinerId;
|
||||
}
|
||||
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool SanNineLinerEditDialog::has2DMap()
|
||||
{
|
||||
if (!m_sitMapGuiIfc)
|
||||
return false;
|
||||
if (m_sitMapGuiIfc->mapMode() != SituationMap::MapMode::MapMode_2D)
|
||||
{
|
||||
LtsWidgets::LtsMessageDialog::showMessage(this, tr("Only available in 2D mode"));
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void SanNineLinerEditDialog::getPosition()
|
||||
{
|
||||
if (!has2DMap())
|
||||
return;
|
||||
|
||||
m_sitMapGuiIfc->getCoordinate(this, SLOT(onCoordinate(QPointF)), nullptr);
|
||||
|
||||
}
|
||||
|
||||
void SanNineLinerEditDialog::onCoordinate(const QPointF ¢erPoint)
|
||||
{
|
||||
m_ui->positionEdit->setCoordinate(centerPoint);
|
||||
}
|
||||
|
||||
void SanNineLinerEditDialog::setCategoryLine( int line, const QString &category, QLineEdit* leAmount)
|
||||
{
|
||||
Database::SanCategoryLine cl;
|
||||
|
||||
cl.nineLinerId = m_sanNineLinerId;
|
||||
cl.line = line;
|
||||
cl.category = category;
|
||||
cl.amount = leAmount->text().toInt();
|
||||
|
||||
if (cl.amount > 0)
|
||||
m_vecCategoryLine.push_back(std::move(cl));
|
||||
}
|
||||
|
||||
void SanNineLinerEditDialog::setCategoryLine( int line, const QString &category, QRadioButton *rb)
|
||||
{
|
||||
Database::SanCategoryLine cl;
|
||||
|
||||
cl.nineLinerId = m_sanNineLinerId;
|
||||
cl.line = line;
|
||||
cl.category = category;
|
||||
cl.amount = 0;
|
||||
|
||||
if (rb->isChecked())
|
||||
m_vecCategoryLine.push_back(std::move(cl));
|
||||
}
|
||||
|
||||
void SanNineLinerEditDialog::setCategoryLine(int line, const QString &category, QCheckBox *cbx)
|
||||
{
|
||||
Database::SanCategoryLine cl;
|
||||
|
||||
cl.nineLinerId = m_sanNineLinerId;
|
||||
cl.line = line;
|
||||
cl.category = category;
|
||||
cl.amount = 0;
|
||||
|
||||
if (cbx->isChecked())
|
||||
m_vecCategoryLine.push_back(std::move(cl));
|
||||
}
|
||||
|
||||
} // namespace Evaluations
|
||||
@@ -0,0 +1,91 @@
|
||||
/**
|
||||
* @RDE_HEADER@
|
||||
* Evaluations - SanNineLiner Edit Dialog
|
||||
* $Id$
|
||||
* $HeadURL$
|
||||
* $Author$
|
||||
* Created by Hanna E. Rathje, SLSE, 2020-05-18
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <Evaluations/evl_ftc.h>
|
||||
#include <Evaluations/evl_dtc.h>
|
||||
#include <Evaluations/logger.h>
|
||||
#include <LtsWidgets/lts_dialog.h>
|
||||
#include <LtsUtilsGuiDds/request_helper.h>
|
||||
#include <LtsSession/lts_session_data_dds.h>
|
||||
|
||||
#include <Evaluations/evl_db_structs.h>
|
||||
|
||||
namespace Ui
|
||||
{
|
||||
class SanNineLinerEditDialog;
|
||||
}
|
||||
|
||||
namespace SituationMap
|
||||
{
|
||||
class ForeignGuiInterface;
|
||||
}
|
||||
|
||||
class QIntValidator;
|
||||
|
||||
namespace Evaluations
|
||||
{
|
||||
|
||||
// --------------------------------------------------------
|
||||
// SanNineLinerEditDialog
|
||||
// --------------------------------------------------------
|
||||
class SanNineLinerEditDialog final : public LtsWidgets::LtsDialog
|
||||
, protected Evaluations::Interface::Ftc::SanNineLinerModifyReplyHandler
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit SanNineLinerEditDialog(QWidget *parent = nullptr);
|
||||
|
||||
bool init(LtsSession::LtsSessionDataDds *session,
|
||||
const QString &menuGroup,
|
||||
const int sanNineLinerId);
|
||||
|
||||
~SanNineLinerEditDialog();
|
||||
|
||||
protected:
|
||||
|
||||
void onSanNineLinerModifyReply(const Core::FunctionReplyObject &replyObject) override final { m_requestHelper->requestReply(replyObject); }
|
||||
|
||||
private slots:
|
||||
void onCoordinate(const QPointF ¢erPoint);
|
||||
void getPosition();
|
||||
|
||||
|
||||
signals:
|
||||
void sendData(const Evaluations::SanNineLiner &data);
|
||||
|
||||
private:
|
||||
void retranslate() override;
|
||||
bool apply() override final;
|
||||
bool has2DMap();
|
||||
|
||||
void setCategoryLine(int line, const QString &category, QLineEdit* leAmount);
|
||||
void setCategoryLine( int line, const QString &category, QRadioButton *rb);
|
||||
void setCategoryLine( int line, const QString &category, QCheckBox *cbx);
|
||||
|
||||
void enaDisa();
|
||||
|
||||
Ui::SanNineLinerEditDialog *m_ui{nullptr};
|
||||
LtsSession::LtsSessionDataDds *m_session{nullptr};
|
||||
int m_sanNineLinerId{0};
|
||||
std::vector<Database::SanCategoryLine> m_vecCategoryLine;
|
||||
|
||||
std::shared_ptr<Interface::Dtc> m_dtc;
|
||||
std::shared_ptr<Interface::Ftc> m_ftc;
|
||||
std::shared_ptr<SituationMap::ForeignGuiInterface> m_sitMapGuiIfc;
|
||||
|
||||
QString m_menuGroup;
|
||||
QIntValidator *m_validator{nullptr};
|
||||
LtsUtils::RequestHelper *m_requestHelper{nullptr};
|
||||
LOGGER_T m_logger;
|
||||
|
||||
};
|
||||
}
|
||||
+1076
File diff suppressed because it is too large.
Load diff
+78
@@ -0,0 +1,78 @@
|
||||
/**
|
||||
* @RDE_HEADER@
|
||||
* GUI Plugin for ExerciseManangement
|
||||
* $Id$
|
||||
* $HeadURL$
|
||||
* $Author$
|
||||
* Created by Christian Ehrlicher, SLSE, 2016-02-29
|
||||
*/
|
||||
|
||||
#include "san_nine_liner_edit_gui_plugin.h"
|
||||
#include "san_nine_liner_dialog.h"
|
||||
|
||||
#include <LtsSession/lts_session.h>
|
||||
#include <Evaluations/evl_operator_rights.h>
|
||||
|
||||
|
||||
namespace Evaluations
|
||||
{
|
||||
|
||||
std::shared_ptr<GuiPluginBase::Interface> GuiPlugin::createGuiInterface(LtsSession::LtsSession *session)
|
||||
{
|
||||
return std::make_shared<InterfaceImpl>(session);
|
||||
}
|
||||
|
||||
|
||||
InterfaceImpl::InterfaceImpl(LtsSession::LtsSession *session)
|
||||
: GuiPluginBase::Interface(session, getLogger("Plugins.Gui.San.Edit"))
|
||||
, m_dtc(nullptr)
|
||||
{}
|
||||
|
||||
|
||||
QVector<LtsWidgets::PluginData> InterfaceImpl::getActions()
|
||||
{
|
||||
QVector<LtsWidgets::PluginData> ret;
|
||||
|
||||
LtsWidgets::PluginData plData;
|
||||
plData.menuGroup = menuGroup();
|
||||
plData.menuText = tr("SanNineLiner");
|
||||
plData.menuIcon = QIcon(QLatin1String("icon:set_exercise_process.svg"));
|
||||
plData.identifier = QLatin1String("sanNineLinerEdit");
|
||||
plData.operatorRight = OperatorRights::SanNineLinerEdit;
|
||||
plData.exercisePart = LtsWidgets::ExercisePart::eExecution;
|
||||
plData.createWidgetFunc = [this](QWidget *parent)
|
||||
{
|
||||
return onShowSanNineLinerDialog(parent);
|
||||
};
|
||||
ret.append(plData);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
bool InterfaceImpl::fetchInterfaces()
|
||||
{
|
||||
if (!m_session->getDtc<Evaluations::DataInterface>(m_dtc))
|
||||
return false;
|
||||
|
||||
for (const QString &option : getOptions())
|
||||
DEBUG_LOG(m_logger) << "option: " << option;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
void InterfaceImpl::clearInterfaces()
|
||||
{
|
||||
m_dtc = nullptr;
|
||||
}
|
||||
|
||||
|
||||
LtsWidgets::LtsDialog *InterfaceImpl::onShowSanNineLinerDialog(QWidget *parent)
|
||||
{
|
||||
SanNineLinerDialog *dialog = new SanNineLinerDialog(menuGroup(), parent);
|
||||
dialog->init(m_session);
|
||||
return dialog;
|
||||
}
|
||||
|
||||
} // namespace Evaluations
|
||||
+61
@@ -0,0 +1,61 @@
|
||||
/**
|
||||
* @RDE_HEADER@
|
||||
* Gui Plugin for ExerciseManangement
|
||||
* $Id$
|
||||
* $HeadURL$
|
||||
* $Author$
|
||||
* Created by Christian Ehrlicher, SLSE, 2016-02-29
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <PluginInterfaces/gui_plugin_interface.h>
|
||||
#include <Common/ProjectConfig/project_defines.h>
|
||||
#include <Plugins/Evaluations/evl_data_plugin_interface.h>
|
||||
#include <Plugins/Evaluations/evl_gui_plugin_interface.h>
|
||||
|
||||
namespace Evaluations
|
||||
{
|
||||
|
||||
class GuiPlugin final : public QObject, public GuiPluginBase::Plugin
|
||||
{
|
||||
Q_PLUGIN_METADATA(IID "gui:3:san.edit")
|
||||
Q_INTERFACES(GuiPluginBase::Plugin)
|
||||
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit GuiPlugin() = default;
|
||||
~GuiPlugin() = default;
|
||||
|
||||
QString pluginName() override { return QLatin1String("EvlSanNineLinerEditGuiPlugin"); }
|
||||
std::shared_ptr<GuiPluginBase::Interface> createGuiInterface(LtsSession::LtsSession *session) override;
|
||||
bool availableInPartition(IDL::PartitionType partition) const override
|
||||
{
|
||||
return (partition == IDL::PartitionType::Exercise || partition == IDL::PartitionType::Replay) ;
|
||||
}
|
||||
};
|
||||
|
||||
class InterfaceImpl final : public QObject, public GuiPluginBase::Interface
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit InterfaceImpl(LtsSession::LtsSession *session);
|
||||
|
||||
QVector<LtsWidgets::PluginData> getActions() override;
|
||||
QString menuGroup() const override { return tr("Evaluation"); }
|
||||
bool fetchInterfaces() override;
|
||||
void clearInterfaces() override;
|
||||
bool availableInPartition(IDL::PartitionType partition) const override
|
||||
{
|
||||
return (partition == IDL::PartitionType::Exercise || partition == IDL::PartitionType::Replay);
|
||||
}
|
||||
|
||||
private:
|
||||
LtsWidgets::LtsDialog *onShowSanNineLinerDialog(QWidget *parent);
|
||||
|
||||
std::shared_ptr<Evaluations::Interface::Dtc> m_dtc;
|
||||
};
|
||||
|
||||
|
||||
} // namespace Evaluations
|
||||
|
||||
Reference in new issue
Block a user