mirror of
https://gitea.msk.dinamika-avia.ru/Constanta-Design/RRJServer.git
synced 2026-03-28 19:55:48 +03:00
пилотная рабочая версия с кодами dm/pm
This commit is contained in:
@@ -10,18 +10,56 @@ DocTasksWidget::DocTasksWidget(QWidget *parent) :
|
||||
ui(new Ui::DocTasksWidget)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
|
||||
treeWidget = new QTreeWidget();
|
||||
|
||||
connect(treeWidget, &QTreeWidget::currentItemChanged, this, &DocTasksWidget::on_treeWidget_currentItemChanged);
|
||||
|
||||
ui->horizontalLayout_2->addWidget(treeWidget);
|
||||
treeWidget->setStyleSheet(QStringLiteral("font-size: 10pt;"
|
||||
"font-family: Tahoma;"));
|
||||
|
||||
preparationTreeWidget();
|
||||
|
||||
loadDocTasksFromXML();
|
||||
|
||||
updateTreeWidget();
|
||||
}
|
||||
|
||||
DocTasksWidget::~DocTasksWidget()
|
||||
{
|
||||
deleteAllModuls();
|
||||
delete ui;
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void DocTasksWidget::on_treeWidget_currentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *previous)
|
||||
{
|
||||
if(current == nullptr)
|
||||
return;
|
||||
|
||||
int id = current->text(ColumnsTree::clmn_ID).toInt();
|
||||
|
||||
Module* module = searchModuleByID(id);
|
||||
|
||||
if(module)
|
||||
{
|
||||
QString type = "Code";
|
||||
QString code = "";
|
||||
|
||||
if(module->getType() == ModuleType::TYPE_PM)
|
||||
{
|
||||
PM* PMmodul = static_cast<PM*>(module);
|
||||
type = "PM";
|
||||
code = PMmodul->pmCode();
|
||||
}
|
||||
else
|
||||
{
|
||||
DM* DMmodul = static_cast<DM*>(module);
|
||||
type = "DM";
|
||||
code = DMmodul->dmCode();
|
||||
}
|
||||
|
||||
ui->label->setText(type + " Code");
|
||||
ui->editCode->setText(code);
|
||||
}
|
||||
}
|
||||
|
||||
void DocTasksWidget::DomElementParser(QDomElement element, Module* moduleParent)
|
||||
@@ -55,6 +93,8 @@ void DocTasksWidget::DomElementParser(QDomElement element, Module* moduleParent)
|
||||
|
||||
if(moduleParent)
|
||||
{
|
||||
PMmodul->setParentModule(moduleParent);
|
||||
|
||||
PM* PMmodulParent = static_cast<PM*>(moduleParent);
|
||||
PMmodulParent->addChildModule(module);
|
||||
}
|
||||
@@ -75,9 +115,9 @@ void DocTasksWidget::DomElementParser(QDomElement element, Module* moduleParent)
|
||||
|
||||
module = new DM();
|
||||
|
||||
DM* PMmodul = static_cast<DM*>(module);
|
||||
DM* DMmodul = static_cast<DM*>(module);
|
||||
|
||||
PMmodul->initialize(modelIdentCode,
|
||||
DMmodul->initialize(modelIdentCode,
|
||||
systemDiffCode,
|
||||
systemCode,
|
||||
subSystemCode,
|
||||
@@ -91,6 +131,8 @@ void DocTasksWidget::DomElementParser(QDomElement element, Module* moduleParent)
|
||||
|
||||
if(moduleParent)
|
||||
{
|
||||
DMmodul->setParentModule(moduleParent);
|
||||
|
||||
PM* PMmodulParent = static_cast<PM*>(moduleParent);
|
||||
PMmodulParent->addChildModule(module);
|
||||
}
|
||||
@@ -174,3 +216,87 @@ void DocTasksWidget::deleteAllModuls()
|
||||
listAllModules.clear();
|
||||
}
|
||||
|
||||
Module *DocTasksWidget::searchModuleByID(int id)
|
||||
{
|
||||
Module* ptrModule = nullptr;
|
||||
|
||||
for(Module* module: listAllModules)
|
||||
{
|
||||
ptrModule = module->getModuleByID(id);
|
||||
if(ptrModule)
|
||||
return ptrModule;
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
void DocTasksWidget::preparationTreeWidget()
|
||||
{
|
||||
treeWidget->setColumnCount(2);
|
||||
|
||||
reSetHeadTreeWidget();
|
||||
|
||||
//treeWidget->header()->setStyleSheet(QStringLiteral("font-size: 10pt;"));
|
||||
treeWidget->setStyleSheet(QStringLiteral("font-size: 10pt;"
|
||||
"font-family: Tahoma;"));
|
||||
|
||||
treeWidget->setColumnWidth(ColumnsTree::clmn_ID, 80);
|
||||
treeWidget->setColumnWidth(ColumnsTree::clmn_PMorDM, 800);
|
||||
|
||||
//treeWidget->setColumnHidden(ColumnsTree::clmn_ID, true);
|
||||
}
|
||||
|
||||
void DocTasksWidget::reSetHeadTreeWidget()
|
||||
{
|
||||
QStringList listHeaders = {tr("PM/DM"), tr("ID")};
|
||||
treeWidget->setHeaderLabels(listHeaders);
|
||||
}
|
||||
|
||||
void DocTasksWidget::updateTreeWidget()
|
||||
{
|
||||
//Обновление дерева
|
||||
treeWidget->clear();
|
||||
|
||||
for(Module* module : listAllModules)
|
||||
{
|
||||
addModulToTreeWidget(module);
|
||||
}
|
||||
}
|
||||
|
||||
void DocTasksWidget::addModulToTreeWidget(Module *module, QTreeWidgetItem* parentItem)
|
||||
{
|
||||
QTreeWidgetItem* itemModule = nullptr;
|
||||
|
||||
QString text;
|
||||
QString ID = QString::number(module->getID());
|
||||
|
||||
if(parentItem)
|
||||
{
|
||||
itemModule = new QTreeWidgetItem();
|
||||
parentItem->addChild(itemModule);
|
||||
}
|
||||
else
|
||||
{
|
||||
itemModule = new QTreeWidgetItem(treeWidget);
|
||||
}
|
||||
|
||||
if(module->getType() == ModuleType::TYPE_PM)
|
||||
{
|
||||
PM* PMmodul = static_cast<PM*>(module);
|
||||
text = PMmodul->getLangStructRus().title;
|
||||
|
||||
for(Module* module : PMmodul->getListChildModules())
|
||||
{
|
||||
addModulToTreeWidget(module, itemModule);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
DM* DMmodul = static_cast<DM*>(module);
|
||||
text = DMmodul->getLangStructRus().techName;
|
||||
}
|
||||
|
||||
itemModule->setText(ColumnsTree::clmn_PMorDM, text);
|
||||
itemModule->setText(ColumnsTree::clmn_ID, ID);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user