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










<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
 <p style="margin-top: 0;">On July 9th, 2014, 5:26 p.m. UTC, <b>Kevin Funk</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="https://git.reviewboard.kde.org/r/119057/diff/1/?file=285854#file285854line40" style="color: black; font-weight: bold; text-decoration: underline;">languages/plugins/custom-definesandincludes/definesandincludesmanager.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; ">class DefinesAndIncludesManager : public IPlugin, public IDefinesAndIncludesManager, public SettingsManager</pre></td>
   <td colspan="2"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>

  </tr>
 </tbody>



 
 

 <tbody>

  <tr>
    <th bgcolor="#e9eaa8" style="border-right: 1px solid #C0C0C0;" align="right"><font size="2">37</font></th>
    <td bgcolor="#fdfebc" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "><span class="n">class</span> <span class="n">DefinesAndIncludesManager</span> <span class="o">:</span> <span class="n">public</span> <span class="n">IPlugin</span><span class="p">,</span> <span class="n">public</span> <span class="n">IDefinesAndIncludesManager</span><span class="p">,</span> <span class="n">public</span> <span class="n">SettingsManager</span></pre></td>
    <th bgcolor="#e9eaa8" style="border-left: 1px solid #C0C0C0; border-right: 1px solid #C0C0C0;" align="right"><font size="2">40</font></th>
    <td bgcolor="#fdfebc" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "><span class="n">class</span> <span class="n">DefinesAndIncludesManager</span> <span class="o">:</span> <span class="n">public</span> <span class="n">IPlugin</span><span class="p">,</span> <span class="n">public</span> <span class="n">IDefinesAndIncludesManager</span><span class="p">,</span> <span class="n">public</span> <span class="n">SettingsManager</span><span class="p"><span class="hl">,</span></span><span class="hl"> </span><span class="n"><span class="hl">public</span></span><span class="hl"> </span><span class="n"><span class="hl">IDefinesAndIncludesConfigurationDialog</span></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;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Do we really need yet another interface here? Referring to "IDefinesAndIncludesConfigurationDialog".</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">I don't like dynamic_cast'ing around to get basic functionality.</p></pre>
 </blockquote>



 <p>On July 9th, 2014, 5:40 p.m. UTC, <b>Milian Wolff</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;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">I agree, this is not required. Just put openConfigurationDialog into IDefinesAndIncludesManager. Btw, the file for IDefinesAndIncludesConfigurationDialog is missing in the uploaded changeset, is it not? Anyhow, by putting this one method into the manager itself you don't need a full new file and interface anyways. much simpler.</p></pre>
 </blockquote>





 <p>On July 10th, 2014, 3:18 p.m. UTC, <b>Sergey Kalinichev</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;"><blockquote style="text-rendering: inherit;padding: 0 0 0 1em;border-left: 1px solid #bbb;white-space: normal;margin: 0 0 0 0.5em;line-height: inherit;">
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">I don't like dynamic_cast'ing around to get basic functionality.</p>
</blockquote>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Why? I can use static_cast's then...</p>
<blockquote style="text-rendering: inherit;padding: 0 0 0 1em;border-left: 1px solid #bbb;white-space: normal;margin: 0 0 0 0.5em;line-height: inherit;">
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">I agree, this is not required. Just put openConfigurationDialog into IDefinesAndIncludesManager.</p>
</blockquote>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">What is wrong with it anyway? I'm trying to follow the ISP here. (http://en.wikipedia.org/wiki/Interface_segregation_principle)</p>
<blockquote style="text-rendering: inherit;padding: 0 0 0 1em;border-left: 1px solid #bbb;white-space: normal;margin: 0 0 0 0.5em;line-height: inherit;">
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Btw, the file for IDefinesAndIncludesConfigurationDialog is missing in the uploaded changeset, is it not?</p>
</blockquote>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">No, it's not. I put that interface into IDefinesAndIncludesManager instead, as it pretty simple and only IDAIM uses it.</p></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;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">"...and only IDAIM uses it." <-- because of this, you should <em style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;">not</em> use an interface for this. An interface would make sense if other IDAIM implementation would exist, that would not implement the config dialog. That is not the case nor will it ever be. Adding yet another indirection is just useless bloat and complicates the code for no reason.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Note that this functionality belongs together, different interfaces would also make sense for stuff like our projectcontroller vs. plugincontroller vs. ... but not in this case. It's simply overdesigned the way it is right now.</p></pre>
<br />




<p>- Milian</p>


<br />
<p>On July 1st, 2014, 11:55 a.m. UTC, Sergey Kalinichev wrote:</p>









<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="12" style="border: 1px #888a85 solid; border-radius: 6px; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
 <tr>
  <td>

<div>Review request for KDevelop.</div>
<div>By Sergey Kalinichev.</div>


<p style="color: grey;"><i>Updated July 1, 2014, 11:55 a.m.</i></p>









<div style="margin-top: 1.5em;">
 <b style="color: #575012; font-size: 10pt;">Repository: </b>
kdevelop
</div>


<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 needed as it will let us to get rid of the .kdev_include_paths related code from the kdev-clang. Also it'll make it easier to extract the MakeFileResolver in the future.

Also simplified the code.</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;">Added an unit test for NoProjectIncludePathsManager.</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>languages/cpp/CMakeLists.txt <span style="color: grey">(48f12da)</span></li>

 <li>languages/cpp/codegen/customincludepaths.h <span style="color: grey">(1041682)</span></li>

 <li>languages/cpp/codegen/customincludepaths.cpp <span style="color: grey">(8e4e41e)</span></li>

 <li>languages/cpp/codegen/ui/custom_include_paths.ui <span style="color: grey">(37be9b5)</span></li>

 <li>languages/cpp/codegen/unresolvedincludeassistant.h <span style="color: grey">(60a048b)</span></li>

 <li>languages/cpp/codegen/unresolvedincludeassistant.cpp <span style="color: grey">(7c3bc49)</span></li>

 <li>languages/cpp/cpplanguagesupport.h <span style="color: grey">(e1659ae)</span></li>

 <li>languages/cpp/cpplanguagesupport.cpp <span style="color: grey">(79530e9)</span></li>

 <li>languages/cpp/includepathcomputer.h <span style="color: grey">(61de3ec)</span></li>

 <li>languages/cpp/includepathcomputer.cpp <span style="color: grey">(61c3646)</span></li>

 <li>languages/cpp/includepathresolver.h <span style="color: grey">(c9e9d7d)</span></li>

 <li>languages/cpp/includepathresolver.cpp <span style="color: grey">(3cffeb1)</span></li>

 <li>languages/cpp/makefileresolver.h <span style="color: grey">(PRE-CREATION)</span></li>

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

 <li>languages/cpp/tests/CMakeLists.txt <span style="color: grey">(68ba233)</span></li>

 <li>languages/plugins/custom-definesandincludes/CMakeLists.txt <span style="color: grey">(4dc013c)</span></li>

 <li>languages/plugins/custom-definesandincludes/definesandincludesmanager.h <span style="color: grey">(f996a83)</span></li>

 <li>languages/plugins/custom-definesandincludes/definesandincludesmanager.cpp <span style="color: grey">(98f32fc)</span></li>

 <li>languages/plugins/custom-definesandincludes/noprojectincludesanddefines/CMakeLists.txt <span style="color: grey">(PRE-CREATION)</span></li>

 <li>languages/plugins/custom-definesandincludes/noprojectincludesanddefines/noprojectcustomincludepaths.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>languages/plugins/custom-definesandincludes/noprojectincludesanddefines/noprojectcustomincludepaths.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>languages/plugins/custom-definesandincludes/noprojectincludesanddefines/noprojectcustomincludepaths.ui <span style="color: grey">(PRE-CREATION)</span></li>

 <li>languages/plugins/custom-definesandincludes/noprojectincludesanddefines/noprojectincludepathsmanager.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>languages/plugins/custom-definesandincludes/noprojectincludesanddefines/noprojectincludepathsmanager.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>languages/plugins/custom-definesandincludes/tests/definesandincludestest.h <span style="color: grey">(1589b78)</span></li>

 <li>languages/plugins/custom-definesandincludes/tests/definesandincludestest.cpp <span style="color: grey">(9c421bb)</span></li>

 <li>languages/plugins/custom-definesandincludes/tests/projectsgenerator.h <span style="color: grey">(b919ae5)</span></li>

 <li>languages/plugins/custom-definesandincludes/tests/projectsgenerator.cpp <span style="color: grey">(5d08a25)</span></li>

</ul>

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



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


 <li><a href="https://git.reviewboard.kde.org/media/uploaded/files/2014/07/01/39f48afe-f63e-46a1-ba1f-12a7a0d48a98__kdevplatform.diff">kdevplatform.diff</a></li>

 <li><a href="https://git.reviewboard.kde.org/media/uploaded/files/2014/07/01/bf114c23-763e-47b8-a153-70c57b14ecf7__before.png">before.png</a></li>

 <li><a href="https://git.reviewboard.kde.org/media/uploaded/files/2014/07/01/b5cdd3d1-6b5e-4b6a-8075-21f8c9655f8b__after.png">after.png</a></li>

</ul>




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








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