[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-active
Subject:    Re: Review Request 112533: add ratings in the bodega-client
From:       "Aaron J. Seigo" <aseigo () kde ! org>
Date:       2013-09-14 23:59:43
Message-ID: 20130914235943.22554.81803 () vidsolbach ! de
[Download RAW message or body]

[Attachment #2 (multipart/alternative)]


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


it is getting close :)


activeclient/package/contents/ui/storebrowser/AssetColumn.qml
<http://git.reviewboard.kde.org/r/112533/#comment29631>

    this is unecessary; the participant model is never visible at the same time as \
the asset browser UI. so this is just unnecessary overhead.



activeclient/package/contents/ui/storebrowser/Ratings.js
<http://git.reviewboard.kde.org/r/112533/#comment29632>

    why is this not using an associative array? it could then be as simple as: \
attribute[attributeId] = attributeValue.  
    this could then just as well be a property in the ratingsBaloon item, making the \
whole thing a lot simpler.  
    looking at the server side, we're passing around a *lot* of redundant strings in \
the json that imho aren't very useful.  
    ratings: {
      { attribute: 1, rating: 2 }
      { attribute: 3, rating: 4 }
    }
    
    could just as easily be:
    
    ratings: { 1: 2, 3: 4 }
    
    i've got a patch here for the server which makes getting and setting ratings \
return that more compact model.  
    this should help simplify the client-side code. 
    
    you can see the patch here: http://paste.kde.org/p7043787e/
    
    what do you think?



activeclient/src/bodegastore.cpp
<http://git.reviewboard.kde.org/r/112533/#comment29630>

    Are all of these job classed used in the QML?



activeclient/src/bodegastore.cpp
<http://git.reviewboard.kde.org/r/112533/#comment29628>

    as noted in my previous review, this should be lazy initialized in \
participantRatingsJobModel()



activeclient/src/bodegastore.cpp
<http://git.reviewboard.kde.org/r/112533/#comment29629>

    this should be lazy initialized in assetRatingsJobModel()



lib/bodega/session.h
<http://git.reviewboard.kde.org/r/112533/#comment29643>

    this exposes the bodega server API: the client needs to know what the ratings \
JSON should look like.   
    hiding the details of the server API is precisely why we have the Session class. \
it allows using bodega without being tied to a specific version of the server API. in \
future, if we adjust the server API, clients using libbodega won't need to be \
re-written as we can just change the implementation.  
    instead of a QVariant, assetCreateRatings should take a QHash<int, int> (or \
similar) and convert that internally to the proper JSON. 



lib/bodega/session.cpp
<http://git.reviewboard.kde.org/r/112533/#comment29633>

    indentation


- Aaron J. Seigo


On Sept. 14, 2013, 10:35 a.m., Giorgos Tsiapaliokas wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/112533/
> -----------------------------------------------------------
> 
> (Updated Sept. 14, 2013, 10:35 a.m.)
> 
> 
> Review request for Bodega.
> 
> 
> Description
> -------
> 
> This patch implements the ratings feature
> 
> 
> Diffs
> -----
> 
> activeclient/package/contents/ui/SettingsPage.qml fb46eca 
> activeclient/package/contents/ui/settings/ParticipantRatings.qml PRE-CREATION 
> activeclient/package/contents/ui/storebrowser/AssetColumn.qml a678f16 
> activeclient/package/contents/ui/storebrowser/Ratings.js PRE-CREATION 
> activeclient/package/contents/ui/storebrowser/RatingsColumn.qml PRE-CREATION 
> activeclient/src/bodegastore.h 1e5aac5 
> activeclient/src/bodegastore.cpp ba9dc27 
> lib/bodega/CMakeLists.txt 8d382a7 
> lib/bodega/assetjob.h 5aab88c 
> lib/bodega/assetjob.cpp 5f539cb 
> lib/bodega/assetoperations.h 7ce7900 
> lib/bodega/assetoperations.cpp 9f9c2d5 
> lib/bodega/assetratingsjob.h PRE-CREATION 
> lib/bodega/assetratingsjob.cpp PRE-CREATION 
> lib/bodega/assetratingsjobmodel.h PRE-CREATION 
> lib/bodega/assetratingsjobmodel.cpp PRE-CREATION 
> lib/bodega/globals.h 5ab45da 
> lib/bodega/participantratingsjob.h PRE-CREATION 
> lib/bodega/participantratingsjob.cpp PRE-CREATION 
> lib/bodega/participantratingsjobmodel.h PRE-CREATION 
> lib/bodega/participantratingsjobmodel.cpp PRE-CREATION 
> lib/bodega/ratingattributesjob.h PRE-CREATION 
> lib/bodega/ratingattributesjob.cpp PRE-CREATION 
> lib/bodega/ratingsmodel_p.h PRE-CREATION 
> lib/bodega/ratingsmodel_p.cpp PRE-CREATION 
> lib/bodega/session.h d27d284 
> lib/bodega/session.cpp a7c7e94 
> lib/bodega/session_p.h ebefb4f 
> 
> Diff: http://git.reviewboard.kde.org/r/112533/diff/
> 
> 
> Testing
> -------
> 
> check the attached images
> 
> 
> File Attachments
> ----------------
> 
> 
> http://git.reviewboard.kde.org/media/uploaded/files/2013/09/05/ratings-main.png
> 
> http://git.reviewboard.kde.org/media/uploaded/files/2013/09/05/participantratings.png
>  
> http://git.reviewboard.kde.org/media/uploaded/files/2013/09/06/labelsnotcenter.png
> 
> http://git.reviewboard.kde.org/media/uploaded/files/2013/09/06/delete2.png
> 
> http://git.reviewboard.kde.org/media/uploaded/files/2013/09/06/brokenParticipant.diff
>  
> http://git.reviewboard.kde.org/media/uploaded/files/2013/09/06/participantbroken.png
>  
> 
> Thanks,
> 
> Giorgos Tsiapaliokas
> 
> 


[Attachment #5 (text/html)]

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





 <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: \
-pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">it is getting close \
:)</pre>  <br />







<div>




<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/112533/diff/4/?file=189495#file189495line282" \
style="color: black; font-weight: bold; text-decoration: \
underline;">activeclient/package/contents/ui/storebrowser/AssetColumn.qml</a>  <span \
style="font-weight: normal;">

     (Diff revision 4)

    </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">282</font></th>  <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">              \
<span class="nx">job</span><span class="p">.</span><span \
class="nx">jobFinished</span><span class="p">.</span><span \
class="nx">connect</span><span class="p">(</span><span \
class="nx">bodegaClient</span><span class="p">.</span><span \
class="nx">participantRatingsJobModel</span><span class="p">.</span><span \
class="nx">reload</span><span class="p">)</span></pre></td>  </tr>

 </tbody>

</table>

<pre style="margin-left: 2em; white-space: pre-wrap; white-space: -moz-pre-wrap; \
white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">this is \
unecessary; the participant model is never visible at the same time as the asset \
browser UI. so this is just unnecessary overhead.</pre> </div>
<br />

<div>




<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/112533/diff/4/?file=189496#file189496line29" \
style="color: black; font-weight: bold; text-decoration: \
underline;">activeclient/package/contents/ui/storebrowser/Ratings.js</a>  <span \
style="font-weight: normal;">

     (Diff revision 4)

    </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">29</font></th>  <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">    <span \
class="kd">var</span> <span class="nx">attribute</span> <span class="o">=</span> \
<span class="p">{};</span></pre></td>  </tr>

  <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">30</font></th>  <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">    <span \
class="nx">attribute</span><span class="p">[</span><span \
class="s2">&quot;attribute&quot;</span><span class="p">]</span> <span \
class="o">=</span> <span class="nx">attributeId</span><span \
class="p">;</span></pre></td>  </tr>

  <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">31</font></th>  <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">    <span \
class="nx">attribute</span><span class="p">[</span><span \
class="s2">&quot;rating&quot;</span><span class="p">]</span> <span class="o">=</span> \
<span class="nx">attributeValue</span><span class="p">;</span></pre></td>  </tr>

  <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">32</font></th>  <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>  \
</tr>

  <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">33</font></th>  <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">    <span \
class="c1">//make sure that our array has unique attributes</span></pre></td>  </tr>

  <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">34</font></th>  <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">    <span \
class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span \
class="nx">i</span> <span class="k">in</span> <span \
class="nx">ratingAttributes</span><span class="p">.</span><span \
class="nx">ratings</span><span class="p">)</span> <span class="p">{</span></pre></td> \
</tr>

  <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">35</font></th>  <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">        <span \
class="kd">var</span> <span class="nx">rating</span> <span class="o">=</span> <span \
class="nx">ratingAttributes</span><span class="p">.</span><span \
class="nx">ratings</span><span class="p">[</span><span class="nx">i</span><span \
class="p">];</span></pre></td>  </tr>

  <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">36</font></th>  <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">        <span \
class="k">if</span> <span class="p">(</span><span class="nx">attributeId</span> <span \
class="o">===</span> <span class="nx">rating</span><span class="p">[</span><span \
class="s2">&quot;attribute&quot;</span><span class="p">])</span> <span \
class="p">{</span></pre></td>  </tr>

  <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">37</font></th>  <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">            \
<span class="nx">ratingAttributes</span><span class="p">.</span><span \
class="nx">ratings</span><span class="p">[</span><span class="nx">i</span><span \
class="p">]</span> <span class="o">=</span> <span class="nx">attribute</span><span \
class="p">;</span></pre></td>  </tr>

  <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">38</font></th>  <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">            \
<span class="k">return</span><span class="p">;</span></pre></td>  </tr>

  <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">39</font></th>  <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">        <span \
class="p">}</span></pre></td>  </tr>

  <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">40</font></th>  <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">    <span \
class="p">}</span></pre></td>  </tr>

 </tbody>

</table>

<pre style="margin-left: 2em; white-space: pre-wrap; white-space: -moz-pre-wrap; \
white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">why is this \
not using an associative array? it could then be as simple as: attribute[attributeId] \
= attributeValue.

this could then just as well be a property in the ratingsBaloon item, making the \
whole thing a lot simpler.

looking at the server side, we&#39;re passing around a *lot* of redundant strings in \
the json that imho aren&#39;t very useful.

ratings: {
  { attribute: 1, rating: 2 }
  { attribute: 3, rating: 4 }
}

could just as easily be:

ratings: { 1: 2, 3: 4 }

i&#39;ve got a patch here for the server which makes getting and setting ratings \
return that more compact model.

this should help simplify the client-side code. 

you can see the patch here: http://paste.kde.org/p7043787e/

what do you think?</pre>
</div>
<br />

<div>




<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/112533/diff/4/?file=189499#file189499line298" \
style="color: black; font-weight: bold; text-decoration: \
underline;">activeclient/src/bodegastore.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; ">void \
participantInfoFromQScriptValue(const QScriptValue &amp;scriptValue, \
Bodega::ParticipantInfo &amp;info)</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">298</font></th>  <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">    <span \
class="n">qmlRegisterType</span><span class="o">&lt;</span><span \
class="n">Bodega</span><span class="o">::</span><span \
class="n">ParticipantRatingsJob</span><span class="o">&gt;</span><span \
class="p">();</span></pre></td>  </tr>

  <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">299</font></th>  <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">    <span \
class="n">qmlRegisterType</span><span class="o">&lt;</span><span \
class="n">Bodega</span><span class="o">::</span><span \
class="n">ParticipantRatingsJobModel</span><span class="o">&gt;</span><span \
class="p">();</span></pre></td>  </tr>

  <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">300</font></th>  <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">    <span \
class="n">qmlRegisterType</span><span class="o">&lt;</span><span \
class="n">Bodega</span><span class="o">::</span><span \
class="n">RatingAttributesJob</span><span class="o">&gt;</span><span \
class="p">();</span></pre></td>  </tr>

  <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">301</font></th>  <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">    <span \
class="n">qmlRegisterType</span><span class="o">&lt;</span><span \
class="n">Bodega</span><span class="o">::</span><span \
class="n">AssetRatingsJob</span><span class="o">&gt;</span><span \
class="p">();</span></pre></td>  </tr>

 </tbody>

</table>

<pre style="margin-left: 2em; white-space: pre-wrap; white-space: -moz-pre-wrap; \
white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Are all of \
these job classed used in the QML?</pre> </div>
<br />

<div>




<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/112533/diff/4/?file=189499#file189499line325" \
style="color: black; font-weight: bold; text-decoration: \
underline;">activeclient/src/bodegastore.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; ">void \
participantInfoFromQScriptValue(const QScriptValue &amp;scriptValue, \
Bodega::ParticipantInfo &amp;info)</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">324</font></th>  <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">    <span \
class="n">m_participantRatingsJobModel</span> <span class="o">=</span> <span \
class="k">new</span> <span class="n">Bodega</span><span class="o">::</span><span \
class="n">ParticipantRatingsJobModel</span><span class="p">(</span><span \
class="k">this</span><span class="p">);</span></pre></td>  </tr>

  <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">325</font></th>  <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">    <span \
class="n">m_participantRatingsJobModel</span><span class="o">-&gt;</span><span \
class="n">setSession</span><span class="p">(</span><span \
class="n">m_session</span><span class="p">);</span></pre></td>  </tr>

 </tbody>

</table>

<pre style="margin-left: 2em; white-space: pre-wrap; white-space: -moz-pre-wrap; \
white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">as noted in \
my previous review, this should be lazy initialized in \
participantRatingsJobModel()</pre> </div>
<br />

<div>




<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/112533/diff/4/?file=189499#file189499line327" \
style="color: black; font-weight: bold; text-decoration: \
underline;">activeclient/src/bodegastore.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; ">void \
participantInfoFromQScriptValue(const QScriptValue &amp;scriptValue, \
Bodega::ParticipantInfo &amp;info)</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">326</font></th>  <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">    <span \
class="n">m_assetRatingsJobModel</span> <span class="o">=</span> <span \
class="k">new</span> <span class="n">Bodega</span><span class="o">::</span><span \
class="n">AssetRatingsJobModel</span><span class="p">(</span><span \
class="k">this</span><span class="p">);</span></pre></td>  </tr>

  <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">327</font></th>  <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">    <span \
class="n">m_assetRatingsJobModel</span><span class="o">-&gt;</span><span \
class="n">setSession</span><span class="p">(</span><span \
class="n">m_session</span><span class="p">);</span></pre></td>  </tr>

 </tbody>

</table>

<pre style="margin-left: 2em; white-space: pre-wrap; white-space: -moz-pre-wrap; \
white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">this should \
be lazy initialized in assetRatingsJobModel()</pre> </div>
<br />

<div>




<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/112533/diff/4/?file=189518#file189518line151" \
style="color: black; font-weight: bold; text-decoration: \
underline;">lib/bodega/session.h</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; \
">namespace Bodega {</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">151</font></th>  <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">        <span \
class="n">Bodega</span><span class="o">::</span><span class="n">NetworkJob</span> \
<span class="o">*</span><span class="n">assetCreateRatings</span><span \
class="p">(</span><span class="k">const</span> <span class="n">QString</span> <span \
class="o">&amp;</span><span class="n">assetId</span><span class="p">,</span> <span \
class="k">const</span> <span class="n">QVariant</span> <span \
class="o">&amp;</span><span class="n">ratings</span><span \
class="p">);</span></pre></td>  </tr>

 </tbody>

</table>

<pre style="margin-left: 2em; white-space: pre-wrap; white-space: -moz-pre-wrap; \
white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">this \
exposes the bodega server API: the client needs to know what the ratings JSON should \
look like. 

hiding the details of the server API is precisely why we have the Session class. it \
allows using bodega without being tied to a specific version of the server API. in \
future, if we adjust the server API, clients using libbodega won&#39;t need to be \
re-written as we can just change the implementation.

instead of a QVariant, assetCreateRatings should take a QHash&lt;int, int&gt; (or \
similar) and convert that internally to the proper JSON. </pre> </div>
<br />

<div>




<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/112533/diff/4/?file=189519#file189519line786" \
style="color: black; font-weight: bold; text-decoration: \
underline;">lib/bodega/session.cpp</a>  <span style="font-weight: normal;">

     (Diff revision 4)

    </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">785</font></th>  <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">   <span \
class="n">QUrl</span> <span class="n">url</span> <span class="o">=</span> <span \
class="n">d</span><span class="o">-&gt;</span><span class="n">baseUrl</span><span \
class="p">;</span></pre></td>  </tr>

 </tbody>

</table>

<pre style="margin-left: 2em; white-space: pre-wrap; white-space: -moz-pre-wrap; \
white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: \
break-word;">indentation</pre> </div>
<br />



<p>- Aaron J.</p>


<br />
<p>On September 14th, 2013, 10:35 a.m. UTC, Giorgos Tsiapaliokas 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 Bodega.</div>
<div>By Giorgos Tsiapaliokas.</div>


<p style="color: grey;"><i>Updated Sept. 14, 2013, 10:35 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;">This patch implements the ratings feature</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;">check the attached images</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>activeclient/package/contents/ui/SettingsPage.qml <span style="color: \
grey">(fb46eca)</span></li>

 <li>activeclient/package/contents/ui/settings/ParticipantRatings.qml <span \
style="color: grey">(PRE-CREATION)</span></li>

 <li>activeclient/package/contents/ui/storebrowser/AssetColumn.qml <span \
style="color: grey">(a678f16)</span></li>

 <li>activeclient/package/contents/ui/storebrowser/Ratings.js <span style="color: \
grey">(PRE-CREATION)</span></li>

 <li>activeclient/package/contents/ui/storebrowser/RatingsColumn.qml <span \
style="color: grey">(PRE-CREATION)</span></li>

 <li>activeclient/src/bodegastore.h <span style="color: grey">(1e5aac5)</span></li>

 <li>activeclient/src/bodegastore.cpp <span style="color: grey">(ba9dc27)</span></li>

 <li>lib/bodega/CMakeLists.txt <span style="color: grey">(8d382a7)</span></li>

 <li>lib/bodega/assetjob.h <span style="color: grey">(5aab88c)</span></li>

 <li>lib/bodega/assetjob.cpp <span style="color: grey">(5f539cb)</span></li>

 <li>lib/bodega/assetoperations.h <span style="color: grey">(7ce7900)</span></li>

 <li>lib/bodega/assetoperations.cpp <span style="color: grey">(9f9c2d5)</span></li>

 <li>lib/bodega/assetratingsjob.h <span style="color: \
grey">(PRE-CREATION)</span></li>

 <li>lib/bodega/assetratingsjob.cpp <span style="color: \
grey">(PRE-CREATION)</span></li>

 <li>lib/bodega/assetratingsjobmodel.h <span style="color: \
grey">(PRE-CREATION)</span></li>

 <li>lib/bodega/assetratingsjobmodel.cpp <span style="color: \
grey">(PRE-CREATION)</span></li>

 <li>lib/bodega/globals.h <span style="color: grey">(5ab45da)</span></li>

 <li>lib/bodega/participantratingsjob.h <span style="color: \
grey">(PRE-CREATION)</span></li>

 <li>lib/bodega/participantratingsjob.cpp <span style="color: \
grey">(PRE-CREATION)</span></li>

 <li>lib/bodega/participantratingsjobmodel.h <span style="color: \
grey">(PRE-CREATION)</span></li>

 <li>lib/bodega/participantratingsjobmodel.cpp <span style="color: \
grey">(PRE-CREATION)</span></li>

 <li>lib/bodega/ratingattributesjob.h <span style="color: \
grey">(PRE-CREATION)</span></li>

 <li>lib/bodega/ratingattributesjob.cpp <span style="color: \
grey">(PRE-CREATION)</span></li>

 <li>lib/bodega/ratingsmodel_p.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>lib/bodega/ratingsmodel_p.cpp <span style="color: \
grey">(PRE-CREATION)</span></li>

 <li>lib/bodega/session.h <span style="color: grey">(d27d284)</span></li>

 <li>lib/bodega/session.cpp <span style="color: grey">(a7c7e94)</span></li>

 <li>lib/bodega/session_p.h <span style="color: grey">(ebefb4f)</span></li>

</ul>

<p><a href="http://git.reviewboard.kde.org/r/112533/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/09/05/ratings-main.png">ratings-main.png</a></li>


 <li><a href="http://git.reviewboard.kde.org/media/uploaded/files/2013/09/05/participantratings.png">participantratings.png</a></li>


 <li><a href="http://git.reviewboard.kde.org/media/uploaded/files/2013/09/06/labelsnotcenter.png">labelsnotcenter.png</a></li>


 <li><a href="http://git.reviewboard.kde.org/media/uploaded/files/2013/09/06/delete2.png">delete2.png</a></li>


 <li><a href="http://git.reviewboard.kde.org/media/uploaded/files/2013/09/06/brokenParticipant.diff">brokenParticipant.diff</a></li>


 <li><a href="http://git.reviewboard.kde.org/media/uploaded/files/2013/09/06/participantbroken.png">participantbroken.png</a></li>


</ul>





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








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



_______________________________________________
Active mailing list
Active@kde.org
https://mail.kde.org/mailman/listinfo/active


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic