#pragma once #include #include #include #include #include "logging.h" namespace SituationMap { class Map; } namespace LtsWidgets { class LtsBaseLayoutWidget; class LtsDialog; } namespace PlanEditor { class PlanEditor; class PlanEditorSession; class AttributeDialogManager : public QObject { Q_OBJECT public: explicit AttributeDialogManager(PlanEditor *planEditor , SituationMap::Map *map , SituationMap::GeometryModel *geoModel , const PlanEditorSession &session); virtual ~AttributeDialogManager(); const QString &textLines() const; public slots: void onOpenDialog(const SituationMap::GeometryModel::Node &node); void onCloseDialog(); void addStyleAttributes(const SituationMap::GeometryModel::Node &node, bool prepareUndo, bool changedAttrOnly = true); void getStyleAttributes(const SituationMap::GeometryModel::Node &node); private: class InternalData; InternalData *m_internal; void updateSelectedFeature(const QString &undoToken, SituationMap::GeometryModel::Attribute changedAttribute = SituationMap::GeometryModel::Attribute::None); bool attributeNeedsUpdate(SituationMap::GeometryModel::Attribute attribute); private slots: void onResetDialog(); void onResetWidgets(); void onDrawColorEdit(); void onFillColorEdit(); void onFontColorEdit(); void onSymbolChanged(); void onUpdateParticipantColors(); void onSetLinePattern(int index); void onSetFillPattern(int index); void onSetFillStyle(int index); void onSetLineWidth(int width); void onSetLineArrowBegin(bool on); void onSetLineArrowEnd(bool on); void onSetFilling(bool on); void onEditTextLines(); void onSetFontSize(double value); void onSetFontFace(int index); void onSetFontBold(bool on); void onSetFontItalic(bool on); void onSetTextAnchor(bool on); void onRotateText(int value); void onRotateTextSp(int value); void onChangedParticipant(); }; }