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;
|
|
}
|