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










<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
 <p style="margin-top: 0;">On June 29th, 2015, 2:27 p.m. UTC, <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="https://git.reviewboard.kde.org/r/124200/diff/1/?file=381613#file381613line103" style="color: black; font-weight: bold; text-decoration: underline;">refactoring/kdevrefactorings.cpp</a>
    <span style="font-weight: normal;">

     (Diff revision 1)

    </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">103</font></th>
    <td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">    <span class="n">projectBuilder</span><span class="o">-></span><span class="n">configure</span><span class="p">(</span><span class="n">project</span><span class="p">)</span><span class="o">-></span><span class="n">exec</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;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">I know you have a FIXME above, but I just wanted to say that this is a <em style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;">very</em> bad idea. You essentially block the whole GUI now whenever a project gets opened. Also, the CMake manager already configures itself as required, so you shouldn't need to worry about this.</p></pre>
 </blockquote>



 <p>On June 29th, 2015, 6:14 p.m. UTC, <b>Maciej Poleski</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;">The problem i have (with async) is that project is configured as i requested, but signal (<code style="text-rendering: inherit;color: #4444cc;padding: 0;white-space: normal;margin: 0;line-height: inherit;">finished</code>) is emitted/dispatched <em style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;">after</em> i request KDevelop to close (crashing the whole application at shutdown) and not triggering appropriate handler at time. I don't know why.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">If CMake manager does this as necessary - that's great. There is only one slight problem: i cannot connect to <code style="text-rendering: inherit;color: #4444cc;padding: 0;white-space: normal;margin: 0;line-height: inherit;">IProjectBuilder::configured</code> - Qt says (at runtime), that CMakeBuilder doesn't have this signal (and strangely it looks like indeed there is no such signal (at least it is not listed here: https://projects.kde.org/projects/extragear/kdevelop/kdevelop/repository/revisions/master/entry/projectbuilders/cmakebuilder/cmakebuilder.h nor connected here: https://projects.kde.org/projects/extragear/kdevelop/kdevelop/repository/revisions/master/entry/projectbuilders/cmakebuilder/cmakebuilder.cpp#L82)) even though it is pure virtual in its base class. Could you explain to me what is happening there?</p></pre>
 </blockquote>





 <p>On July 1st, 2015, 8:42 a.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;">the issue you describe with finished not getting dispatched properly sounds like a bug. Can you create a simplified test case (unrelated to the work in this branch) and show it to us? Or at least show us the code you tried to write here. Then we could debug it together and find a way to fix it. Potentially, your code blocked and did not hand over work to the eventloop, thereby blocking the configure job from executing.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">And the signals in IProjectBuilder are severly broken, looking at it now. They should a) have the KDevelop:: QID in their arguments for old-style signal/slot connections to work properly (is that what you tried?), and b) most of them never get emitted if I'm not mistaken. So you'll have to fix this first (in separate patches and review requests!).</p></pre>
 </blockquote>





 <p>On July 1st, 2015, 1:06 p.m. UTC, <b>Maciej Poleski</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;">The issue with <code style="text-rendering: inherit;color: #4444cc;padding: 0;white-space: normal;margin: 0;line-height: inherit;">finished</code> signal was my (very dumb) mistake.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Why KDevelop:: QID is required for old-style signal/slot connection? (and what is KDevelop::QID?). Yes i tried old-style connections.</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;">QID == (fully) qualified identifier. Old-style Qt signal/slot connections, i.e. using the <code style="text-rendering: inherit;color: #4444cc;padding: 0;white-space: normal;margin: 0;line-height: inherit;">SIGNAL()</code> and <code style="text-rendering: inherit;color: #4444cc;padding: 0;white-space: normal;margin: 0;line-height: inherit;">SLOT()</code> macros do not play well with namespaces. Thus, you can only connect to the signal when you write the type of the arguments exactly as done in the header. Currently, that does not include the <code style="text-rendering: inherit;color: #4444cc;padding: 0;white-space: normal;margin: 0;line-height: inherit;">KDevelop::</code> namespace, and thus you currently can only connect to the signal this way when you have a <code style="text-rendering: inherit;color: #4444cc;padding: 0;white-space: normal;margin: 0;line-height: inherit;">using namespace KDevelop;</code> line somewhere. Anyhow, new-style connects don't have that issue and should be preferred wherever possible.</p></pre>
<br />




<p>- Milian</p>


<br />
<p>On June 27th, 2015, 10:10 p.m. UTC, Maciej Poleski 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 Maciej Poleski.</div>


<p style="color: grey;"><i>Updated June 27, 2015, 10:10 p.m.</i></p>









<div style="margin-top: 1.5em;">
 <b style="color: #575012; font-size: 10pt;">Repository: </b>
kdev-clang
</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;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Introduced rename variable refactoring.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">This patch provides preliminary support for variable rename refactoring.
Currently only one project is supported.
Currently it is required to save all opened documents (cache is not ready).
Regeneration of compile_commands.json needs to be polished. How to get appropriate notification (IProjectBuilder::configured signal)? As a workaround i simply restarted KDevelop to get this regenerated.
To use this refactoring right click on variable declaration (definition) and select "rename" refactoring.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Full renaming support will consist of a few parts - one of them is renaming around VarDecl (this patch).
Quite early, but i wanted to see that this work is going into some direction after month of coding of pure interfaces/details.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">How to split diffs? I noticed that RBTool created diff consisting of all changes ignoring other pending request. I wanted only the last one, because earlier commits are subject of other review.</p></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;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Manual testing on very small code bases as cache and compile_commands.json regeneration is not fully functional.</p></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>.reviewboardrc <span style="color: grey">(cd1ef2aa08623d813c80b5c5275b2ad0e35ff40e)</span></li>

 <li>CMakeLists.txt <span style="color: grey">(875172a8407f4bd9faf330f032a280fa66c2b16f)</span></li>

 <li>clangsupport.h <span style="color: grey">(8ed1ec90bbbc41d7c7a94d926e0951c729a6194c)</span></li>

 <li>clangsupport.cpp <span style="color: grey">(e22c55426a2e839ec11cbe0b2fe1e13721b0583a)</span></li>

 <li>cmake/FindClang.cmake <span style="color: grey">(6c9bd6ef0242319122dcc7e6fd6cea8d9f0cbfbb)</span></li>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

</ul>

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






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







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