Review Request 128954: [KTp/Declarative/MessagesModel] Implemented message sort by sent timestamp
Alexandr Akulich
akulichalexander at gmail.com
Tue Sep 20 10:59:22 UTC 2016
> On Sept. 20, 2016, 3:06 p.m., Aleix Pol Gonzalez wrote:
> > KTp/Declarative/messages-model.cpp, line 222
> > <https://git.reviewboard.kde.org/r/128954/diff/1/?file=477161#file477161line222>
> >
> > Use iterators?
>
> Alexandr Akulich wrote:
> How to get an index from iterator?
>
> Aleix Pol Gonzalez wrote:
> You can count in parallel without calling `QList::operator[]` on the index.
>
> Alexandr Akulich wrote:
> Actually I call ```const T &at(int i) const;```. And what is the reason to use iterators, if you still suggest to use a counter? Do you actually think that
> ```
> int i = d->messages.count() - 1;
> for (auto it = d->messages.constEnd(); it != d->messages.constBegin(); --it, --i) {
> if (sentTimestamp > it->message.time()) {
> newMessageIndex = i;
> break;
> }
> // Or do you suggest to place --i; here?
> }
> ```
> is more readable, than plain
> ```
> for (int i = d->messages.count() - 1; i >= 0; --i) {
> if (sentTimestamp > d->messages.at(i).message.time()) {
> newMessageIndex = i;
> break;
> }
> }
> ```
> ?
>
> IMO it is a common practice to use iterators if you don't need index (and just use the index otherwise). It is a bit more optimal and I don't made an error in the condition.
>
> Aleix Pol Gonzalez wrote:
> You can use reverse iterators:
> http://doc.qt.io/qt-5/qvector.html#crbegin
I know about the reverse methods and it is not any better without some reverse adaptor in QList.
int i = d->messages.count() - 1;
for (auto it = d->messages.crbegin(); it != d->messages.crend(); ++it, --i) {
if (sentTimestamp > it->message.time()) {
newMessageIndex = i;
break;
}
// Or do you suggest to place --i; here?
}
Why it is better? It reads worse and it looks like "iterators for the iterators" without a real benefits. It does not save us from an error, because we need the (reverse) counter. Do we have a coding convention for this case?
- Alexandr
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/128954/#review99301
-----------------------------------------------------------
On Sept. 20, 2016, 2:51 p.m., Alexandr Akulich wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/128954/
> -----------------------------------------------------------
>
> (Updated Sept. 20, 2016, 2:51 p.m.)
>
>
> Review request for Telepathy.
>
>
> Repository: ktp-common-internals
>
>
> Description
> -------
>
> Implemented message sort by sent timestamp (if available).
>
> This fixes order of scrollback messages.
>
>
> Diffs
> -----
>
> KTp/Declarative/messages-model.cpp dc1088c
>
> Diff: https://git.reviewboard.kde.org/r/128954/diff/
>
>
> Testing
> -------
>
> Works, fixes the issue.
>
>
> Thanks,
>
> Alexandr Akulich
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-telepathy/attachments/20160920/a4bb7e0c/attachment-0001.html>
More information about the KDE-Telepathy
mailing list