Add initial project structure with essential files including .gitignore, application resources, and various model and view components for the application. Implemented asynchronous parsing support and database structure checks.
This commit is contained in:
@@ -0,0 +1,98 @@
|
||||
#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;
|
||||
}
|
||||
Reference in New Issue
Block a user