Files
GostGenerator/view/importeddataview.cpp
T

99 lines
3.4 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#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<ProjectParamTableData> 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;
}