Оптимизировал дерево в Задачах (размеры колонок)

This commit is contained in:
2025-09-25 17:56:46 +03:00
parent b055ff4ed4
commit 7c70fc90d6
6 changed files with 139 additions and 89 deletions

View File

@@ -4,6 +4,7 @@
#include <QMessageBox>
#include <QThread>
#include <QResizeEvent>
#include <QScrollBar>
#include "ammtaskswidget.h"
#include "ui_ammtaskswidget.h"
#include "checkertask.h"
@@ -112,28 +113,10 @@ void AMMtasksWidget::waitAnimationWidgetShowWithPlay()
void AMMtasksWidget::resizeEvent(QResizeEvent *event)
{
setWidthColumnsTree();
QSize size = event->size();
waitAnimationWidget->resize(size);
int width = treeWidget->width();
treeWidget->setColumnWidth(ColumnsTreeAMM::clmnAMM_ID, 50);
treeWidget->setColumnWidth(ColumnsTreeAMM::clmnAMM_code, 250);
treeWidget->setColumnWidth(ColumnsTreeAMM::clmnAMM_status, 130);
int widthPMorDM;
if(type == TypeListTreeAMMFIM::listCommon)
widthPMorDM = width - (270 + 10);
else
{
#ifdef PROJECT_TYPE_DEBUG
widthPMorDM = width - (430 + 10);
#else
widthPMorDM = width - (380 + 10);
#endif
}
treeWidget->setColumnWidth(ColumnsTreeAMM::clmnAMM_PMorDM, widthPMorDM);
}
void AMMtasksWidget::closeDlgCheckTask()
@@ -275,14 +258,52 @@ void AMMtasksWidget::reSetHeadTreeWidget()
QStringList listHeaders;
if(type == TypeListTreeAMMFIM::listForTrainee)
listHeaders = QStringList{tr("Task AMM"), tr("DM code"), tr("ID"), tr("Status")};
listHeaders = QStringList{tr("Task AMM"), tr("DM code"), tr("Status"), tr("ID")};
else
listHeaders = QStringList{tr("Task AMM"), tr("DM code"), tr("ID"), tr("Status")};
listHeaders = QStringList{tr("Task AMM"), tr("DM code"), tr("Status"), tr("ID")};
treeWidget->setHeaderLabels(listHeaders);
}
void AMMtasksWidget::setWidthColumnsTree()
{
listWidthColumn.clear();
treeWidget->setColumnWidth(ColumnsTreeAMM::clmnAMM_PMorDM, 100);
listWidthColumn.append(100);
treeWidget->setColumnWidth(ColumnsTreeAMM::clmnAMM_code, 250);
listWidthColumn.append(250);
treeWidget->setColumnWidth(ColumnsTreeAMM::clmnAMM_status, 130);
listWidthColumn.append(130);
treeWidget->setColumnWidth(ColumnsTreeAMM::clmnAMM_ID, 50);
listWidthColumn.append(50);
treeWidget->setColumnWidth(ColumnsTreeAMM::clmnAMM_PMorDM, calculateWidth_0Column());
}
int AMMtasksWidget::calculateWidth_0Column()
{
int widthHeader = treeWidget->width() - 20;
int width0Column = 0;
int widthSB = 0;
if(treeWidget->verticalScrollBar()->isVisible())
widthSB = treeWidget->verticalScrollBar()->size().width();
int cntColumns = treeWidget->columnCount();
int widthRightColumns = 0;
for (int i = 1; i < cntColumns; i++)
{
if(! treeWidget->isColumnHidden(i))
{//Колонка не скрыта
int w = listWidthColumn.at(i);
widthRightColumns += w;
}
}
width0Column = widthHeader - widthRightColumns - widthSB;
return width0Column;
}
void AMMtasksWidget::assignTaskAMMtoTrainee()
{
QTreeWidgetItem *current = treeWidget->currentItem();

View File

@@ -50,6 +50,10 @@ public Q_SLOTS:
private:
void preparationTreeWidget();
void reSetHeadTreeWidget();
void setWidthColumnsTree();
int calculateWidth_0Column();
void loadTasksAMM(bool flRequestFirst = true);
void assignTaskAMMtoTrainee();
@@ -71,6 +75,7 @@ private:
ConnectorToServer* connectorToServer;
QTreeWidget* treeWidget;
TypeListTreeAMMFIM type;
QList<int> listWidthColumn;
int idTraineeSelected;

View File

@@ -4,6 +4,7 @@
#include <QTreeWidget>
#include <QThread>
#include <QResizeEvent>
#include <QScrollBar>
#include "fimtaskswidget.h"
#include "ui_fimtaskswidget.h"
#include "tasksAmmFim.h"
@@ -121,27 +122,10 @@ void FIMtasksWidget::setOneTaskFim(TaskAmmFim* task)
void FIMtasksWidget::resizeEvent(QResizeEvent *event)
{
setWidthColumnsTree();
QSize size = event->size();
waitAnimationWidget->resize(size);
int width = treeWidget->width();
treeWidget->setColumnWidth(ColumnsTreeFIM::clmnFIM_ID, 50);
treeWidget->setColumnWidth(ColumnsTreeFIM::clmnFIM_status, 130);
int widthTitle;
if(type == TypeListTreeAMMFIM::listCommon)
widthTitle = width - (20 + 10);
else
{
#ifdef PROJECT_TYPE_DEBUG
widthTitle = width - (180 + 10);
#else
widthTitle = width - (130 + 10);
#endif
}
treeWidget->setColumnWidth(ColumnsTreeFIM::clmnFIM_Title, widthTitle);
}
void FIMtasksWidget::closeDlgCheckTask()
@@ -311,13 +295,49 @@ void FIMtasksWidget::reSetHeadTreeWidget()
QStringList listHeaders;
if(type == TypeListTreeAMMFIM::listForTrainee)
listHeaders = QStringList{tr("Task FIM"), tr("ID"), tr("Status")};
listHeaders = QStringList{tr("Task FIM"), tr("Status"), tr("ID")};
else
listHeaders = QStringList{tr("Task FIM"), tr("ID"), tr("Status")};
listHeaders = QStringList{tr("Task FIM"), tr("Status"), tr("ID")};
treeWidget->setHeaderLabels(listHeaders);
}
void FIMtasksWidget::setWidthColumnsTree()
{
listWidthColumn.clear();
treeWidget->setColumnWidth(ColumnsTreeFIM::clmnFIM_Title, 100);
listWidthColumn.append(100);
treeWidget->setColumnWidth(ColumnsTreeFIM::clmnFIM_status, 130);
listWidthColumn.append(130);
treeWidget->setColumnWidth(ColumnsTreeFIM::clmnFIM_ID, 50);
listWidthColumn.append(50);
treeWidget->setColumnWidth(ColumnsTreeFIM::clmnFIM_Title, calculateWidth_0Column());
}
int FIMtasksWidget::calculateWidth_0Column()
{
int widthHeader = treeWidget->width() - 20;
int width0Column = 0;
int widthSB = 0;
if(treeWidget->verticalScrollBar()->isVisible())
widthSB = treeWidget->verticalScrollBar()->size().width();
int cntColumns = treeWidget->columnCount();
int widthRightColumns = 0;
for (int i = 1; i < cntColumns; i++)
{
if(! treeWidget->isColumnHidden(i))
{//Колонка не скрыта
int w = listWidthColumn.at(i);
widthRightColumns += w;
}
}
width0Column = widthHeader - widthRightColumns - widthSB;
return width0Column;
}
void FIMtasksWidget::assignTaskFIMtoTrainee()
{
QTreeWidgetItem *current = treeWidget->currentItem();

View File

@@ -51,6 +51,9 @@ public Q_SLOTS:
private:
void preparationTreeWidget();
void reSetHeadTreeWidget();
void setWidthColumnsTree();
int calculateWidth_0Column();
void loadTasksFIM();
void assignTaskFIMtoTrainee();
void updateTaskItem(QTreeWidgetItem *itemTask);
@@ -73,6 +76,7 @@ private:
ConnectorToServer* connectorToServer;
QTreeWidget* treeWidget;
TypeListTreeAMMFIM type;
QList<int> listWidthColumn;
int idTraineeSelected;

View File

@@ -499,35 +499,35 @@ void TaskAMMFIMTreePreparation::slot_prepareFIMListItems(QByteArray array)
QTreeWidgetItem* itemTask = new QTreeWidgetItem();
itemTask->setText(0, task.title);
itemTask->setText(1, QString::number(task.id));
itemTask->setText(ColumnsTreeFIM::clmnFIM_Title, task.title);
itemTask->setText(ColumnsTreeFIM::clmnFIM_ID, QString::number(task.id));
//itemTask->setFlags(itemTask->flags() | Qt::ItemIsUserCheckable);
//itemTask->setCheckState(0, Qt::Checked);
//itemTask->setCheckState(ColumnsTreeFIM::clmnFIM_Title, Qt::Checked);
if(task.status == "completed")
{
itemTask->setText(2, tr("completed"));
itemTask->setIcon(2, QIcon(QStringLiteral(":/resources/icons/circleGreen.png")));
itemTask->setText(ColumnsTreeFIM::clmnFIM_status, tr("completed"));
itemTask->setIcon(ColumnsTreeFIM::clmnFIM_status, QIcon(QStringLiteral(":/resources/icons/circleGreen.png")));
}
else if(task.status == "failed")
{
itemTask->setText(2, tr("failed"));
itemTask->setIcon(2, QIcon(QStringLiteral(":/resources/icons/circleRed.png")));
itemTask->setText(ColumnsTreeFIM::clmnFIM_status, tr("failed"));
itemTask->setIcon(ColumnsTreeFIM::clmnFIM_status, QIcon(QStringLiteral(":/resources/icons/circleRed.png")));
}
else if(task.status == "checkup")
{
itemTask->setText(2, tr("checkup"));
itemTask->setIcon(2, QIcon(QStringLiteral(":/resources/icons/circleYellow.png")));
itemTask->setText(ColumnsTreeFIM::clmnFIM_status, tr("checkup"));
itemTask->setIcon(ColumnsTreeFIM::clmnFIM_status, QIcon(QStringLiteral(":/resources/icons/circleYellow.png")));
}
else
{
itemTask->setText(2, tr("new"));
itemTask->setIcon(2, QIcon(QStringLiteral(":/resources/icons/circleGray.png")));
itemTask->setText(ColumnsTreeFIM::clmnFIM_status, tr("new"));
itemTask->setIcon(ColumnsTreeFIM::clmnFIM_status, QIcon(QStringLiteral(":/resources/icons/circleGray.png")));
}
itemTask->setIcon(0, QIcon(":/resources/icons/procedure.png"));
itemTask->setToolTip(0, task.title);
itemTask->setIcon(ColumnsTreeFIM::clmnFIM_Title, QIcon(":/resources/icons/procedure.png"));
itemTask->setToolTip(ColumnsTreeFIM::clmnFIM_Title, task.title);
for (int j = 0; j < task.malfunctionList.count(); j++)
@@ -536,15 +536,15 @@ void TaskAMMFIMTreePreparation::slot_prepareFIMListItems(QByteArray array)
QTreeWidgetItem* itemMalfunction = new QTreeWidgetItem();
itemMalfunction->setText(0, malfunction.description);
itemMalfunction->setText(ColumnsTreeFIM::clmnFIM_Title, malfunction.description);
if(type == TypeListTreeAMMFIM::listCommon)
{
itemMalfunction->setFlags(itemMalfunction->flags() | Qt::ItemIsUserCheckable);
itemMalfunction->setCheckState(0, Qt::Checked);
itemMalfunction->setCheckState(ColumnsTreeFIM::clmnFIM_Title, Qt::Checked);
}
itemMalfunction->setIcon(0, QIcon(":/resources/icons/malfunction.png"));
itemMalfunction->setToolTip(0, malfunction.description);
itemMalfunction->setIcon(ColumnsTreeFIM::clmnFIM_Title, QIcon(":/resources/icons/malfunction.png"));
itemMalfunction->setToolTip(ColumnsTreeFIM::clmnFIM_Title, malfunction.description);
itemTask->addChild(itemMalfunction);
@@ -554,11 +554,11 @@ void TaskAMMFIMTreePreparation::slot_prepareFIMListItems(QByteArray array)
QTreeWidgetItem* itemSign = new QTreeWidgetItem();
itemSign->setText(0, sign.description);
itemSign->setText(ColumnsTreeFIM::clmnFIM_Title, sign.description);
//itemSign->setFlags(itemSign->flags() | Qt::ItemIsUserCheckable);
//itemSign->setCheckState(0, Qt::Checked);
itemSign->setIcon(0, QIcon(":/resources/icons/sign.png"));
itemSign->setToolTip(0, sign.description);
//itemSign->setCheckState(ColumnsTreeFIM::clmnFIM_Title, Qt::Checked);
itemSign->setIcon(ColumnsTreeFIM::clmnFIM_Title, QIcon(":/resources/icons/sign.png"));
itemSign->setToolTip(ColumnsTreeFIM::clmnFIM_Title, sign.description);
itemMalfunction->addChild(itemSign);
}
@@ -590,35 +590,35 @@ void TaskAMMFIMTreePreparation::slot_prepareFIMListItemsForTrainee(QList<TaskAmm
QTreeWidgetItem* itemTask = new QTreeWidgetItem();
itemTask->setText(0, task.title);
itemTask->setText(1, QString::number(task.id));
itemTask->setText(ColumnsTreeFIM::clmnFIM_Title, task.title);
itemTask->setText(ColumnsTreeFIM::clmnFIM_ID, QString::number(task.id));
//itemTask->setFlags(itemTask->flags() | Qt::ItemIsUserCheckable);
//itemTask->setCheckState(0, Qt::Checked);
//itemTask->setCheckState(ColumnsTreeFIM::clmnFIM_Title, Qt::Checked);
if(task.status == "completed")
{
itemTask->setText(2, tr("completed"));
itemTask->setIcon(2, QIcon(QStringLiteral(":/resources/icons/circleGreen.png")));
itemTask->setText(ColumnsTreeFIM::clmnFIM_status, tr("completed"));
itemTask->setIcon(ColumnsTreeFIM::clmnFIM_status, QIcon(QStringLiteral(":/resources/icons/circleGreen.png")));
}
else if(task.status == "failed")
{
itemTask->setText(2, tr("failed"));
itemTask->setIcon(2, QIcon(QStringLiteral(":/resources/icons/circleRed.png")));
itemTask->setText(ColumnsTreeFIM::clmnFIM_status, tr("failed"));
itemTask->setIcon(ColumnsTreeFIM::clmnFIM_status, QIcon(QStringLiteral(":/resources/icons/circleRed.png")));
}
else if(task.status == "checkup")
{
itemTask->setText(2, tr("checkup"));
itemTask->setIcon(2, QIcon(QStringLiteral(":/resources/icons/circleYellow.png")));
itemTask->setText(ColumnsTreeFIM::clmnFIM_status, tr("checkup"));
itemTask->setIcon(ColumnsTreeFIM::clmnFIM_status, QIcon(QStringLiteral(":/resources/icons/circleYellow.png")));
}
else
{
itemTask->setText(2, tr("new"));
itemTask->setIcon(2, QIcon(QStringLiteral(":/resources/icons/circleGray.png")));
itemTask->setText(ColumnsTreeFIM::clmnFIM_status, tr("new"));
itemTask->setIcon(ColumnsTreeFIM::clmnFIM_status, QIcon(QStringLiteral(":/resources/icons/circleGray.png")));
}
itemTask->setIcon(0, QIcon(":/resources/icons/procedure.png"));
itemTask->setToolTip(0, task.title);
itemTask->setIcon(ColumnsTreeFIM::clmnFIM_Title, QIcon(":/resources/icons/procedure.png"));
itemTask->setToolTip(ColumnsTreeFIM::clmnFIM_Title, task.title);
for (int j = 0; j < task.malfunctionList.count(); j++)
@@ -627,15 +627,15 @@ void TaskAMMFIMTreePreparation::slot_prepareFIMListItemsForTrainee(QList<TaskAmm
QTreeWidgetItem* itemMalfunction = new QTreeWidgetItem();
itemMalfunction->setText(0, malfunction.description);
itemMalfunction->setText(ColumnsTreeFIM::clmnFIM_Title, malfunction.description);
if(type == TypeListTreeAMMFIM::listCommon)
{
itemMalfunction->setFlags(itemMalfunction->flags() | Qt::ItemIsUserCheckable);
itemMalfunction->setCheckState(0, Qt::Checked);
itemMalfunction->setCheckState(ColumnsTreeFIM::clmnFIM_Title, Qt::Checked);
}
itemMalfunction->setIcon(0, QIcon(":/resources/icons/malfunction.png"));
itemMalfunction->setToolTip(0, malfunction.description);
itemMalfunction->setIcon(ColumnsTreeFIM::clmnFIM_Title, QIcon(":/resources/icons/malfunction.png"));
itemMalfunction->setToolTip(ColumnsTreeFIM::clmnFIM_Title, malfunction.description);
itemTask->addChild(itemMalfunction);
@@ -645,11 +645,11 @@ void TaskAMMFIMTreePreparation::slot_prepareFIMListItemsForTrainee(QList<TaskAmm
QTreeWidgetItem* itemSign = new QTreeWidgetItem();
itemSign->setText(0, sign.description);
itemSign->setText(ColumnsTreeFIM::clmnFIM_Title, sign.description);
//itemSign->setFlags(itemSign->flags() | Qt::ItemIsUserCheckable);
//itemSign->setCheckState(0, Qt::Checked);
itemSign->setIcon(0, QIcon(":/resources/icons/sign.png"));
itemSign->setToolTip(0, sign.description);
//itemSign->setCheckState(ColumnsTreeFIM::clmnFIM_Title, Qt::Checked);
itemSign->setIcon(ColumnsTreeFIM::clmnFIM_Title, QIcon(":/resources/icons/sign.png"));
itemSign->setToolTip(ColumnsTreeFIM::clmnFIM_Title, sign.description);
itemMalfunction->addChild(itemSign);
}

View File

@@ -11,15 +11,15 @@
enum ColumnsTreeAMM{
clmnAMM_PMorDM = 0,
clmnAMM_code,
clmnAMM_ID,
clmnAMM_status,
clmnAMM_ID,
clmnAMM_count
};
enum ColumnsTreeFIM{
clmnFIM_Title = 0,
clmnFIM_ID,
clmnFIM_status,
clmnFIM_ID,
clmnFIM_count
};