> 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 > >
_______________________________________________ KDE-Telepathy mailing list [email protected] https://mail.kde.org/mailman/listinfo/kde-telepathy
