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
1=== modified file 'qmlplugin/models/messagesmodel.cpp'
2--- qmlplugin/models/messagesmodel.cpp 2015-01-27 10:50:07 +0000
3+++ qmlplugin/models/messagesmodel.cpp 2015-02-04 09:38:58 +0000
4@@ -194,14 +194,31 @@
5 }
6 }
7 } else {
8- beginInsertRows(QModelIndex(), mMessages.count(), mMessages.count() + messages.count() - 1);
9- Q_FOREACH (const MessageItem newMessage, messages) {
10- mMessages << newMessage;
11- mKeysMap.insert(newMessage.id(), &mMessages[mMessages.count() - 1]);
12+ insertNewMessages(messages);
13+ }
14+}
15+
16+void MessagesModel::insertNewMessages(const QList<MessageItem> &messages) {
17+
18+ if (!messages.count()) {
19+ mCanFetchMore = false;
20+ return;
21+ }
22+
23+ QList<MessageItem> filteredMessages;
24+ Q_FOREACH (const MessageItem &message, messages) {
25+ if (!exists(message)) {
26+ filteredMessages << message;
27 }
28- endInsertRows();
29- Q_EMIT countChanged(mMessages.count());
30- }
31+ }
32+
33+ beginInsertRows(QModelIndex(), mMessages.count(), mMessages.count() + filteredMessages.count() - 1);
34+ Q_FOREACH (const MessageItem newMessage, filteredMessages) {
35+ mMessages << newMessage;
36+ mKeysMap.insert(newMessage.id(), &mMessages[mMessages.count() -1]);
37+ }
38+ endInsertRows();
39+ Q_EMIT countChanged(mMessages.count());
40 }
41
42 void MessagesModel::onGetUserAnswer(QVariant qvariantUser) {
43@@ -417,26 +434,7 @@
44
45 void MessagesModel::onMessagesAdded(const QList<MessageItem> &messages, qint32 totalCount) {
46
47- if (!messages.count()) {
48- mCanFetchMore = false;
49- return;
50- }
51-
52- QList<MessageItem> filteredMessages;
53- Q_FOREACH (const MessageItem &message, messages) {
54- if (!exists(message)) {
55- filteredMessages << message;
56- }
57- }
58-
59- beginInsertRows(QModelIndex(), mMessages.count(), mMessages.count() + filteredMessages.count() - 1);
60- Q_FOREACH (const MessageItem newMessage, filteredMessages) {
61- mMessages << newMessage;
62- mKeysMap.insert(newMessage.id(), &mMessages[mMessages.count() -1]);
63- }
64- endInsertRows();
65- Q_EMIT countChanged(mMessages.count());
66-
67+ insertNewMessages(messages);
68 mCanFetchMore = totalCount > 0 && totalCount > mMessages.count();
69 }
70
71
72=== modified file 'qmlplugin/models/messagesmodel.h'
73--- qmlplugin/models/messagesmodel.h 2015-01-26 01:27:48 +0000
74+++ qmlplugin/models/messagesmodel.h 2015-02-04 09:38:58 +0000
75@@ -135,6 +135,7 @@
76 void getHistoryFromServer();
77 bool acceptMessage(const MessageItem &message);
78 bool exists(const MessageItem &message);
79+ void insertNewMessages(const QList<MessageItem> &messages);
80 };
81
82 #endif // MESSAGESMODEL_H

Subscribers

People subscribed via source and target branches

to all changes: