Complete Qt6 migration: full clean build green across groups G1-G12 incl. runtime plugin set
new_docker_build.sh gains Group 12 (212 GUI/Data plugins); fixes LtsUtilsGuiDds visibility (LTO-stripped exports), LtsProjectionWorkstation unity name shadow, 6 unity-off dirs (dup file-scope statics, ddsftc INTERFACE sources) and reconfigures BUILD_FILTERMANAGEMENT/BUILD_PLUGINS_SERVICEMONITOR=ON
This commit is contained in:
1718 files changed
+126739
-18495
No files matched your search
+2
-2
@@ -6,7 +6,7 @@
|
||||
#include "exm_dialog_model.h"
|
||||
|
||||
#include <ngltools/ngltools_dtg.h>
|
||||
#include <LtsUtils/dds_vector_to_pixmap.h>
|
||||
#include <LtsUtilsCore/dds_vector_to_pixmap.h>
|
||||
|
||||
#include <QtCore/QFile>
|
||||
#include <QtCore/QDebug>
|
||||
@@ -77,7 +77,7 @@ bool CustomViewExercise::init(const QModelIndex &idx)
|
||||
|
||||
|
||||
QPalette p = m_ui->lbStatus->palette();
|
||||
QColor newCol = rowData(idx, ExerciseManagement::ExerciseManagementDialogModel::Status, Qt::TextColorRole).value<QColor>();
|
||||
QColor newCol = rowData(idx, ExerciseManagement::ExerciseManagementDialogModel::Status, Qt::ForegroundRole).value<QColor>();
|
||||
p.setColor(m_ui->lbStatus->backgroundRole(), newCol);
|
||||
p.setColor(m_ui->lbStatus->foregroundRole(), newCol);
|
||||
m_ui->lbStatus->setPalette(p);
|
||||
|
||||
+5
-5
@@ -164,7 +164,7 @@ void ExerciseChooser::slotExerciseSelected()
|
||||
const QModelIndex idx = m_ui->widget->currentIndex();
|
||||
const Exercise ex = m_model->getRowData(idx.row());
|
||||
|
||||
if (ex.id() < 0)
|
||||
if (ex.id < 0)
|
||||
return;
|
||||
|
||||
setEnabled(false);
|
||||
@@ -172,7 +172,7 @@ void ExerciseChooser::slotExerciseSelected()
|
||||
|
||||
|
||||
LtsWidgets::LtsGlobalWaitDialog::getInstance()->setVisible(true);
|
||||
emit signalSelectExercise(ex.id());
|
||||
emit signalSelectExercise(ex.id);
|
||||
m_close = true;
|
||||
close();
|
||||
}
|
||||
@@ -183,7 +183,7 @@ void ExerciseChooser::onUserChanged(const OperatorManagement::User &user, DataMo
|
||||
if (!m_session || !m_proxyModel)
|
||||
return;
|
||||
const int opId = LtsSessionData::LtsSessionData::getInstance()->getOperatorId();
|
||||
if (user.id() != opId)
|
||||
if (user.id != opId)
|
||||
return;
|
||||
|
||||
if (mod == DataModification::eRemoved)
|
||||
@@ -192,7 +192,7 @@ void ExerciseChooser::onUserChanged(const OperatorManagement::User &user, DataMo
|
||||
return;
|
||||
}
|
||||
|
||||
const bool hasAdminRights = std::any_of(user.effectiveAcls().begin(), user.effectiveAcls().end(),
|
||||
const bool hasAdminRights = std::any_of(user.effectiveAcls.begin(), user.effectiveAcls.end(),
|
||||
[](int val) { return val == OperatorRights::Administrator; });
|
||||
if (m_session->app() == LtsAppDescriptor::App::OC ||
|
||||
(hasAdminRights && (m_session->app() == LtsAppDescriptor::App::Situation ||
|
||||
@@ -200,7 +200,7 @@ void ExerciseChooser::onUserChanged(const OperatorManagement::User &user, DataMo
|
||||
m_proxyModel->setAdminExerciseVisible(true);
|
||||
else
|
||||
m_proxyModel->setAdminExerciseVisible(false);
|
||||
m_proxyModel->setVisibleExerciseIds(LtsUtils::convert<QVector<int>>(user.exerciseIds()));
|
||||
m_proxyModel->setVisibleExerciseIds(LtsUtils::convert<QVector<int>>(user.exerciseIds));
|
||||
}
|
||||
|
||||
}
|
||||
+8
-6
@@ -1,6 +1,7 @@
|
||||
|
||||
|
||||
#include "exm_dialog.h"
|
||||
#include <NGLLogger/NGLLoggerBootstrap.h>
|
||||
|
||||
#include "CustomViews/exm_exercise.h"
|
||||
#include "exm_dialog_model.h"
|
||||
@@ -21,6 +22,7 @@ ExerciseManagementDialog::ExerciseManagementDialog(const QString& menuGroup, QWi
|
||||
: LtsWidgets::LtsDialog(parent, LtsWidgets::ButtonCombination::CloseOnly), m_model(nullptr),
|
||||
m_ui(new Ui::ExerciseManagementDialog), m_session(nullptr), m_ftc(nullptr), m_menuGroup(menuGroup),
|
||||
m_requestHelper(new LtsUtils::RequestHelper(this))
|
||||
, m_logger(NGL::NGLLoggerBootstrap::getNGLRootLogger())
|
||||
{
|
||||
m_ui->setupUi(this);
|
||||
setOnlineHelpFilename(QStringLiteral("Administrator-Exercises"));
|
||||
@@ -105,7 +107,7 @@ void ExerciseManagementDialog::enaDisa()
|
||||
const int cntSelectedRows = selectedRows.size();
|
||||
m_buttonBox->setButtonEnabled(LtsWidgets::DialogButton::Edit, cntSelectedRows == 1);
|
||||
const QModelIndex curIdx = m_ui->widget->currentIndex();
|
||||
const ExerciseManagement::ExerciseState state = m_model->getRowData(curIdx.row()).state();
|
||||
const ExerciseManagement::ExerciseState state = m_model->getRowData(curIdx.row()).state;
|
||||
const bool isRemovable =
|
||||
(state == ExerciseManagement::ExerciseState::Unknown || state == ExerciseManagement::ExerciseState::Created ||
|
||||
state == ExerciseManagement::ExerciseState::Stopped || state == ExerciseManagement::ExerciseState::Terminated);
|
||||
@@ -125,7 +127,7 @@ void ExerciseManagementDialog::onRemoveExercise()
|
||||
const QModelIndex curIdx = m_ui->widget->currentIndex();
|
||||
if (!curIdx.isValid())
|
||||
return;
|
||||
const int exId = m_model->getRowData(curIdx.row()).id();
|
||||
const int exId = m_model->getRowData(curIdx.row()).id;
|
||||
const int folderId = m_flmDtc->getExerciseFolderId(exId);
|
||||
|
||||
if (folderId > 0)
|
||||
@@ -146,14 +148,14 @@ void ExerciseManagementDialog::onEditExercise()
|
||||
const QModelIndex idx = m_ui->widget->currentIndex();
|
||||
const Exercise ex = m_model->getRowData(idx.row());
|
||||
|
||||
if (ex.id() <= 0)
|
||||
if (ex.id <= 0)
|
||||
return;
|
||||
DEBUG_LOG(m_logger) << "current EXId: " << ex.id();
|
||||
DEBUG_LOG(m_logger) << "current EXId: " << ex.id;
|
||||
|
||||
ExerciseManagementEditDialog* dialog = new ExerciseManagementEditDialog(this);
|
||||
|
||||
dialog->init(m_session, m_menuGroup, ex.id());
|
||||
const QString identifier = QStringLiteral("EditExercise%1").arg(ex.id());
|
||||
dialog->init(m_session, m_menuGroup, ex.id);
|
||||
const QString identifier = QStringLiteral("EditExercise%1").arg(ex.id);
|
||||
|
||||
addDialog(dialog, m_menuGroup, identifier);
|
||||
}
|
||||
|
||||
+44
-42
@@ -1,6 +1,7 @@
|
||||
|
||||
|
||||
#include "exm_dialog_model.h"
|
||||
#include <NGLLogger/NGLLoggerBootstrap.h>
|
||||
|
||||
#include <ExerciseManagement/exm_translation.h>
|
||||
#include <LtsUtils/LtsUtilsCore/dds_vector.h>
|
||||
@@ -17,6 +18,7 @@ ExerciseManagementDialogModel::ExerciseManagementDialogModel(QObject* parent)
|
||||
tr("Description"), tr("Linked Exercise"), tr("Transferred"), tr("HLA"), tr("Image")},
|
||||
parent),
|
||||
m_exmDtc(nullptr), m_asmDtc(nullptr), m_pdmDtc(nullptr)
|
||||
, m_logger(NGL::NGLLoggerBootstrap::getNGLRootLogger())
|
||||
{
|
||||
}
|
||||
|
||||
@@ -39,15 +41,15 @@ bool ExerciseManagementDialogModel::initModel(const std::shared_ptr<ExerciseMana
|
||||
return;
|
||||
|
||||
if (preloadExerciseImages)
|
||||
addImagePreload(ex.id());
|
||||
addImagePreload(ex.id);
|
||||
});
|
||||
|
||||
if (addAdminExercise)
|
||||
{
|
||||
|
||||
ExerciseManagement::Exercise adminExercise;
|
||||
adminExercise.name(tr("Superordinate Config / Administration").toStdString());
|
||||
adminExercise.id(0);
|
||||
adminExercise.name = tr("Superordinate Config / Administration").toStdString();
|
||||
adminExercise.id = 0;
|
||||
|
||||
insertRow(adminExercise);
|
||||
}
|
||||
@@ -56,7 +58,7 @@ bool ExerciseManagementDialogModel::initModel(const std::shared_ptr<ExerciseMana
|
||||
insertRow(ex);
|
||||
|
||||
if (preloadExerciseImages)
|
||||
addImagePreload(ex.id());
|
||||
addImagePreload(ex.id);
|
||||
});
|
||||
|
||||
INFO_LOG(m_logger) << "initModel - #exercises: " << m_vecData.size();
|
||||
@@ -65,7 +67,7 @@ bool ExerciseManagementDialogModel::initModel(const std::shared_ptr<ExerciseMana
|
||||
|
||||
int ExerciseManagementDialogModel::getId(const ExerciseManagement::Exercise& data) const
|
||||
{
|
||||
return data.id();
|
||||
return data.id;
|
||||
}
|
||||
|
||||
void ExerciseManagementDialogModel::addImagePreload(int32_t exId)
|
||||
@@ -101,17 +103,17 @@ GetExerciseImageRequester* ExerciseManagementDialogModel::createGetExerciseImage
|
||||
|
||||
const GetExerciseImageReply& reply(r->reply());
|
||||
|
||||
if (reply.errorString().empty())
|
||||
if (reply.errorString.empty())
|
||||
{
|
||||
m_exerciseImages.insert(reply.id(), LtsUtils::toQByteArray(reply.imageData()));
|
||||
m_exerciseImages.insert(reply.id, LtsUtils::toQByteArray(reply.imageData));
|
||||
|
||||
QModelIndex idx(findIndexForId(reply.id(), 0));
|
||||
QModelIndex idx(findIndexForId(reply.id, 0));
|
||||
emit dataChanged(idx, idx, {Qt::DisplayRole});
|
||||
}
|
||||
else
|
||||
{
|
||||
QString msg(QString::fromStdString(reply.errorString()));
|
||||
for (const std::string& arg : std::as_const(reply.errorParams()))
|
||||
QString msg(QString::fromStdString(reply.errorString));
|
||||
for (const std::string& arg : std::as_const(reply.errorParams))
|
||||
msg = msg.arg(QString::fromStdString(arg));
|
||||
|
||||
ERROR_LOG(m_logger) << "image preload failed: " << msg;
|
||||
@@ -130,7 +132,7 @@ void ExerciseManagementDialogModel::setImageSizeConstraints(const QSize& size)
|
||||
|
||||
QVariant ExerciseManagementDialogModel::data(const QModelIndex& index, int role) const
|
||||
{
|
||||
if ((role != Qt::DisplayRole && role != Qt::UserRole && role != Qt::TextColorRole) || !indexIsValid(index))
|
||||
if ((role != Qt::DisplayRole && role != Qt::UserRole && role != Qt::ForegroundRole) || !indexIsValid(index))
|
||||
return QVariant();
|
||||
|
||||
const ExerciseManagement::Exercise& ex = m_vecData.at(index.row());
|
||||
@@ -140,59 +142,59 @@ QVariant ExerciseManagementDialogModel::data(const QModelIndex& index, int role)
|
||||
switch (index.column())
|
||||
{
|
||||
case ExerciseManagementDialogModel::Columns::Name:
|
||||
return QString::fromStdString(ex.name());
|
||||
return QString::fromStdString(ex.name);
|
||||
case ExerciseManagementDialogModel::Columns::TrainingArea: {
|
||||
const AssetManagement::TrainingArea ta = m_asmDtc->trainingArea(ex.trainingAreaId());
|
||||
return QString::fromStdString(ta.name());
|
||||
const AssetManagement::TrainingArea ta = m_asmDtc->trainingArea(ex.trainingAreaId);
|
||||
return QString::fromStdString(ta.name);
|
||||
}
|
||||
case ExerciseManagementDialogModel::Columns::Begin:
|
||||
return QDateTime::fromMSecsSinceEpoch(ex.beginTime());
|
||||
return QDateTime::fromMSecsSinceEpoch(ex.beginTime);
|
||||
case ExerciseManagementDialogModel::Columns::End:
|
||||
return QDateTime::fromMSecsSinceEpoch(ex.endTime());
|
||||
return QDateTime::fromMSecsSinceEpoch(ex.endTime);
|
||||
case ExerciseManagementDialogModel::Columns::Started:
|
||||
return QDateTime::fromMSecsSinceEpoch(ex.startTime());
|
||||
return QDateTime::fromMSecsSinceEpoch(ex.startTime);
|
||||
case ExerciseManagementDialogModel::Columns::Stopped:
|
||||
return QDateTime::fromMSecsSinceEpoch(ex.stopTime());
|
||||
return QDateTime::fromMSecsSinceEpoch(ex.stopTime);
|
||||
case ExerciseManagementDialogModel::Columns::Status:
|
||||
return ExerciseManagement::toString(ex.state());
|
||||
return ExerciseManagement::toString(ex.state);
|
||||
case ExerciseManagementDialogModel::Columns::RadioGroup:
|
||||
if (ex.radioGroupId().is_set())
|
||||
return m_pdmDtc->trRadioGroupName(ex.radioGroupId().get());
|
||||
if (ex.radioGroupId.has_value())
|
||||
return m_pdmDtc->trRadioGroupName(ex.radioGroupId.get());
|
||||
return QStringLiteral(" - ");
|
||||
case ExerciseManagementDialogModel::Columns::ActivePhase:
|
||||
return QString::fromStdString(m_exmDtc->exercisePhase(ex.activePhaseId()).name());
|
||||
return QString::fromStdString(m_exmDtc->exercisePhase(ex.activePhaseId).name);
|
||||
case ExerciseManagementDialogModel::Columns::Created:
|
||||
return QDateTime::fromMSecsSinceEpoch(ex.created());
|
||||
return QDateTime::fromMSecsSinceEpoch(ex.created);
|
||||
case ExerciseManagementDialogModel::Columns::TimeZone:
|
||||
return (ex.defaultTimeZone() == 0) ? QStringLiteral("-") : QString(QLatin1Char(ex.defaultTimeZone()));
|
||||
return (ex.defaultTimeZone == 0) ? QStringLiteral("-") : QString(QLatin1Char(ex.defaultTimeZone));
|
||||
case ExerciseManagementDialogModel::Columns::Forces:
|
||||
return QString::fromStdString(ex.forces());
|
||||
return QString::fromStdString(ex.forces);
|
||||
case ExerciseManagementDialogModel::Columns::Description:
|
||||
return QString::fromStdString(ex.description());
|
||||
return QString::fromStdString(ex.description);
|
||||
case ExerciseManagementDialogModel::Columns::Image:
|
||||
return m_exerciseImages.value(ex.id());
|
||||
return m_exerciseImages.value(ex.id);
|
||||
case ExerciseManagementDialogModel::Columns::Id:
|
||||
return ex.id();
|
||||
return ex.id;
|
||||
case ExerciseManagementDialogModel::Columns::LinkedId: {
|
||||
if (ex.linkedExerciseId() == 0)
|
||||
if (ex.linkedExerciseId == 0)
|
||||
return QVariant();
|
||||
const int row = findRowForId(ex.linkedExerciseId());
|
||||
const int row = findRowForId(ex.linkedExerciseId);
|
||||
if (row < 0)
|
||||
return QStringLiteral("????? - %1").arg(ex.linkedExerciseId());
|
||||
return QString(QString::fromStdString(m_vecData.at(row).name()) +
|
||||
QStringLiteral(" (%1)").arg(ex.linkedExerciseId()));
|
||||
return QStringLiteral("????? - %1").arg(ex.linkedExerciseId);
|
||||
return QString(QString::fromStdString(m_vecData.at(row).name) +
|
||||
QStringLiteral(" (%1)").arg(ex.linkedExerciseId));
|
||||
}
|
||||
case ExerciseManagementDialogModel::Columns::Transferred:
|
||||
return ex.transferred() ? tr("Yes") : tr("No");
|
||||
return ex.transferred ? tr("Yes") : tr("No");
|
||||
case ExerciseManagementDialogModel::Columns::HasHlaInterface:
|
||||
return ex.hasHlaInterface() ? tr("Yes") : tr("No");
|
||||
return ex.hasHlaInterface ? tr("Yes") : tr("No");
|
||||
}
|
||||
}
|
||||
else if (role == Qt::UserRole)
|
||||
{
|
||||
if (ex.id() == 0)
|
||||
if (ex.id == 0)
|
||||
return 0;
|
||||
switch (ex.state().underlying())
|
||||
switch (ex.state)
|
||||
{
|
||||
case ExerciseState::Unknown:
|
||||
return 6;
|
||||
@@ -209,11 +211,11 @@ QVariant ExerciseManagementDialogModel::data(const QModelIndex& index, int role)
|
||||
}
|
||||
return 99;
|
||||
}
|
||||
else if (role == Qt::TextColorRole)
|
||||
else if (role == Qt::ForegroundRole)
|
||||
{
|
||||
if (index.column() == ExerciseManagementDialogModel::Columns::Status)
|
||||
{
|
||||
switch (ex.state().underlying())
|
||||
switch (ex.state)
|
||||
{
|
||||
case ExerciseState::Unknown:
|
||||
return QColor(Qt::black);
|
||||
@@ -271,15 +273,15 @@ bool ExerciseManagementProxyModel::filterAcceptsRow(int source_row, const QModel
|
||||
if (!m_sourceModel || source_parent.isValid() || source_row < 0 || source_row >= m_sourceModel->m_vecData.size())
|
||||
return LtsWidgets::LtsColumnFilterProxyModel::filterAcceptsRow(source_row, source_parent);
|
||||
const auto& ex = m_sourceModel->m_vecData.at(source_row);
|
||||
if (ex.id() == 0)
|
||||
if (ex.id == 0)
|
||||
{
|
||||
if (!m_bAdminVisible)
|
||||
return false;
|
||||
return LtsWidgets::LtsColumnFilterProxyModel::filterAcceptsRow(source_row, source_parent);
|
||||
}
|
||||
if (!m_exIds.contains(ex.id()) && !m_exIds.contains(-1))
|
||||
if (!m_exIds.contains(ex.id) && !m_exIds.contains(-1))
|
||||
return false;
|
||||
if (!m_visibleStates.contains(ex.state()) && !m_visibleStates.isEmpty())
|
||||
if (!m_visibleStates.contains(ex.state) && !m_visibleStates.isEmpty())
|
||||
return false;
|
||||
return LtsWidgets::LtsColumnFilterProxyModel::filterAcceptsRow(source_row, source_parent);
|
||||
}
|
||||
|
||||
+3
-1
@@ -6,6 +6,7 @@
|
||||
#include <ExerciseManagement/exm_dtc.h>
|
||||
#include <ExerciseManagement/exm_ftc.h>
|
||||
#include <ExerciseManagement/logger.h>
|
||||
#include <NGLLogger/NGLLoggerBootstrap.h>
|
||||
#include <LtsWidgets/lts_abstract_table_model.h>
|
||||
#include <LtsWidgets/lts_column_filter_proxy_model.h>
|
||||
#include <ProjectDataManagement/pdm_dtc.h>
|
||||
@@ -30,7 +31,7 @@ class GetExerciseImageRequester : public AbstractRequester,
|
||||
|
||||
private:
|
||||
NGL::INGLLogger& m_logger;
|
||||
GetExerciseImageRequester() = default;
|
||||
GetExerciseImageRequester() : m_logger(NGL::NGLLoggerBootstrap::getNGLRootLogger()) {}
|
||||
|
||||
public:
|
||||
static GetExerciseImageRequester* createGetExerciseImageRequester()
|
||||
@@ -105,6 +106,7 @@ class ExerciseManagementDialogModel final : public LtsWidgets::LtsAbstractTableM
|
||||
std::shared_ptr<ExerciseManagement::Interface::Ftc> m_exmFtc;
|
||||
std::shared_ptr<AssetManagement::Interface::Dtc> m_asmDtc;
|
||||
std::shared_ptr<ProjectDataManagement::Interface::Dtc> m_pdmDtc;
|
||||
NGL::INGLLogger& m_logger;
|
||||
QVector<int32_t> m_preloadImages;
|
||||
QMap<int32_t, QByteArray> m_exerciseImages;
|
||||
bool m_imagePreloadPending{false};
|
||||
|
||||
+14
-13
@@ -4,6 +4,7 @@
|
||||
#include "exm_edit_adler_visible_parties_model.h"
|
||||
#include <ParticipantManagement/ppm_translation.h>
|
||||
#include <ParticipantManagement/ppm.hpp>
|
||||
#include <ParticipantManagement/ppm_dtc.h>
|
||||
|
||||
#include <QtCore/QJsonArray>
|
||||
#include <QtCore/QJsonObject>
|
||||
@@ -58,9 +59,9 @@ QVariant ExerciseEditAdlerVisiblePartiesModel::data(const QModelIndex &index, in
|
||||
switch (index.column())
|
||||
{
|
||||
case ColId:
|
||||
return party.id();
|
||||
return party.id;
|
||||
case ColName:
|
||||
return ParticipantManagement::trPartyName(party.name());
|
||||
return ParticipantManagement::trPartyName(party.name);
|
||||
}
|
||||
return {};
|
||||
}
|
||||
@@ -78,7 +79,7 @@ void ExerciseEditAdlerVisiblePartiesModel::onPartiesChanged(const ParticipantMan
|
||||
{
|
||||
for (int i = 0; i < m_vecData.size(); ++i)
|
||||
{
|
||||
if (m_vecData.at(i).second.id() == data.id())
|
||||
if (m_vecData.at(i).second.id == data.id)
|
||||
{
|
||||
removeRow(i);
|
||||
return;
|
||||
@@ -90,7 +91,7 @@ void ExerciseEditAdlerVisiblePartiesModel::onPartiesChanged(const ParticipantMan
|
||||
{
|
||||
for (int i = 0; i < m_vecData.size(); ++i)
|
||||
{
|
||||
if (m_vecData.at(i).second.id() == data.id())
|
||||
if (m_vecData.at(i).second.id == data.id)
|
||||
{
|
||||
m_vecData[i].second = data;
|
||||
const QModelIndex idx(index(i, ColName, QModelIndex()));
|
||||
@@ -106,7 +107,7 @@ void ExerciseEditAdlerVisiblePartiesModel::onPartiesChanged(const ParticipantMan
|
||||
bool ExerciseEditAdlerVisiblePartiesModel::isFiltered(const QPair<bool, ParticipantManagement::Party> &data, DataModification modType) const
|
||||
{
|
||||
|
||||
if (data.second.id() <= 1 )
|
||||
if (data.second.id <= 1 )
|
||||
return true;
|
||||
|
||||
return LtsCheckableTableModel::isFiltered(data, modType);
|
||||
@@ -114,30 +115,30 @@ bool ExerciseEditAdlerVisiblePartiesModel::isFiltered(const QPair<bool, Particip
|
||||
|
||||
bool ExerciseEditAdlerVisiblePartiesModel::hasAdlerParty(const ParticipantManagement::Party &party) const
|
||||
{
|
||||
const auto visiblePartiesByExercise = m_opmDtc->user(m_operatorId).visiblePartiesByExercise();
|
||||
const auto visiblePartiesByExercise = m_opmDtc->user(m_operatorId).visiblePartiesByExercise;
|
||||
bool partyVisible = false;
|
||||
for (const auto &exerciseParties : visiblePartiesByExercise)
|
||||
{
|
||||
if (exerciseParties.exerciseId() != m_exerciseId)
|
||||
if (exerciseParties.exerciseId != m_exerciseId)
|
||||
continue;
|
||||
if (!exerciseParties.visibleParties().is_set())
|
||||
if (!exerciseParties.visibleParties.has_value())
|
||||
return false;
|
||||
|
||||
|
||||
|
||||
for (const auto &partyId : exerciseParties.visibleParties().get())
|
||||
if (partyId == party.id())
|
||||
for (const auto &partyId : exerciseParties.visibleParties.get())
|
||||
if (partyId == party.id)
|
||||
partyVisible = true;
|
||||
|
||||
if (!partyVisible)
|
||||
return false;
|
||||
|
||||
|
||||
const QJsonObject properties(QJsonDocument::fromJson(QByteArray::fromStdString(exerciseParties.properties())).object());
|
||||
const QJsonObject properties(QJsonDocument::fromJson(QByteArray::fromStdString(exerciseParties.properties)).object());
|
||||
const QJsonArray arr(properties.value(QStringLiteral("adlerAllowed")).toArray());
|
||||
|
||||
for (const auto &partyId : arr)
|
||||
if (partyId == party.id())
|
||||
if (partyId == party.id)
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
@@ -148,7 +149,7 @@ int ExerciseEditAdlerVisiblePartiesModel::findRowForPartyId(int id) const
|
||||
{
|
||||
for (int i = 0; i < m_vecData.size(); ++i)
|
||||
{
|
||||
if (m_vecData.at(i).second.id() == id)
|
||||
if (m_vecData.at(i).second.id == id)
|
||||
return i;
|
||||
}
|
||||
return -1;
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <OperatorManagement/opm_data_plugin.h>
|
||||
#include <Plugins/OperatorManagement/Data/opm_data_plugin.h>
|
||||
#include <ParticipantManagement/Data/ppm_data_plugin.h>
|
||||
|
||||
#include <LtsSession/lts_session_data_dds.h>
|
||||
|
||||
+156
-154
@@ -1,6 +1,7 @@
|
||||
|
||||
|
||||
#include "exm_edit_dialog.h"
|
||||
#include <NGLLogger/NGLLoggerBootstrap.h>
|
||||
|
||||
#include "exm_dialog_model.h"
|
||||
#include "exm_edit_party_dialog.h"
|
||||
@@ -12,7 +13,7 @@
|
||||
#include <ExerciseManagement/exm_operator_rights.h>
|
||||
#include <LtsSession/lts_session_data.h>
|
||||
#include <LtsUtils/LtsUtilsCore/dds_vector.h>
|
||||
#include <LtsUtils/dds_vector_to_pixmap.h>
|
||||
#include <LtsUtilsCore/dds_vector_to_pixmap.h>
|
||||
#include <LtsUtilsSettings/settings.h>
|
||||
#include <LtsWidgets/lts_message_dialog.h>
|
||||
#include <PluginInterfaces/gui_plugin_interface.h>
|
||||
@@ -32,6 +33,7 @@ ExerciseManagementEditDialog::ExerciseManagementEditDialog(QWidget* parent)
|
||||
: LtsWidgets::LtsDialog(parent, LtsWidgets::ButtonCombination::OkApplyCancel),
|
||||
m_ui(new Ui::ExerciseManagementEditDialog), m_currentState(ExerciseState::Unknown), m_menuGroup(),
|
||||
m_requestHelper(new LtsUtils::RequestHelper(this))
|
||||
, m_logger(NGL::NGLLoggerBootstrap::getNGLRootLogger())
|
||||
{
|
||||
m_ui->setupUi(this);
|
||||
|
||||
@@ -108,7 +110,7 @@ bool ExerciseManagementEditDialog::init(LtsSession::LtsSessionDataDds* session,
|
||||
return false;
|
||||
|
||||
ExerciseManagement::Exercise data = m_dtc->exercise(exerciseId);
|
||||
m_currentState = data.state();
|
||||
m_currentState = data.state;
|
||||
m_ui->dtBegin->setRetrieveCurrentTimeCallback([this]() { return m_session->partitionTime(); });
|
||||
m_ui->dtEnd->setRetrieveCurrentTimeCallback([this]() { return m_session->partitionTime(); });
|
||||
|
||||
@@ -120,18 +122,18 @@ bool ExerciseManagementEditDialog::init(LtsSession::LtsSessionDataDds* session,
|
||||
m_operatorModel = new ExerciseOperatorModel(m_session, m_exerciseId, this);
|
||||
connect(m_operatorModel, &ExerciseOperatorModel::dataChanged, this, &ExerciseManagementEditDialog::slotChangesMade);
|
||||
|
||||
if (data.id() > 0)
|
||||
if (data.id > 0)
|
||||
{
|
||||
m_ui->leName->setText(QString::fromStdString(data.name()));
|
||||
m_ui->dtBegin->setTimezone(data.defaultTimeZone());
|
||||
m_ui->dtBegin->setMsecsSinceEpoch(data.beginTime());
|
||||
m_ui->dtEnd->setTimezone(data.defaultTimeZone());
|
||||
m_ui->dtEnd->setMsecsSinceEpoch(data.endTime());
|
||||
m_ui->leName->setText(QString::fromStdString(data.name));
|
||||
m_ui->dtBegin->setTimezone(data.defaultTimeZone);
|
||||
m_ui->dtBegin->setMsecsSinceEpoch(data.beginTime);
|
||||
m_ui->dtEnd->setTimezone(data.defaultTimeZone);
|
||||
m_ui->dtEnd->setMsecsSinceEpoch(data.endTime);
|
||||
|
||||
m_ui->pteDescription->setPlainText(QString::fromStdString(data.description()));
|
||||
m_ui->pteForces->setPlainText(QString::fromStdString(data.forces()));
|
||||
m_ui->cbTimeZone->setCurrentIndex(m_ui->cbTimeZone->findData(data.defaultTimeZone()));
|
||||
m_ui->cbStartHlaInterface->setChecked(data.hasHlaInterface());
|
||||
m_ui->pteDescription->setPlainText(QString::fromStdString(data.description));
|
||||
m_ui->pteForces->setPlainText(QString::fromStdString(data.forces));
|
||||
m_ui->cbTimeZone->setCurrentIndex(m_ui->cbTimeZone->findData(data.defaultTimeZone));
|
||||
m_ui->cbStartHlaInterface->setChecked(data.hasHlaInterface);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -215,25 +217,25 @@ bool ExerciseManagementEditDialog::init(LtsSession::LtsSessionDataDds* session,
|
||||
|
||||
connect(m_dtc.get(), &Interface::Dtc::exercisePhaseChanged, this,
|
||||
&ExerciseManagementEditDialog::onExercisePhaseChanged);
|
||||
m_ui->cbActivePhase->setCurrentIndex(m_ui->cbActivePhase->findData(QVariant(data.activePhaseId())));
|
||||
m_ui->cbActivePhase->setCurrentIndex(m_ui->cbActivePhase->findData(QVariant(data.activePhaseId)));
|
||||
|
||||
connect(m_dtc.get(), &Interface::Dtc::exerciseChanged, this, &ExerciseManagementEditDialog::onExerciseChanged);
|
||||
m_initialRadioGroupId.clear();
|
||||
if (data.radioGroupId().is_set())
|
||||
if (data.radioGroupId.has_value())
|
||||
{
|
||||
int curIdx = m_ui->cbRadioGroup->findData(QVariant(data.radioGroupId().get()));
|
||||
int curIdx = m_ui->cbRadioGroup->findData(QVariant(data.radioGroupId.get()));
|
||||
if (curIdx < 0)
|
||||
curIdx = 0;
|
||||
else
|
||||
m_initialRadioGroupId = data.radioGroupId().get();
|
||||
m_initialRadioGroupId = data.radioGroupId.get();
|
||||
m_ui->cbRadioGroup->setCurrentIndex(curIdx);
|
||||
}
|
||||
m_ui->cbVisibleInWarehouse->setChecked(data.sendToWMS());
|
||||
m_ui->cbLinkedExercise->setCurrentIndex(m_ui->cbLinkedExercise->findData(data.linkedExerciseId()));
|
||||
m_ui->cbVisibleInWarehouse->setChecked(data.sendToWMS);
|
||||
m_ui->cbLinkedExercise->setCurrentIndex(m_ui->cbLinkedExercise->findData(data.linkedExerciseId));
|
||||
|
||||
if (data.trainingAreaId() > 0)
|
||||
if (data.trainingAreaId > 0)
|
||||
{
|
||||
int idx = m_ui->cbTrainingArea->findData(QVariant(data.trainingAreaId()));
|
||||
int idx = m_ui->cbTrainingArea->findData(QVariant(data.trainingAreaId));
|
||||
m_ui->cbTrainingArea->setCurrentIndex(idx);
|
||||
}
|
||||
|
||||
@@ -287,14 +289,14 @@ void ExerciseManagementEditDialog::requestImage()
|
||||
|
||||
void ExerciseManagementEditDialog::onGetExerciseImageReply(const GetExerciseImageReply& reply)
|
||||
{
|
||||
if (reply.errorString().empty())
|
||||
if (reply.errorString.empty())
|
||||
{
|
||||
m_ui->imageEditor->setPixmap(LtsUtils::getPixmap(reply.imageData()));
|
||||
m_ui->imageEditor->setPixmap(LtsUtils::getPixmap(reply.imageData));
|
||||
return;
|
||||
}
|
||||
|
||||
QString msg(QString::fromStdString(reply.errorString()));
|
||||
for (const std::string& arg : std::as_const(reply.errorParams()))
|
||||
QString msg(QString::fromStdString(reply.errorString));
|
||||
for (const std::string& arg : std::as_const(reply.errorParams))
|
||||
msg = msg.arg(QString::fromStdString(arg));
|
||||
|
||||
ERROR_LOG(m_logger) << "loading exercise image failed: " << msg;
|
||||
@@ -319,10 +321,10 @@ bool ExerciseManagementEditDialog::hasVisibleParties(
|
||||
{
|
||||
for (const auto& pbe : vpbe)
|
||||
{
|
||||
if (pbe.exerciseId() != m_exerciseId)
|
||||
if (pbe.exerciseId != m_exerciseId)
|
||||
continue;
|
||||
|
||||
return pbe.visibleParties().is_set();
|
||||
return pbe.visibleParties.has_value();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@@ -336,7 +338,7 @@ void ExerciseManagementEditDialog::enaDisaOperatorsButtons()
|
||||
return;
|
||||
}
|
||||
const QPair<bool, OperatorManagement::User> row = m_operatorModel->getRowData(idx.row());
|
||||
bool visibleParties = hasVisibleParties(row.second.visiblePartiesByExercise());
|
||||
bool visibleParties = hasVisibleParties(row.second.visiblePartiesByExercise);
|
||||
bool isChecked = row.first;
|
||||
|
||||
if (LtsSessionData::LtsSessionData::getInstance()->hasOperatorRight(OperatorRights::ExerciseOperatorEdit))
|
||||
@@ -373,7 +375,7 @@ void ExerciseManagementEditDialog::onAddExercisePhase()
|
||||
|
||||
void ExerciseManagementEditDialog::onRemoveExercisePhase()
|
||||
{
|
||||
const int phId = m_phaseModel->getRowData(m_ui->dvPhases->currentIndex().row()).id();
|
||||
const int phId = m_phaseModel->getRowData(m_ui->dvPhases->currentIndex().row()).id;
|
||||
const int folderId = m_flmDtc->getPhaseFolderId(m_exerciseId, phId);
|
||||
|
||||
if (folderId > 0)
|
||||
@@ -382,7 +384,7 @@ void ExerciseManagementEditDialog::onRemoveExercisePhase()
|
||||
m_requestHelper->startSingleRequest([req, this]() { return m_flmFtc->folderRemoveRequest(req, this); });
|
||||
}
|
||||
|
||||
Core::RemoveElementRequest req(m_phaseModel->getRowData(m_ui->dvPhases->currentIndex().row()).id());
|
||||
Core::RemoveElementRequest req(m_phaseModel->getRowData(m_ui->dvPhases->currentIndex().row()).id);
|
||||
m_requestHelper->startSingleRequest([req, this]() {
|
||||
m_ftc->enableExercisePhaseRemove();
|
||||
return m_ftc->exercisePhaseRemoveRequest(req, this);
|
||||
@@ -396,9 +398,9 @@ void ExerciseManagementEditDialog::onEditVisibleParties()
|
||||
|
||||
const QModelIndex idx = m_ui->dvOperators->currentIndex();
|
||||
const QPair<bool, OperatorManagement::User> row = m_operatorModel->getRowData(idx.row());
|
||||
const int operatorId = row.second.id();
|
||||
const int operatorId = row.second.id;
|
||||
bool isChecked = row.first;
|
||||
bool visibleParties = hasVisibleParties(row.second.visiblePartiesByExercise());
|
||||
bool visibleParties = hasVisibleParties(row.second.visiblePartiesByExercise);
|
||||
|
||||
if (operatorId <= 0 || isChecked == false || !visibleParties)
|
||||
return;
|
||||
@@ -419,14 +421,14 @@ void ExerciseManagementEditDialog::onEditExercisePhase()
|
||||
const QModelIndex idx = m_ui->dvPhases->currentIndex();
|
||||
const ExercisePhase exPhase = m_phaseModel->getRowData(idx.row());
|
||||
|
||||
if (exPhase.id() <= 0)
|
||||
if (exPhase.id <= 0)
|
||||
return;
|
||||
DEBUG_LOG(m_logger) << "current exPhase Id: " << exPhase.id();
|
||||
DEBUG_LOG(m_logger) << "current exPhase Id: " << exPhase.id;
|
||||
|
||||
ExerciseManagementPhaseEditDialog* dialog = new ExerciseManagementPhaseEditDialog(this);
|
||||
|
||||
dialog->init(m_session, m_exerciseId, exPhase.id());
|
||||
const QString identifier = QLatin1String("EditExercisePhase") + QString::number(exPhase.id());
|
||||
dialog->init(m_session, m_exerciseId, exPhase.id);
|
||||
const QString identifier = QLatin1String("EditExercisePhase") + QString::number(exPhase.id);
|
||||
|
||||
addDialog(dialog, m_menuGroup, identifier, LtsWidgets::LayoutArea::eDialogTab);
|
||||
}
|
||||
@@ -464,8 +466,8 @@ void ExerciseManagementEditDialog::onImport()
|
||||
ExerciseModifyRequest req = jsonToExercise(content);
|
||||
DEBUG_LOG(m_logger) << "Importing: " << req;
|
||||
|
||||
m_ui->pteForces->setPlainText(QString::fromStdString(req.forces()));
|
||||
m_ui->pteDescription->setPlainText(QString::fromStdString(req.description()));
|
||||
m_ui->pteForces->setPlainText(QString::fromStdString(req.forces));
|
||||
m_ui->pteDescription->setPlainText(QString::fromStdString(req.description));
|
||||
}
|
||||
}
|
||||
return;
|
||||
@@ -522,14 +524,14 @@ void ExerciseManagementEditDialog::imageModifyError()
|
||||
void ExerciseManagementEditDialog::onExerciseChanged(const ExerciseManagement::Exercise& data, DataModification modType)
|
||||
{
|
||||
Q_UNUSED(modType)
|
||||
if (data.id() == m_exerciseId)
|
||||
if (data.id == m_exerciseId)
|
||||
{
|
||||
const bool wasModified = hasUnsavedChanges();
|
||||
m_currentState = data.state();
|
||||
m_currentState = data.state;
|
||||
enaDisa();
|
||||
fillStateCbx();
|
||||
m_ui->cbVisibleInWarehouse->setChecked(data.sendToWMS());
|
||||
m_ui->cbLinkedExercise->setCurrentIndex(m_ui->cbLinkedExercise->findData(data.linkedExerciseId()));
|
||||
m_ui->cbVisibleInWarehouse->setChecked(data.sendToWMS);
|
||||
m_ui->cbLinkedExercise->setCurrentIndex(m_ui->cbLinkedExercise->findData(data.linkedExerciseId));
|
||||
if (!wasModified)
|
||||
__unchange__();
|
||||
}
|
||||
@@ -541,7 +543,7 @@ void ExerciseManagementEditDialog::onExercisePhaseChanged(const ExerciseManageme
|
||||
DataModification modType)
|
||||
{
|
||||
Q_UNUSED(modType)
|
||||
if (data.exerciseId() == m_exerciseId)
|
||||
if (data.exerciseId == m_exerciseId)
|
||||
fillActivePhaseCbx();
|
||||
}
|
||||
|
||||
@@ -575,33 +577,33 @@ void ExerciseManagementEditDialog::fillStateCbx()
|
||||
ps->value(QStringLiteral("exm"), QStringLiteral("enableExerciseTerminatedToStopped")).toBool();
|
||||
|
||||
m_ui->cbState->clear();
|
||||
switch (m_currentState.underlying())
|
||||
switch (m_currentState)
|
||||
{
|
||||
case ExerciseState::Created:
|
||||
m_ui->cbState->addItem(tr("Created"), ExerciseState::Created);
|
||||
m_ui->cbState->addItem(tr("Start"), ExerciseState::Started);
|
||||
m_ui->cbState->addItem(tr("Created"), static_cast<int>(ExerciseState::Created));
|
||||
m_ui->cbState->addItem(tr("Start"), static_cast<int>(ExerciseState::Started));
|
||||
break;
|
||||
case ExerciseState::Started:
|
||||
m_ui->cbState->addItem(tr("Started"), ExerciseState::Started);
|
||||
m_ui->cbState->addItem(tr("Pause"), ExerciseState::Paused);
|
||||
m_ui->cbState->addItem(tr("Stop"), ExerciseState::Stopped);
|
||||
m_ui->cbState->addItem(tr("Started"), static_cast<int>(ExerciseState::Started));
|
||||
m_ui->cbState->addItem(tr("Pause"), static_cast<int>(ExerciseState::Paused));
|
||||
m_ui->cbState->addItem(tr("Stop"), static_cast<int>(ExerciseState::Stopped));
|
||||
break;
|
||||
case ExerciseState::Paused:
|
||||
m_ui->cbState->addItem(tr("Paused"), ExerciseState::Paused);
|
||||
m_ui->cbState->addItem(tr("Resume"), ExerciseState::Started);
|
||||
m_ui->cbState->addItem(tr("Stop"), ExerciseState::Stopped);
|
||||
m_ui->cbState->addItem(tr("Paused"), static_cast<int>(ExerciseState::Paused));
|
||||
m_ui->cbState->addItem(tr("Resume"), static_cast<int>(ExerciseState::Started));
|
||||
m_ui->cbState->addItem(tr("Stop"), static_cast<int>(ExerciseState::Stopped));
|
||||
break;
|
||||
case ExerciseState::Stopped:
|
||||
m_ui->cbState->addItem(tr("Stopped"), ExerciseState::Stopped);
|
||||
m_ui->cbState->addItem(tr("Terminated"), ExerciseState::Terminated);
|
||||
m_ui->cbState->addItem(tr("Stopped"), static_cast<int>(ExerciseState::Stopped));
|
||||
m_ui->cbState->addItem(tr("Terminated"), static_cast<int>(ExerciseState::Terminated));
|
||||
break;
|
||||
case ExerciseState::Terminated:
|
||||
m_ui->cbState->addItem(tr("Terminated"), ExerciseState::Terminated);
|
||||
m_ui->cbState->addItem(tr("Terminated"), static_cast<int>(ExerciseState::Terminated));
|
||||
if (enableExerciseTerminatedToStopped)
|
||||
m_ui->cbState->addItem(tr("Stopped"), ExerciseState::Stopped);
|
||||
m_ui->cbState->addItem(tr("Stopped"), static_cast<int>(ExerciseState::Stopped));
|
||||
break;
|
||||
case ExerciseState::Unknown:
|
||||
m_ui->cbState->addItem(tr("Unknown"), ExerciseState::Unknown);
|
||||
m_ui->cbState->addItem(tr("Unknown"), static_cast<int>(ExerciseState::Unknown));
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -612,7 +614,7 @@ void ExerciseManagementEditDialog::fillTrainingAreaCbx()
|
||||
int curIdxTa = m_ui->cbTrainingArea->currentIndex();
|
||||
m_ui->cbTrainingArea->clear();
|
||||
auto cb = [this](const AssetManagement::TrainingArea& ta) {
|
||||
m_ui->cbTrainingArea->addItem(QString::fromStdString(ta.name()), QVariant(ta.id()));
|
||||
m_ui->cbTrainingArea->addItem(QString::fromStdString(ta.name), QVariant(ta.id));
|
||||
};
|
||||
m_asmDtc->trainingAreas(cb);
|
||||
m_ui->cbTrainingArea->model()->sort(0);
|
||||
@@ -627,8 +629,8 @@ void ExerciseManagementEditDialog::fillActivePhaseCbx()
|
||||
int curIdxActPh = m_ui->cbActivePhase->currentIndex();
|
||||
m_ui->cbActivePhase->clear();
|
||||
auto cb = [this](const ExerciseManagement::ExercisePhase& phase) {
|
||||
if (m_exerciseId == phase.exerciseId())
|
||||
m_ui->cbActivePhase->addItem(QString::fromStdString(phase.name()), QVariant(phase.id()));
|
||||
if (m_exerciseId == phase.exerciseId)
|
||||
m_ui->cbActivePhase->addItem(QString::fromStdString(phase.name), QVariant(phase.id));
|
||||
};
|
||||
m_dtc->exercisePhases(cb);
|
||||
m_ui->cbActivePhase->setEnabled(m_ui->cbActivePhase->count() > 1);
|
||||
@@ -649,15 +651,15 @@ void ExerciseManagementEditDialog::fillRadioGroupCbx()
|
||||
const QMap<qint32, ExerciseManagement::Exercise> mapEx = m_dtc->exercises();
|
||||
QMap<qint32, ProjectDataManagement::RadioGroup> mapRadioGrp = m_pdmDtc->radioGroups();
|
||||
for (auto it = mapEx.begin(); it != mapEx.end(); ++it)
|
||||
if (it.value().id() != m_exerciseId)
|
||||
if (it.value().radioGroupId().is_set())
|
||||
mapRadioGrp.remove(it.value().radioGroupId().get());
|
||||
if (it.value().id != m_exerciseId)
|
||||
if (it.value().radioGroupId.has_value())
|
||||
mapRadioGrp.remove(it.value().radioGroupId.get());
|
||||
|
||||
for (auto it = mapRadioGrp.begin(); it != mapRadioGrp.end(); ++it)
|
||||
{
|
||||
const auto& radioGroup = it.value();
|
||||
if (!radioGroup.base_group())
|
||||
m_ui->cbRadioGroup->addItem(m_pdmDtc->trRadioGroupName(radioGroup.id()), radioGroup.id());
|
||||
if (!radioGroup.base_group)
|
||||
m_ui->cbRadioGroup->addItem(m_pdmDtc->trRadioGroupName(radioGroup.id), radioGroup.id);
|
||||
}
|
||||
|
||||
m_ui->cbTrainingArea->model()->sort(0);
|
||||
@@ -680,11 +682,11 @@ void ExerciseManagementEditDialog::fillLinkedExercisesCbx()
|
||||
int curId = m_ui->cbLinkedExercise->currentData().toInt();
|
||||
m_ui->cbLinkedExercise->clear();
|
||||
auto cb = [this](const Exercise& ex) {
|
||||
if (ex.state() != ExerciseManagement::ExerciseState::Created && ex.linkedExerciseId() != m_exerciseId)
|
||||
if (ex.state != ExerciseManagement::ExerciseState::Created && ex.linkedExerciseId != m_exerciseId)
|
||||
return;
|
||||
if (ex.id() == m_exerciseId)
|
||||
if (ex.id == m_exerciseId)
|
||||
return;
|
||||
m_ui->cbLinkedExercise->addItem(QString::fromStdString(ex.name()), ex.id());
|
||||
m_ui->cbLinkedExercise->addItem(QString::fromStdString(ex.name), ex.id);
|
||||
};
|
||||
m_dtc->exercises(cb);
|
||||
m_ui->cbLinkedExercise->addItem(tr("---"), 0);
|
||||
@@ -729,7 +731,7 @@ bool ExerciseManagementEditDialog::apply()
|
||||
{
|
||||
ExerciseState state = static_cast<ExerciseState>(m_ui->cbState->currentData().toInt());
|
||||
ExerciseManagement::Exercise data = m_dtc->exercise(m_exerciseId);
|
||||
if (state == ExerciseState::Stopped && data.state() != ExerciseState::Stopped)
|
||||
if (state == ExerciseState::Stopped && data.state != ExerciseState::Stopped)
|
||||
{
|
||||
if (LtsWidgets::LtsMessageDialog::showMessage(
|
||||
this, QString(), tr("Are you sure you want to stop the exercise?"), LtsWidgets::Behaviour::Modal,
|
||||
@@ -737,7 +739,7 @@ bool ExerciseManagementEditDialog::apply()
|
||||
|
||||
retVal = false;
|
||||
}
|
||||
else if (state == ExerciseState::Terminated && data.state() != ExerciseState::Terminated)
|
||||
else if (state == ExerciseState::Terminated && data.state != ExerciseState::Terminated)
|
||||
{
|
||||
if (LtsWidgets::LtsMessageDialog::showMessage(
|
||||
this, QString(), tr("Are you sure you want to terminate the exercise?"),
|
||||
@@ -751,34 +753,34 @@ bool ExerciseManagementEditDialog::apply()
|
||||
{
|
||||
ExerciseModifyRequest request;
|
||||
|
||||
request.id(m_exerciseId);
|
||||
request.beginTime(m_ui->dtBegin->msecsSinceEpoch());
|
||||
request.endTime(m_ui->dtEnd->msecsSinceEpoch());
|
||||
request.name(m_ui->leName->text().toStdString());
|
||||
request.sendToWMS(m_ui->cbVisibleInWarehouse->isChecked());
|
||||
request.linkedExerciseId(m_ui->cbLinkedExercise->currentData().toInt());
|
||||
request.trainingAreaId(m_ui->cbTrainingArea->currentData().toInt());
|
||||
request.id = m_exerciseId;
|
||||
request.beginTime = m_ui->dtBegin->msecsSinceEpoch();
|
||||
request.endTime = m_ui->dtEnd->msecsSinceEpoch();
|
||||
request.name = m_ui->leName->text().toStdString();
|
||||
request.sendToWMS = m_ui->cbVisibleInWarehouse->isChecked();
|
||||
request.linkedExerciseId = m_ui->cbLinkedExercise->currentData().toInt();
|
||||
request.trainingAreaId = m_ui->cbTrainingArea->currentData().toInt();
|
||||
int radioGroup = m_ui->cbRadioGroup->currentData().toInt();
|
||||
if (radioGroup != 0)
|
||||
{
|
||||
m_initialRadioGroupId = radioGroup;
|
||||
request.radioGroupId(radioGroup);
|
||||
request.radioGroupId = radioGroup;
|
||||
}
|
||||
|
||||
request.symbolFillTypeId(0);
|
||||
request.activePhaseId(m_ui->cbActivePhase->currentData().toInt());
|
||||
request.defaultTimeZone(m_ui->cbTimeZone->currentData().toChar().toLatin1());
|
||||
request.forces(m_ui->pteForces->toPlainText().toStdString());
|
||||
request.description(m_ui->pteDescription->toPlainText().toStdString());
|
||||
request.hasHlaInterface(m_ui->cbStartHlaInterface->isChecked());
|
||||
request.newState(static_cast<ExerciseState>(m_ui->cbState->currentData().toInt()));
|
||||
request.operatorId(LtsSessionData::LtsSessionData::getInstance()->getOperatorId());
|
||||
request.workstationId(LtsSessionData::LtsSessionData::getInstance()->getWorkstationId());
|
||||
request.symbolFillTypeId = 0;
|
||||
request.activePhaseId = m_ui->cbActivePhase->currentData().toInt();
|
||||
request.defaultTimeZone = m_ui->cbTimeZone->currentData().toChar().toLatin1();
|
||||
request.forces = m_ui->pteForces->toPlainText().toStdString();
|
||||
request.description = m_ui->pteDescription->toPlainText().toStdString();
|
||||
request.hasHlaInterface = m_ui->cbStartHlaInterface->isChecked();
|
||||
request.newState = static_cast<ExerciseState>(m_ui->cbState->currentData().toInt());
|
||||
request.operatorId = LtsSessionData::LtsSessionData::getInstance()->getOperatorId();
|
||||
request.workstationId = LtsSessionData::LtsSessionData::getInstance()->getWorkstationId();
|
||||
|
||||
if (data.startTime() > 0)
|
||||
request.startTime(data.startTime());
|
||||
if (data.stopTime() > 0)
|
||||
request.stopTime(data.stopTime());
|
||||
if (data.startTime > 0)
|
||||
request.startTime = data.startTime;
|
||||
if (data.stopTime > 0)
|
||||
request.stopTime = data.stopTime;
|
||||
|
||||
if (!m_requestHelper->startSingleRequest([this, request]() {
|
||||
m_ftc->enableExerciseModify();
|
||||
@@ -801,21 +803,21 @@ bool ExerciseManagementEditDialog::apply()
|
||||
else
|
||||
{
|
||||
ExerciseCreateRequest request;
|
||||
request.beginTime(m_ui->dtBegin->msecsSinceEpoch());
|
||||
request.endTime(m_ui->dtEnd->msecsSinceEpoch());
|
||||
request.name(m_ui->leName->text().toStdString());
|
||||
request.sendToWMS(m_ui->cbVisibleInWarehouse->isChecked());
|
||||
request.linkedExerciseId(m_ui->cbLinkedExercise->currentData().toInt());
|
||||
request.trainingAreaId(m_ui->cbTrainingArea->currentData().toInt());
|
||||
request.beginTime = m_ui->dtBegin->msecsSinceEpoch();
|
||||
request.endTime = m_ui->dtEnd->msecsSinceEpoch();
|
||||
request.name = m_ui->leName->text().toStdString();
|
||||
request.sendToWMS = m_ui->cbVisibleInWarehouse->isChecked();
|
||||
request.linkedExerciseId = m_ui->cbLinkedExercise->currentData().toInt();
|
||||
request.trainingAreaId = m_ui->cbTrainingArea->currentData().toInt();
|
||||
int radioGroup = m_ui->cbRadioGroup->currentData().toInt();
|
||||
if (radioGroup != 0)
|
||||
request.radioGroupId(radioGroup);
|
||||
request.radioGroupId = radioGroup;
|
||||
|
||||
request.symbolFillTypeId(0);
|
||||
request.defaultTimeZone(m_ui->cbTimeZone->currentData().toChar().toLatin1());
|
||||
request.forces(m_ui->pteForces->toPlainText().toStdString());
|
||||
request.description(m_ui->pteDescription->toPlainText().toStdString());
|
||||
request.hasHlaInterface(m_ui->cbStartHlaInterface->isChecked());
|
||||
request.symbolFillTypeId = 0;
|
||||
request.defaultTimeZone = m_ui->cbTimeZone->currentData().toChar().toLatin1();
|
||||
request.forces = m_ui->pteForces->toPlainText().toStdString();
|
||||
request.description = m_ui->pteDescription->toPlainText().toStdString();
|
||||
request.hasHlaInterface = m_ui->cbStartHlaInterface->isChecked();
|
||||
|
||||
if (!m_requestHelper->startSingleRequest([this, request]() {
|
||||
m_ftc->enableExerciseCreate();
|
||||
@@ -877,8 +879,8 @@ void ExerciseManagementEditDialog::sendModifiedOperators(int thisExerciseId)
|
||||
{
|
||||
const auto rowData = m_operatorModel->getRowData(row);
|
||||
bool found = false;
|
||||
OperatorManagement::User user = m_opmDtc->user(rowData.second.id());
|
||||
for (auto ex : user.exerciseIds())
|
||||
OperatorManagement::User user = m_opmDtc->user(rowData.second.id);
|
||||
for (auto ex : user.exerciseIds)
|
||||
if (ex == thisExerciseId)
|
||||
found = true;
|
||||
|
||||
@@ -886,14 +888,14 @@ void ExerciseManagementEditDialog::sendModifiedOperators(int thisExerciseId)
|
||||
continue;
|
||||
|
||||
if (rowData.first)
|
||||
user.exerciseIds().resize(user.exerciseIds().size() + 1, thisExerciseId);
|
||||
user.exerciseIds.resize(user.exerciseIds.size() + 1, thisExerciseId);
|
||||
else
|
||||
removeElement(user.exerciseIds(), thisExerciseId);
|
||||
removeElement(user.exerciseIds, thisExerciseId);
|
||||
|
||||
OperatorManagement::OperatorCreateModifyRequest req;
|
||||
req.id(user.id());
|
||||
req.visibleExercises() = user.exerciseIds();
|
||||
req.visiblePartiesByExercise() = user.visiblePartiesByExercise();
|
||||
req.id = user.id;
|
||||
req.visibleExercises = user.exerciseIds;
|
||||
req.visiblePartiesByExercise = user.visiblePartiesByExercise;
|
||||
|
||||
DEBUG_LOG(m_logger) << "Adding request: " << req;
|
||||
m_requestHelper->addRequest([this, req, opmFtc]() {
|
||||
@@ -909,7 +911,7 @@ bool ExerciseManagementEditDialog::createFolders(int newExId)
|
||||
{
|
||||
|
||||
QString folderName = m_flmDtc->getExerciseFolderName(newExId);
|
||||
int folderId = createFolder(FileManagement::MainFolder::ExerciseDocuments, folderName);
|
||||
int folderId = createFolder(static_cast<int>(FileManagement::MainFolder::ExerciseDocuments), folderName);
|
||||
|
||||
if (folderId <= 0)
|
||||
return false;
|
||||
@@ -943,7 +945,7 @@ bool ExerciseManagementEditDialog::createFolders(int newExId)
|
||||
|
||||
if (folderPhaseDocsId > 0)
|
||||
{
|
||||
int phId = m_dtc->exercise(newExId).activePhaseId();
|
||||
int phId = m_dtc->exercise(newExId).activePhaseId;
|
||||
const QString& phaseName = m_flmDtc->getPhaseFolderName(phId);
|
||||
int folderPhaseId = createFolder(folderPhaseDocsId, phaseName);
|
||||
DEBUG_LOG(m_logger) << "Phase Folder created with id = " << folderPhaseId;
|
||||
@@ -955,22 +957,22 @@ bool ExerciseManagementEditDialog::createFolders(int newExId)
|
||||
DEBUG_LOG(m_logger) << "Markers Folder created with id = " << subFolderId;
|
||||
|
||||
FileManagement::PathCreateRequest req;
|
||||
req.parentId(folderId);
|
||||
req.path({"Planning", "TNE Lists"});
|
||||
req.isEditable(false);
|
||||
req.isHidden(false);
|
||||
req.operatorId(LtsSessionData::LtsSessionData::getInstance()->getOperatorId());
|
||||
req.parentId = folderId;
|
||||
req.path = {"Planning", "TNE Lists"};
|
||||
req.isEditable = false;
|
||||
req.isHidden = false;
|
||||
req.operatorId = LtsSessionData::LtsSessionData::getInstance()->getOperatorId();
|
||||
|
||||
bool success = m_flmFtc->pathCreateRequest(req);
|
||||
if (!success)
|
||||
ERROR_LOG(m_logger) << "Planning/TNE Lists could not be created";
|
||||
|
||||
req.path({"Tactical Plans", "BDA"});
|
||||
req.path = {"Tactical Plans", "BDA"};
|
||||
success = m_flmFtc->pathCreateRequest(req);
|
||||
if (!success)
|
||||
ERROR_LOG(m_logger) << "Tactical Plans/BDA could not be created";
|
||||
|
||||
req.path({"Tactical Plans", "HQ Data"});
|
||||
req.path = {"Tactical Plans", "HQ Data"};
|
||||
success = m_flmFtc->pathCreateRequest(req);
|
||||
|
||||
if (!success)
|
||||
@@ -987,15 +989,15 @@ bool ExerciseManagementEditDialog::createFolders(int newExId)
|
||||
int ExerciseManagementEditDialog::createFolder(int parentFolderId, const QString& folderName, bool isHidden)
|
||||
{
|
||||
FileManagement::Folder parentFolder = m_flmDtc->folder(parentFolderId);
|
||||
const std::vector<int32_t>& parentPath = parentFolder.path();
|
||||
const std::vector<int32_t>& parentPath = parentFolder.path;
|
||||
|
||||
FileManagement::FolderModifyRequest req;
|
||||
req.name(folderName.toStdString());
|
||||
req.path(parentPath);
|
||||
req.isEditable(false);
|
||||
req.isHidden(isHidden);
|
||||
req.parentId(parentFolderId);
|
||||
req.operatorId(LtsSessionData::LtsSessionData::getInstance()->getOperatorId());
|
||||
req.name = folderName.toStdString();
|
||||
req.path = parentPath;
|
||||
req.isEditable = false;
|
||||
req.isHidden = isHidden;
|
||||
req.parentId = parentFolderId;
|
||||
req.operatorId = LtsSessionData::LtsSessionData::getInstance()->getOperatorId();
|
||||
|
||||
m_requestHelper->startSingleRequest([this, req]() { return m_flmFtc->folderModifyRequest(req, this); });
|
||||
|
||||
@@ -1007,18 +1009,18 @@ int ExerciseManagementEditDialog::createFolder(int parentFolderId, const QString
|
||||
bool ExerciseManagementEditDialog::createExerciseFolders(int parentFolderId, const QStringList& folderNames)
|
||||
{
|
||||
FileManagement::Folder parentFolder = m_flmDtc->folder(parentFolderId);
|
||||
const std::vector<int32_t>& parentPath = parentFolder.path();
|
||||
const std::vector<int32_t>& parentPath = parentFolder.path;
|
||||
|
||||
FileManagement::FolderModifyRequest req;
|
||||
req.path(parentPath);
|
||||
req.isEditable(false);
|
||||
req.isHidden(false);
|
||||
req.parentId(parentFolderId);
|
||||
req.operatorId(LtsSessionData::LtsSessionData::getInstance()->getOperatorId());
|
||||
req.path = parentPath;
|
||||
req.isEditable = false;
|
||||
req.isHidden = false;
|
||||
req.parentId = parentFolderId;
|
||||
req.operatorId = LtsSessionData::LtsSessionData::getInstance()->getOperatorId();
|
||||
|
||||
for (const QString& folderName : folderNames)
|
||||
{
|
||||
req.name(folderName.toStdString());
|
||||
req.name = folderName.toStdString();
|
||||
|
||||
m_requestHelper->addRequest([this, req]() { return m_flmFtc->folderModifyRequest(req, this); });
|
||||
}
|
||||
@@ -1050,8 +1052,8 @@ ExerciseModifyRequest ExerciseManagementEditDialog::setRequestContent() const
|
||||
{
|
||||
ExerciseModifyRequest req;
|
||||
|
||||
req.forces(m_ui->pteForces->toPlainText().toStdString());
|
||||
req.description(m_ui->pteDescription->toPlainText().toStdString());
|
||||
req.forces = m_ui->pteForces->toPlainText().toStdString();
|
||||
req.description = m_ui->pteDescription->toPlainText().toStdString();
|
||||
|
||||
const ExerciseModifyRequest out = req;
|
||||
return out;
|
||||
@@ -1066,23 +1068,23 @@ QByteArray ExerciseManagementEditDialog::exerciseToJson() const
|
||||
|
||||
obj[JsonKeys::XMLTYPE()] = JsonKeys::XMLTYPEVALUE();
|
||||
|
||||
obj[JsonKeys::FORCES()] = QString::fromStdString(req.forces());
|
||||
obj[JsonKeys::DESCRIPTION()] = QString::fromStdString(req.description());
|
||||
obj[JsonKeys::FORCES()] = QString::fromStdString(req.forces);
|
||||
obj[JsonKeys::DESCRIPTION()] = QString::fromStdString(req.description);
|
||||
|
||||
QJsonArray phases;
|
||||
for (int row = 0; row < m_phaseModel->rowCount(); ++row)
|
||||
{
|
||||
QJsonObject phase;
|
||||
phase.insert(JsonKeys::PID(), m_phaseModel->getRowData(row).id());
|
||||
phase.insert(JsonKeys::PNAME(), QString::fromStdString(m_phaseModel->getRowData(row).name()));
|
||||
phase.insert(JsonKeys::PISDELETED(), m_phaseModel->getRowData(row).isDeleted());
|
||||
phase.insert(JsonKeys::PISUSED(), m_phaseModel->getRowData(row).isUsed());
|
||||
long long beginTime = m_phaseModel->getRowData(row).beginTime() - startExercise;
|
||||
long long endTime = m_phaseModel->getRowData(row).endTime() - startExercise;
|
||||
phase.insert(JsonKeys::PID(), m_phaseModel->getRowData(row).id);
|
||||
phase.insert(JsonKeys::PNAME(), QString::fromStdString(m_phaseModel->getRowData(row).name));
|
||||
phase.insert(JsonKeys::PISDELETED(), m_phaseModel->getRowData(row).isDeleted);
|
||||
phase.insert(JsonKeys::PISUSED(), m_phaseModel->getRowData(row).isUsed);
|
||||
long long beginTime = m_phaseModel->getRowData(row).beginTime - startExercise;
|
||||
long long endTime = m_phaseModel->getRowData(row).endTime - startExercise;
|
||||
phase.insert(JsonKeys::PBEGINTIME(), beginTime);
|
||||
phase.insert(JsonKeys::PENDTIME(), endTime);
|
||||
phase.insert(JsonKeys::PDESCRIPTION(), QString::fromStdString(m_phaseModel->getRowData(row).description()));
|
||||
phase.insert(JsonKeys::PEXERCISEID(), m_phaseModel->getRowData(row).exerciseId());
|
||||
phase.insert(JsonKeys::PDESCRIPTION(), QString::fromStdString(m_phaseModel->getRowData(row).description));
|
||||
phase.insert(JsonKeys::PEXERCISEID(), m_phaseModel->getRowData(row).exerciseId);
|
||||
phases.append(phase);
|
||||
}
|
||||
obj[JsonKeys::PHASES()] = phases;
|
||||
@@ -1104,8 +1106,8 @@ ExerciseModifyRequest ExerciseManagementEditDialog::jsonToExercise(const QByteAr
|
||||
const QJsonDocument doc(QJsonDocument::fromJson(content));
|
||||
const QJsonObject obj(doc.object());
|
||||
|
||||
result.forces(obj[JsonKeys::FORCES()].toString().toStdString());
|
||||
result.description(obj[JsonKeys::DESCRIPTION()].toString().toStdString());
|
||||
result.forces = obj[JsonKeys::FORCES()].toString().toStdString();
|
||||
result.description = obj[JsonKeys::DESCRIPTION()].toString().toStdString();
|
||||
|
||||
QJsonArray phasesArray = obj[JsonKeys::PHASES()].toArray();
|
||||
QVector<ExerciseManagement::ExercisePhase> phases;
|
||||
@@ -1114,15 +1116,15 @@ ExerciseModifyRequest ExerciseManagementEditDialog::jsonToExercise(const QByteAr
|
||||
{
|
||||
QJsonObject phaseObj = (*it).toObject();
|
||||
ExerciseManagement::ExercisePhase phase;
|
||||
phase.id(phaseObj[JsonKeys::PID()].toInt());
|
||||
phase.name(phaseObj[JsonKeys::PNAME()].toString().toStdString());
|
||||
phase.isDeleted(phaseObj[JsonKeys::PISDELETED()].toBool());
|
||||
phase.isUsed(phaseObj[JsonKeys::PISUSED()].toBool());
|
||||
phase.description(phaseObj[JsonKeys::PDESCRIPTION()].toString().toStdString());
|
||||
phase.id = phaseObj[JsonKeys::PID()].toInt();
|
||||
phase.name = phaseObj[JsonKeys::PNAME()].toString().toStdString();
|
||||
phase.isDeleted = phaseObj[JsonKeys::PISDELETED()].toBool();
|
||||
phase.isUsed = phaseObj[JsonKeys::PISUSED()].toBool();
|
||||
phase.description = phaseObj[JsonKeys::PDESCRIPTION()].toString().toStdString();
|
||||
|
||||
phase.beginTime(phaseObj[JsonKeys::PBEGINTIME()].toInt() + m_ui->dtBegin->msecsSinceEpoch());
|
||||
phase.endTime(phaseObj[JsonKeys::PENDTIME()].toInt() + m_ui->dtBegin->msecsSinceEpoch());
|
||||
phase.exerciseId(phaseObj[JsonKeys::PEXERCISEID()].toInt());
|
||||
phase.beginTime = phaseObj[JsonKeys::PBEGINTIME()].toInt() + m_ui->dtBegin->msecsSinceEpoch();
|
||||
phase.endTime = phaseObj[JsonKeys::PENDTIME()].toInt() + m_ui->dtBegin->msecsSinceEpoch();
|
||||
phase.exerciseId = phaseObj[JsonKeys::PEXERCISEID()].toInt();
|
||||
phases.append(phase);
|
||||
}
|
||||
m_phaseModel->setData(phases);
|
||||
|
||||
+1
-1
@@ -11,7 +11,7 @@
|
||||
#include <LtsWidgets/lts_dialog.h>
|
||||
#include <ParticipantManagement/ppm_data_plugin_interface.h>
|
||||
#include <AssetManagement/asm_data_plugin_interface.h>
|
||||
#include <flm_data_plugin_interface.h>
|
||||
#include <Plugins/FileManagement/flm_data_plugin_interface.h>
|
||||
#include <FileManagement/flm_explorer_gui_plugin_interface.h>
|
||||
#include <OperatorManagement/opm_data_plugin_interface.h>
|
||||
#include <ProjectDataManagement/pdm_data_plugin_interface.h>
|
||||
|
||||
+6
-6
@@ -267,7 +267,7 @@ void InterfaceImpl::slotSelectExercise(int partitionId)
|
||||
|
||||
ExerciseManagement::Exercise exc = m_dtc->exercise(partitionId);
|
||||
|
||||
int excId = exc.id();
|
||||
int excId = exc.id;
|
||||
|
||||
if (excId == 0)
|
||||
{
|
||||
@@ -325,16 +325,16 @@ void InterfaceImpl::checkNeedRecalcMgrsSquares(const ExerciseManagement::Exercis
|
||||
{
|
||||
if (!LtsCoordTrans::defaultMgrsSquares().isEmpty())
|
||||
return;
|
||||
AssetManagement::TrainingArea ta = m_asmDtc->trainingArea(exc.trainingAreaId());
|
||||
AssetManagement::TrainingArea ta = m_asmDtc->trainingArea(exc.trainingAreaId);
|
||||
|
||||
if (ta.id() != exc.trainingAreaId())
|
||||
if (ta.id != exc.trainingAreaId)
|
||||
{
|
||||
qWarning() << "Could not fetch Training Area with id " << exc.trainingAreaId();
|
||||
qWarning() << "Could not fetch Training Area with id " << exc.trainingAreaId;
|
||||
abort();
|
||||
}
|
||||
|
||||
LtsCoordTrans::UtmCoordinate bottomLeft = LtsCoordTrans::UtmCoordinate::fromGeographic(ta.bottomLeft().lon(), ta.bottomLeft().lat());
|
||||
LtsCoordTrans::getMgrsSquares(QRectF(bottomLeft.geographic(0, ta.height()), bottomLeft.geographic(ta.width(), 0)), true, true);
|
||||
LtsCoordTrans::UtmCoordinate bottomLeft = LtsCoordTrans::UtmCoordinate::fromGeographic(ta.bottomLeft.lon, ta.bottomLeft.lat);
|
||||
LtsCoordTrans::getMgrsSquares(QRectF(bottomLeft.geographic(0, ta.height), bottomLeft.geographic(ta.width, 0)), true, true);
|
||||
}
|
||||
|
||||
}
|
||||
+14
-11
@@ -1,6 +1,7 @@
|
||||
|
||||
|
||||
#include "exm_edit_party_dialog.h"
|
||||
#include <NGLLogger/NGLLoggerBootstrap.h>
|
||||
|
||||
#include "ui_exm_edit_party_dialog.h"
|
||||
|
||||
@@ -8,7 +9,7 @@
|
||||
#include <LtsWidgets/lts_frameless_dialog.h>
|
||||
#include <LtsWidgets/lts_message_dialog.h>
|
||||
#include <ParticipantManagement/Data/ppm_data_plugin.h>
|
||||
#include <ExerciseManagement/exm_data_plugin.h>
|
||||
#include <Plugins/ExerciseManagement/Data/exm_data_plugin.h>
|
||||
#include <QtCore/QJsonArray>
|
||||
#include <QtCore/QJsonDocument>
|
||||
#include <QtCore/QJsonObject>
|
||||
@@ -23,6 +24,7 @@ ExerciseEditPartyDialog::ExerciseEditPartyDialog(const int operatorId, const int
|
||||
m_exerciseId(exerciseId), m_visiblePartiesChanged(false), m_adlerVisiblePartiesChanged(false),
|
||||
m_menuGroup(menuGroup), m_visiblePartiesModel(nullptr), m_adlerVisiblePartiesModel(nullptr), m_opmDtc(nullptr),
|
||||
m_opmFtc(nullptr), m_ui(new Ui::ExerciseEditPartyDialog), m_requestHelper(new LtsUtils::RequestHelper(this))
|
||||
, m_logger(NGL::NGLLoggerBootstrap::getNGLRootLogger())
|
||||
{
|
||||
setNoTopicLock();
|
||||
m_ui->setupUi(this);
|
||||
@@ -145,13 +147,14 @@ bool ExerciseEditPartyDialog::apply()
|
||||
return true;
|
||||
|
||||
OperatorManagement::OperatorUpdateVisiblePartiesByExerciseRequest req;
|
||||
req.id(m_operatorId);
|
||||
req.exerciseId(m_exerciseId);
|
||||
req.id = m_operatorId;
|
||||
req.exerciseId = m_exerciseId;
|
||||
|
||||
if (!m_visiblePartiesChanged && !m_adlerVisiblePartiesChanged)
|
||||
return false;
|
||||
|
||||
QSet<int> visiblePartyIds = m_visiblePartiesModel->getCheckedIds().toList().toSet();
|
||||
const QVector<int> &checkedPartyIds = m_visiblePartiesModel->getCheckedIds();
|
||||
QSet<int> visiblePartyIds(checkedPartyIds.begin(), checkedPartyIds.end());
|
||||
|
||||
visiblePartyIds.insert(0);
|
||||
visiblePartyIds.insert(1);
|
||||
@@ -161,16 +164,16 @@ bool ExerciseEditPartyDialog::apply()
|
||||
DEBUG_LOG(m_logger) << "visible party: " << visible;
|
||||
for (const int hidden : hiddenPartyIds)
|
||||
DEBUG_LOG(m_logger) << "hidden party: " << hidden;
|
||||
req.hiddenParties().set({});
|
||||
req.visibleParties().set({});
|
||||
std::copy(hiddenPartyIds.begin(), hiddenPartyIds.end(), std::back_inserter(req.hiddenParties().get()));
|
||||
std::copy(visiblePartyIds.begin(), visiblePartyIds.end(), std::back_inserter(req.visibleParties().get()));
|
||||
req.hiddenParties.set({});
|
||||
req.visibleParties.set({});
|
||||
std::copy(hiddenPartyIds.begin(), hiddenPartyIds.end(), std::back_inserter(req.hiddenParties.get()));
|
||||
std::copy(visiblePartyIds.begin(), visiblePartyIds.end(), std::back_inserter(req.visibleParties.get()));
|
||||
|
||||
req.properties(adlerVisiblePartiesToJson().toStdString());
|
||||
req.properties = adlerVisiblePartiesToJson().toStdString();
|
||||
|
||||
DEBUG_LOG(m_logger) << "----------------- opId: " << req.id() << ", exId:" << req.exerciseId()
|
||||
DEBUG_LOG(m_logger) << "----------------- opId: " << req.id << ", exId:" << req.exerciseId
|
||||
<< ", req.hiddenParties.size:" << hiddenPartyIds.size()
|
||||
<< "adlerVisibleParties: " << req.properties();
|
||||
<< "adlerVisibleParties: " << req.properties;
|
||||
|
||||
return operatorUpdateVisiblePartiesByExercise(req);
|
||||
}
|
||||
|
||||
+20
-18
@@ -2,9 +2,10 @@
|
||||
|
||||
|
||||
#include "exm_edit_phase_dialog.h"
|
||||
#include <NGLLogger/NGLLoggerBootstrap.h>
|
||||
#include "ui_exm_edit_phase_dialog.h"
|
||||
#include <ExerciseManagement/exm_data_plugin_interface.h>
|
||||
#include <flm_data_plugin_interface.h>
|
||||
#include <Plugins/FileManagement/flm_data_plugin_interface.h>
|
||||
#include <LtsSession/lts_session_data.h>
|
||||
|
||||
namespace ExerciseManagement
|
||||
@@ -13,6 +14,7 @@ ExerciseManagementPhaseEditDialog::ExerciseManagementPhaseEditDialog(QWidget *pa
|
||||
: LtsWidgets::LtsDialog(parent, LtsWidgets::ButtonCombination::OkApplyCancel)
|
||||
, m_ui(new Ui::ExerciseManagementPhaseEditDialog)
|
||||
, m_requestHelper(new LtsUtils::RequestHelper(this))
|
||||
, m_logger(NGL::NGLLoggerBootstrap::getNGLRootLogger())
|
||||
{
|
||||
m_ui->setupUi(this);
|
||||
|
||||
@@ -44,18 +46,18 @@ bool ExerciseManagementPhaseEditDialog::init(LtsSession::LtsSessionDataDds *sess
|
||||
|
||||
ExerciseManagement::ExercisePhase data = m_dtc->exercisePhase(phaseId);
|
||||
|
||||
m_ui->leName->setText(QString::fromUtf8(data.name().c_str()));
|
||||
m_ui->pteDescription->setPlainText(QString::fromStdString(data.description()));
|
||||
m_ui->dtStart->setMsecsSinceEpoch(data.beginTime());
|
||||
m_ui->dtEnd->setMsecsSinceEpoch(data.endTime());
|
||||
m_ui->leName->setText(QString::fromUtf8(data.name.c_str()));
|
||||
m_ui->pteDescription->setPlainText(QString::fromStdString(data.description));
|
||||
m_ui->dtStart->setMsecsSinceEpoch(data.beginTime);
|
||||
m_ui->dtEnd->setMsecsSinceEpoch(data.endTime);
|
||||
m_ui->dtStart->setRetrieveCurrentTimeCallback([this]() { return m_session->partitionTime(); });
|
||||
m_ui->dtEnd->setRetrieveCurrentTimeCallback([this]() { return m_session->partitionTime(); });
|
||||
|
||||
|
||||
if (m_exercisePhaseId <= 0)
|
||||
{
|
||||
m_ui->dtStart->setMsecsSinceEpoch(m_dtc->exercise(exerciseId).beginTime());
|
||||
m_ui->dtEnd->setMsecsSinceEpoch(m_dtc->exercise(exerciseId).endTime());
|
||||
m_ui->dtStart->setMsecsSinceEpoch(m_dtc->exercise(exerciseId).beginTime);
|
||||
m_ui->dtEnd->setMsecsSinceEpoch(m_dtc->exercise(exerciseId).endTime);
|
||||
}
|
||||
|
||||
setOnlineHelpFilename(QStringLiteral("Situation-Exercise_Phases"));
|
||||
@@ -83,12 +85,12 @@ bool ExerciseManagementPhaseEditDialog::apply()
|
||||
qint64 end = m_ui->dtEnd->msecsSinceEpoch();
|
||||
|
||||
ExercisePhaseModifyRequest req;
|
||||
req.name(name);
|
||||
req.description(description);
|
||||
req.beginTime(start);
|
||||
req.endTime(end);
|
||||
req.exerciseId(m_exerciseId);
|
||||
req.id(m_exercisePhaseId);
|
||||
req.name = name;
|
||||
req.description = description;
|
||||
req.beginTime = start;
|
||||
req.endTime = end;
|
||||
req.exerciseId = m_exerciseId;
|
||||
req.id = m_exercisePhaseId;
|
||||
m_ftc->enableExercisePhaseModify();
|
||||
return m_ftc->exercisePhaseModifyRequest(req, this);
|
||||
});
|
||||
@@ -115,11 +117,11 @@ bool ExerciseManagementPhaseEditDialog::apply()
|
||||
int folderPhaseDocsId = m_flmDtc->findFolder(exeFolderId, folderName);
|
||||
|
||||
FileManagement::FolderModifyRequest req;
|
||||
req.name(m_flmDtc->getPhaseFolderName(phaseId).toStdString());
|
||||
req.isEditable(false);
|
||||
req.isHidden(false);
|
||||
req.parentId(folderPhaseDocsId);
|
||||
req.operatorId(LtsSessionData::LtsSessionData::getInstance()->getOperatorId());
|
||||
req.name = m_flmDtc->getPhaseFolderName(phaseId).toStdString();
|
||||
req.isEditable = false;
|
||||
req.isHidden = false;
|
||||
req.parentId = folderPhaseDocsId;
|
||||
req.operatorId = LtsSessionData::LtsSessionData::getInstance()->getOperatorId();
|
||||
|
||||
m_requestHelper->startSingleRequest([this, req]()
|
||||
{
|
||||
|
||||
+16
-15
@@ -4,6 +4,7 @@
|
||||
#include "exm_edit_visible_parties_model.h"
|
||||
#include <ParticipantManagement/ppm_translation.h>
|
||||
#include <ParticipantManagement/ppm.hpp>
|
||||
#include <ParticipantManagement/ppm_dtc.h>
|
||||
|
||||
namespace ExerciseManagement
|
||||
{
|
||||
@@ -54,9 +55,9 @@ QVariant ExerciseEditVisiblePartiesModel::data(const QModelIndex &index, int rol
|
||||
switch (index.column())
|
||||
{
|
||||
case ColId:
|
||||
return party.id();
|
||||
return party.id;
|
||||
case ColName:
|
||||
return ParticipantManagement::trPartyName(party.name());
|
||||
return ParticipantManagement::trPartyName(party.name);
|
||||
}
|
||||
return {};
|
||||
}
|
||||
@@ -74,7 +75,7 @@ void ExerciseEditVisiblePartiesModel::onPartiesChanged(const ParticipantManageme
|
||||
{
|
||||
for (int i = 0; i < m_vecData.size(); ++i)
|
||||
{
|
||||
if (m_vecData.at(i).second.id() == data.id())
|
||||
if (m_vecData.at(i).second.id == data.id)
|
||||
{
|
||||
removeRow(i);
|
||||
return;
|
||||
@@ -86,7 +87,7 @@ void ExerciseEditVisiblePartiesModel::onPartiesChanged(const ParticipantManageme
|
||||
{
|
||||
for (int i = 0; i < m_vecData.size(); ++i)
|
||||
{
|
||||
if (m_vecData.at(i).second.id() == data.id())
|
||||
if (m_vecData.at(i).second.id == data.id)
|
||||
{
|
||||
m_vecData[i].second = data;
|
||||
const QModelIndex idx(index(i, ColName, QModelIndex()));
|
||||
@@ -102,7 +103,7 @@ void ExerciseEditVisiblePartiesModel::onPartiesChanged(const ParticipantManageme
|
||||
bool ExerciseEditVisiblePartiesModel::isFiltered(const QPair<bool, ParticipantManagement::Party> &data, DataModification modType) const
|
||||
{
|
||||
|
||||
if (data.second.id() <= 1 )
|
||||
if (data.second.id <= 1 )
|
||||
return true;
|
||||
|
||||
return LtsCheckableTableModel::isFiltered(data, modType);
|
||||
@@ -110,16 +111,16 @@ bool ExerciseEditVisiblePartiesModel::isFiltered(const QPair<bool, ParticipantMa
|
||||
|
||||
bool ExerciseEditVisiblePartiesModel::hasParty(const ParticipantManagement::Party &party) const
|
||||
{
|
||||
const auto visiblePartiesByExercise = m_opmDtc->user(m_operatorId).visiblePartiesByExercise();
|
||||
const auto visiblePartiesByExercise = m_opmDtc->user(m_operatorId).visiblePartiesByExercise;
|
||||
|
||||
for (const auto &exerciseParties : visiblePartiesByExercise)
|
||||
{
|
||||
if (exerciseParties.exerciseId() != m_exerciseId)
|
||||
if (exerciseParties.exerciseId != m_exerciseId)
|
||||
continue;
|
||||
if (!exerciseParties.visibleParties().is_set())
|
||||
if (!exerciseParties.visibleParties.has_value())
|
||||
return false;
|
||||
for (const auto &partyId : exerciseParties.visibleParties().get())
|
||||
if (partyId == party.id())
|
||||
for (const auto &partyId : exerciseParties.visibleParties.get())
|
||||
if (partyId == party.id)
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
@@ -128,16 +129,16 @@ bool ExerciseEditVisiblePartiesModel::hasParty(const ParticipantManagement::Part
|
||||
|
||||
bool ExerciseEditVisiblePartiesModel::isPartyHidden(const ParticipantManagement::Party &party) const
|
||||
{
|
||||
const auto visiblePartiesByExercise = m_opmDtc->user(m_operatorId).visiblePartiesByExercise();
|
||||
const auto visiblePartiesByExercise = m_opmDtc->user(m_operatorId).visiblePartiesByExercise;
|
||||
|
||||
for (const auto &exerciseParties : visiblePartiesByExercise)
|
||||
{
|
||||
if (exerciseParties.exerciseId() != m_exerciseId)
|
||||
if (exerciseParties.exerciseId != m_exerciseId)
|
||||
continue;
|
||||
if (!exerciseParties.hiddenParties().is_set())
|
||||
if (!exerciseParties.hiddenParties.has_value())
|
||||
return false;
|
||||
for (const auto &partyId : exerciseParties.hiddenParties().get())
|
||||
if (partyId == party.id())
|
||||
for (const auto &partyId : exerciseParties.hiddenParties.get())
|
||||
if (partyId == party.id)
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <OperatorManagement/opm_data_plugin.h>
|
||||
#include <Plugins/OperatorManagement/Data/opm_data_plugin.h>
|
||||
#include <ParticipantManagement/Data/ppm_data_plugin.h>
|
||||
|
||||
#include <LtsSession/lts_session_data_dds.h>
|
||||
|
||||
+19
-17
@@ -2,6 +2,7 @@
|
||||
|
||||
|
||||
#include "exm_exercise_purpose.h"
|
||||
#include <NGLLogger/NGLLoggerBootstrap.h>
|
||||
#include "ui_exm_exercise_purpose.h"
|
||||
|
||||
#include <ExerciseManagement/exm_data_plugin_interface.h>
|
||||
@@ -18,6 +19,7 @@ ExerciseManagementExercisePurpose::ExerciseManagementExercisePurpose(const QStri
|
||||
, m_exercise()
|
||||
, m_requestHelper(new LtsUtils::RequestHelper(this))
|
||||
|
||||
, m_logger(NGL::NGLLoggerBootstrap::getNGLRootLogger())
|
||||
{
|
||||
m_ui->setupUi(this);
|
||||
|
||||
@@ -43,8 +45,8 @@ bool ExerciseManagementExercisePurpose::init(LtsSession::LtsSessionDataDds *sess
|
||||
|
||||
m_exercise = m_dtc->exercise(m_session->exerciseId());
|
||||
|
||||
m_ui->pteForces->setPlainText(QString::fromStdString(m_exercise.forces()));
|
||||
m_ui->pteDescription->setPlainText(QString::fromStdString(m_exercise.description()));
|
||||
m_ui->pteForces->setPlainText(QString::fromStdString(m_exercise.forces));
|
||||
m_ui->pteDescription->setPlainText(QString::fromStdString(m_exercise.description));
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -57,24 +59,24 @@ void ExerciseManagementExercisePurpose::retranslate()
|
||||
|
||||
bool ExerciseManagementExercisePurpose::apply()
|
||||
{
|
||||
if (m_exercise.id() > 0)
|
||||
if (m_exercise.id > 0)
|
||||
{
|
||||
ExerciseModifyRequest request;
|
||||
|
||||
request.id(m_exercise.id());
|
||||
request.beginTime(m_exercise.beginTime());
|
||||
request.endTime(m_exercise.endTime());
|
||||
request.name(m_exercise.name());
|
||||
request.sendToWMS(m_exercise.sendToWMS());
|
||||
request.linkedExerciseId(m_exercise.linkedExerciseId());
|
||||
request.trainingAreaId(m_exercise.trainingAreaId());
|
||||
request.radioGroupId(m_exercise.radioGroupId());
|
||||
request.symbolFillTypeId(m_exercise.symbolFillTypeId());
|
||||
request.activePhaseId(m_exercise.activePhaseId());
|
||||
request.defaultTimeZone(m_exercise.defaultTimeZone());
|
||||
request.forces(m_ui->pteForces->toPlainText().toStdString());
|
||||
request.description(m_ui->pteDescription->toPlainText().toStdString());
|
||||
request.newState(m_exercise.state());
|
||||
request.id = m_exercise.id;
|
||||
request.beginTime = m_exercise.beginTime;
|
||||
request.endTime = m_exercise.endTime;
|
||||
request.name = m_exercise.name;
|
||||
request.sendToWMS = m_exercise.sendToWMS;
|
||||
request.linkedExerciseId = m_exercise.linkedExerciseId;
|
||||
request.trainingAreaId = m_exercise.trainingAreaId;
|
||||
request.radioGroupId = m_exercise.radioGroupId;
|
||||
request.symbolFillTypeId = m_exercise.symbolFillTypeId;
|
||||
request.activePhaseId = m_exercise.activePhaseId;
|
||||
request.defaultTimeZone = m_exercise.defaultTimeZone;
|
||||
request.forces = m_ui->pteForces->toPlainText().toStdString();
|
||||
request.description = m_ui->pteDescription->toPlainText().toStdString();
|
||||
request.newState = m_exercise.state;
|
||||
|
||||
if(!m_requestHelper->startSingleRequest(
|
||||
[this, request]()
|
||||
|
||||
+12
-10
@@ -1,6 +1,7 @@
|
||||
|
||||
|
||||
#include "exm_operator_edit.h"
|
||||
#include <NGLLogger/NGLLoggerBootstrap.h>
|
||||
|
||||
#include "ui_exm_operator_edit.h"
|
||||
|
||||
@@ -13,6 +14,7 @@ ExerciseManagementOperatorEdit::ExerciseManagementOperatorEdit(const QString& me
|
||||
: LtsWidgets::LtsDialog(parent, LtsWidgets::ButtonCombination::OkApplyCancel),
|
||||
m_ui(new Ui::ExerciseManagementOperatorEdit), m_opmDtc(nullptr), m_session(nullptr), m_operatorModel(nullptr),
|
||||
m_menuGroup(menuGroup), m_exercise(), m_requestHelper(new LtsUtils::RequestHelper(this))
|
||||
, m_logger(NGL::NGLLoggerBootstrap::getNGLRootLogger())
|
||||
{
|
||||
m_ui->setupUi(this);
|
||||
|
||||
@@ -42,7 +44,7 @@ bool ExerciseManagementOperatorEdit::init(LtsSession::LtsSessionDataDds* session
|
||||
return false;
|
||||
|
||||
m_exercise = dtc->exercise(m_session->exerciseId());
|
||||
m_operatorModel = new ExerciseOperatorModel(m_session, m_exercise.id(), this);
|
||||
m_operatorModel = new ExerciseOperatorModel(m_session, m_exercise.id, this);
|
||||
m_ui->dvOperators->setModel(m_operatorModel);
|
||||
m_ui->dvOperators->seamless();
|
||||
connect(m_operatorModel, &ExerciseOperatorModel::dataChanged, this,
|
||||
@@ -78,9 +80,9 @@ void ExerciseManagementOperatorEdit::retranslate()
|
||||
|
||||
bool ExerciseManagementOperatorEdit::apply()
|
||||
{
|
||||
if (m_exercise.id() > 0)
|
||||
if (m_exercise.id > 0)
|
||||
{
|
||||
sendModifiedOperators(m_exercise.id());
|
||||
sendModifiedOperators(m_exercise.id);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -114,8 +116,8 @@ void ExerciseManagementOperatorEdit::sendModifiedOperators(int thisExerciseId)
|
||||
{
|
||||
const auto rowData = m_operatorModel->getRowData(row);
|
||||
bool found = false;
|
||||
OperatorManagement::User user = m_opmDtc->user(rowData.second.id());
|
||||
for (auto ex : user.exerciseIds())
|
||||
OperatorManagement::User user = m_opmDtc->user(rowData.second.id);
|
||||
for (auto ex : user.exerciseIds)
|
||||
if (ex == thisExerciseId)
|
||||
found = true;
|
||||
|
||||
@@ -123,14 +125,14 @@ void ExerciseManagementOperatorEdit::sendModifiedOperators(int thisExerciseId)
|
||||
continue;
|
||||
|
||||
if (rowData.first)
|
||||
user.exerciseIds().resize(user.exerciseIds().size() + 1, thisExerciseId);
|
||||
user.exerciseIds.resize(user.exerciseIds.size() + 1, thisExerciseId);
|
||||
else
|
||||
removeElement(user.exerciseIds(), thisExerciseId);
|
||||
removeElement(user.exerciseIds, thisExerciseId);
|
||||
|
||||
OperatorManagement::OperatorCreateModifyRequest req;
|
||||
req.id(user.id());
|
||||
req.visibleExercises() = user.exerciseIds();
|
||||
req.visiblePartiesByExercise() = user.visiblePartiesByExercise();
|
||||
req.id = user.id;
|
||||
req.visibleExercises = user.exerciseIds;
|
||||
req.visiblePartiesByExercise = user.visiblePartiesByExercise;
|
||||
|
||||
m_requestHelper->startSingleRequest(
|
||||
[this, req, opmFtc]() { return opmFtc->operatorCreateModifyRequest(req, this); });
|
||||
|
||||
+13
-13
@@ -27,7 +27,7 @@ ExerciseOperatorModel::ExerciseOperatorModel(LtsSession::LtsSessionDataDds *sess
|
||||
|
||||
auto cb = [this](const OperatorManagement::User &user)
|
||||
{
|
||||
if (user.id() != s_OrganisatorId)
|
||||
if (user.id != s_OrganisatorId)
|
||||
insertRow(qMakePair(hasMembership(user), user));
|
||||
};
|
||||
m_opmDtc->users(cb);
|
||||
@@ -44,14 +44,14 @@ QVariant ExerciseOperatorModel::data(const QModelIndex &index, int role) const
|
||||
return LtsCheckableTableModel::data(index, role);
|
||||
|
||||
const auto &entry = m_vecData.at(index.row()).second;
|
||||
std::vector<OperatorManagement::PartiesByExercise> vpbe = entry.visiblePartiesByExercise();
|
||||
std::vector<OperatorManagement::PartiesByExercise> vpbe = entry.visiblePartiesByExercise;
|
||||
|
||||
switch (index.column())
|
||||
{
|
||||
case Name:
|
||||
return QString::fromStdString(entry.name());
|
||||
return QString::fromStdString(entry.name);
|
||||
case Description:
|
||||
return QString::fromStdString(entry.description());
|
||||
return QString::fromStdString(entry.description);
|
||||
case VisibleParties:
|
||||
{
|
||||
return hasVisibleParties(vpbe);
|
||||
@@ -66,16 +66,16 @@ QString ExerciseOperatorModel::hasVisibleParties(const std::vector<OperatorManag
|
||||
: 0 ;
|
||||
for (const auto &pbe : vpbe)
|
||||
{
|
||||
if (pbe.exerciseId() != exerciseId)
|
||||
if (pbe.exerciseId != exerciseId)
|
||||
continue;
|
||||
|
||||
std::vector<int32_t> hiddenParties = {};
|
||||
if (pbe.hiddenParties().is_set())
|
||||
hiddenParties = pbe.hiddenParties().get();
|
||||
if (pbe.hiddenParties.has_value())
|
||||
hiddenParties = pbe.hiddenParties.get();
|
||||
|
||||
if(pbe.visibleParties().is_set())
|
||||
if(pbe.visibleParties.has_value())
|
||||
{
|
||||
return visibleParties(pbe.visibleParties().get(),
|
||||
return visibleParties(pbe.visibleParties.get(),
|
||||
hiddenParties);
|
||||
}
|
||||
}
|
||||
@@ -98,7 +98,7 @@ QString ExerciseOperatorModel::visibleParties(const std::vector<int32_t> &visibl
|
||||
isHidden = true;
|
||||
}
|
||||
if (!isHidden)
|
||||
result.append(ParticipantManagement::trPartyName(m_ppmDtc->party(partyId).name()));
|
||||
result.append(ParticipantManagement::trPartyName(m_ppmDtc->party(partyId).name));
|
||||
}
|
||||
|
||||
return result.join(QStringLiteral(", "));
|
||||
@@ -116,7 +116,7 @@ void ExerciseOperatorModel::onOperatorChanged(const OperatorManagement::User &da
|
||||
case DataModification::eRemoved:
|
||||
{
|
||||
for (int i = 0; i < m_vecData.size(); ++i)
|
||||
if (m_vecData[i].second.id() == data.id())
|
||||
if (m_vecData[i].second.id == data.id)
|
||||
{
|
||||
removeRow(i);
|
||||
break;
|
||||
@@ -126,7 +126,7 @@ void ExerciseOperatorModel::onOperatorChanged(const OperatorManagement::User &da
|
||||
case DataModification::eModified:
|
||||
{
|
||||
for (int i = 0; i < m_vecData.size(); ++i)
|
||||
if (m_vecData[i].second.id() == data.id())
|
||||
if (m_vecData[i].second.id == data.id)
|
||||
{
|
||||
m_vecData[i].second = data;
|
||||
break;
|
||||
@@ -138,7 +138,7 @@ void ExerciseOperatorModel::onOperatorChanged(const OperatorManagement::User &da
|
||||
|
||||
bool ExerciseOperatorModel::hasMembership(const OperatorManagement::User &user) const
|
||||
{
|
||||
for (const auto exerciseId : user.exerciseIds())
|
||||
for (const auto exerciseId : user.exerciseIds)
|
||||
if (exerciseId == m_exerciseId)
|
||||
return true;
|
||||
return false;
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <OperatorManagement/opm_data_plugin.h>
|
||||
#include <Plugins/OperatorManagement/Data/opm_data_plugin.h>
|
||||
#include <ParticipantManagement/Data/ppm_data_plugin.h>
|
||||
#include <LtsSession/lts_session_data_dds.h>
|
||||
|
||||
|
||||
+11
-9
@@ -1,6 +1,7 @@
|
||||
|
||||
|
||||
#include "exm_phase_edit.h"
|
||||
#include <NGLLogger/NGLLoggerBootstrap.h>
|
||||
|
||||
#include "exm_edit_phase_dialog.h"
|
||||
#include "exm_phase_model.h"
|
||||
@@ -16,6 +17,7 @@ ExerciseManagementPhaseEdit::ExerciseManagementPhaseEdit(const QString& menuGrou
|
||||
m_ui(new Ui::ExerciseManagementPhaseEdit), m_dtc(nullptr), m_ftc(nullptr), m_flmDtc(nullptr), m_flmFtc(nullptr),
|
||||
m_session(nullptr), m_phaseModel(nullptr), m_menuGroup(menuGroup), m_exercise(),
|
||||
m_requestHelper(new LtsUtils::RequestHelper(this))
|
||||
, m_logger(NGL::NGLLoggerBootstrap::getNGLRootLogger())
|
||||
{
|
||||
m_ui->setupUi(this);
|
||||
|
||||
@@ -43,7 +45,7 @@ bool ExerciseManagementPhaseEdit::init(LtsSession::LtsSessionDataDds* session)
|
||||
m_exercise = m_dtc->exercise(m_session->exerciseId());
|
||||
|
||||
m_phaseModel = new ExercisePhaseModel(this);
|
||||
m_phaseModel->initModel(m_exercise.id(), m_dtc);
|
||||
m_phaseModel->initModel(m_exercise.id, m_dtc);
|
||||
|
||||
m_ui->dvPhases->setModel(m_phaseModel);
|
||||
m_ui->dvPhases->hideColumn(3);
|
||||
@@ -75,7 +77,7 @@ void ExerciseManagementPhaseEdit::enaDisaPhaseButtons()
|
||||
void ExerciseManagementPhaseEdit::onAddExercisePhase()
|
||||
{
|
||||
ExerciseManagementPhaseEditDialog* dialog = new ExerciseManagementPhaseEditDialog(this);
|
||||
dialog->init(m_session, m_exercise.id(), -1);
|
||||
dialog->init(m_session, m_exercise.id, -1);
|
||||
|
||||
addDialog(dialog, m_menuGroup, QLatin1String("NewExercisePhase"), LtsWidgets::LayoutArea::eDialogTab);
|
||||
}
|
||||
@@ -85,22 +87,22 @@ void ExerciseManagementPhaseEdit::onEditExercisePhase()
|
||||
const QModelIndex idx = m_ui->dvPhases->currentIndex();
|
||||
const ExercisePhase exPhase = m_phaseModel->getRowData(idx.row());
|
||||
|
||||
if (exPhase.id() <= 0)
|
||||
if (exPhase.id <= 0)
|
||||
return;
|
||||
DEBUG_LOG(m_logger) << "current exPhase Id: " << exPhase.id();
|
||||
DEBUG_LOG(m_logger) << "current exPhase Id: " << exPhase.id;
|
||||
|
||||
ExerciseManagementPhaseEditDialog* dialog = new ExerciseManagementPhaseEditDialog(this);
|
||||
|
||||
dialog->init(m_session, m_exercise.id(), exPhase.id());
|
||||
const QString identifier = QLatin1String("EditExercisePhase") + QString::number(exPhase.id());
|
||||
dialog->init(m_session, m_exercise.id, exPhase.id);
|
||||
const QString identifier = QLatin1String("EditExercisePhase") + QString::number(exPhase.id);
|
||||
|
||||
addDialog(dialog, m_menuGroup, identifier, LtsWidgets::LayoutArea::eDialogTab);
|
||||
}
|
||||
|
||||
void ExerciseManagementPhaseEdit::onRemoveExercisePhase()
|
||||
{
|
||||
const int phId = m_phaseModel->getRowData(m_ui->dvPhases->currentIndex().row()).id();
|
||||
int exeFolderId = m_flmDtc->getExerciseFolderId(m_exercise.id());
|
||||
const int phId = m_phaseModel->getRowData(m_ui->dvPhases->currentIndex().row()).id;
|
||||
int exeFolderId = m_flmDtc->getExerciseFolderId(m_exercise.id);
|
||||
const int folderId = m_flmDtc->getPhaseFolderId(exeFolderId, phId);
|
||||
|
||||
if (folderId > 0)
|
||||
@@ -109,7 +111,7 @@ void ExerciseManagementPhaseEdit::onRemoveExercisePhase()
|
||||
m_requestHelper->startSingleRequest([req, this]() { return m_flmFtc->folderRemoveRequest(req, this); });
|
||||
}
|
||||
|
||||
Core::RemoveElementRequest req(m_phaseModel->getRowData(m_ui->dvPhases->currentIndex().row()).id());
|
||||
Core::RemoveElementRequest req(m_phaseModel->getRowData(m_ui->dvPhases->currentIndex().row()).id);
|
||||
m_requestHelper->startSingleRequest([req, this]() {
|
||||
m_ftc->enableExercisePhaseRemove();
|
||||
return m_ftc->exercisePhaseRemoveRequest(req, this);
|
||||
|
||||
+1
-1
@@ -9,7 +9,7 @@
|
||||
#include <LtsWidgets/lts_dialog.h>
|
||||
#include <LtsUtils/LtsUtilsGui/LtsUtilsGuiDds/request_helper.h>
|
||||
#include <LtsSession/lts_session_data_dds.h>
|
||||
#include <flm_data_plugin_interface.h>
|
||||
#include <Plugins/FileManagement/flm_data_plugin_interface.h>
|
||||
|
||||
namespace Ui {
|
||||
class ExerciseManagementPhaseEdit;
|
||||
|
||||
+9
-7
@@ -1,6 +1,7 @@
|
||||
|
||||
|
||||
#include "exm_phase_model.h"
|
||||
#include <NGLLogger/NGLLoggerBootstrap.h>
|
||||
|
||||
namespace ExerciseManagement
|
||||
{
|
||||
@@ -9,6 +10,7 @@ ExercisePhaseModel::ExercisePhaseModel(QObject* parent)
|
||||
: LtsWidgets::LtsAbstractTableModel<ExerciseManagement::ExercisePhase>(
|
||||
{tr("Phase"), tr("Start"), tr("End"), tr("Description"), tr("Exercise-Id")}, parent),
|
||||
m_exmDtc(nullptr)
|
||||
, m_logger(NGL::NGLLoggerBootstrap::getNGLRootLogger())
|
||||
{
|
||||
}
|
||||
|
||||
@@ -37,15 +39,15 @@ QVariant ExercisePhaseModel::data(const QModelIndex& index, int role) const
|
||||
switch (index.column())
|
||||
{
|
||||
case Name:
|
||||
return QString::fromStdString(exPhase.name());
|
||||
return QString::fromStdString(exPhase.name);
|
||||
case Start:
|
||||
return QDateTime::fromMSecsSinceEpoch(exPhase.beginTime());
|
||||
return QDateTime::fromMSecsSinceEpoch(exPhase.beginTime);
|
||||
case End:
|
||||
return QDateTime::fromMSecsSinceEpoch(exPhase.endTime());
|
||||
return QDateTime::fromMSecsSinceEpoch(exPhase.endTime);
|
||||
case Description:
|
||||
return QString::fromStdString(exPhase.description());
|
||||
return QString::fromStdString(exPhase.description);
|
||||
case ExerciseId:
|
||||
return (exPhase.exerciseId());
|
||||
return (exPhase.exerciseId);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -68,9 +70,9 @@ bool ExercisePhaseProxyModel::lessThan(const QModelIndex& source_left, const QMo
|
||||
switch (source_left.column())
|
||||
{
|
||||
case ExercisePhaseModel::Start:
|
||||
return dataLeft.beginTime() < dataRight.beginTime();
|
||||
return dataLeft.beginTime < dataRight.beginTime;
|
||||
case ExercisePhaseModel::End:
|
||||
return dataLeft.endTime() < dataRight.endTime();
|
||||
return dataLeft.endTime < dataRight.endTime;
|
||||
case ExercisePhaseModel::Name:
|
||||
case ExercisePhaseModel::Description:
|
||||
case ExercisePhaseModel::ExerciseId:
|
||||
|
||||
+1
-1
@@ -28,7 +28,7 @@ class ExercisePhaseModel final : public LtsWidgets::LtsAbstractTableModel<Exerci
|
||||
|
||||
bool isFiltered(const ExercisePhase& data, DataModification modType) const override
|
||||
{
|
||||
if (data.exerciseId() != m_exerciseId)
|
||||
if (data.exerciseId != m_exerciseId)
|
||||
return true;
|
||||
return LtsWidgets::LtsAbstractTableModel<ExerciseManagement::ExercisePhase>::isFiltered(data, modType);
|
||||
}
|
||||
|
||||
+39
-37
@@ -2,6 +2,7 @@
|
||||
|
||||
|
||||
#include "exm_state_edit.h"
|
||||
#include <NGLLogger/NGLLoggerBootstrap.h>
|
||||
#include "ui_exm_state_edit.h"
|
||||
|
||||
#include <ExerciseManagement/exm_data_plugin_interface.h>
|
||||
@@ -20,6 +21,7 @@ ExerciseManagementStateEdit::ExerciseManagementStateEdit(const QString &menuGrou
|
||||
, m_exercise()
|
||||
, m_currentState(ExerciseState::Unknown)
|
||||
, m_requestHelper(new LtsUtils::RequestHelper(this))
|
||||
, m_logger(NGL::NGLLoggerBootstrap::getNGLRootLogger())
|
||||
{
|
||||
m_ui->setupUi(this);
|
||||
|
||||
@@ -53,7 +55,7 @@ bool ExerciseManagementStateEdit::init(LtsSession::LtsSessionDataDds *session)
|
||||
return false;
|
||||
|
||||
m_exercise = m_dtc->exercise(m_session->exerciseId());
|
||||
m_currentState = m_exercise.state();
|
||||
m_currentState = m_exercise.state;
|
||||
|
||||
|
||||
fillStateCbx();
|
||||
@@ -69,7 +71,7 @@ bool ExerciseManagementStateEdit::init(LtsSession::LtsSessionDataDds *session)
|
||||
|
||||
|
||||
connect(m_dtc.get(), &Interface::Dtc::exercisePhaseChanged, this, &ExerciseManagementStateEdit::onExercisePhaseChanged);
|
||||
m_ui->cbActivePhase->setCurrentIndex(m_ui->cbActivePhase->findData(QVariant(m_exercise.activePhaseId())));
|
||||
m_ui->cbActivePhase->setCurrentIndex(m_ui->cbActivePhase->findData(QVariant(m_exercise.activePhaseId)));
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -83,32 +85,32 @@ void ExerciseManagementStateEdit::fillStateCbx()
|
||||
|
||||
|
||||
m_ui->cbState->clear();
|
||||
switch (m_currentState.underlying())
|
||||
switch (m_currentState)
|
||||
{
|
||||
case ExerciseState::Created:
|
||||
m_ui->cbState->addItem(tr("Created"), ExerciseState::Created);
|
||||
m_ui->cbState->addItem(tr("Start"), ExerciseState::Started);
|
||||
m_ui->cbState->addItem(tr("Created"), static_cast<int>(ExerciseState::Created));
|
||||
m_ui->cbState->addItem(tr("Start"), static_cast<int>(ExerciseState::Started));
|
||||
break;
|
||||
case ExerciseState::Started:
|
||||
m_ui->cbState->addItem(tr("Started"), ExerciseState::Started);
|
||||
m_ui->cbState->addItem(tr("Pause"), ExerciseState::Paused);
|
||||
m_ui->cbState->addItem(tr("Stop"), ExerciseState::Stopped);
|
||||
m_ui->cbState->addItem(tr("Started"), static_cast<int>(ExerciseState::Started));
|
||||
m_ui->cbState->addItem(tr("Pause"), static_cast<int>(ExerciseState::Paused));
|
||||
m_ui->cbState->addItem(tr("Stop"), static_cast<int>(ExerciseState::Stopped));
|
||||
break;
|
||||
case ExerciseState::Paused:
|
||||
m_ui->cbState->addItem(tr("Paused"), ExerciseState::Paused);
|
||||
m_ui->cbState->addItem(tr("Resume"), ExerciseState::Started);
|
||||
m_ui->cbState->addItem(tr("Stop"), ExerciseState::Stopped);
|
||||
m_ui->cbState->addItem(tr("Paused"), static_cast<int>(ExerciseState::Paused));
|
||||
m_ui->cbState->addItem(tr("Resume"), static_cast<int>(ExerciseState::Started));
|
||||
m_ui->cbState->addItem(tr("Stop"), static_cast<int>(ExerciseState::Stopped));
|
||||
break;
|
||||
case ExerciseState::Stopped:
|
||||
m_ui->cbState->addItem(tr("Stopped"), ExerciseState::Stopped);
|
||||
m_ui->cbState->addItem(tr("Stopped"), static_cast<int>(ExerciseState::Stopped));
|
||||
break;
|
||||
case ExerciseState::Terminated:
|
||||
m_ui->cbState->addItem(tr("Terminated"), ExerciseState::Terminated);
|
||||
m_ui->cbState->addItem(tr("Terminated"), static_cast<int>(ExerciseState::Terminated));
|
||||
if (enableExerciseTerminatedToStopped)
|
||||
m_ui->cbState->addItem(tr("Stopped"), ExerciseState::Stopped);
|
||||
m_ui->cbState->addItem(tr("Stopped"), static_cast<int>(ExerciseState::Stopped));
|
||||
break;
|
||||
case ExerciseState::Unknown:
|
||||
m_ui->cbState->addItem(tr("Unknown"), ExerciseState::Unknown);
|
||||
m_ui->cbState->addItem(tr("Unknown"), static_cast<int>(ExerciseState::Unknown));
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -121,8 +123,8 @@ void ExerciseManagementStateEdit::fillActivePhaseCbx()
|
||||
|
||||
auto cb = [this](const ExerciseManagement::ExercisePhase &phase)
|
||||
{
|
||||
if (m_exercise.id() == phase.exerciseId())
|
||||
m_ui->cbActivePhase->addItem(QString::fromStdString(phase.name()), QVariant(phase.id()));
|
||||
if (m_exercise.id == phase.exerciseId)
|
||||
m_ui->cbActivePhase->addItem(QString::fromStdString(phase.name), QVariant(phase.id));
|
||||
};
|
||||
m_dtc->exercisePhases(cb);
|
||||
m_ui->cbActivePhase->setEnabled(m_ui->cbActivePhase->count() > 1);
|
||||
@@ -134,7 +136,7 @@ void ExerciseManagementStateEdit::fillActivePhaseCbx()
|
||||
void ExerciseManagementStateEdit::onExercisePhaseChanged(const ExerciseManagement::ExercisePhase &data, DataModification modType)
|
||||
{
|
||||
Q_UNUSED(modType)
|
||||
if (data.exerciseId() == m_exercise.id())
|
||||
if (data.exerciseId == m_exercise.id)
|
||||
fillActivePhaseCbx();
|
||||
}
|
||||
|
||||
@@ -146,7 +148,7 @@ void ExerciseManagementStateEdit::retranslate()
|
||||
bool ExerciseManagementStateEdit::apply()
|
||||
{
|
||||
ExerciseState exState = static_cast<ExerciseState>(m_ui->cbState->currentData().toInt());
|
||||
if (exState.underlying() == ExerciseState::Stopped &&
|
||||
if (exState == ExerciseState::Stopped &&
|
||||
LtsWidgets::LtsMessageDialog::showMessage(this,
|
||||
tr("Are you sure you want to stop the exercise?"),
|
||||
tr("Stop Exercise"),
|
||||
@@ -154,30 +156,30 @@ bool ExerciseManagementStateEdit::apply()
|
||||
LtsWidgets::Button::Yes | LtsWidgets::Button::No)
|
||||
== LtsWidgets::Button::No)
|
||||
{
|
||||
m_ui->cbState->setCurrentIndex(m_ui->cbState->findData(m_currentState.underlying()));
|
||||
m_ui->cbState->setCurrentIndex(m_ui->cbState->findData(static_cast<int>(m_currentState)));
|
||||
return true;
|
||||
}
|
||||
|
||||
if (m_exercise.id() > 0)
|
||||
if (m_exercise.id > 0)
|
||||
{
|
||||
ExerciseModifyRequest request;
|
||||
|
||||
request.id(m_exercise.id());
|
||||
request.beginTime(m_exercise.beginTime());
|
||||
request.endTime(m_exercise.endTime());
|
||||
request.startTime(m_exercise.startTime());
|
||||
request.stopTime(m_exercise.stopTime());
|
||||
request.name(m_exercise.name());
|
||||
request.sendToWMS(m_exercise.sendToWMS());
|
||||
request.linkedExerciseId(m_exercise.linkedExerciseId());
|
||||
request.trainingAreaId(m_exercise.trainingAreaId());
|
||||
request.radioGroupId(m_exercise.radioGroupId());
|
||||
request.symbolFillTypeId(m_exercise.symbolFillTypeId());
|
||||
request.activePhaseId(m_ui->cbActivePhase->currentData().toInt());
|
||||
request.defaultTimeZone(m_exercise.defaultTimeZone());
|
||||
request.forces(m_exercise.forces());
|
||||
request.description(m_exercise.description());
|
||||
request.newState(static_cast<ExerciseState>(m_ui->cbState->currentData().toInt()));
|
||||
request.id = m_exercise.id;
|
||||
request.beginTime = m_exercise.beginTime;
|
||||
request.endTime = m_exercise.endTime;
|
||||
request.startTime = m_exercise.startTime;
|
||||
request.stopTime = m_exercise.stopTime;
|
||||
request.name = m_exercise.name;
|
||||
request.sendToWMS = m_exercise.sendToWMS;
|
||||
request.linkedExerciseId = m_exercise.linkedExerciseId;
|
||||
request.trainingAreaId = m_exercise.trainingAreaId;
|
||||
request.radioGroupId = m_exercise.radioGroupId;
|
||||
request.symbolFillTypeId = m_exercise.symbolFillTypeId;
|
||||
request.activePhaseId = m_ui->cbActivePhase->currentData().toInt();
|
||||
request.defaultTimeZone = m_exercise.defaultTimeZone;
|
||||
request.forces = m_exercise.forces;
|
||||
request.description = m_exercise.description;
|
||||
request.newState = static_cast<ExerciseState>(m_ui->cbState->currentData().toInt());
|
||||
|
||||
if(!m_requestHelper->startSingleRequest(
|
||||
[this, request]() {
|
||||
|
||||
Reference in new issue
Block a user