Create chatroom and message classes to display messages
This commit is contained in:
13
client/src/models/chatroom.cpp
Normal file
13
client/src/models/chatroom.cpp
Normal file
@@ -0,0 +1,13 @@
|
||||
#include "models/chatroom.h"
|
||||
#include <QStringList>
|
||||
#include <algorithm>
|
||||
|
||||
void Chatroom::addMessage(Message message) { m_messages.push_back(message); }
|
||||
|
||||
QString Chatroom::getMessagesString() {
|
||||
std::vector<QString> messageStrings(m_messages.size());
|
||||
std::transform(m_messages.begin(), m_messages.end(), messageStrings.begin(),
|
||||
[](const Message &msg) { return msg.toString(); });
|
||||
QStringList messageList(messageStrings.begin(), messageStrings.end());
|
||||
return messageList.join("\n");
|
||||
}
|
||||
11
client/src/models/message.cpp
Normal file
11
client/src/models/message.cpp
Normal file
@@ -0,0 +1,11 @@
|
||||
#include "models/message.h"
|
||||
|
||||
Message::Message(int userId, QDateTime timestamp, QString content)
|
||||
: m_userId(userId), m_timestamp(timestamp), m_content(content) {}
|
||||
|
||||
QString Message::toString() const {
|
||||
return QString("(%1)[%2] %3")
|
||||
.arg(m_userId)
|
||||
.arg(m_timestamp.toString())
|
||||
.arg(m_content);
|
||||
}
|
||||
@@ -5,15 +5,16 @@ MainWindow::MainWindow(QWidget *parent)
|
||||
: QMainWindow(parent), ui(new Ui::MainWindow) {
|
||||
ui->setupUi(this);
|
||||
|
||||
connect(ui->sendButton, &QPushButton::clicked, this,
|
||||
[]() { qDebug() << "Button clicked"; });
|
||||
connect(ui->sendButton, &QPushButton::clicked, this, [this]() {
|
||||
auto msg = ui->inputText->toPlainText();
|
||||
receiveMsg(msg);
|
||||
});
|
||||
}
|
||||
|
||||
MainWindow::~MainWindow() { delete ui; }
|
||||
|
||||
void MainWindow::receiveMsg(QString &msg) {
|
||||
auto messages = ui->outputText->text();
|
||||
messages.append("\n");
|
||||
messages.append(msg);
|
||||
ui->outputText->setText(messages);
|
||||
Message message(0, QDateTime::currentDateTime(), msg);
|
||||
m_chatroom.addMessage(message);
|
||||
ui->outputText->setText(m_chatroom.getMessagesString());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user