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








<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
 <p style="margin-top: 0;">On May 3rd, 2012, 10:05 a.m., <b>Milian Wolff</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/104814/diff/1/?file=61757#file61757line71" style="color: black; font-weight: bold; text-decoration: underline;">outputview/outputfilteringstrategies.h</a>
    <span style="font-weight: normal;">

     (Diff revision 1)

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

 <tbody style="background-color: #e4d9cb; padding: 4px 8px; text-align: center;">
  <tr>

   <td colspan="2"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>
   <td colspan="2"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">private:</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">71</font></th>
    <td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">    <span class="n">KUrl</span> <span class="n">urlForFile</span><span class="p">(</span> <span class="k">const</span> <span class="n">QString</span><span class="o">&</span> <span class="p">)</span> <span class="k">const</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;">pimpl public api please</pre>
 </blockquote>



 <p>On May 7th, 2012, 7:17 p.m., <b>Morten Volden</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;">Not sure I understand. urlForFile is not part of the public API of this class. Would you like it to be, and then pimpl'ed? ( And if so - for what purpose? )</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;">I guess what milian means is that public classes shouldn't have any private functions at all since those private functions are to be considered part of the public API (for ABI purposes at least, but also if people use the define-hack to access such functions). Hence in Qt-like API's one usually has no private functions or members at all, beyond either the pimpl member or a function (when needing to access the pimpl across subclasses). And the private-class has the private functions and members instead.</pre>
<br />




<p>- Andreas</p>


<br />
<p>On May 6th, 2012, 8:59 p.m., Morten Volden wrote:</p>






<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('http://git.reviewboard.kde.org/media/rb/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 KDevelop.</div>
<div>By Morten Volden.</div>


<p style="color: grey;"><i>Updated May 6, 2012, 8:59 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;">So far I have:
   * Moved some of the filtering code
       - More specifically some of the code for filtering (Compiler output, script output ) 

   * Extended the outputmodel 
         - It now inherits from QAbstractListModel and IOutputview model
         - It is now possible to choose a filtering strategy on the outputview outputmodel
   * Plus a few other things to make things work

   * Started doing some Unit test of the different filters

The solution currently has four filtering strategies:

* No filter
* Compiler filter 
* Script Error flter 
* StaticAnalysis Filter (for cpp check, krazy, etc)

I think I have now come to a point where it would be good to get some feedback on the proposed solution

Work identified that remains to be done (Input is welcome):

* Finish tests for filter strategies
* Move MakeoutputModel tests to outputview and extend them
* Make Makebuildder use the code in outputview. 
* Make NofilteringStrategy faster (i.e. do not create a filtered item for each line)
* Make custom buildsystem use the code in outputview - Done (But Needs to be reviewed)
* Extend filterstrategies with other filters?? (Input on that one is most welcome)
* Discuss how the filters should be selected via the GUI (and in which use-cases it makes sense to do so)



</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;">Started working on Unittest for filtering strategies. Plan to move most tests from Makeoutputmodel at some point. Plus used the patch for a week now and nothing seemingly breaks...</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>outputview/CMakeLists.txt <span style="color: grey">(5d9e539)</span></li>

 <li>outputview/delegateholder.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>outputview/delegateholder.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>outputview/filtereditem.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>outputview/filtereditem.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>outputview/ifilterstrategy.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>outputview/ifilterstrategy.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>outputview/outputdelegate.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>outputview/outputdelegate.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>outputview/outputfilteringstrategies.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>outputview/outputfilteringstrategies.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>outputview/outputformats.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>outputview/outputformats.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>outputview/outputjob.h <span style="color: grey">(c17b592)</span></li>

 <li>outputview/outputjob.cpp <span style="color: grey">(5b9db06)</span></li>

 <li>outputview/outputmodel.h <span style="color: grey">(b4c9631)</span></li>

 <li>outputview/outputmodel.cpp <span style="color: grey">(317e3ee)</span></li>

 <li>outputview/tests/CMakeLists.txt <span style="color: grey">(PRE-CREATION)</span></li>

 <li>outputview/tests/filteringstrategytest.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>outputview/tests/filteringstrategytest.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>outputview/tests/outputviewtest.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>outputview/tests/outputviewtest.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>outputview/tests/projects/onefileproject/main.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>plugins/execute/nativeappjob.cpp <span style="color: grey">(3eb654c)</span></li>

 <li>plugins/executescript/executescriptoutputmodel.h <span style="color: grey">(180adbd)</span></li>

 <li>plugins/executescript/executescriptoutputmodel.cpp <span style="color: grey">(1c852e9)</span></li>

 <li>plugins/executescript/executescriptplugin.h <span style="color: grey">(4eea6a4)</span></li>

 <li>plugins/executescript/executescriptplugin.cpp <span style="color: grey">(e55b514)</span></li>

 <li>plugins/executescript/scriptappconfig.h <span style="color: grey">(2e401ea)</span></li>

 <li>plugins/executescript/scriptappconfig.cpp <span style="color: grey">(d7ff984)</span></li>

 <li>plugins/executescript/scriptappjob.h <span style="color: grey">(48400aa)</span></li>

 <li>plugins/executescript/scriptappjob.cpp <span style="color: grey">(3b68ca5)</span></li>

 <li>plugins/externalscript/externalscriptjob.h <span style="color: grey">(1922469)</span></li>

 <li>plugins/externalscript/externalscriptjob.cpp <span style="color: grey">(aeb5a34)</span></li>

 <li>plugins/externalscript/externalscriptoutputmodel.cpp <span style="color: grey">(7a3d5d4)</span></li>

 <li>plugins/externalscript/externalscriptplugin.h <span style="color: grey">(c87aaa8)</span></li>

 <li>plugins/externalscript/externalscriptplugin.cpp <span style="color: grey">(6d62b63)</span></li>

 <li>vcs/dvcs/dvcsjob.cpp <span style="color: grey">(1e0f187)</span></li>

</ul>

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



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

<div>

 <a href="http://git.reviewboard.kde.org/r/104814/s/550/"><img src="http://git.reviewboard.kde.org/media/uploaded/images/2012/05/01/externalscriptCPPcheckBefore_400x100.png" style="border: 1px black solid;" alt="CPPCheckBefore" /></a>

 <a href="http://git.reviewboard.kde.org/r/104814/s/551/"><img src="http://git.reviewboard.kde.org/media/uploaded/images/2012/05/01/ExternalscriptCPPcheckAfter_400x100.png" style="border: 1px black solid;" alt="CppcheckAfter" /></a>

 <a href="http://git.reviewboard.kde.org/r/104814/s/552/"><img src="http://git.reviewboard.kde.org/media/uploaded/images/2012/05/01/ExternalScriptQuickCompileBefore_400x100.png" style="border: 1px black solid;" alt="QuickCompileBefore" /></a>

 <a href="http://git.reviewboard.kde.org/r/104814/s/553/"><img src="http://git.reviewboard.kde.org/media/uploaded/images/2012/05/01/ExternalScriptQuickCompileAfter_400x100.png" style="border: 1px black solid;" alt="QuickCompileAfter" /></a>

</div>


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








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