Объединенные ячейки списка

This commit is contained in:
2025-11-22 22:08:03 +03:00
parent 5bb9816593
commit 394eee5a16
11 changed files with 190 additions and 118 deletions

View File

@@ -2,11 +2,9 @@
#include "listsubproc.h"
#include "ui_listsubproc.h"
ListSubProc::ListSubProc(ConnectorToServer* connectorToServer, QWidget *parent) :
ListSubProc::ListSubProc(QWidget *parent) :
QWidget(parent),
ui(new Ui::ListSubProc),
connectorToServer(connectorToServer),
waitAnimationWidget(nullptr),
treeWidget(nullptr)
{
ui->setupUi(this);
@@ -17,19 +15,10 @@ ListSubProc::ListSubProc(ConnectorToServer* connectorToServer, QWidget *parent)
ui->horizontalLayout_Tree->addWidget(treeWidget);
preparationTreeWidget();
waitAnimationWidget = new WaitAnimationWidget;
QMovie *movie = new QMovie(":/resources/icons/762.gif");
waitAnimationWidget->setParent(this);
waitAnimationWidget->initialize(movie,this);
connect(this->connectorToServer, &ConnectorToServer::signal_UpdateSubProcForDMCode, this, &ListSubProc::slot_UpdateSubProcForDMCode);
}
ListSubProc::~ListSubProc()
{
waitAnimationWidget->hideWithStop();
delete waitAnimationWidget;
delete treeWidget;
delete ui;
}
@@ -42,9 +31,6 @@ void ListSubProc::closeEvent(QCloseEvent *event)
void ListSubProc::resizeEvent(QResizeEvent *event)
{
setWidthColumnsTree();
QSize size = event->size();
waitAnimationWidget->resize(size);
}
void ListSubProc::changeEvent(QEvent *event)
@@ -65,10 +51,39 @@ void ListSubProc::setTask(TaskAmmFim *task)
ui->lbl_Title->setText(task->ammProcedure.title);
ui->lbl_DMCode->setText(task->ammProcedure.dmCode);
waitAnimationWidget->showWithPlay();
QList<SubProc> list = task->listSubProc;
if(! connectorToServer->sendQueryListSubProc(this->task.ammProcedure.dmCode))
waitAnimationWidget->hideWithStop();
for(SubProc subProc : list)
{
QTreeWidgetItem* item = new QTreeWidgetItem(treeWidget);
//item->setIcon(0, QIcon(":/resources/icons/link.png"));
item->setText(ColumnsTreeSubProc::clmnSP_title, subProc.getTitle());
item->setText(ColumnsTreeSubProc::clmnSP_code, subProc.getDmCode());
item->setText(ColumnsTreeSubProc::clmnSP_canplay, subProc.getModeListStr());
item->setToolTip(ColumnsTreeSubProc::clmnSP_title, subProc.getTitle());
ModeList modeList = subProc.getModeList();
if(modeList.autoM && (modeList.demo || modeList.train || modeList.exam))
{
item->setFlags(item->flags() | Qt::ItemIsUserCheckable);
item->setCheckState(ColumnsTreeSubProc::clmnSP_title, Qt::Checked);
treeWidget->addTopLevelItem(item);
}
else
{
item->setFlags(item->flags() | Qt::ItemIsUserCheckable);
item->setCheckState(ColumnsTreeSubProc::clmnSP_title, Qt::Unchecked);
//item->setFlags(item->flags() ^ Qt::ItemIsEnabled);
#ifdef PROJECT_TYPE_DEBUG
treeWidget->addTopLevelItem(item);
#else
item->setFlags(item->flags() ^ Qt::ItemIsEnabled);
#endif
}
}
}
bool ListSubProc::getListCheckedSubProc(QList<SubProc>* listSubProc)
@@ -146,51 +161,6 @@ int ListSubProc::calculateWidth_0Column()
return width0Column;
}
void ListSubProc::slot_UpdateSubProcForDMCode(QString dmCode)
{
if(this->task.ammProcedure.dmCode == dmCode)
{
QList<SubProc> list = connectorToServer->getListSubProcForDMCode(dmCode);
/*if(!list.count())
on_btnAssign_clicked();*/
for(SubProc subProc : list)
{
QTreeWidgetItem* item = new QTreeWidgetItem(treeWidget);
//item->setIcon(0, QIcon(":/resources/icons/link.png"));
item->setText(ColumnsTreeSubProc::clmnSP_title, subProc.getTitle());
item->setText(ColumnsTreeSubProc::clmnSP_code, subProc.getDmCode());
item->setText(ColumnsTreeSubProc::clmnSP_canplay, subProc.getModeListStr());
item->setToolTip(ColumnsTreeSubProc::clmnSP_title, subProc.getTitle());
ModeList modeList = subProc.getModeList();
if(modeList.autoM && (modeList.demo || modeList.train || modeList.exam))
{
item->setFlags(item->flags() | Qt::ItemIsUserCheckable);
item->setCheckState(ColumnsTreeSubProc::clmnSP_title, Qt::Checked);
treeWidget->addTopLevelItem(item);
}
else
{
item->setFlags(item->flags() | Qt::ItemIsUserCheckable);
item->setCheckState(ColumnsTreeSubProc::clmnSP_title, Qt::Unchecked);
//item->setFlags(item->flags() ^ Qt::ItemIsEnabled);
#ifdef PROJECT_TYPE_DEBUG
treeWidget->addTopLevelItem(item);
#else
item->setFlags(item->flags() ^ Qt::ItemIsEnabled);
#endif
}
}
waitAnimationWidget->hideWithStop();
}
}
void ListSubProc::on_btnAssign_clicked()
{
emit signal_Accepted();