99 lines
3.4 KiB
C++
99 lines
3.4 KiB
C++
#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;
|
||
}
|