Review Request 112437: Port LogViewer to KPeople

David Edmundson david at davidedmundson.co.uk
Mon Sep 2 12:25:23 UTC 2013



> On Sept. 1, 2013, 9:35 p.m., David Edmundson wrote:
> > logviewer/entity-model.cpp, line 206
> > <http://git.reviewboard.kde.org/r/112437/diff/1/?file=186146#file186146line206>
> >
> >     if you're offline you now crash.
> >     
> >     Proposal:
> >     Given this whole code is rather confusing in places, I have the following idea:
> >     
> >     You change your MergeModel to always merge with ContactsModel. 
> >     You can then drop this code here which is fetching contact names, and a lot of other #ifdefs inside the EntityModel. I think it would be mostly the same except a few role names changing.
> >     In non kpeople mode we'll be fetching from the regular contact list.
> >     
> >     The only thing that I think makes this difficult is we need a modelInitialised signal on the normal model, but I can fix that.
> >     
> >     Thoughts?
> >
> 
> Dan Vrátil wrote:
>     I thought that would be prevented by if (pendingEntities()->account()->connection()) above? Or is connection() always valid and contactManager() is set only when you are online?
>     
>     We can't use ContactsModel, because there can be entities in the logger that are not in ContactsModel (for instance chat rooms or logs from an account you have already removed). I will try to refactor the stuff a bit to make it less confusing, but we need to have EntityModel.

No, I've explained badly.

Right now you merge Entity Model with PeopleModel useful for kpeople mode.
in non-kpeople mode you extend Entity Model to fetch data from the roster.

If you always merged with ContactsModel, you would do both of those tasks in one.


- David


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


On Sept. 1, 2013, 8:48 p.m., Dan Vrátil wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/112437/
> -----------------------------------------------------------
> 
> (Updated Sept. 1, 2013, 8:48 p.m.)
> 
> 
> Review request for Telepathy.
> 
> 
> Description
> -------
> 
> I have finished porting our beloved Log Viewer to KPeople and would like to merge it for 0.7.
> 
> The idea is that we take EntityModel (populated by entities from logger) and KPeople model and merge them into one model. This is done by an ugly beast called PersonEntityMergeModel. There is still some space for improvements (mainly performance), but generally it works and it is reasonably fast with cca 100 entities/contacts. I have also stolen code for tree view delegates from contact list, so that we are more consistent across KTp components.
> 
> Contacts are grouped by their group membership (retrieved from KPeople). When you select a Persona, dates from all subcontacts are loaded into the dates view and the Persona is expanded so that you can selected individual subcontacts.
> 
> The date picker has been replaced by a tree view with list of dates grouped by months. If there are logs from multiple subcontacts for one date, the date can be further expanded and you can pick specific subcontact.
> 
> When KPeople is disabled at build time or Nepomuk is not running, we fallback to current logviewer behavior, i.e. cntacts are grouped by accounts and display names are fetched from Telepathy (so it works only for accounts that are online).
> 
> As a new feature, the logger now has settings page which contains two tabs: one for theme configuration and one specifically for logviewer. So far it only has one option - you can pick whether you want to sort messages in logs from newest to oldest or vice versa. It's not related to KPeople, but I started working on it in the kpeople branch (don't ask me why), so there it is.
> 
> 
> Diffs
> -----
> 
>   CMakeLists.txt 8083bc2 
>   lib/adium-theme-view.cpp 635a877 
>   logviewer/CMakeLists.txt 300ba8f 
>   logviewer/config/CMakeLists.txt PRE-CREATION 
>   logviewer/config/behavior-config.h PRE-CREATION 
>   logviewer/config/behavior-config.cpp PRE-CREATION 
>   logviewer/config/behavior-config.ui PRE-CREATION 
>   logviewer/config/kcm_ktp_logviewer_behavior.desktop PRE-CREATION 
>   logviewer/conversation-date-picker.h 6e1bd60 
>   logviewer/conversation-date-picker.cpp b8db972 
>   logviewer/dates-model.h PRE-CREATION 
>   logviewer/dates-model.cpp PRE-CREATION 
>   logviewer/dates-view-delegate.h PRE-CREATION 
>   logviewer/dates-view-delegate.cpp PRE-CREATION 
>   logviewer/entity-filter-model.h PRE-CREATION 
>   logviewer/entity-filter-model.cpp PRE-CREATION 
>   logviewer/entity-model-item.h d7cb8ed 
>   logviewer/entity-model-item.cpp 4e2189d 
>   logviewer/entity-model.h f9bf293 
>   logviewer/entity-model.cpp 164f263 
>   logviewer/entity-proxy-model.h 837f4af 
>   logviewer/entity-proxy-model.cpp b57296b 
>   logviewer/entity-view-delegate.h PRE-CREATION 
>   logviewer/entity-view-delegate.cpp PRE-CREATION 
>   logviewer/log-viewer.h 5820a88 
>   logviewer/log-viewer.cpp 909777d 
>   logviewer/log-viewer.rc 82df425 
>   logviewer/log-viewer.ui a76b34a 
>   logviewer/message-view.h 4e2e2bb 
>   logviewer/message-view.cpp b037900 
>   logviewer/person-entity-merge-model.h PRE-CREATION 
>   logviewer/person-entity-merge-model.cpp PRE-CREATION 
> 
> Diff: http://git.reviewboard.kde.org/r/112437/diff/
> 
> 
> Testing
> -------
> 
> Browsed some logs, seems to work :)
> 
> 
> Thanks,
> 
> Dan Vrátil
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-telepathy/attachments/20130902/79b7d339/attachment.html>


More information about the KDE-Telepathy mailing list