From 43a3bc793cb40968c99ac388c990c63d1044f673 Mon Sep 17 00:00:00 2001 From: krivoshein Date: Tue, 9 Sep 2025 17:57:14 +0300 Subject: [PATCH] on_treeWidget_itemClicked --- InstructorsAndTrainees/commonview.h | 4 ++ .../instructors/viewerinstructors.cpp | 12 ++--- .../instructors/viewerinstructors.h | 2 +- .../instructorsandtraineeswidget.cpp | 8 ++++ .../trainees/viewertrainees.cpp | 47 ++++++++++--------- .../trainees/viewertrainees.h | 2 +- 6 files changed, 44 insertions(+), 31 deletions(-) diff --git a/InstructorsAndTrainees/commonview.h b/InstructorsAndTrainees/commonview.h index 85f37ac..d471625 100644 --- a/InstructorsAndTrainees/commonview.h +++ b/InstructorsAndTrainees/commonview.h @@ -41,6 +41,10 @@ public: treeWidget->clear(); lastCurrentID = 0; } + void clearSelection() + { + treeWidget->clearSelection(); + } protected: void setArchiveVisible(bool archiveVisible) diff --git a/InstructorsAndTrainees/instructors/viewerinstructors.cpp b/InstructorsAndTrainees/instructors/viewerinstructors.cpp index 4e612fc..6b28b32 100644 --- a/InstructorsAndTrainees/instructors/viewerinstructors.cpp +++ b/InstructorsAndTrainees/instructors/viewerinstructors.cpp @@ -9,7 +9,7 @@ ViewerInstructors::ViewerInstructors(ConnectorToServer* connectorToServer, QWidg { ui->setupUi(this); - connect(treeWidget, &QTreeWidget::currentItemChanged, this, &ViewerInstructors::on_treeWidget_currentItemChanged); + connect(treeWidget, &QTreeWidget::itemClicked, this, &ViewerInstructors::on_treeWidget_itemClicked); ui->horizontalLayout_1->addWidget(treeWidget); @@ -71,20 +71,20 @@ void ViewerInstructors::on_btnEditorInstructors_clicked() Q_EMIT signal_BlockAutorization(false); } -void ViewerInstructors::on_treeWidget_currentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *previous) +void ViewerInstructors::on_treeWidget_itemClicked(QTreeWidgetItem *item, int column) { - if(current == nullptr) + if(item == nullptr) return; //if(current->childCount() == 0) {//Выбран обучаемый - QString login = current->text(ColumnsTreeInsructors::clmn_Login); + QString login = item->text(ColumnsTreeInsructors::clmn_Login); //if(login != "") { int newCurrentID = connectorToServer->getIdInstructorByLogin(login); - if(newCurrentID == lastCurrentID) - return; + //if(newCurrentID == lastCurrentID) + //return; lastCurrentID = newCurrentID; diff --git a/InstructorsAndTrainees/instructors/viewerinstructors.h b/InstructorsAndTrainees/instructors/viewerinstructors.h index 0582c71..145b07e 100644 --- a/InstructorsAndTrainees/instructors/viewerinstructors.h +++ b/InstructorsAndTrainees/instructors/viewerinstructors.h @@ -33,7 +33,7 @@ public Q_SLOTS: void on_btnEditorInstructors_clicked(); public slots: - void on_treeWidget_currentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *previous); + void on_treeWidget_itemClicked(QTreeWidgetItem *item, int column); Q_SIGNALS: //сигнал о выборе инструктора diff --git a/InstructorsAndTrainees/instructorsandtraineeswidget.cpp b/InstructorsAndTrainees/instructorsandtraineeswidget.cpp index c925f70..e2b907f 100644 --- a/InstructorsAndTrainees/instructorsandtraineeswidget.cpp +++ b/InstructorsAndTrainees/instructorsandtraineeswidget.cpp @@ -54,6 +54,10 @@ InstructorsAndTraineesWidget::InstructorsAndTraineesWidget(QWidget *parent) : connect(viewerTrainees, &ViewerTrainees::signal_traineeSelected, this, &InstructorsAndTraineesWidget::slot_traineeSelected); connect(viewerInstructors, &ViewerInstructors::signal_instructorSelected, this, &InstructorsAndTraineesWidget::slot_instructorSelected); + + viewerTrainees->clearSelection(); + viewerInstructors->clearSelection(); + //Размещение ui->verticalLayout_Trainees->addWidget(viewerTrainees); ui->verticalLayout_Instructors->addWidget(viewerInstructors); @@ -254,6 +258,8 @@ void InstructorsAndTraineesWidget::slot_ConnectedToServer(bool state) void InstructorsAndTraineesWidget::slot_traineeSelected(QString login) { + viewerInstructors->clearSelection(); + /* Messanger*/ messangerController->deleteWidget(messangerWidget); if(login != "") @@ -266,6 +272,8 @@ void InstructorsAndTraineesWidget::slot_traineeSelected(QString login) void InstructorsAndTraineesWidget::slot_instructorSelected(QString login) { + viewerTrainees->clearSelection(); + /* Messanger*/ messangerController->deleteWidget(messangerWidget); if(login != "") diff --git a/InstructorsAndTrainees/trainees/viewertrainees.cpp b/InstructorsAndTrainees/trainees/viewertrainees.cpp index a20ab4a..09cb9ee 100644 --- a/InstructorsAndTrainees/trainees/viewertrainees.cpp +++ b/InstructorsAndTrainees/trainees/viewertrainees.cpp @@ -14,9 +14,10 @@ ViewerTrainees::ViewerTrainees(ConnectorToServer* connectorToServer, MessangerCo { ui->setupUi(this); - connect(treeWidget, &QTreeWidget::currentItemChanged, this, &ViewerTrainees::on_treeWidget_currentItemChanged); connect(treeWidget, &QTreeWidget::itemDoubleClicked, this, &ViewerTrainees::on_itemDoubleClicked); + connect(treeWidget, &QTreeWidget::itemClicked, this, &ViewerTrainees::on_treeWidget_itemClicked); + ui->horizontalLayout_1->addWidget(treeWidget); /* @@ -112,28 +113,6 @@ void ViewerTrainees::on_btnEditorTrainees_clicked() Q_EMIT signal_BlockAutorization(false); } -void ViewerTrainees::on_treeWidget_currentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *previous) -{ - if(current == nullptr) - return; - - //if(current->childCount() == 0) - {//Выбран обучаемый - QString login = current->text(ColumnsTreeTrainees::clmn_Login); - //if(login != "") - { - int newCurrentID = connectorToServer->getIdTraineeByLogin(login); - - if(newCurrentID == lastCurrentID) - return; - - lastCurrentID = newCurrentID; - - Q_EMIT signal_traineeSelected(login); - } - } -} - void ViewerTrainees::on_itemDoubleClicked(QTreeWidgetItem *item, int column) { if(item == nullptr) @@ -167,6 +146,28 @@ void ViewerTrainees::on_itemDoubleClicked(QTreeWidgetItem *item, int column) } } +void ViewerTrainees::on_treeWidget_itemClicked(QTreeWidgetItem *item, int column) +{ + if(item == nullptr) + return; + + //if(current->childCount() == 0) + {//Выбран обучаемый + QString login = item->text(ColumnsTreeTrainees::clmn_Login); + //if(login != "") + { + int newCurrentID = connectorToServer->getIdTraineeByLogin(login); + + //if(newCurrentID == lastCurrentID) + //return; + + lastCurrentID = newCurrentID; + + Q_EMIT signal_traineeSelected(login); + } + } +} + void ViewerTrainees::updateButtons() { if(authComplited) diff --git a/InstructorsAndTrainees/trainees/viewertrainees.h b/InstructorsAndTrainees/trainees/viewertrainees.h index 7561879..cc79066 100644 --- a/InstructorsAndTrainees/trainees/viewertrainees.h +++ b/InstructorsAndTrainees/trainees/viewertrainees.h @@ -36,8 +36,8 @@ public Q_SLOTS: //void on_treeWidget_itemClicked(QTreeWidgetItem *item, int column); void on_btnEditorTrainees_clicked(); private Q_SLOTS: - void on_treeWidget_currentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *previous); void on_itemDoubleClicked(QTreeWidgetItem *item, int column); + void on_treeWidget_itemClicked(QTreeWidgetItem *item, int column); Q_SIGNALS: //сигнал о выборе обучаемого