Merge lp:~libqtelegram-team/telegram-app/double-message-on-push into lp:telegram-app/dev

Proposed by Roberto Mier Escandon
Status: Merged
Approved by: MichaƂ Karnicki
Approved revision: 160
Merged at revision: 160
Proposed branch: lp:~libqtelegram-team/telegram-app/double-message-on-push
Merge into: lp:telegram-app/dev
Diff against target: 82 lines (+26/-27)
2 files modified
qmlplugin/models/messagesmodel.cpp (+25/-27)
qmlplugin/models/messagesmodel.h (+1/-0)
To merge this branch: bzr merge lp:~libqtelegram-team/telegram-app/double-message-on-push
Reviewer Review Type Date Requested Status
libqtelegram team Pending
Review via email: mp+248518@code.launchpad.net

Description of the change

When got a page from messagesView, checked that fetched messages are not already in the model

To post a comment you must log in.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'qmlplugin/models/messagesmodel.cpp'
--- qmlplugin/models/messagesmodel.cpp 2015-01-27 10:50:07 +0000
+++ qmlplugin/models/messagesmodel.cpp 2015-02-04 09:38:58 +0000
@@ -194,14 +194,31 @@
194 }194 }
195 }195 }
196 } else {196 } else {
197 beginInsertRows(QModelIndex(), mMessages.count(), mMessages.count() + messages.count() - 1);197 insertNewMessages(messages);
198 Q_FOREACH (const MessageItem newMessage, messages) {198 }
199 mMessages << newMessage;199}
200 mKeysMap.insert(newMessage.id(), &mMessages[mMessages.count() - 1]);200
201void MessagesModel::insertNewMessages(const QList<MessageItem> &messages) {
202
203 if (!messages.count()) {
204 mCanFetchMore = false;
205 return;
206 }
207
208 QList<MessageItem> filteredMessages;
209 Q_FOREACH (const MessageItem &message, messages) {
210 if (!exists(message)) {
211 filteredMessages << message;
201 }212 }
202 endInsertRows();213 }
203 Q_EMIT countChanged(mMessages.count());214
204 }215 beginInsertRows(QModelIndex(), mMessages.count(), mMessages.count() + filteredMessages.count() - 1);
216 Q_FOREACH (const MessageItem newMessage, filteredMessages) {
217 mMessages << newMessage;
218 mKeysMap.insert(newMessage.id(), &mMessages[mMessages.count() -1]);
219 }
220 endInsertRows();
221 Q_EMIT countChanged(mMessages.count());
205}222}
206223
207void MessagesModel::onGetUserAnswer(QVariant qvariantUser) {224void MessagesModel::onGetUserAnswer(QVariant qvariantUser) {
@@ -417,26 +434,7 @@
417434
418void MessagesModel::onMessagesAdded(const QList<MessageItem> &messages, qint32 totalCount) {435void MessagesModel::onMessagesAdded(const QList<MessageItem> &messages, qint32 totalCount) {
419436
420 if (!messages.count()) {437 insertNewMessages(messages);
421 mCanFetchMore = false;
422 return;
423 }
424
425 QList<MessageItem> filteredMessages;
426 Q_FOREACH (const MessageItem &message, messages) {
427 if (!exists(message)) {
428 filteredMessages << message;
429 }
430 }
431
432 beginInsertRows(QModelIndex(), mMessages.count(), mMessages.count() + filteredMessages.count() - 1);
433 Q_FOREACH (const MessageItem newMessage, filteredMessages) {
434 mMessages << newMessage;
435 mKeysMap.insert(newMessage.id(), &mMessages[mMessages.count() -1]);
436 }
437 endInsertRows();
438 Q_EMIT countChanged(mMessages.count());
439
440 mCanFetchMore = totalCount > 0 && totalCount > mMessages.count();438 mCanFetchMore = totalCount > 0 && totalCount > mMessages.count();
441}439}
442440
443441
=== modified file 'qmlplugin/models/messagesmodel.h'
--- qmlplugin/models/messagesmodel.h 2015-01-26 01:27:48 +0000
+++ qmlplugin/models/messagesmodel.h 2015-02-04 09:38:58 +0000
@@ -135,6 +135,7 @@
135 void getHistoryFromServer();135 void getHistoryFromServer();
136 bool acceptMessage(const MessageItem &message);136 bool acceptMessage(const MessageItem &message);
137 bool exists(const MessageItem &message);137 bool exists(const MessageItem &message);
138 void insertNewMessages(const QList<MessageItem> &messages);
138};139};
139140
140#endif // MESSAGESMODEL_H141#endif // MESSAGESMODEL_H

Subscribers

People subscribed via source and target branches

to all changes: