<html>
 <body>
  <div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
   <table bgcolor="#f9f3c9" width="100%" cellpadding="8" style="border: 1px #c9c399 solid;">
    <tr>
     <td>
      This is an automatically generated e-mail. To reply, visit:
      <a href="http://git.reviewboard.kde.org/r/108895/">http://git.reviewboard.kde.org/r/108895/</a>
     </td>
    </tr>
   </table>
   <br />













<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
 <p style="margin-top: 0;">On February 11th, 2013, 2:26 a.m. UTC, <b>Aleix Pol Gonzalez</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">I think it's some interesting work.

>From my point of view, there's little point in exposing managers to QML. That's especially bad because once we grow, we'll want to be able to put a ContactsModel {} wherever we want without having to initialize different manager instances or having to pass the pointer from a component to the other.

I guess it's necessary to explicitly declare the KTp.Base {} instance to define the features that will be used, but also it would be interesting not to make this link specific. A way to do that would be to create a singleton that can create different sets of account managers.

But maybe that's too complex and we can simply go with this. After all the very relaxed naming scopes in QML could be benefitial in this case, and we could have as much of those we want:

Ktp.ContactModel { accountManager: tpController.accountManager }

Although avoiding it could make room for some interesting optimizations in the future.

I hope that helps...</pre>
 </blockquote>







</blockquote>

<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">> From my point of view, there's little point in exposing managers to QML.
It needs to be done somehow, besides, the "good thing about this approach is that we have a clear mapping of the api from c++."


Alternate approach:
We wrap all our plasmoids in C++ and expose AccountManager as a contextProperty
It can then be app-specific, and we get our single accountManager per plasmoid with relevant features. 

We still need KTp.ContactModel { accountManager: accountManager}
I was looking at converting contact-list-applet anyway so I can put some more advanced logic in the config.

</pre>
<br />


<p>- David</p>


<br />
<p>On February 11th, 2013, 12:37 a.m. UTC, David Edmundson wrote:</p>








<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('http://git.reviewboard.kde.org/static/rb/images/review_request_box_top_bg.ab6f3b1072c9.png'); background-position: left top; background-repeat: repeat-x; border: 1px black solid;">
 <tr>
  <td>

<div>Review request for Telepathy.</div>
<div>By David Edmundson.</div>


<p style="color: grey;"><i>Updated Feb. 11, 2013, 12:37 a.m.</i></p>






<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
 <table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Tidy QML Plugins

Remove our own declarative ContactsModel class, and simply expose KTp::CommonInternals

Create a new QML class that can act as the AccountManager. 
This can then be passed to anything that needs it (the ContactsModel and GlobalPresence and the ConversationsModel/TextObserver)

See part 2/2 for how it works in practice</pre>
  </td>
 </tr>
</table>





<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> </h1>
<ul style="margin-left: 3em; padding-left: 0;">

 <li>KTp/Declarative/qml-plugins.cpp <span style="color: grey">(bd2a92717489af3ddb4cdc5b6413a2caaf307e92)</span></li>

 <li>KTp/Models/contacts-list-model.cpp <span style="color: grey">(dfa32870ea501c84bd15c3d2f0df78ef0e501da0)</span></li>

 <li>KTp/Models/contacts-model.h <span style="color: grey">(7e91e155a205b5c9dab24470a0e10ef63a087ea6)</span></li>

 <li>KTp/Declarative/base.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>KTp/Declarative/contact-list.h <span style="color: grey">(a59814490fd0dc3407e1f6a45266de7e6d89149c)</span></li>

 <li>KTp/Declarative/contact-list.cpp <span style="color: grey">(9e05d5c964ace0b6ee657edad6ecd99d0e823ce1)</span></li>

 <li>KTp/Declarative/CMakeLists.txt <span style="color: grey">(f42252d4fd2d3a7d5d23cd9de110e251a79e4170)</span></li>

 <li>KTp/Declarative/base.h <span style="color: grey">(PRE-CREATION)</span></li>

</ul>

<p><a href="http://git.reviewboard.kde.org/r/108895/diff/" style="margin-left: 3em;">View Diff</a></p>







  </td>
 </tr>
</table>








  </div>
 </body>
</html>