before interface 13.11.2024

This commit is contained in:
krivoshein
2024-11-13 09:54:35 +03:00
parent f4ca58ce91
commit 61aaac2b1c
62 changed files with 1233 additions and 1047 deletions

View File

@@ -12,6 +12,9 @@ EditorInstructors::EditorInstructors(DataBaseInstructors* db, bool adminMode, QW
preparationTreeWidget(ui->treeWidget);
setNotLoggedInVisible(true);
loadInstructorsFromDB();
if(adminMode)
ui->btnArchive->click();
}
EditorInstructors::~EditorInstructors()
@@ -21,9 +24,11 @@ EditorInstructors::~EditorInstructors()
void EditorInstructors::on_btnNewInstructor_clicked()
{
int id = dbInstructors->newInstructor();
loadInstructorsFromDB();
setCurrentInstructor(id);
if(int id = dbInstructors->newInstructor())
{
loadInstructorsFromDB();
setCurrentInstructor(id);
}
}
void EditorInstructors::on_btnDeleteInstructor_clicked()
@@ -36,7 +41,7 @@ void EditorInstructors::on_btnDeleteInstructor_clicked()
if(treeItemParent == nullptr)
{//Выбран Инструктор
int id = treeItemCurrent->text(0).toInt();
int id = treeItemCurrent->text(ColumnsTreeInsructors::clmn_ID).toInt();
if(dbInstructors->isAdmin(id))
{//Это Админ!
@@ -46,8 +51,8 @@ void EditorInstructors::on_btnDeleteInstructor_clicked()
if(QMessageBox::warning(this, tr("Attention!"), tr("The deletion will be irrevocable.\nDelete it anyway?"), QMessageBox::Ok, QMessageBox::Cancel) == QMessageBox::Ok)
{
dbInstructors->deleteInstructor(id);
loadInstructorsFromDB();
if(dbInstructors->deleteInstructor(id))
loadInstructorsFromDB();
}
}
}
@@ -63,9 +68,11 @@ void EditorInstructors::on_btnToOrFromArchive_clicked()
if(treeItemParent == nullptr)
{//Выбран Инструктор
int id = treeItemCurrent->text(0).toInt();
int id = treeItemCurrent->text(ColumnsTreeInsructors::clmn_ID).toInt();
Instructor instructor = dbInstructors->getInstructor(id);
if(instructor.getID() == 0)
return;
if(instructor.getArchived())
{//Архивный
@@ -103,29 +110,45 @@ void EditorInstructors::on_btnEdit_clicked()
if(treeItemParent == nullptr)
{//Выбран Инструктор
int id = treeItemCurrent->text(0).toInt();
int id = treeItemCurrent->text(ColumnsTreeInsructors::clmn_ID).toInt();
DialogEditInstructor dlg(this);
dlg.setInstructor(dbInstructors->getInstructor(id));
switch( dlg.exec() )
Instructor instructor = dbInstructors->getInstructor(id);
if(instructor.getID() == 0)
return;
dlg.setInstructor(instructor);
while (true)
{
case QDialog::Accepted:
{
if(int id_edit = dbInstructors->editInstructor(dlg.getInstructor()))
switch( dlg.exec() )
{
loadInstructorsFromDB();
setCurrentInstructor(id_edit);
case QDialog::Accepted:
{
Instructor instructor_edit = dlg.getInstructor();
if(int id_edit = dbInstructors->editInstructor(instructor_edit))
{//Отредактировано
loadInstructorsFromDB();
setCurrentInstructor(id_edit);
return;
}
else
{
dlg.setInstructor(instructor_edit);
continue;
}
break;
}
case QDialog::Rejected:
return;
break;
default:
return;
break;
}
else
QMessageBox::critical(this, tr("Editing error!"),
tr("An existing instructor name or login has been entered.\nThe changes will not be accepted."));
break;
}
case QDialog::Rejected:
break;
default:
break;
}
}
}
@@ -148,7 +171,7 @@ void EditorInstructors::on_treeWidget_currentItemChanged(QTreeWidgetItem *curren
if(treeItemParent == nullptr)
{//Выбран инструктор
int id = current->text(0).toInt();
int id = current->text(ColumnsTreeInsructors::clmn_ID).toInt();
if(dbInstructors->isArchived(id))
{//Архивный
@@ -189,7 +212,7 @@ void EditorInstructors::setCurrentInstructor(int id)
{
QTreeWidgetItem * item = treeWidget->topLevelItem(i);
if(item != nullptr)
if(item->text(0).toInt() == id)
if(item->text(ColumnsTreeInsructors::clmn_ID).toInt() == id)
{
treeWidget->setCurrentItem(item);
break;