> On June 2, 2012, 6:58 a.m., Dominik Cermak wrote:
> > Forget about diff 2, it's failing in one case: 'Show offline users'. If 
> > this is selected it doesn't show the online count anymore, so we are back 
> > at diff 1.

Thinking now about it - it should definitely not be in the data(), because this 
can (and does) be called looots of time per second, so that would count this 
stuff again and again. Ideally we should have a method in the filter model, 
that recounts either online or the total count, have a class variable that 
stores this count and this variables are then returned in the data() while the 
count methods are triggered only when there is actual change (ie. on contact 
going offline/online or on contact being added/blocked). So it'll probably get 
more complex.

As for the rowCount() - I think adding some ifs and using it when appropriate 
could work (for example only count it manually when we're showing online users 
- and it could be even so clever, that when you change the type of filter, the 
recount is not triggered until there is an actual need for recount [user going 
offline], but that's a bit too complex for now). Also in the state when we're 
showing /all/ contacts, it could use sourceModel()->rowCount(index), because 
these are already counted elsewhere, so no need to count it on our own again. 

Nevertheless, good start! :)


- Martin


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/105130/#review14358
-----------------------------------------------------------


On June 1, 2012, 8:23 p.m., Dominik Cermak wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/105130/
> -----------------------------------------------------------
> 
> (Updated June 1, 2012, 8:23 p.m.)
> 
> 
> Review request for Telepathy.
> 
> 
> Description
> -------
> 
> I tried to solve it on filter model level. Here is what I've done so far, 
> it's not finished yet but I want to show it so you can speak up if it's 
> totally (or partly) wrong, so I don't waste time. I still have to find out 
> what I can remove from the other code now.
> 
> Also it's not so nice to have so much in data(), so if someone has an idea 
> how to make this more elegant, I'm open for suggestions.
> 
> 
> This addresses bug 300956.
>     http://bugs.kde.org/show_bug.cgi?id=300956
> 
> 
> Diffs
> -----
> 
>   KTp/Models/accounts-filter-model.h 9ed824a1e9a970e33b07343ae9143734857820c8 
>   KTp/Models/accounts-filter-model.cpp 
> c17b3359178ffceca5ae815d41008058218f3bf5 
> 
> Diff: http://git.reviewboard.kde.org/r/105130/diff/
> 
> 
> Testing
> -------
> 
> Now the counters work as expected.
> 
> 
> Thanks,
> 
> Dominik Cermak
> 
>

_______________________________________________
KDE-Telepathy mailing list
[email protected]
https://mail.kde.org/mailman/listinfo/kde-telepathy

Reply via email to