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

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 <QMessageBox>
#include <QThread> #include <QThread>
#include <QResizeEvent> #include <QResizeEvent>
#include <QScrollBar>
#include "ammtaskswidget.h" #include "ammtaskswidget.h"
#include "ui_ammtaskswidget.h" #include "ui_ammtaskswidget.h"
#include "checkertask.h" #include "checkertask.h"
@@ -112,28 +113,10 @@ void AMMtasksWidget::waitAnimationWidgetShowWithPlay()
void AMMtasksWidget::resizeEvent(QResizeEvent *event) void AMMtasksWidget::resizeEvent(QResizeEvent *event)
{ {
setWidthColumnsTree();
QSize size = event->size(); QSize size = event->size();
waitAnimationWidget->resize(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() void AMMtasksWidget::closeDlgCheckTask()
@@ -275,14 +258,52 @@ void AMMtasksWidget::reSetHeadTreeWidget()
QStringList listHeaders; QStringList listHeaders;
if(type == TypeListTreeAMMFIM::listForTrainee) 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 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); 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() void AMMtasksWidget::assignTaskAMMtoTrainee()
{ {
QTreeWidgetItem *current = treeWidget->currentItem(); QTreeWidgetItem *current = treeWidget->currentItem();

View File

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

View File

@@ -4,6 +4,7 @@
#include <QTreeWidget> #include <QTreeWidget>
#include <QThread> #include <QThread>
#include <QResizeEvent> #include <QResizeEvent>
#include <QScrollBar>
#include "fimtaskswidget.h" #include "fimtaskswidget.h"
#include "ui_fimtaskswidget.h" #include "ui_fimtaskswidget.h"
#include "tasksAmmFim.h" #include "tasksAmmFim.h"
@@ -121,27 +122,10 @@ void FIMtasksWidget::setOneTaskFim(TaskAmmFim* task)
void FIMtasksWidget::resizeEvent(QResizeEvent *event) void FIMtasksWidget::resizeEvent(QResizeEvent *event)
{ {
setWidthColumnsTree();
QSize size = event->size(); QSize size = event->size();
waitAnimationWidget->resize(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() void FIMtasksWidget::closeDlgCheckTask()
@@ -311,13 +295,49 @@ void FIMtasksWidget::reSetHeadTreeWidget()
QStringList listHeaders; QStringList listHeaders;
if(type == TypeListTreeAMMFIM::listForTrainee) if(type == TypeListTreeAMMFIM::listForTrainee)
listHeaders = QStringList{tr("Task FIM"), tr("ID"), tr("Status")}; listHeaders = QStringList{tr("Task FIM"), tr("Status"), tr("ID")};
else else
listHeaders = QStringList{tr("Task FIM"), tr("ID"), tr("Status")}; listHeaders = QStringList{tr("Task FIM"), tr("Status"), tr("ID")};
treeWidget->setHeaderLabels(listHeaders); 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() void FIMtasksWidget::assignTaskFIMtoTrainee()
{ {
QTreeWidgetItem *current = treeWidget->currentItem(); QTreeWidgetItem *current = treeWidget->currentItem();

View File

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

View File

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

View File

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