Messenger убрал табы

This commit is contained in:
2025-09-12 12:09:30 +03:00
parent ba6e0178ec
commit 8bb2aef5cc
4 changed files with 83 additions and 63 deletions

View File

@@ -9,22 +9,21 @@
MessangerWidget::MessangerWidget(QWidget *parent) : MessangerWidget::MessangerWidget(QWidget *parent) :
QWidget(parent), QWidget(parent),
tabDialogMessenger(nullptr), oneDialogMessenger(nullptr),
currGUIclientId(""), currGUIclientId(""),
ui(new Ui::MessangerWidget) ui(new Ui::MessangerWidget)
{ {
ui->setupUi(this); ui->setupUi(this);
ui->tabWidget->removeTab(1);
ui->tabWidget->removeTab(0);
ui->btnSend->setObjectName("btnSend"); ui->btnSend->setObjectName("btnSend");
ui->editMsg->setObjectName("editMsg"); ui->editMsg->setObjectName("editMsg");
ui->lblUser->setObjectName("lblUser");
} }
MessangerWidget::~MessangerWidget() MessangerWidget::~MessangerWidget()
{ {
delete tabDialogMessenger; delete oneDialogMessenger;
delete ui; delete ui;
} }
@@ -41,8 +40,8 @@ void MessangerWidget::reinitMessangerWidget(User user)
{ {
userRemote = user; userRemote = user;
//Обновляем статус залогинивания //Обновляем заголовок
updateLoggedIn(userRemote.getLoggedIn()); updateHeader(userRemote);
} }
} }
@@ -59,21 +58,21 @@ int MessangerWidget::getIDuserRemote()
void MessangerWidget::showSendedMessage(ClientMessage clientMessage) void MessangerWidget::showSendedMessage(ClientMessage clientMessage)
{ {
if(currGUIclientId == clientMessage.fromId) if(currGUIclientId == clientMessage.fromId)
tabDialogMessenger->addMsgWidgetLocal(clientMessage.Text, clientMessage.timeStr); oneDialogMessenger->addMsgWidgetLocal(clientMessage.Text, clientMessage.timeStr);
} }
void MessangerWidget::showReceivedMessage(ClientMessage clientMessage) void MessangerWidget::showReceivedMessage(ClientMessage clientMessage)
{ {
if(QString::number(userRemote.getID()) == clientMessage.fromId) if(QString::number(userRemote.getID()) == clientMessage.fromId)
tabDialogMessenger->addMsgWidgetRemote(clientMessage.Text, clientMessage.timeStr); oneDialogMessenger->addMsgWidgetRemote(clientMessage.Text, clientMessage.timeStr);
} }
void MessangerWidget::addTabDialogMessenger(User user) void MessangerWidget::addTabDialogMessenger(User user)
{ {
if(!tabDialogMessenger) if(!oneDialogMessenger)
{//Диалога еще не существует {//Диалога еще не существует
tabDialogMessenger = new OneDialogMessenger(QString::number(user.getID()), user.getTypeUserDB(), this); oneDialogMessenger = new OneDialogMessenger(QString::number(user.getID()), user.getTypeUserDB(), this);
//Добавляем новую вкладку диалога //Добавляем новую вкладку диалога
QString typeUserStr = ""; QString typeUserStr = "";
@@ -81,30 +80,49 @@ void MessangerWidget::addTabDialogMessenger(User user)
typeUserStr = tr("Trainee"); typeUserStr = tr("Trainee");
else if(user.getTypeUserDB() == User::TypeUserDBInstructor) else if(user.getTypeUserDB() == User::TypeUserDBInstructor)
typeUserStr = tr("Instructor"); typeUserStr = tr("Instructor");
int index = ui->tabWidget->addTab(tabDialogMessenger, typeUserStr + ": " + user.getName() + " (" + user.getLogin() + ")"); //int index = ui->tabWidget->addTab(oneDialogMessenger, typeUserStr + ": " + user.getName() + " (" + user.getLogin() + ")");
//Обновляем статус залогинивания ui->verticalLayout_ListMsg->addWidget(oneDialogMessenger);
updateLoggedIn(user.getLoggedIn());
//Обновляем заголовок
updateHeader(user);
} }
else else
{//Диалог уже существует {//Диалог уже существует
//Проверяем наличие диалога именно с этим клиентом //Проверяем наличие диалога именно с этим клиентом
if(tabDialogMessenger->getUserId() == user.getID()) if(oneDialogMessenger->getUserId() == user.getID())
{ {
//Обновляем статус залогинивания //Обновляем заголовок
updateLoggedIn(user.getLoggedIn()); updateHeader(user);
} }
} }
} }
void MessangerWidget::updateLoggedIn(bool loggedIn) void MessangerWidget::updateHeader(User user)
{ {
//Обновляем статус залогинивания //Обновляем статус залогинивания
if(loggedIn) if(user.getLoggedIn())
ui->tabWidget->setTabIcon(0, QIcon(":/resources/icons/circleGreen.png")); {
//ui->tabWidget->setTabIcon(0, QIcon(":/resources/icons/circleGreen.png"));
ui->lblLoggedIn->setPixmap(QPixmap(QStringLiteral(":/resources/icons/circleGreen.png")));
}
else else
ui->tabWidget->setTabIcon(0, QIcon(":/resources/icons/circleGray.png")); {
//ui->tabWidget->setTabIcon(0, QIcon(":/resources/icons/circleGray.png"));
ui->lblLoggedIn->setPixmap(QPixmap(QStringLiteral(":/resources/icons/circleGray.png")));
}
QString typeUserStr = "";
if(user.getTypeUserDB() == User::TypeUserDBTrainee)
typeUserStr = tr("Trainee");
else if(user.getTypeUserDB() == User::TypeUserDBInstructor)
typeUserStr = tr("Instructor");
QString fullName = typeUserStr + ": " + user.getName() + " (" + user.getLogin() + ")";
ui->lblUser->setText(fullName);
} }
void MessangerWidget::on_btnSend_clicked() void MessangerWidget::on_btnSend_clicked()

View File

@@ -31,7 +31,7 @@ public:
private: private:
void addTabDialogMessenger(User user); void addTabDialogMessenger(User user);
void updateLoggedIn(bool loggedIn); void updateHeader(User user);
private slots: private slots:
void on_btnSend_clicked(); void on_btnSend_clicked();
@@ -47,7 +47,7 @@ protected:
void changeEvent(QEvent * event) override; void changeEvent(QEvent * event) override;
private: private:
OneDialogMessenger* tabDialogMessenger; OneDialogMessenger* oneDialogMessenger;
User userRemote; User userRemote;
QString currGUIclientId; //id этого клиента QString currGUIclientId; //id этого клиента

View File

@@ -23,46 +23,54 @@
<item row="0" column="0"> <item row="0" column="0">
<layout class="QVBoxLayout" name="verticalLayout_Main"> <layout class="QVBoxLayout" name="verticalLayout_Main">
<item> <item>
<layout class="QVBoxLayout" name="verticalLayout_Dialog" stretch="0"> <layout class="QVBoxLayout" name="verticalLayout_Dialog" stretch="0,0">
<property name="sizeConstraint"> <property name="sizeConstraint">
<enum>QLayout::SetDefaultConstraint</enum> <enum>QLayout::SetDefaultConstraint</enum>
</property> </property>
<item> <item>
<widget class="QTabWidget" name="tabWidget"> <layout class="QHBoxLayout" name="horizontalLayout_User">
<item>
<widget class="QLabel" name="lblLoggedIn">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding"> <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch> <horstretch>0</horstretch>
<verstretch>0</verstretch> <verstretch>0</verstretch>
</sizepolicy> </sizepolicy>
</property> </property>
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
<width>0</width> <width>32</width>
<height>0</height> <height>32</height>
</size> </size>
</property> </property>
<property name="font"> <property name="maximumSize">
<font> <size>
<pointsize>12</pointsize> <width>32</width>
</font> <height>32</height>
</size>
</property> </property>
<property name="currentIndex"> <property name="text">
<number>0</number> <string/>
</property>
<property name="pixmap">
<pixmap resource="../resources.qrc">:/resources/icons/circleGray.png</pixmap>
</property> </property>
<widget class="QWidget" name="tab_1">
<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>
<item>
<widget class="QLabel" name="lblUser">
<property name="text">
<string>TextLabel</string>
</property>
</widget> </widget>
</item> </item>
</layout> </layout>
</item> </item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_ListMsg"/>
</item>
</layout>
</item>
<item> <item>
<layout class="QHBoxLayout" name="horizontalLayout_Input"> <layout class="QHBoxLayout" name="horizontalLayout_Input">
<property name="sizeConstraint"> <property name="sizeConstraint">

View File

@@ -174,9 +174,6 @@
<string>Chat</string> <string>Chat</string>
</property> </property>
<layout class="QGridLayout" name="gridLayout_6"> <layout class="QGridLayout" name="gridLayout_6">
<item row="0" column="0">
<widget class="QWidget" name="widget_Messenger" native="true">
<layout class="QGridLayout" name="gridLayout_7">
<item row="0" column="0"> <item row="0" column="0">
<layout class="QVBoxLayout" name="verticalLayout_Messenger"/> <layout class="QVBoxLayout" name="verticalLayout_Messenger"/>
</item> </item>
@@ -184,9 +181,6 @@
</widget> </widget>
</item> </item>
</layout> </layout>
</widget>
</item>
</layout>
</item> </item>
<item> <item>
<widget class="QGroupBox" name="groupBox_2"> <widget class="QGroupBox" name="groupBox_2">