Files
qt5-legatus-legacy/Lts/Viewer/SituationMap/SymbologyGui/symbol_modification_widget.h
T
2026-08-13 18:33:10 +02:00

136 lines
2.8 KiB
C++
Executable File

/**
* @RDE_HEADER@
* symbol_modification_wdiget for sidc configuration
* $Id$
* $HeadURL$
* $Author$
* Created by Karwat, SLSE, 2017-09-07
*/
#pragma once
#include <SymbologyGui/advancedsymbologygui_export.h>
#include <QWidget>
#include <Map/map.h>
#include <MapObjects/participant.h>
#include <Common/simple_value.h>
#include <QtCore/QMap>
#include <QVBoxLayout>
#include <QFormLayout>
#include <QLabel>
class QLabel;
class QBoxLayout;
namespace AdvancedSymbology
{
namespace Gui
{
class ADVANCEDSYMBOLOGYGUI_EXPORT SymbolModificationWidget : public QWidget
{
Q_OBJECT
public:
explicit SymbolModificationWidget(SituationMap::Map *map, bool isParticipant, SymbolDictionary &symbolDictionary, QWidget *parent = nullptr);
~SymbolModificationWidget();
bool setSidc(const QString &sidc);
bool setFieldAttributes(const QMap<QString, QVariant> &fieldAttrMap);
const QMap<QString, QVariant> fieldAttributes();
bool analyze(SymbologyType symbologyType, const QString &sidc);
QString originalSidc() const;
QString modifiedSidc() const;
QString lastModifiedSidc() const;
QString symbolName() const;
SymbologyType symbologyType() const;
protected:
void retranslate();
void setSymbolPixmap(QLabel *, const QString &sidc);
void buildSidcModifierTab_MIL2525D(QWidget *widget);
void buildSidcModifierTab_APP6(QWidget *widget);
void buildFieldModifierTab(QWidget *widget);
void buildParticipantTab(QWidget *widget);
void buildPreview(QWidget *widget);
void emitChanged();
class Internal;
Internal *m_internal;
struct PreviewTab
{
explicit PreviewTab(QWidget *widget)
: layout(new QVBoxLayout(widget))
, layoutPreview(new QFormLayout())
, lbBaseSymbolId(new QLabel(widget))
, lbBaseSymbolName(new QLabel(widget))
, lbSidcOutTxt(new QLabel(widget))
, lbSidcInTxt(new QLabel(widget))
, lbSidcOutImg(new QLabel(widget))
, lbSidcInImg(new QLabel(widget))
{}
QVBoxLayout *layout;
QFormLayout *layoutPreview;
QLabel *lbBaseSymbolId;
QLabel *lbBaseSymbolName;
QLabel *lbSidcOutTxt;
QLabel *lbSidcInTxt;
QLabel *lbSidcOutImg;
QLabel *lbSidcInImg;
};
PreviewTab *m_previewTab = nullptr;
signals:
void changed();
public Q_SLOTS:
void updatePreviewTab();
void onRevert();
private Q_SLOTS:
void onContextChanged();
void onIdentityChanged();
void onSymbolSetChanged();
void onStatusChanged();
void onHQTFDummyChanged();
void onAmplifierGroupChanged();
void onAmplifierDesriptorChanged(int);
void onSector1ModifierChanged(int);
void onSector2ModifierChanged(int);
void onFieldAttributeAdd(bool);
void onFieldAttributeRemove(bool);
void onSetFieldTitle(const QString &);
void onFieldItemActived(const QModelIndex &);
void onChangeApp6SizeMobility();
};
} //namespace Gui
} //namespace AdvancedSymbology