Skip to content
This repository was archived by the owner on Apr 9, 2025. It is now read-only.

Commit 0a6e43b

Browse files
author
LNJ
committed
Fix message insertion bug
There was still an, now unused, variable/pointer in the MessageController class. It wasn't set so it was a nullptr, when the MessageModel was trying to add it to the db.
1 parent b514030 commit 0a6e43b

File tree

6 files changed

+16
-18
lines changed

6 files changed

+16
-18
lines changed

src/Kaidan.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,7 @@ void Kaidan::setChatPartner(QString chatPartner)
226226

227227
void Kaidan::sendMessage(QString jid, QString message)
228228
{
229-
messageController->sendMessage(&jid, &message);
229+
messageController->sendMessage(&(this->jid), &jid, &message);
230230
rosterController->handleNewMessageSent(&jid, &message);
231231
}
232232

src/MessageController.cpp

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,8 @@ void MessageController::handleMessageReceived(Swift::Message::ref message_)
7878

7979
// author is only the 'bare' JID: e.g. 'albert@einstein.ch'
8080
const QString author = QString::fromStdString(message_->getFrom().toBare().toString());
81-
const QString author_resource = QString(message_->getFrom().getResource().c_str());
81+
const QString author_resource = QString::fromStdString(message_->getFrom().getResource());
82+
const QString recipient = QString::fromStdString(message_->getTo().toBare().toString());
8283
const QString recipient_resource = QString::fromStdString(client->getJID().getResource());
8384
QString timestamp = QDateTime::currentDateTime().toString(Qt::ISODate); // fallback timestamp
8485
const QString message = QString::fromStdString(*bodyOpt);
@@ -92,8 +93,8 @@ void MessageController::handleMessageReceived(Swift::Message::ref message_)
9293
);
9394
}
9495

95-
messageModel->addMessage(&author, &author_resource, ownJid,
96-
&recipient_resource, &timestamp, &message, &msgId, false);
96+
messageModel->addMessage(&author, &author_resource, &recipient,
97+
&recipient_resource, &timestamp, &message, &msgId, false);
9798

9899
// send a new notification | TODO: Resolve nickname from JID
99100
Notifications::sendMessageNotification(
@@ -133,7 +134,7 @@ void MessageController::handleMessageReceived(Swift::Message::ref message_)
133134
}
134135
}
135136

136-
void MessageController::sendMessage(QString *recipient_, QString *message_)
137+
void MessageController::sendMessage(QString *fromJid, QString *recipient_, QString *message_)
137138
{
138139
// generate a new message id
139140
Swift::IDGenerator idGenerator;
@@ -148,7 +149,7 @@ void MessageController::sendMessage(QString *recipient_, QString *message_)
148149
const QString recipient_resource = QString("");
149150
const QString qmsgId = QString::fromStdString(msgId);
150151

151-
messageModel->addMessage(ownJid, &author_resource, recipient_,
152+
messageModel->addMessage(fromJid, &author_resource, recipient_,
152153
&recipient_resource, &timestamp, message_, &qmsgId, true);
153154

154155
//

src/MessageController.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ class MessageController : public QObject
4343
MessageModel* getMessageModel();
4444

4545
void setChatPartner(QString *recipient, QString* ownJid);
46-
void sendMessage(QString *recipient_, QString *message_);
46+
void sendMessage(QString *fromJid, QString *recipient_, QString *message_);
4747

4848
signals:
4949
void messageModelChanged();
@@ -54,7 +54,6 @@ class MessageController : public QObject
5454

5555
Swift::Client *client;
5656
MessageModel *messageModel;
57-
QString *ownJid;
5857
};
5958

6059
#endif // MESSAGECONTROLLER_H

src/MessageModel.cpp

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -83,9 +83,9 @@ void MessageModel::setMessageAsDelivered(const QString msgId)
8383
submitAll();
8484
}
8585

86-
void MessageModel::addMessage(const QString* author, const QString* author_resource,
87-
const QString* recipient, const QString* recipient_resource,
88-
const QString* timestamp, const QString* message, const QString* msgId,
86+
void MessageModel::addMessage(const QString *author, const QString *author_resource,
87+
const QString *recipient, const QString *recipient_resource,
88+
const QString *timestamp, const QString *message, const QString *msgId,
8989
bool sentByMe)
9090
{
9191
//
@@ -102,8 +102,6 @@ void MessageModel::addMessage(const QString* author, const QString* author_resou
102102
record.setValue("id", *msgId);
103103
record.setValue("isSent", sentByMe ? false : true);
104104
record.setValue("isDelivered", sentByMe ? false : true);
105-
record.setValue("isRead", sentByMe ? false : true);
106-
record.setValue("isReadByMe", sentByMe ? true : false);
107105

108106
if (!insertRecord(rowCount(), record)) {
109107
qWarning() << "Failed to add message to DB:" << lastError().text();

src/MessageModel.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,10 @@ class MessageModel : public QSqlTableModel
3333
QHash<int, QByteArray> roleNames() const Q_DECL_OVERRIDE;
3434

3535
void applyRecipientFilter(QString *recipient_, QString *author_);
36-
void addMessage(const QString* author, const QString* author_resource,
37-
const QString* recipient, const QString* recipient_resource,
38-
const QString* timestamp, const QString* message,
39-
const QString* msgId, bool sentByMe);
36+
void addMessage(const QString *author, const QString *author_resource,
37+
const QString *recipient, const QString *recipient_resource,
38+
const QString *timestamp, const QString *message,
39+
const QString *msgId, bool sentByMe);
4040
void setMessageAsSent(const QString msgId);
4141
void setMessageAsDelivered(const QString msgId);
4242

src/RosterModel.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ void RosterModel::setUnreadMessageCountOfJid(const QString* jid_, const int coun
185185
void RosterModel::setLastMessageForJid(QString *jid, QString *message)
186186
{
187187
QSqlQuery query(*database);
188-
query.prepare(QString("UPDATE Roster SET lastMessage = %1 WHERE jid = '%2'")
188+
query.prepare(QString("UPDATE Roster SET lastMessage = '%1' WHERE jid = '%2'")
189189
.arg(*message, *jid));
190190

191191
if (!query.exec()) {

0 commit comments

Comments
 (0)