#include "importeddataview.h" ImportedDataView::ImportedDataView(ComponentTableModel* model, ProjectParamTableModel* projectParamModel, PCBMaterialModel* pcbMaterialModel, QWidget *parent) : QWidget{parent}, m_model(model), m_projectParamModel(projectParamModel), m_pcbMaterialModel(pcbMaterialModel) { setUp(); } void ImportedDataView::setUp(){ setWidgets(); setUpLayout(); setUpConnections(); } void ImportedDataView::setWidgets(){ m_tabWidget = new QTabWidget(this); m_projectParamPreview = new ProjectParamPreview(this); m_componentsPreview = new ComponentsPreview(m_model, this); m_pcbMaterialPreview = new PCBMaterialPreview(m_pcbMaterialModel, this); m_tabWidget->addTab(m_componentsPreview, "Компоненты"); m_tabWidget->addTab(m_projectParamPreview, "Параметры проекта"); m_tabWidget->addTab(m_pcbMaterialPreview, "Материалы платы"); // Устанавливаем модель для ProjectParamPreview if (m_projectParamModel && m_projectParamPreview) { m_projectParamPreview->tableModel()->setProjectParams(m_projectParamModel->getData()); } // PCBMaterialPreview использует модель, переданную из MainController // База данных уже установлена в MainController qDebug() << "ImportedDataView: PCBMaterialPreview создан с моделью:" << m_pcbMaterialModel; } void ImportedDataView::setUpLayout(){ QVBoxLayout* mainLayout = new QVBoxLayout(this); mainLayout->addWidget(m_tabWidget); this->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); } void ImportedDataView::setUpConnections(){ // Подключаем сигнал изменения данных от ProjectParamPreview if (m_projectParamPreview) { connect(m_projectParamPreview, &ProjectParamPreview::projectParamChanged, this, &ImportedDataView::onDataChanged); } } void ImportedDataView::updateView() { // Обновляем отображение компонентов if (m_componentsPreview) { m_componentsPreview->updateView(); } // Обновляем отображение параметров проекта updateProjectParams(); // Обновляем отображение материалов платы updatePCBMaterials(); } void ImportedDataView::updateProjectParams() { if (m_projectParamModel && m_projectParamPreview) { QList data = m_projectParamModel->getData(); qDebug() << "ImportedDataView: обновляем параметры проекта:" << data.size() << "параметров"; m_projectParamPreview->tableModel()->setProjectParams(data); } else { qDebug() << "ImportedDataView: m_projectParamModel или m_projectParamPreview равен nullptr"; } } void ImportedDataView::onDataChanged() { updateProjectParams(); } ComponentsPreview* ImportedDataView::getComponentsPreview() const { return m_componentsPreview; } void ImportedDataView::updatePCBMaterials() { if (m_pcbMaterialPreview) { m_pcbMaterialPreview->updateView(); qDebug() << "ImportedDataView: обновлены материалы платы"; } else { qDebug() << "ImportedDataView: m_pcbMaterialPreview равен nullptr"; } } PCBMaterialPreview* ImportedDataView::getPCBMaterialPreview() const { return m_pcbMaterialPreview; }