Оптимизировал CommonView

This commit is contained in:
2025-09-25 11:46:30 +03:00
parent d93e5e49c9
commit 152942018a
12 changed files with 205 additions and 280 deletions

View File

@@ -6,47 +6,7 @@ TraineesView::TraineesView(ConnectorToServer* connectorToServer, TypeView type,
CommonView(connectorToServer, type, parent)
{
typeObject = TypeObject::objTrainee;
}
void TraineesView::resizeEvent(QResizeEvent *event)
{
int width = treeWidget->width();
treeWidget->setColumnWidth(ColumnsTreeTrainees::clmn_ID, 50);
treeWidget->setColumnWidth(ColumnsTreeTrainees::clmn_Login, 100);
treeWidget->setColumnWidth(ColumnsTreeTrainees::clmn_Password, 100);
treeWidget->setColumnWidth(ColumnsTreeTrainees::clmn_Class, 100);
treeWidget->setColumnWidth(ColumnsTreeTrainees::clmn_Computer, 100);
treeWidget->setColumnWidth(ColumnsTreeTrainees::clmn_IP_address, 130);
treeWidget->setColumnWidth(ColumnsTreeTrainees::clmn_Archived, 100);
treeWidget->setColumnWidth(ColumnsTreeTrainees::clmn_Logged, 120);
int widthTrainee;
if(typeView == TypeView::onlyView)
{//onlyView
widthTrainee = width - (220 + 10 + 20);
}
else
{//control
if(adminMode)
{
#ifdef PROJECT_TYPE_DEBUG
widthTrainee = width - (470 + 10 + 20);
#else
widthTrainee = width - (420 + 10 + 20);
#endif
}
else
widthTrainee = width - (440 + 10 + 20);
}
if(widthTrainee < 250)
widthTrainee = 250;
treeWidget->setColumnWidth(ColumnsTreeTrainees::clmn_Trainee, widthTrainee);
QSize size = event->size();
waitAnimationWidget->resize(size);
TypeUserDB = User::TypeUserDBTrainee;
}
void TraineesView::slot_NeedUpdateUI(bool treeInstructor, bool treeTrainee)
@@ -60,54 +20,6 @@ void TraineesView::slot_NeedUpdateUI(bool treeInstructor, bool treeTrainee)
}
}
void TraineesView::preparationTreeWidget()
{
mtxTreeWidget.lock();
treeWidget->setColumnCount(clmn_count);
reSetHeadTreeWidget();
if(typeView == TypeView::onlyView)
{//onlyView
archiveVisible = false;
treeWidget->setColumnHidden(ColumnsTreeTrainees::clmn_ID, true);
treeWidget->setColumnHidden(ColumnsTreeTrainees::clmn_Password, true);
treeWidget->setColumnHidden(ColumnsTreeTrainees::clmn_Archived, true);
treeWidget->setColumnHidden(ColumnsTreeTrainees::clmn_Class, true);
treeWidget->setColumnHidden(ColumnsTreeTrainees::clmn_Computer, true);
treeWidget->setColumnHidden(ColumnsTreeTrainees::clmn_IP_address, true);
}
else
{//control
archiveVisible = true;
if(adminMode)
{
#ifdef PROJECT_TYPE_DEBUG
treeWidget->setColumnHidden(ColumnsTreeTrainees::clmn_ID, false);
#else
treeWidget->setColumnHidden(ColumnsTreeTrainees::clmn_ID, true);
#endif
}
else
{
treeWidget->setColumnHidden(ColumnsTreeTrainees::clmn_ID, true);
}
treeWidget->setColumnHidden(ColumnsTreeTrainees::clmn_Class, true);
treeWidget->setColumnHidden(ColumnsTreeTrainees::clmn_Computer, true);
treeWidget->setColumnHidden(ColumnsTreeTrainees::clmn_IP_address, true);
}
treeWidget->setSortingEnabled(true);
treeWidget->sortItems(ColumnsTreeTrainees::clmn_Trainee, Qt::SortOrder::AscendingOrder);
mtxTreeWidget.unlock();
}
void TraineesView::loadTraineesFromDB()
{
mtxTreeWidget.lock();
@@ -127,9 +39,9 @@ void TraineesView::loadTraineesFromDB()
//Группа
int cntChildsNotArchived = 0;
QTreeWidgetItem *ItemGroup = new QTreeWidgetItem(treeWidget);
ItemGroup->setText(ColumnsTreeTrainees::clmn_ID, QString::number(group.getID()));
ItemGroup->setText(ColumnsTreeTrainees::clmn_Trainee, group.getName());
ItemGroup->setIcon(ColumnsTreeTrainees::clmn_Trainee, QIcon(QStringLiteral(":/resources/icons/group.png")));
ItemGroup->setText(ColumnsTreeUsers::clmn_ID, QString::number(group.getID()));
ItemGroup->setText(ColumnsTreeUsers::clmn_Name, group.getName());
ItemGroup->setIcon(ColumnsTreeUsers::clmn_Name, QIcon(QStringLiteral(":/resources/icons/group.png")));
setItemColor(ItemGroup, QColor(220, 220, 220));
//ItemGroup->set Property("greenButton", QVariant(true));
@@ -143,40 +55,40 @@ void TraineesView::loadTraineesFromDB()
QTreeWidgetItem *ItemTrainee = new QTreeWidgetItem();
ItemTrainee->setText(ColumnsTreeTrainees::clmn_ID, QString::number(trainee.getID()));
ItemTrainee->setText(ColumnsTreeTrainees::clmn_Trainee, trainee.getName());
ItemTrainee->setText(ColumnsTreeTrainees::clmn_Login, trainee.getLogin());
ItemTrainee->setText(ColumnsTreeTrainees::clmn_Password, trainee.getPassword());
ItemTrainee->setText(ColumnsTreeTrainees::clmn_Class, trainee.getComputer().getClassroom().getName());
ItemTrainee->setText(ColumnsTreeTrainees::clmn_Computer, trainee.getComputer().getName());
ItemTrainee->setText(ColumnsTreeTrainees::clmn_IP_address, trainee.getComputer().getIpAddress());
ItemTrainee->setText(ColumnsTreeUsers::clmn_ID, QString::number(trainee.getID()));
ItemTrainee->setText(ColumnsTreeUsers::clmn_Name, trainee.getName());
ItemTrainee->setText(ColumnsTreeUsers::clmn_Login, trainee.getLogin());
ItemTrainee->setText(ColumnsTreeUsers::clmn_Password, trainee.getPassword());
ItemTrainee->setText(ColumnsTreeUsers::clmn_Class, trainee.getComputer().getClassroom().getName());
ItemTrainee->setText(ColumnsTreeUsers::clmn_Computer, trainee.getComputer().getName());
ItemTrainee->setText(ColumnsTreeUsers::clmn_IP_address, trainee.getComputer().getIpAddress());
//Сокрытие пароля
ItemTrainee->setText(ColumnsTreeTrainees::clmn_Password, QStringLiteral("******"));
ItemTrainee->setText(ColumnsTreeUsers::clmn_Password, QStringLiteral("******"));
if(trainee.getArchived())
{//Архивный
ItemTrainee->setText(ColumnsTreeTrainees::clmn_Archived, tr("yes"));
ItemTrainee->setIcon(ColumnsTreeTrainees::clmn_Trainee, QIcon(QStringLiteral(":/resources/icons/archive.png")));
ItemTrainee->setText(ColumnsTreeUsers::clmn_Archived, tr("yes"));
ItemTrainee->setIcon(ColumnsTreeUsers::clmn_Name, QIcon(QStringLiteral(":/resources/icons/archive.png")));
setItemColorArchive(ItemTrainee);
}
else
{//Не Архивный
ItemTrainee->setText(ColumnsTreeTrainees::clmn_Archived, tr("no"));
ItemTrainee->setIcon(ColumnsTreeTrainees::clmn_Trainee, QIcon(QStringLiteral(":/resources/icons/trainee.png")));
ItemTrainee->setText(ColumnsTreeUsers::clmn_Archived, tr("no"));
ItemTrainee->setIcon(ColumnsTreeUsers::clmn_Name, QIcon(QStringLiteral(":/resources/icons/trainee.png")));
setItemColorNoArchive(ItemTrainee);
cntChildsNotArchived++;
}
if(trainee.getLoggedIn())
{//Залогинен
//ItemTrainee->setText(ColumnsTreeTrainees::clmn_Logged, tr("yes"));
ItemTrainee->setIcon(ColumnsTreeTrainees::clmn_Logged, QIcon(QStringLiteral(":/resources/icons/circleGreen.png")));
//ItemTrainee->setText(ColumnsTreeUsers::clmn_Logged, tr("yes"));
ItemTrainee->setIcon(ColumnsTreeUsers::clmn_Logged, QIcon(QStringLiteral(":/resources/icons/circleGreen.png")));
}
else
{//Не Залогинен
//ItemTrainee->setText(ColumnsTreeTrainees::clmn_Logged, tr("no"));
ItemTrainee->setIcon(ColumnsTreeTrainees::clmn_Logged, QIcon(QStringLiteral(":/resources/icons/circleGray.png")));
//ItemTrainee->setText(ColumnsTreeUsers::clmn_Logged, tr("no"));
ItemTrainee->setIcon(ColumnsTreeUsers::clmn_Logged, QIcon(QStringLiteral(":/resources/icons/circleGray.png")));
}
ItemGroup->addChild(ItemTrainee);
@@ -215,19 +127,13 @@ void TraineesView::loadTraineesFromDB()
else
setCurrentTrainee(lastCurrentID);
treeWidget->sortItems(ColumnsTreeTrainees::clmn_Trainee, Qt::SortOrder::AscendingOrder);
treeWidget->sortItems(ColumnsTreeUsers::clmn_Name, Qt::SortOrder::AscendingOrder);
mtxTreeWidget.unlock();
waitAnimationWidget->hideWithStop();
}
void TraineesView::reSetHeadTreeWidget()
{
QStringList listHeaders = {tr("Trainee"), tr("Login"), tr("Password"), tr("Class"), tr("Computer"), tr("IP address"), tr("Archived"), tr("Logged"), tr("ID")};
treeWidget->setHeaderLabels(listHeaders);
}
void TraineesView::setCurrentGroup(int id)
{
typeObject = TypeObject::objGroup;
@@ -236,7 +142,7 @@ void TraineesView::setCurrentGroup(int id)
{
QTreeWidgetItem * item = treeWidget->topLevelItem(i);
if(item != nullptr)
if(item->text(ColumnsTreeTrainees::clmn_ID).toInt() == id)
if(item->text(ColumnsTreeUsers::clmn_ID).toInt() == id)
{
treeWidget->setCurrentItem(item);
return;
@@ -263,7 +169,7 @@ void TraineesView::setCurrentTrainee(int id)
{
QTreeWidgetItem * itemChild = item->child(j);
if(itemChild != nullptr)
if(itemChild->text(ColumnsTreeTrainees::clmn_ID).toInt() == id)
if(itemChild->text(ColumnsTreeUsers::clmn_ID).toInt() == id)
{
treeWidget->setCurrentItem(itemChild);
return;