From 72d107308c9b664f929702898aa2a2fdb5377709 Mon Sep 17 00:00:00 2001 From: krivoshein Date: Sat, 22 Nov 2025 23:40:24 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B4=D0=B5=D0=BB=D0=B0=D0=BB=20?= =?UTF-8?q?=D1=81=D0=BF=D0=B8=D1=81=D0=BA=D0=B8=20=D0=BF=D0=BE=D0=B4=D0=BF?= =?UTF-8?q?=D1=80=D0=BE=D1=86=D0=B5=D0=B4=D1=83=D1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tasks/ammtaskswidget.cpp | 24 +++++++---- InstructorsAndTrainees/tasks/ammtaskswidget.h | 4 -- .../tasks/customdelegate.cpp | 41 ------------------- InstructorsAndTrainees/tasks/customdelegate.h | 31 -------------- .../tasks/tasktreepreparation.cpp | 9 +--- 5 files changed, 17 insertions(+), 92 deletions(-) delete mode 100644 InstructorsAndTrainees/tasks/customdelegate.cpp delete mode 100644 InstructorsAndTrainees/tasks/customdelegate.h diff --git a/InstructorsAndTrainees/tasks/ammtaskswidget.cpp b/InstructorsAndTrainees/tasks/ammtaskswidget.cpp index e2137ae..f66b0d9 100644 --- a/InstructorsAndTrainees/tasks/ammtaskswidget.cpp +++ b/InstructorsAndTrainees/tasks/ammtaskswidget.cpp @@ -34,17 +34,20 @@ AMMtasksWidget::AMMtasksWidget(ConnectorToServer* connectorToServer, TypeListTre treeWidget->setObjectName("treeWidget_AMMforTrainee"); ui->horizontalLayout_Tree->addWidget(treeWidget); - //connect(treeWidget, &QTreeWidget::currentItemChanged, this, &AMMtasksWidget::on_treeWidgetItemClicked); connect(treeWidget, &QTreeWidget::itemClicked, this, &AMMtasksWidget::on_treeWidgetItemClicked); connect(treeWidget, &QTreeWidget::itemDoubleClicked, this, &AMMtasksWidget::on_treeWidgetDoubleClicked); preparationTreeWidget(); - threadPreparation = new QThread(); taskTreePreparation = new TaskAMMFIMTreePreparation(type, treeWidget); - //taskTreePreparation->moveToThread(threadPreparation); - threadPreparation->start(); - threadPreparation->setPriority(QThread::HighestPriority); + if(type == TypeListTreeAMMFIM::listCommon) + { + threadPreparation = new QThread(); + taskTreePreparation->moveToThread(threadPreparation); + threadPreparation->start(); + threadPreparation->setPriority(QThread::HighestPriority); + } + connect(this, &AMMtasksWidget::signal_prepareAMMListItems, taskTreePreparation, &TaskAMMFIMTreePreparation::slot_prepareAMMListItems); connect(this, &AMMtasksWidget::signal_prepareAMMListItemsForTrainee, taskTreePreparation, &TaskAMMFIMTreePreparation::slot_prepareAMMListItemsForTrainee); connect(taskTreePreparation, &TaskAMMFIMTreePreparation::signal_listAMMItemsReady, this, &AMMtasksWidget::slot_AMMlistItemsReady); @@ -89,10 +92,14 @@ AMMtasksWidget::~AMMtasksWidget() waitAnimationWidget->hideWithStop(); emit signal_stopParserPreparation(); - threadPreparation->quit(); - threadPreparation->wait(); - delete threadPreparation; + if(type == TypeListTreeAMMFIM::listCommon) + { + threadPreparation->quit(); + threadPreparation->wait(); + + delete threadPreparation; + } delete taskTreePreparation; delete waitAnimationWidget; @@ -266,7 +273,6 @@ void AMMtasksWidget::loadTasksAMM(bool flRequestFirst) QByteArray arrayAMM; - //if(flRequestFirst) arrayAMM = connectorToServer->getListTaskAmmArray(); emit signal_prepareAMMListItems(arrayAMM, flOnlyActive, flRequestFirst); diff --git a/InstructorsAndTrainees/tasks/ammtaskswidget.h b/InstructorsAndTrainees/tasks/ammtaskswidget.h index fec33b6..dcc6566 100644 --- a/InstructorsAndTrainees/tasks/ammtaskswidget.h +++ b/InstructorsAndTrainees/tasks/ammtaskswidget.h @@ -104,10 +104,6 @@ private: int lastCurrentID; TaskAmmFim lastSelectedTask; - - CustomDelegate* delegate; - - QStyle* style; }; #endif // AMMTASKSWIDGET_H diff --git a/InstructorsAndTrainees/tasks/customdelegate.cpp b/InstructorsAndTrainees/tasks/customdelegate.cpp deleted file mode 100644 index 0d48db3..0000000 --- a/InstructorsAndTrainees/tasks/customdelegate.cpp +++ /dev/null @@ -1,41 +0,0 @@ -#include "customdelegate.h" - -CustomDelegate::CustomDelegate(QObject *parent): - QItemDelegate(parent) -{ - -} - -void CustomDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const -{ - bool mergeCell = index.data(UserRole_MergeCell).toBool(); - - if (mergeCell && index.column() == 0) - { - QModelIndex nextColumnIndex = index.siblingAtColumn(index.column() + 1); - if (!nextColumnIndex.isValid()) - { - QItemDelegate::paint(painter, option, index); - return; - } - - QRect mergedRect(option.rect.x(), - option.rect.y(), - option.rect.width() * 2, - option.rect.height()); - - painter->save(); - painter->setClipRect(mergedRect); - drawBackground(painter, option, index); - drawDisplay(painter, option, mergedRect, index.data(Qt::DisplayRole).toString()); - - painter->restore(); - } else { - QItemDelegate::paint(painter, option, index); - } -} - -QSize CustomDelegate::sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const -{ - return QItemDelegate::sizeHint(option, index); -} diff --git a/InstructorsAndTrainees/tasks/customdelegate.h b/InstructorsAndTrainees/tasks/customdelegate.h deleted file mode 100644 index 7c63e13..0000000 --- a/InstructorsAndTrainees/tasks/customdelegate.h +++ /dev/null @@ -1,31 +0,0 @@ -#ifndef CUSTOMDELEGATE_H -#define CUSTOMDELEGATE_H - -#include -#include -#include -#include -#include -#include -#include - -enum UserRoles { - UserRole_MergeCell = Qt::UserRole + 1 // Пользовательская роль для хранения признака объединения -}; - -class CustomDelegate : public QItemDelegate -{ -public: - //using QStyledItemDelegate::QStyledItemDelegate; - - CustomDelegate(QObject *parent = nullptr); - - void paint(QPainter *painter, - const QStyleOptionViewItem &option, - const QModelIndex &index) const override; - - QSize sizeHint(const QStyleOptionViewItem &option, - const QModelIndex &index) const override; -}; - -#endif // CUSTOMDELEGATE_H diff --git a/InstructorsAndTrainees/tasks/tasktreepreparation.cpp b/InstructorsAndTrainees/tasks/tasktreepreparation.cpp index cc6040b..1d68253 100644 --- a/InstructorsAndTrainees/tasks/tasktreepreparation.cpp +++ b/InstructorsAndTrainees/tasks/tasktreepreparation.cpp @@ -499,12 +499,8 @@ void TaskAMMFIMTreePreparation::slot_prepareAMMListItemsForTrainee(QListsetData(0, UserRole_MergeCell, false); - treeWidget->addTopLevelItem(item); - //treeWidget->setFirstItemColumnSpanned(item, true); - item->setIcon(0, QIcon(":/resources/icons/procedure.png")); item->setText(ColumnsTreeAMM::clmnAMM_PMorDM, text); @@ -545,13 +541,12 @@ void TaskAMMFIMTreePreparation::slot_prepareAMMListItemsForTrainee(QListsetListSubProc(task.listSubProc); - //itemWidget->setAutoFillBackground(true); - - //itemSubProc->setData(0, UserRole_MergeCell, true); + itemWidget->setAutoFillBackground(true); item->addChild(itemSubProc); treeWidget->setItemWidget(itemSubProc, 0, itemWidget); + //Объединение всех ячеек itemSubProc->setFirstColumnSpanned(true); } }