summaryrefslogtreecommitdiffstats
path: root/pica-client
diff options
context:
space:
mode:
authorme_desk <me_desk@fb96df88-216d-11de-830c-f3023f12d8ac>2014-04-22 16:43:53 +0000
committerme_desk <me_desk@fb96df88-216d-11de-830c-f3023f12d8ac>2014-04-22 16:43:53 +0000
commit12c7e7b30b2cce60884e61144449e14cca9ecb4d (patch)
tree99174cbd16b617f18488e545fde9bb1db0571224 /pica-client
parent72076cbe42730602b02afed5032d1be41d5eb36c (diff)
downloadpica-pica-12c7e7b30b2cce60884e61144449e14cca9ecb4d.tar.gz
pica-pica-12c7e7b30b2cce60884e61144449e14cca9ecb4d.zip
bugfix - crash caused by empty undelivered_msgs list when message is delivered after creating new chatwindow
git-svn-id: svn://localhost/project_picapica/trunk@305 fb96df88-216d-11de-830c-f3023f12d8ac
Diffstat (limited to 'pica-client')
-rw-r--r--pica-client/chatwindow.cpp26
1 files changed, 21 insertions, 5 deletions
diff --git a/pica-client/chatwindow.cpp b/pica-client/chatwindow.cpp
index a746561..9d52ee9 100644
--- a/pica-client/chatwindow.cpp
+++ b/pica-client/chatwindow.cpp
@@ -219,11 +219,27 @@ void ChatWindow::msg_from_peer(QString msg)
void ChatWindow::msg_delivered()
{
- QTextCursor c(chatw->document());
- c.setPosition(undelivered_msgs.first());
- c.deleteChar();
- c.insertText("+");
- undelivered_msgs.removeFirst();
+ if (undelivered_msgs.isEmpty())
+ {
+ // undelivered_msgs can be empty if new chatwindow instance was created
+ // and undelivered message from previous chat session is delivered
+ // after that.
+
+ QByteArray my_id = Accounts::GetCurrentAccount().id;
+ QMap<QByteArray, QList<QString> > undl = hist.GetUndeliveredMessages();
+
+ if (!undl[my_id].isEmpty())
+ put_message(undl[my_id].first(), my_id , true);
+ }
+
+ if (!undelivered_msgs.isEmpty())
+ {
+ QTextCursor c(chatw->document());
+ c.setPosition(undelivered_msgs.first());
+ c.deleteChar();
+ c.insertText("+");
+ undelivered_msgs.removeFirst();
+ }
hist.SetDelivered(peer_id_);
}