mirror of
				https://gitlab.com/comunic/comunicmessages
				synced 2025-11-04 12:14:05 +00:00 
			
		
		
		
	Created conversation widget.
This commit is contained in:
		
							
								
								
									
										36
									
								
								widgets/conversationwidget.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								widgets/conversationwidget.cpp
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,36 @@
 | 
			
		||||
#include "conversationwidget.h"
 | 
			
		||||
#include "ui_conversationwidget.h"
 | 
			
		||||
#include "../helpers/conversationslisthelper.h"
 | 
			
		||||
 | 
			
		||||
ConversationWidget::ConversationWidget(const Conversation &conversation, const UsersList &list, QWidget *parent) :
 | 
			
		||||
    QWidget(parent),
 | 
			
		||||
    ui(new Ui::ConversationWidget),
 | 
			
		||||
    mConversation(conversation),
 | 
			
		||||
    mUsersList(list)
 | 
			
		||||
{
 | 
			
		||||
    ui->setupUi(this);
 | 
			
		||||
 | 
			
		||||
    //Initialize UI
 | 
			
		||||
    QString convTitle = ConversationsListHelper::getConversationDisplayName(conversation, list);
 | 
			
		||||
    ui->convName->setText(convTitle);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ConversationWidget::~ConversationWidget()
 | 
			
		||||
{
 | 
			
		||||
    delete ui;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void ConversationWidget::sendMessage()
 | 
			
		||||
{
 | 
			
		||||
    qWarning("Send a new message");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void ConversationWidget::on_sendMessageButton_clicked()
 | 
			
		||||
{
 | 
			
		||||
    sendMessage();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void ConversationWidget::on_messageContentInput_returnPressed()
 | 
			
		||||
{
 | 
			
		||||
    sendMessage();
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										51
									
								
								widgets/conversationwidget.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								widgets/conversationwidget.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,51 @@
 | 
			
		||||
/**
 | 
			
		||||
 * Conversation widget
 | 
			
		||||
 *
 | 
			
		||||
 * Allows to display all the components
 | 
			
		||||
 * of a single conversation
 | 
			
		||||
 *
 | 
			
		||||
 * @author Pierre HUBERT
 | 
			
		||||
 */
 | 
			
		||||
#ifndef CONVERSATIONWIDGET_H
 | 
			
		||||
#define CONVERSATIONWIDGET_H
 | 
			
		||||
 | 
			
		||||
#include <QWidget>
 | 
			
		||||
 | 
			
		||||
#include "../data/conversation.h"
 | 
			
		||||
#include "../data/userslist.h"
 | 
			
		||||
 | 
			
		||||
namespace Ui {
 | 
			
		||||
class ConversationWidget;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class ConversationWidget : public QWidget
 | 
			
		||||
{
 | 
			
		||||
    Q_OBJECT
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
    explicit ConversationWidget(const Conversation &conversation, const UsersList &list, QWidget *parent = nullptr);
 | 
			
		||||
    ~ConversationWidget();
 | 
			
		||||
 | 
			
		||||
public slots:
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Send the message entered by the user in the form
 | 
			
		||||
     */
 | 
			
		||||
    void sendMessage();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
private slots:
 | 
			
		||||
    void on_sendMessageButton_clicked();
 | 
			
		||||
 | 
			
		||||
    void on_messageContentInput_returnPressed();
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
 | 
			
		||||
    //Private fields
 | 
			
		||||
    Ui::ConversationWidget *ui;
 | 
			
		||||
    Conversation mConversation;
 | 
			
		||||
    UsersList mUsersList;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#endif // CONVERSATIONWIDGET_H
 | 
			
		||||
							
								
								
									
										65
									
								
								widgets/conversationwidget.ui
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										65
									
								
								widgets/conversationwidget.ui
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,65 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<ui version="4.0">
 | 
			
		||||
 <class>ConversationWidget</class>
 | 
			
		||||
 <widget class="QWidget" name="ConversationWidget">
 | 
			
		||||
  <property name="geometry">
 | 
			
		||||
   <rect>
 | 
			
		||||
    <x>0</x>
 | 
			
		||||
    <y>0</y>
 | 
			
		||||
    <width>400</width>
 | 
			
		||||
    <height>300</height>
 | 
			
		||||
   </rect>
 | 
			
		||||
  </property>
 | 
			
		||||
  <property name="windowTitle">
 | 
			
		||||
   <string>Form</string>
 | 
			
		||||
  </property>
 | 
			
		||||
  <layout class="QVBoxLayout" name="verticalLayout">
 | 
			
		||||
   <item>
 | 
			
		||||
    <widget class="QLabel" name="convName">
 | 
			
		||||
     <property name="font">
 | 
			
		||||
      <font>
 | 
			
		||||
       <weight>75</weight>
 | 
			
		||||
       <bold>true</bold>
 | 
			
		||||
      </font>
 | 
			
		||||
     </property>
 | 
			
		||||
     <property name="text">
 | 
			
		||||
      <string>Conversation name</string>
 | 
			
		||||
     </property>
 | 
			
		||||
    </widget>
 | 
			
		||||
   </item>
 | 
			
		||||
   <item>
 | 
			
		||||
    <spacer name="verticalSpacer">
 | 
			
		||||
     <property name="orientation">
 | 
			
		||||
      <enum>Qt::Vertical</enum>
 | 
			
		||||
     </property>
 | 
			
		||||
     <property name="sizeHint" stdset="0">
 | 
			
		||||
      <size>
 | 
			
		||||
       <width>20</width>
 | 
			
		||||
       <height>40</height>
 | 
			
		||||
      </size>
 | 
			
		||||
     </property>
 | 
			
		||||
    </spacer>
 | 
			
		||||
   </item>
 | 
			
		||||
   <item>
 | 
			
		||||
    <layout class="QHBoxLayout" name="horizontalLayout">
 | 
			
		||||
     <item>
 | 
			
		||||
      <widget class="QLineEdit" name="messageContentInput">
 | 
			
		||||
       <property name="maxLength">
 | 
			
		||||
        <number>200</number>
 | 
			
		||||
       </property>
 | 
			
		||||
      </widget>
 | 
			
		||||
     </item>
 | 
			
		||||
     <item>
 | 
			
		||||
      <widget class="QPushButton" name="sendMessageButton">
 | 
			
		||||
       <property name="text">
 | 
			
		||||
        <string>Send</string>
 | 
			
		||||
       </property>
 | 
			
		||||
      </widget>
 | 
			
		||||
     </item>
 | 
			
		||||
    </layout>
 | 
			
		||||
   </item>
 | 
			
		||||
  </layout>
 | 
			
		||||
 </widget>
 | 
			
		||||
 <resources/>
 | 
			
		||||
 <connections/>
 | 
			
		||||
</ui>
 | 
			
		||||
@@ -1,11 +1,13 @@
 | 
			
		||||
#include <QMessageBox>
 | 
			
		||||
#include <QPushButton>
 | 
			
		||||
 | 
			
		||||
#include "mainwindow.h"
 | 
			
		||||
#include "ui_mainwindow.h"
 | 
			
		||||
#include "aboutthisappdialog.h"
 | 
			
		||||
#include "loginwidget.h"
 | 
			
		||||
#include "conversationslistwidget.h"
 | 
			
		||||
 | 
			
		||||
#include "conversationwidget.h"
 | 
			
		||||
#include "../utils/uiutils.h"
 | 
			
		||||
#include "../helpers/accounthelper.h"
 | 
			
		||||
 | 
			
		||||
MainWindow::MainWindow(QWidget *parent) :
 | 
			
		||||
@@ -18,6 +20,7 @@ MainWindow::MainWindow(QWidget *parent) :
 | 
			
		||||
    mConversationsListWidget = new ConversationsListWidget;
 | 
			
		||||
    mConversationsListWidget->refresh();
 | 
			
		||||
    ui->conversationsListArea->setWidget(mConversationsListWidget);
 | 
			
		||||
    connect(mConversationsListWidget, &ConversationsListWidget::openConversation, this, &MainWindow::openConversation);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
MainWindow::~MainWindow()
 | 
			
		||||
@@ -25,6 +28,15 @@ MainWindow::~MainWindow()
 | 
			
		||||
    delete ui;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void MainWindow::openConversation(Conversation conversation, UsersList list)
 | 
			
		||||
{
 | 
			
		||||
    //Remove any previous conversation
 | 
			
		||||
    UiUtils::emptyLayout(ui->conversationsContainerLayout);
 | 
			
		||||
    qWarning("Open conversation");
 | 
			
		||||
    ConversationWidget *widget = new ConversationWidget(conversation, list);
 | 
			
		||||
    ui->conversationsContainerLayout->addWidget(widget);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void MainWindow::on_actionAbout_Qt_triggered()
 | 
			
		||||
{
 | 
			
		||||
    QApplication::aboutQt();
 | 
			
		||||
 
 | 
			
		||||
@@ -9,12 +9,16 @@
 | 
			
		||||
 | 
			
		||||
#include <QMainWindow>
 | 
			
		||||
 | 
			
		||||
#include "../data/conversation.h"
 | 
			
		||||
#include "../data/userslist.h"
 | 
			
		||||
 | 
			
		||||
namespace Ui {
 | 
			
		||||
class MainWindow;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class ConversationsListWidget;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class MainWindow : public QMainWindow
 | 
			
		||||
{
 | 
			
		||||
    Q_OBJECT
 | 
			
		||||
@@ -24,6 +28,16 @@ public:
 | 
			
		||||
    ~MainWindow();
 | 
			
		||||
 | 
			
		||||
private slots:
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Request a conversation to be opened
 | 
			
		||||
     *
 | 
			
		||||
     * @param conversation Information about the conversation
 | 
			
		||||
     * to open
 | 
			
		||||
     * @param list Information about the users
 | 
			
		||||
     */
 | 
			
		||||
    void openConversation(Conversation conversation, UsersList list);
 | 
			
		||||
 | 
			
		||||
    void on_actionAbout_Qt_triggered();
 | 
			
		||||
 | 
			
		||||
    void on_actionAbout_this_App_triggered();
 | 
			
		||||
 
 | 
			
		||||
@@ -25,13 +25,16 @@
 | 
			
		||||
        <rect>
 | 
			
		||||
         <x>0</x>
 | 
			
		||||
         <y>0</y>
 | 
			
		||||
         <width>780</width>
 | 
			
		||||
         <width>772</width>
 | 
			
		||||
         <height>536</height>
 | 
			
		||||
        </rect>
 | 
			
		||||
       </property>
 | 
			
		||||
      </widget>
 | 
			
		||||
     </widget>
 | 
			
		||||
    </item>
 | 
			
		||||
    <item>
 | 
			
		||||
     <layout class="QHBoxLayout" name="conversationsContainerLayout"/>
 | 
			
		||||
    </item>
 | 
			
		||||
   </layout>
 | 
			
		||||
  </widget>
 | 
			
		||||
  <widget class="QMenuBar" name="menubar">
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user