mirror of
https://gitea.msk.dinamika-avia.ru/Constanta-Design/RRJServer.git
synced 2026-03-28 19:55:48 +03:00
MessangerWidget переехал в InstrucorsAndTraineesWidget
This commit is contained in:
@@ -41,7 +41,7 @@
|
||||
{
|
||||
"directoryIndex" : 0,
|
||||
"id" : "ServerLMS::@6890427a1f51a3e7e1df",
|
||||
"jsonFile" : "target-ServerLMS-Debug-1e8ea9a160d6d70bbdeb.json",
|
||||
"jsonFile" : "target-ServerLMS-Debug-bc8deca2eb13bd8dc1c2.json",
|
||||
"name" : "ServerLMS",
|
||||
"projectIndex" : 0
|
||||
},
|
||||
@@ -26,7 +26,7 @@
|
||||
"objects" :
|
||||
[
|
||||
{
|
||||
"jsonFile" : "codemodel-v2-6fe357fa3e4eee1e3fe5.json",
|
||||
"jsonFile" : "codemodel-v2-2d08accfe704496052a0.json",
|
||||
"kind" : "codemodel",
|
||||
"version" :
|
||||
{
|
||||
@@ -77,7 +77,7 @@
|
||||
},
|
||||
"codemodel-v2" :
|
||||
{
|
||||
"jsonFile" : "codemodel-v2-6fe357fa3e4eee1e3fe5.json",
|
||||
"jsonFile" : "codemodel-v2-2d08accfe704496052a0.json",
|
||||
"kind" : "codemodel",
|
||||
"version" :
|
||||
{
|
||||
@@ -46,7 +46,25 @@
|
||||
{
|
||||
"command" : 1,
|
||||
"file" : 0,
|
||||
"line" : 70,
|
||||
"line" : 67,
|
||||
"parent" : 0
|
||||
},
|
||||
{
|
||||
"command" : 2,
|
||||
"file" : 0,
|
||||
"line" : 58,
|
||||
"parent" : 0
|
||||
},
|
||||
{
|
||||
"command" : 2,
|
||||
"file" : 0,
|
||||
"line" : 59,
|
||||
"parent" : 0
|
||||
},
|
||||
{
|
||||
"command" : 2,
|
||||
"file" : 0,
|
||||
"line" : 60,
|
||||
"parent" : 0
|
||||
},
|
||||
{
|
||||
@@ -64,25 +82,7 @@
|
||||
{
|
||||
"command" : 2,
|
||||
"file" : 0,
|
||||
"line" : 63,
|
||||
"parent" : 0
|
||||
},
|
||||
{
|
||||
"command" : 2,
|
||||
"file" : 0,
|
||||
"line" : 64,
|
||||
"parent" : 0
|
||||
},
|
||||
{
|
||||
"command" : 2,
|
||||
"file" : 0,
|
||||
"line" : 65,
|
||||
"parent" : 0
|
||||
},
|
||||
{
|
||||
"command" : 2,
|
||||
"file" : 0,
|
||||
"line" : 74,
|
||||
"line" : 71,
|
||||
"parent" : 0
|
||||
},
|
||||
{
|
||||
@@ -126,13 +126,13 @@
|
||||
{
|
||||
"command" : 7,
|
||||
"file" : 0,
|
||||
"line" : 77,
|
||||
"line" : 74,
|
||||
"parent" : 0
|
||||
},
|
||||
{
|
||||
"command" : 8,
|
||||
"file" : 0,
|
||||
"line" : 68,
|
||||
"line" : 65,
|
||||
"parent" : 0
|
||||
}
|
||||
]
|
||||
@@ -1,28 +1,28 @@
|
||||
# ninja log v5
|
||||
2292 2745 7549125560741473 libServerLMS.dll.a fec6fbb0697e8d71
|
||||
19 59 0 CMakeFiles/ServerLMS_autogen a1ba014d73005738
|
||||
19 59 0 D:/LMS/ServerLMS/Debug64/CMakeFiles/ServerLMS_autogen a1ba014d73005738
|
||||
3 3270 7549954495222456 build.ninja 80e6aedf30bdcc22
|
||||
59 2292 7549125556226714 CMakeFiles/ServerLMS.dir/serverlmswidget.cpp.obj 12010b53b3caa3fc
|
||||
1168 3150 7548373207023899 CMakeFiles/ServerLMS.dir/messangerwidget.cpp.obj 8dd57f666ed5ecf4
|
||||
19 59 0 ServerLMS_autogen/mocs_compilation.cpp a1ba014d73005738
|
||||
727 3828 7549118088456708 CMakeFiles/ServerLMS.dir/clienthandler.cpp.obj 6c16bf194fe85608
|
||||
1305 1392 7548532016129887 CMakeFiles/ServerLMS.dir/ServerLMS_autogen/EWIEGA46WW/qrc_resources.cpp.obj f93621c79a78fad0
|
||||
19 59 0 ServerLMS_autogen/include/ui_serverlmswidget.h a1ba014d73005738
|
||||
19 59 0 D:/LMS/ServerLMS/Debug64/ServerLMS_autogen/mocs_compilation.cpp a1ba014d73005738
|
||||
1226 1269 7548532014896390 ServerLMS_autogen/EWIEGA46WW/qrc_resources.cpp 9bce64f5ef0262e2
|
||||
738 3970 7549118089860951 CMakeFiles/ServerLMS.dir/Systems/processingsystem.cpp.obj 64946e3309bfc754
|
||||
1226 1269 7548532014896390 ServerLMS_autogen/EWIEGA46WW/qrc_resources.cpp 9bce64f5ef0262e2
|
||||
8 55 0 D:/LMS/ServerLMS/Debug64/ServerLMS_autogen/mocs_compilation.cpp a1ba014d73005738
|
||||
8 55 0 ServerLMS_autogen/include/ui_serverlmswidget.h a1ba014d73005738
|
||||
727 3828 7549118088456708 CMakeFiles/ServerLMS.dir/clienthandler.cpp.obj 6c16bf194fe85608
|
||||
8 55 0 ServerLMS_autogen/mocs_compilation.cpp a1ba014d73005738
|
||||
1168 3150 7548373207023899 CMakeFiles/ServerLMS.dir/messangerwidget.cpp.obj 8dd57f666ed5ecf4
|
||||
1305 1392 7548532016129887 CMakeFiles/ServerLMS.dir/ServerLMS_autogen/EWIEGA46WW/qrc_resources.cpp.obj f93621c79a78fad0
|
||||
59 2292 7549125556226714 CMakeFiles/ServerLMS.dir/serverlmswidget.cpp.obj 12010b53b3caa3fc
|
||||
3 3270 7549997041454778 build.ninja 80e6aedf30bdcc22
|
||||
8 55 0 D:/LMS/ServerLMS/Debug64/CMakeFiles/ServerLMS_autogen a1ba014d73005738
|
||||
8 55 0 CMakeFiles/ServerLMS_autogen a1ba014d73005738
|
||||
2292 2745 7549125560741473 libServerLMS.dll.a fec6fbb0697e8d71
|
||||
37 46 0 clean 9c4b4372737ab8da
|
||||
741 3823 7549118088405427 CMakeFiles/ServerLMS.dir/Systems/sendsystem.cpp.obj d73c57350f364b58
|
||||
1226 1269 7548532014896390 D:/LMS/ServerLMS/Debug64/ServerLMS_autogen/EWIEGA46WW/qrc_resources.cpp 9bce64f5ef0262e2
|
||||
1284 2596 7548532028126673 CMakeFiles/ServerLMS.dir/Systems/logger.cpp.obj 68e3223fc0caab27
|
||||
729 3840 7549118088596323 CMakeFiles/ServerLMS.dir/multithreadserver.cpp.obj 8ac2c4a8e2ef203c
|
||||
19 59 0 D:/LMS/ServerLMS/Debug64/ServerLMS_autogen/include/ui_serverlmswidget.h a1ba014d73005738
|
||||
1297 2648 7548532028690448 CMakeFiles/ServerLMS.dir/Systems/tools.cpp.obj 81bfa701d65b5429
|
||||
736 3869 7549118088877775 CMakeFiles/ServerLMS.dir/Systems/dataparser.cpp.obj b273ef6b79a34bf
|
||||
734 4008 7549118090233865 CMakeFiles/ServerLMS.dir/Systems/updatecontroller.cpp.obj c4c12bda48d8fa92
|
||||
15 37 0 CMakeFiles/clean.additional 7155004b3956b606
|
||||
2292 2745 7549125560741473 libServerLMS.dll fec6fbb0697e8d71
|
||||
731 3964 7549118089787989 CMakeFiles/ServerLMS.dir/Systems/recognizesystem.cpp.obj f698d155fbad3bd2
|
||||
379 1683 7548534869626978 CMakeFiles/ServerLMS.dir/providerdblms.cpp.obj f56962914220ed2d
|
||||
722 3831 7549118088486627 CMakeFiles/ServerLMS.dir/ServerLMS_autogen/mocs_compilation.cpp.obj 40e4c8c7d98890e8
|
||||
379 1683 7548534869626978 CMakeFiles/ServerLMS.dir/providerdblms.cpp.obj f56962914220ed2d
|
||||
731 3964 7549118089787989 CMakeFiles/ServerLMS.dir/Systems/recognizesystem.cpp.obj f698d155fbad3bd2
|
||||
2292 2745 7549125560741473 libServerLMS.dll fec6fbb0697e8d71
|
||||
1297 2648 7548532028690448 CMakeFiles/ServerLMS.dir/Systems/tools.cpp.obj 81bfa701d65b5429
|
||||
15 37 0 CMakeFiles/clean.additional 7155004b3956b606
|
||||
734 4008 7549118090233865 CMakeFiles/ServerLMS.dir/Systems/updatecontroller.cpp.obj c4c12bda48d8fa92
|
||||
736 3869 7549118088877775 CMakeFiles/ServerLMS.dir/Systems/dataparser.cpp.obj b273ef6b79a34bf
|
||||
8 55 0 D:/LMS/ServerLMS/Debug64/ServerLMS_autogen/include/ui_serverlmswidget.h a1ba014d73005738
|
||||
729 3840 7549118088596323 CMakeFiles/ServerLMS.dir/multithreadserver.cpp.obj 8ac2c4a8e2ef203c
|
||||
1284 2596 7548532028126673 CMakeFiles/ServerLMS.dir/Systems/logger.cpp.obj 68e3223fc0caab27
|
||||
1226 1269 7548532014896390 D:/LMS/ServerLMS/Debug64/ServerLMS_autogen/EWIEGA46WW/qrc_resources.cpp 9bce64f5ef0262e2
|
||||
741 3823 7549118088405427 CMakeFiles/ServerLMS.dir/Systems/sendsystem.cpp.obj d73c57350f364b58
|
||||
|
||||
@@ -30,9 +30,6 @@ add_library(ServerLMS SHARED
|
||||
serverlmswidget.cpp
|
||||
serverlmswidget.h
|
||||
serverlmswidget.ui
|
||||
# messangerwidget.cpp
|
||||
# messangerwidget.h
|
||||
# messangerwidget.ui
|
||||
typesDataServerClient.h
|
||||
Client.h
|
||||
clienthandler.cpp
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE QtCreatorProject>
|
||||
<!-- Written by QtCreator 4.11.1, 2024-12-04T09:32:44. -->
|
||||
<!-- Written by QtCreator 4.11.1, 2024-12-04T10:14:55. -->
|
||||
<qtcreator>
|
||||
<data>
|
||||
<variable>EnvironmentId</variable>
|
||||
|
||||
@@ -1,162 +0,0 @@
|
||||
#include <QListWidget>
|
||||
#include <QBrush>
|
||||
#include <QKeyEvent>
|
||||
#include "messangerwidget.h"
|
||||
#include "ui_messangerwidget.h"
|
||||
|
||||
MessangerWidget::MessangerWidget(QWidget *parent) :
|
||||
QWidget(parent),
|
||||
ui(new Ui::MessangerWidget)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
|
||||
ui->tabWidget->removeTab(1);
|
||||
ui->tabWidget->removeTab(0);
|
||||
|
||||
ui->tabWidget->setStyleSheet("QTabBar::tab:selected "
|
||||
"{background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #6ea1f1, stop: 1 #567dbc);"
|
||||
"color: #ffffff;}");
|
||||
}
|
||||
|
||||
MessangerWidget::~MessangerWidget()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void MessangerWidget::addMsg(QString login, QString name, QString text, MessangerWidget::ETypeMsg typeMsg)
|
||||
{
|
||||
addDialogTab(login, name);
|
||||
|
||||
QString prefix = (typeMsg == MessangerWidget::ETypeMsg::fromClient)? ">> " : "<< ";
|
||||
|
||||
//Ищем нужный диалог
|
||||
foreach(DialogMsg dialogMsg, listDialogMsg)
|
||||
{
|
||||
if(dialogMsg.getLogin() == login)
|
||||
{
|
||||
//Добавляем в существующую вкладку
|
||||
ui->tabWidget->setCurrentIndex(dialogMsg.getIndexTab());
|
||||
|
||||
QListWidgetItem* item = new QListWidgetItem(QIcon(":/icons/trainee.png"), prefix + text);
|
||||
item->setBackground(QBrush(QColor(200, 200, 255)));
|
||||
dialogMsg.getListWidget()->addItem(item);
|
||||
|
||||
currLogin = login;
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void MessangerWidget::addDialogTab(QString login, QString name)
|
||||
{
|
||||
if(listDialogMsg.count() == 0)
|
||||
{
|
||||
currLogin = login;
|
||||
emit signal_tabMessengerChanged(currLogin);
|
||||
}
|
||||
|
||||
//Проверяем наличие диалога с этим клиентом
|
||||
foreach(DialogMsg dialogMsg, listDialogMsg)
|
||||
{
|
||||
if(dialogMsg.getLogin() == login)
|
||||
{//Диалог для этого клиента уже существует
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
//Добавляем новую вкладку диалога
|
||||
QListWidget* listWidget = new QListWidget();
|
||||
int index = ui->tabWidget->addTab(listWidget, /*login + ": " +*/ name);
|
||||
|
||||
//Помещаем новый диалог в список диалогов
|
||||
DialogMsg dialogMsg(index, listWidget, login);
|
||||
listDialogMsg.append(dialogMsg);
|
||||
}
|
||||
|
||||
void MessangerWidget::on_btnSend_clicked()
|
||||
{
|
||||
QString text = ui->editMsg->text();
|
||||
|
||||
emit signal_msgToClientReady(currLogin, text);
|
||||
|
||||
ui->editMsg->clear();
|
||||
|
||||
QString prefix = "<< ";
|
||||
|
||||
//Ищем нужный диалог
|
||||
foreach(DialogMsg dialogMsg, listDialogMsg)
|
||||
{
|
||||
if(dialogMsg.getLogin() == currLogin)
|
||||
{
|
||||
//Добавляем в существующую вкладку
|
||||
ui->tabWidget->setCurrentIndex(dialogMsg.getIndexTab());
|
||||
|
||||
QListWidgetItem* item = new QListWidgetItem(QIcon(":/icons/instructor.png"), prefix + text);
|
||||
item->setBackground(QBrush(QColor(200, 255, 200)));
|
||||
dialogMsg.getListWidget()->addItem(item);
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void MessangerWidget::on_tabWidget_currentChanged(int index)
|
||||
{
|
||||
//Ищем нужный диалог
|
||||
foreach(DialogMsg dialogMsg, listDialogMsg)
|
||||
{
|
||||
if(dialogMsg.getIndexTab() == index)
|
||||
{
|
||||
currLogin = dialogMsg.getLogin();
|
||||
emit signal_tabMessengerChanged(currLogin);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void MessangerWidget::slot_traineeSelected(QString login)
|
||||
{
|
||||
//Ищем нужный диалог
|
||||
foreach(DialogMsg dialogMsg, listDialogMsg)
|
||||
{
|
||||
if(dialogMsg.getLogin() == login)
|
||||
{
|
||||
//Активируем нужную вкладку
|
||||
ui->tabWidget->setCurrentIndex(dialogMsg.getIndexTab());
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void MessangerWidget::slot_LanguageChanged(QString language)
|
||||
{
|
||||
qtLanguageTranslator.load(QString("translationsMy/ServerLMS_") + language, ".");
|
||||
qApp->installTranslator(&qtLanguageTranslator);
|
||||
}
|
||||
|
||||
void MessangerWidget::slot_InitMessanger(QList<Trainee> listTrainees)
|
||||
{
|
||||
for(Trainee trainee: listTrainees)
|
||||
{
|
||||
if(! trainee.getArchived())
|
||||
this->addDialogTab(trainee.getLogin(), trainee.getName());
|
||||
}
|
||||
}
|
||||
|
||||
void MessangerWidget::keyPressEvent(QKeyEvent *event)
|
||||
{
|
||||
if (event->key() == Qt::Key_Enter || event->key() == Qt::Key_Return)
|
||||
{
|
||||
ui->btnSend->click();
|
||||
}
|
||||
}
|
||||
|
||||
void MessangerWidget::changeEvent(QEvent *event)
|
||||
{
|
||||
// В случае получения события изменения языка приложения
|
||||
if (event->type() == QEvent::LanguageChange)
|
||||
{
|
||||
ui->retranslateUi(this); // переведём окно заново
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,85 +0,0 @@
|
||||
#ifndef MESSANGERWIDGET_H
|
||||
#define MESSANGERWIDGET_H
|
||||
|
||||
#include <QWidget>
|
||||
#include <QListWidget>
|
||||
#include <QTranslator>
|
||||
#include "ServerLMS_global.h"
|
||||
//#include "instructorsandtraineeswidget.h"
|
||||
|
||||
class DialogMsg
|
||||
{
|
||||
public:
|
||||
DialogMsg();
|
||||
DialogMsg(int indexTab, QListWidget* listWidget, QString login)
|
||||
{
|
||||
this->indexTab = indexTab;
|
||||
this->listWidget = listWidget;
|
||||
this->login = login;
|
||||
};
|
||||
|
||||
QString getLogin() {return login;};
|
||||
QListWidget* getListWidget() {return listWidget;};
|
||||
int getIndexTab() {return indexTab;};
|
||||
|
||||
private:
|
||||
QString login = "";
|
||||
int indexTab = 0;
|
||||
QListWidget* listWidget = nullptr;
|
||||
};
|
||||
|
||||
namespace Ui {
|
||||
class MessangerWidget;
|
||||
}
|
||||
|
||||
class SERVERLMS_EXPORT MessangerWidget : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit MessangerWidget(QWidget *parent = nullptr);
|
||||
~MessangerWidget();
|
||||
|
||||
protected:
|
||||
// Метод получения событий
|
||||
// В нём будет производиться проверка события смены перевода приложения
|
||||
void changeEvent(QEvent * event) override;
|
||||
|
||||
public:
|
||||
enum ETypeMsg{fromClient, toClient};
|
||||
|
||||
void addMsg(QString login, QString name, QString text, ETypeMsg typeMsg);
|
||||
void addDialogTab(QString login, QString name);
|
||||
|
||||
private slots:
|
||||
void on_btnSend_clicked();
|
||||
void on_tabWidget_currentChanged(int index);
|
||||
|
||||
signals:
|
||||
//сигнал о готовности нового сообщения на отправку клиенту
|
||||
void signal_msgToClientReady(QString login, QString text);
|
||||
//сигнал об изменении вкладки диалога
|
||||
void signal_tabMessengerChanged(QString login);
|
||||
|
||||
public slots:
|
||||
//слот обработки сигнала о выборе обучаемого
|
||||
void slot_traineeSelected(QString login);
|
||||
void slot_LanguageChanged(QString language);
|
||||
//слот обработки сигнала об инициализации мессенджера
|
||||
void slot_InitMessanger(QList<Trainee> listTrainees);
|
||||
|
||||
private:
|
||||
virtual void keyPressEvent(QKeyEvent *event);
|
||||
|
||||
private:
|
||||
QList <DialogMsg> listDialogMsg;
|
||||
|
||||
QString currLogin = "";
|
||||
|
||||
Ui::MessangerWidget *ui;
|
||||
QTranslator qtLanguageTranslator;
|
||||
|
||||
|
||||
};
|
||||
|
||||
#endif // MESSANGERWIDGET_H
|
||||
@@ -1,81 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>MessangerWidget</class>
|
||||
<widget class="QWidget" name="MessangerWidget">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>500</width>
|
||||
<height>300</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Tahoma</family>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_2">
|
||||
<item row="0" column="0">
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="0">
|
||||
<widget class="QGroupBox" name="groupBox">
|
||||
<property name="title">
|
||||
<string>Messenger</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_3">
|
||||
<item row="0" column="0">
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<widget class="QTabWidget" name="tabWidget">
|
||||
<property name="currentIndex">
|
||||
<number>1</number>
|
||||
</property>
|
||||
<widget class="QWidget" name="tab">
|
||||
<attribute name="title">
|
||||
<string>Tab 1</string>
|
||||
</attribute>
|
||||
</widget>
|
||||
<widget class="QWidget" name="tab_2">
|
||||
<attribute name="title">
|
||||
<string>Tab 2</string>
|
||||
</attribute>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<widget class="QLineEdit" name="editMsg"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QToolButton" name="btnSend">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Send</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
Reference in New Issue
Block a user