<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/100838/">http://git.reviewboard.kde.org/r/100838/</a>
</td>
</tr>
</table>
<br />
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<p style="margin-top: 0;">On March 25th, 2011, 1:30 a.m., <b>David Edmundson</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<table width="100%" border="0" bgcolor="white" style="border: 1px solid #C0C0C0; border-collapse: collapse; margin: 2px padding: 2px;">
<thead>
<tr>
<th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid #C0C0C0; font-size: 9pt; padding: 4px 8px; text-align: left;">
<a href="http://git.reviewboard.kde.org/r/100838/diff/4/?file=12746#file12746line528" style="color: black; font-weight: bold; text-decoration: underline;">main-widget.cpp</a>
<span style="font-weight: normal;">
(Diff revision 4)
</span>
</th>
</tr>
</thead>
<tbody style="background-color: #e4d9cb; padding: 4px 8px; text-align: center;">
<tr>
<td colspan="4"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>
</tr>
</tbody>
<tbody>
<tr>
<th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" align="right"><font size="2"></font></th>
<td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>
<th bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid #C0C0C0;" align="right"><font size="2">331</font></th>
<td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "> <span class="n">Tp</span><span class="o">::</span><span class="n">ContactPtr</span> <span class="n">contact</span> <span class="o">=</span> <span class="k">static_cast</span><span class="o"><</span><span class="n">ContactModelItem</span><span class="o">*></span><span class="p">(</span></pre></td>
</tr>
</tbody>
</table>
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">This is a bit confusing.
1) do you really need two casts? why not qVariantValue<ContactModelItem*>(..)
2) you don't need to model->data(index, role) you can just:
index.data(role);
</pre>
</blockquote>
<p>On March 25th, 2011, 11:12 a.m., <b>Martin Klapetek</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;">Actually I'm not sure if it is really needed (1), but since the model returns QVariant<QObject*>, I tried to directly cast it to ContactModelItem*, but this wouldn't compile for me. I'll try to play a little with it nevertheless.</pre>
</blockquote>
<p>On March 28th, 2011, 12:43 p.m., <b>David Edmundson</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;">If it does require two casts (which you may well be right about) at least use qobject_cast between the QObject* and ContactModelItem*. It has an extra check in which makes it safer.
</pre>
</blockquote>
<p>On March 29th, 2011, 4:14 p.m., <b>Dario Freddi</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;">This is actually a misuse of QVariant. The error you got when compiling was probably due to the fact that ContactModelItem* has not been declared as a MetaType through the Q_DECLARE_METATYPE(ContactModelItem*) macro (http://doc.qt.nokia.com/4.7/qmetatype.html#Q_DECLARE_METATYPE), hence Qt can not recognize it as a type QVariant can hold. The right thing to do is to declare the metatype correctly (you might want to do that at the bottom of ContactModelItem's header), and then use QVariant::value() to extract the type without resorting to hacks. The code you should obtain should look like:
Tp::ContactPtr contact = m_model->data(realIndex, AccountsModel::ItemRole).value<ContactModelItem*>()->contact();
Please check if you had to resort to similar hacks in other portions of the code, and fix them accordingly.</pre>
</blockquote>
</blockquote>
<pre style="margin-left: 1em; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Done.</pre>
<br />
<p>- David</p>
<br />
<p>On March 23rd, 2011, 9:32 p.m., Martin Klapetek wrote:</p>
<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('http://git.reviewboard.kde.orgrb/images/review_request_box_top_bg.png'); background-position: left top; background-repeat: repeat-x; border: 1px black solid;">
<tr>
<td>
<div>Review request for Telepathy.</div>
<div>By Martin Klapetek.</div>
<p style="color: grey;"><i>Updated March 23, 2011, 9:32 p.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;">This is the work that begun in my clone repo and has matured enough now to be merged back to 'upstream', where the work should continue now.</pre>
</td>
</tr>
</table>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Testing </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;">We did a lot of thourough testing on #kde-telepathy, also some people emailed their reports which all has been fixed.</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>CMakeLists.txt <span style="color: grey">(2c62ea10556cdba38d1bca0fe63603df97414336)</span></li>
<li>account-button.h <span style="color: grey">(PRE-CREATION)</span></li>
<li>account-button.cpp <span style="color: grey">(PRE-CREATION)</span></li>
<li>account-filter-model.h <span style="color: grey">(PRE-CREATION)</span></li>
<li>account-filter-model.cpp <span style="color: grey">(PRE-CREATION)</span></li>
<li>accounts-model-item.h <span style="color: grey">(PRE-CREATION)</span></li>
<li>accounts-model-item.cpp <span style="color: grey">(PRE-CREATION)</span></li>
<li>accounts-model.h <span style="color: grey">(PRE-CREATION)</span></li>
<li>accounts-model.cpp <span style="color: grey">(PRE-CREATION)</span></li>
<li>contact-delegate-overlay.h <span style="color: grey">(PRE-CREATION)</span></li>
<li>contact-delegate-overlay.cpp <span style="color: grey">(PRE-CREATION)</span></li>
<li>contact-delegate.h <span style="color: grey">(PRE-CREATION)</span></li>
<li>contact-delegate.cpp <span style="color: grey">(PRE-CREATION)</span></li>
<li>contact-model-item.h <span style="color: grey">(PRE-CREATION)</span></li>
<li>contact-model-item.cpp <span style="color: grey">(PRE-CREATION)</span></li>
<li>contact-overlays.h <span style="color: grey">(PRE-CREATION)</span></li>
<li>contact-overlays.cpp <span style="color: grey">(PRE-CREATION)</span></li>
<li>contact-view-hover-button.h <span style="color: grey">(PRE-CREATION)</span></li>
<li>contact-view-hover-button.cpp <span style="color: grey">(PRE-CREATION)</span></li>
<li>filter-bar.h <span style="color: grey">(PRE-CREATION)</span></li>
<li>filter-bar.cpp <span style="color: grey">(PRE-CREATION)</span></li>
<li>main-widget.h <span style="color: grey">(aed6f7c8336321bc8a6ffb3b9af6b1d493f85790)</span></li>
<li>main-widget.cpp <span style="color: grey">(6146b62eec17b54be63b594200613931673ac5fe)</span></li>
<li>main-widget.ui <span style="color: grey">(5b0d5aaaf3a4e2f49eb030b98b15fcae3a86170c)</span></li>
<li>main.cpp <span style="color: grey">(bba0e4175e8853afe603f26ea4707f4974192d0f)</span></li>
<li>ontologies/CMakeLists.txt <span style="color: grey">(3e0bbe8c634908f689dcd360409aeddcc6fc0d23)</span></li>
<li>tree-node.h <span style="color: grey">(PRE-CREATION)</span></li>
<li>tree-node.cpp <span style="color: grey">(PRE-CREATION)</span></li>
</ul>
<p><a href="http://git.reviewboard.kde.org/r/100838/diff/" style="margin-left: 3em;">View Diff</a></p>
</td>
</tr>
</table>
</div>
</body>
</html>