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) :
QWidget(parent),
tabDialogMessenger(nullptr),
oneDialogMessenger(nullptr),
currGUIclientId(""),
ui(new Ui::MessangerWidget)
{
ui->setupUi(this);
ui->tabWidget->removeTab(1);
ui->tabWidget->removeTab(0);
ui->btnSend->setObjectName("btnSend");
ui->editMsg->setObjectName("editMsg");
ui->lblUser->setObjectName("lblUser");
}
MessangerWidget::~MessangerWidget()
{
delete tabDialogMessenger;
delete oneDialogMessenger;
delete ui;
}
@@ -41,8 +40,8 @@ void MessangerWidget::reinitMessangerWidget(User user)
{
userRemote = user;
//Обновляем статус залогинивания
updateLoggedIn(userRemote.getLoggedIn());
//Обновляем заголовок
updateHeader(userRemote);
}
}
@@ -59,21 +58,21 @@ int MessangerWidget::getIDuserRemote()
void MessangerWidget::showSendedMessage(ClientMessage clientMessage)
{
if(currGUIclientId == clientMessage.fromId)
tabDialogMessenger->addMsgWidgetLocal(clientMessage.Text, clientMessage.timeStr);
oneDialogMessenger->addMsgWidgetLocal(clientMessage.Text, clientMessage.timeStr);
}
void MessangerWidget::showReceivedMessage(ClientMessage clientMessage)
{
if(QString::number(userRemote.getID()) == clientMessage.fromId)
tabDialogMessenger->addMsgWidgetRemote(clientMessage.Text, clientMessage.timeStr);
oneDialogMessenger->addMsgWidgetRemote(clientMessage.Text, clientMessage.timeStr);
}
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 = "";
@@ -81,30 +80,49 @@ void MessangerWidget::addTabDialogMessenger(User user)
typeUserStr = tr("Trainee");
else if(user.getTypeUserDB() == User::TypeUserDBInstructor)
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() + ")");
//Обновляем статус залогинивания
updateLoggedIn(user.getLoggedIn());
ui->verticalLayout_ListMsg->addWidget(oneDialogMessenger);
//Обновляем заголовок
updateHeader(user);
}
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)
ui->tabWidget->setTabIcon(0, QIcon(":/resources/icons/circleGreen.png"));
if(user.getLoggedIn())
{
//ui->tabWidget->setTabIcon(0, QIcon(":/resources/icons/circleGreen.png"));
ui->lblLoggedIn->setPixmap(QPixmap(QStringLiteral(":/resources/icons/circleGreen.png")));
}
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()

View File

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

View File

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

View File

@@ -174,9 +174,6 @@
<string>Chat</string>
</property>
<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">
<layout class="QVBoxLayout" name="verticalLayout_Messenger"/>
</item>
@@ -184,9 +181,6 @@
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QGroupBox" name="groupBox_2">