<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/109825/">http://git.reviewboard.kde.org/r/109825/</a>
     </td>
    </tr>
   </table>
   <br />










<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
 <p style="margin-top: 0;">On April 5th, 2013, 4:48 p.m. UTC, <b>Kevin Krammer</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/109825/diff/2/?file=131464#file131464line215" style="color: black; font-weight: bold; text-decoration: underline;">resources/facebook/facebookresource_notifications.cpp</a>
    <span style="font-weight: normal;">

     (Diff revision 2)

    </span>
   </th>
  </tr>
 </thead>



 
 

 <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">215</font></th>
    <td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">        <span class="n">notification</span><span class="o">-></span><span class="n">setComponentData</span><span class="p">(</span><span class="n">KComponentData</span><span class="p">(</span><span class="n">aboutData</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;">Actually it might even be possible to access the KComponentData object of the resource directly, KGlobal::mainComponent() looks like it would deliver that</pre>
 </blockquote>



 <p>On April 8th, 2013, 11:04 a.m. UTC, <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;">The problem in this case is that KGlobal::mainComponent() has "akonadi_facebook_resource_N" where N changes with every new resource user adds, which effectively breaks notifications. I'm not sure how to solve this properly, ideas?</pre>
 </blockquote>





 <p>On April 8th, 2013, 12:44 p.m. UTC, <b>Kevin Krammer</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;">Can you describe how this breaks notifications?</pre>
 </blockquote>





 <p>On April 8th, 2013, 1:03 p.m. UTC, <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;">They are never displayed (the mainComponent() is used by default if nothing is passed I think). It's because it uses the component data to find the notifications config (the .notifyrc file) and if it has different name than what the component tells (and the component always has the name with the appended number), it won't load the config and won't show the notifications.

At least that's how I understand it ;)</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;">Ah, I see. So I guess the question is if all Facebook accounts should have the same notification behavior or potentially different ones.</pre>
<br />

<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
 <p style="margin-top: 0;">On April 5th, 2013, 4:48 p.m. UTC, <b>Kevin Krammer</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/109825/diff/2/?file=131464#file131464line231" style="color: black; font-weight: bold; text-decoration: underline;">resources/facebook/facebookresource_notifications.cpp</a>
    <span style="font-weight: normal;">

     (Diff revision 2)

    </span>
   </th>
  </tr>
 </thead>



 
 

 <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">231</font></th>
    <td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">                                            <span class="n">i18n</span><span class="p">(</span><span class="s">"You have %1 new Facebook notifications"</span><span class="p">,</span> <span class="n">mDisplayedNotifications</span><span class="p">.</span><span class="n">size</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;">while you have a point that the case of n == 1 is already covered, my still limited understanding of internationalization is that some languages have more complex plural form rules. Better check with the translators (I can do that if you are not subscribed to their mailinglist)</pre>
 </blockquote>



 <p>On April 8th, 2013, 11:04 a.m. UTC, <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;">Ok, I'll send a mail</pre>
 </blockquote>





 <p>On April 8th, 2013, 12:44 p.m. UTC, <b>Kevin Krammer</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;">thx</pre>
 </blockquote>





 <p>On April 8th, 2013, 1:03 p.m. UTC, <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;">So it needs to use i18np as there can be multiple translations for the plural form depending on the count and these are not handled by i18n, so it always needs to be i18np.</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;">Ah, yes, what I thought :)</pre>
<br />




<p>- Kevin</p>


<br />
<p>On April 5th, 2013, 4:01 p.m. UTC, Martin Klapetek 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 KDEPIM and Plasma.</div>
<div>By Martin Klapetek.</div>


<p style="color: grey;"><i>Updated April 5, 2013, 4:01 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 patch displays a KNotification whenever an unread notification exists on Facebook. This KNotification groups at most 3 notifications into one popup and then say "...and N more" if there is more. It also keeps track of which notifications were already displayed and does not display them again unless they were updated on the server. This is all stored in a separate config file. 

Then it creates a KSNI for the notifications where it always show the newest three notifications in the tooltip (regardless if it was displayed before or not) and creates a menu with the notifications, which opens browser with the notification link.</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;">Yes.</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>resources/facebook/CMakeLists.txt <span style="color: grey">(e8c6381)</span></li>

 <li>resources/facebook/facebookresource.h <span style="color: grey">(4a16c0c)</span></li>

 <li>resources/facebook/facebookresource.cpp <span style="color: grey">(67e8f3b)</span></li>

 <li>resources/facebook/facebookresource_notifications.cpp <span style="color: grey">(7f6b8c4)</span></li>

 <li>resources/facebook/serializer/akonadi_serializer_socialnotification.cpp <span style="color: grey">(a261e14)</span></li>

 <li>resources/facebook/settingsbase.kcfg <span style="color: grey">(9f8e4b5)</span></li>

 <li>resources/facebook/settingsdialog.cpp <span style="color: grey">(bfb7826)</span></li>

 <li>resources/facebook/settingsdialog.ui <span style="color: grey">(68b6a24)</span></li>

</ul>

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



<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">File Attachments </h1>

<ul>

 <li><a href="http://git.reviewboard.kde.org/media/uploaded/files/2013/04/02/facebook_notifications.png">KSNI</a></li>

</ul>





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








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