Оптимизировал 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

@@ -1,51 +1,14 @@
#include <QHeaderView>
#include <QTranslator>
#include <QResizeEvent>
#include <QScrollBar>
#include "instructorsview.h"
InstructorsView::InstructorsView(ConnectorToServer* connectorToServer, TypeView type, QWidget *parent):
CommonView(connectorToServer, type, parent)
{
typeObject = TypeObject::objInstructor;
}
void InstructorsView::resizeEvent(QResizeEvent *event)
{
int width = treeWidget->width();
treeWidget->setColumnWidth(ColumnsTreeInsructors::clmn_ID, 50);
treeWidget->setColumnWidth(ColumnsTreeInsructors::clmn_Login, 100);
treeWidget->setColumnWidth(ColumnsTreeInsructors::clmn_Password, 100);
treeWidget->setColumnWidth(ColumnsTreeInsructors::clmn_Administrator, 140);
treeWidget->setColumnWidth(ColumnsTreeInsructors::clmn_Archived, 100);
treeWidget->setColumnWidth(ColumnsTreeInsructors::clmn_Logged, 120);
int widthInstructor;
if(typeView == TypeView::onlyView)
{//onlyView
widthInstructor = width - (220 + 10 + 20);
}
else
{//control
if(adminMode)
{
#ifdef PROJECT_TYPE_DEBUG
widthInstructor = width - (610 + 10 + 20);
#else
widthInstructor = width - (560 + 10 + 20);
#endif
}
else
widthInstructor = width - (480 + 10 + 20);
}
if(widthInstructor < 250)
widthInstructor = 250;
treeWidget->setColumnWidth(ColumnsTreeInsructors::clmn_Instructor, widthInstructor);
QSize size = event->size();
waitAnimationWidget->resize(size);
TypeUserDB = User::TypeUserDBInstructor;
}
void InstructorsView::slot_NeedUpdateUI(bool treeInstructor, bool treeTrainee)
@@ -59,47 +22,6 @@ void InstructorsView::slot_NeedUpdateUI(bool treeInstructor, bool treeTrainee)
}
}
void InstructorsView::preparationTreeWidget()
{
mtxTreeWidget.lock();
treeWidget->setColumnCount(clmn_count);
reSetHeadTreeWidget();
if(typeView == TypeView::onlyView)
{//onlyView
archiveVisible = false;
treeWidget->setColumnHidden(ColumnsTreeInsructors::clmn_ID, true);
treeWidget->setColumnHidden(ColumnsTreeInsructors::clmn_Password, true);
treeWidget->setColumnHidden(ColumnsTreeInsructors::clmn_Archived, true);
treeWidget->setColumnHidden(ColumnsTreeInsructors::clmn_Administrator, true);
}
else
{//control
archiveVisible = true;
if(adminMode)
{
#ifdef PROJECT_TYPE_DEBUG
treeWidget->setColumnHidden(ColumnsTreeInsructors::clmn_ID, false);
#else
treeWidget->setColumnHidden(ColumnsTreeInsructors::clmn_ID, true);
#endif
}
else
{
treeWidget->setColumnHidden(ColumnsTreeInsructors::clmn_ID, true);
}
}
treeWidget->setSortingEnabled(true);
treeWidget->sortItems(ColumnsTreeInsructors::clmn_Instructor, Qt::SortOrder::AscendingOrder);
mtxTreeWidget.unlock();
}
void InstructorsView::loadInstructorsFromDB()
{
mtxTreeWidget.lock();
@@ -116,46 +38,46 @@ void InstructorsView::loadInstructorsFromDB()
{
QTreeWidgetItem *ItemInstructor = new QTreeWidgetItem(treeWidget);
ItemInstructor->setText(ColumnsTreeInsructors::clmn_ID, QString::number(instructor.getID()));
ItemInstructor->setText(ColumnsTreeInsructors::clmn_Instructor, instructor.getName());
ItemInstructor->setText(ColumnsTreeInsructors::clmn_Login, instructor.getLogin());
ItemInstructor->setText(ColumnsTreeInsructors::clmn_Password, instructor.getPassword());
ItemInstructor->setText(ColumnsTreeUsers::clmn_ID, QString::number(instructor.getID()));
ItemInstructor->setText(ColumnsTreeUsers::clmn_Name, instructor.getName());
ItemInstructor->setText(ColumnsTreeUsers::clmn_Login, instructor.getLogin());
ItemInstructor->setText(ColumnsTreeUsers::clmn_Password, instructor.getPassword());
//Сокрытие пароля
ItemInstructor->setText(ColumnsTreeInsructors::clmn_Password, QStringLiteral("******"));
ItemInstructor->setText(ColumnsTreeUsers::clmn_Password, QStringLiteral("******"));
if(instructor.getArchived())
{//Архивный
ItemInstructor->setText(ColumnsTreeInsructors::clmn_Archived, tr("yes"));
ItemInstructor->setIcon(ColumnsTreeInsructors::clmn_Instructor, QIcon(QStringLiteral(":/resources/icons/archive.png")));
ItemInstructor->setText(ColumnsTreeUsers::clmn_Archived, tr("yes"));
ItemInstructor->setIcon(ColumnsTreeUsers::clmn_Name, QIcon(QStringLiteral(":/resources/icons/archive.png")));
setItemColorArchive(ItemInstructor);
}
else
{//Не Архивный
ItemInstructor->setText(ColumnsTreeInsructors::clmn_Archived, tr("no"));
ItemInstructor->setIcon(ColumnsTreeInsructors::clmn_Instructor, QIcon(QStringLiteral(":/resources/icons/instructor.png")));
ItemInstructor->setText(ColumnsTreeUsers::clmn_Archived, tr("no"));
ItemInstructor->setIcon(ColumnsTreeUsers::clmn_Name, QIcon(QStringLiteral(":/resources/icons/instructor.png")));
setItemColorNoArchive(ItemInstructor);
}
if(instructor.getIsAdmin())
{//Админ
ItemInstructor->setText(ColumnsTreeInsructors::clmn_Administrator, tr("yes"));
ItemInstructor->setIcon(ColumnsTreeInsructors::clmn_Instructor, QIcon(QStringLiteral(":/resources/icons/admin.png")));
ItemInstructor->setText(ColumnsTreeUsers::clmn_Administrator, tr("yes"));
ItemInstructor->setIcon(ColumnsTreeUsers::clmn_Name, QIcon(QStringLiteral(":/resources/icons/admin.png")));
}
else
{//Не Админ
ItemInstructor->setText(ColumnsTreeInsructors::clmn_Administrator, tr("no"));
ItemInstructor->setText(ColumnsTreeUsers::clmn_Administrator, tr("no"));
}
if(instructor.getLoggedIn())
{//Залогинен
//ItemInstructor->setText(ColumnsTreeInsructors::clmn_Logged, tr("yes"));
ItemInstructor->setIcon(ColumnsTreeInsructors::clmn_Logged, QIcon(QStringLiteral(":/resources/icons/circleGreen.png")));
//ItemInstructor->setText(ColumnsTreeUsers::clmn_Logged, tr("yes"));
ItemInstructor->setIcon(ColumnsTreeUsers::clmn_Logged, QIcon(QStringLiteral(":/resources/icons/circleGreen.png")));
}
else
{//Не Залогинен
//ItemInstructor->setText(ColumnsTreeInsructors::clmn_Logged, tr("no"));
ItemInstructor->setIcon(ColumnsTreeInsructors::clmn_Logged, QIcon(QStringLiteral(":/resources/icons/circleGray.png")));
//ItemInstructor->setText(ColumnsTreeUsers::clmn_Logged, tr("no"));
ItemInstructor->setIcon(ColumnsTreeUsers::clmn_Logged, QIcon(QStringLiteral(":/resources/icons/circleGray.png")));
}
//Скрываем архивных (при необходимости)
@@ -181,26 +103,20 @@ void InstructorsView::loadInstructorsFromDB()
setCurrentInstructor(lastCurrentID);
treeWidget->sortItems(ColumnsTreeInsructors::clmn_Instructor, Qt::SortOrder::AscendingOrder);
treeWidget->sortItems(ColumnsTreeUsers::clmn_Name, Qt::SortOrder::AscendingOrder);
mtxTreeWidget.unlock();
waitAnimationWidget->hideWithStop();
}
void InstructorsView::reSetHeadTreeWidget()
{
QStringList listHeaders = {tr("Instructor"), tr("Login"), tr("Password"), tr("Administrator"), tr("Archived"), tr("Logged"), tr("ID")};
treeWidget->setHeaderLabels(listHeaders);
}
void InstructorsView::setCurrentInstructor(int id)
{
for(int i = 0; i < treeWidget->topLevelItemCount(); i++)
{
QTreeWidgetItem * item = treeWidget->topLevelItem(i);
if(item != nullptr)
if(item->text(ColumnsTreeInsructors::clmn_ID).toInt() == id)
if(item->text(ColumnsTreeUsers::clmn_ID).toInt() == id)
{
treeWidget->setCurrentItem(item);
return;