#ifndef EDITPDFWIDGET_H #define EDITPDFWIDGET_H #include #include #include #include "documentprocessor.h" #include "../model/titleinscriptionsmodel.h" class MainController; class SpecificationController; class SpecificationTableModel; class EditPDFWidget : public QWidget { Q_OBJECT public: explicit EditPDFWidget(QWidget *parent = nullptr); explicit EditPDFWidget(MainController *controller, QWidget *parent = nullptr); // Методы для работы с данными void setData(ComponentTableModel *componentModel, ProjectParamTableModel *projectParamModel); void updateAllViews(); // Методы для работы с надписями титульного листа TitleInscriptionsModel* getTitleInscriptionsModel() const; // Методы для работы с перечнем элементов PerechenTableModel* getPerechenTableModel() const; // Методы для экспорта bool exportCurrentDocument(const QString &filePath = QString()); bool exportAllDocuments(const QString &basePath = QString()); private: void setUp(); void setWidgets(); void setUpLayout(); void setUpConnections(); QTabWidget* m_tabWidget; // Процессоры документов PerechenProcessor* m_perechenProcessor; SpecificationProcessor* m_specificationProcessor; SpecificationPCBProcessor* m_specificationPCBProcessor; VedomostProcessor* m_vedomostProcessor; // Виджеты документов DocumentEditWidget* m_perechenEditWidget; DocumentEditWidget* m_specificationEditWidget; DocumentEditWidget* m_specificationPCBEditWidget; DocumentEditWidget* m_vedomostEditWidget; // Модели данных ComponentTableModel* m_componentModel; ProjectParamTableModel* m_projectParamModel; MainController* m_controller; signals: // Сигнал изменения типа документа для синхронизации с PreviewPdfWidget void documentTypeChanged(const QString &documentType); // TODO: Добавить сигналы экспорта когда будет реализован экспорт // signals: // void documentExported(const QString &documentType, const QString &filePath); // void exportError(const QString &documentType, const QString &error); }; #endif // EDITPDFWIDGET_H