#ifndef TITLEINSCRIPTIONSDIALOG_H #define TITLEINSCRIPTIONSDIALOG_H #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "../model/projectparamtablemodel.h" #include "../model/titleinscriptionsmodel.h" #include "titleinscriptiontypes.h" class TitleInscriptionsDialog : public QDialog { Q_OBJECT public: explicit TitleInscriptionsDialog(ProjectParamTableModel *projectParamModel, QWidget *parent = nullptr); // Методы для получения настроек QMap getInscriptionValues() const; void setInscriptionValues(const QMap &values); // Методы для работы с моделью void setTitleInscriptionsModel(TitleInscriptionsModel *model); TitleInscriptionsModel* getTitleInscriptionsModel() const; private slots: void onComboBoxChanged(int fieldNumber, const QString &value); void onCustomValueChanged(int fieldNumber, const QString &value); void onZoomChanged(int value); void onAccept(); void onCancel(); private: void setUp(); void setWidgets(); void setUpLayout(); void setUpConnections(); void createInscriptionFields(); void createImagePreview(); void updateFieldValue(int fieldNumber, const QString &value); ProjectParamTableModel *m_projectParamModel; TitleInscriptionsModel *m_titleInscriptionsModel; // Виджеты QScrollArea *m_scrollArea; QWidget *m_scrollContent; QGraphicsView *m_imageView; QGraphicsScene *m_imageScene; QGraphicsPixmapItem *m_imageItem; QSlider *m_zoomSlider; // Кнопки QPushButton *m_okButton; QPushButton *m_cancelButton; // Данные полей QMap m_fields; QMap m_comboBoxes; QMap m_customEdits; QMap m_fieldLabels; // Статические данные о графах ГОСТ static QMap s_fieldNames; static QMap s_fieldDescriptions; static void initializeFieldData(); }; #endif // TITLEINSCRIPTIONSDIALOG_H