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

@@ -18,7 +18,7 @@ DialogRedactorInstructors::DialogRedactorInstructors(ConnectorToServer* connecto
layout->addWidget(editorInstructors);
this->setWindowTitle(tr("Editor of instructors"));
this->setMinimumSize(1400, 700);
this->setWindowState(Qt::WindowMaximized);
//this->setWindowState(Qt::WindowMaximized);
this->setModal(true);
}

View File

@@ -112,7 +112,7 @@ void EditorInstructors::on_btnDeleteInstructor_clicked()
if(treeItemParent == nullptr)
{//Выбран Инструктор
int id = treeItemCurrent->text(ColumnsTreeInsructors::clmn_ID).toInt();
int id = treeItemCurrent->text(ColumnsTreeUsers::clmn_ID).toInt();
if(connectorToServer->isAdminInstructor(id))
{//Это Админ!
@@ -145,7 +145,7 @@ void EditorInstructors::on_btnToOrFromArchive_clicked()
if(treeItemParent == nullptr)
{//Выбран Инструктор
int id = treeItemCurrent->text(ColumnsTreeInsructors::clmn_ID).toInt();
int id = treeItemCurrent->text(ColumnsTreeUsers::clmn_ID).toInt();
Instructor instructor = connectorToServer->getInstructor(id);
if(instructor.getID() == 0)
@@ -194,7 +194,7 @@ void EditorInstructors::on_btnEdit_clicked()
if(treeItemParent == nullptr)
{//Выбран Инструктор
int id = treeItemCurrent->text(ColumnsTreeInsructors::clmn_ID).toInt();
int id = treeItemCurrent->text(ColumnsTreeUsers::clmn_ID).toInt();
if(connectorToServer->isLoggedInInstructor(id))
{//Инструктор залогирован!
@@ -252,7 +252,7 @@ void EditorInstructors::on_treeWidgetCurrentItemChanged(QTreeWidgetItem *current
if(treeItemParent == nullptr)
{//Выбран инструктор
int id = current->text(ColumnsTreeInsructors::clmn_ID).toInt();
int id = current->text(ColumnsTreeUsers::clmn_ID).toInt();
lastCurrentID = id;

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;

View File

@@ -13,32 +13,13 @@ class InstructorsView: public CommonView
public:
InstructorsView(ConnectorToServer* connectorToServer, TypeView type, QWidget *parent = nullptr);
protected:
enum ColumnsTreeInsructors{
clmn_Instructor = 0,
clmn_Login,
clmn_Password,
clmn_Administrator,
clmn_Archived,
clmn_Logged,
clmn_ID,
clmn_count
};
public:
void resizeEvent(QResizeEvent *event) override;
public Q_SLOTS:
//Слот обработки сигнала необходимости обновления интерфейса
void slot_NeedUpdateUI(bool treeInstructor, bool treeTrainee);
protected:
virtual void updateButtons(){};
void preparationTreeWidget();
void loadInstructorsFromDB();
void reSetHeadTreeWidget();
void setCurrentInstructor(int id);
};

View File

@@ -82,7 +82,7 @@ void ViewerInstructors::on_treeWidgetItemClicked(QTreeWidgetItem *item, int colu
//if(current->childCount() == 0)
{//Выбран обучаемый
QString login = item->text(ColumnsTreeInsructors::clmn_Login);
QString login = item->text(ColumnsTreeUsers::clmn_Login);
//if(login != "")
{
int newCurrentID = connectorToServer->getIdInstructorByLogin(login);