<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/110670/">http://git.reviewboard.kde.org/r/110670/</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 27th, 2013, 1:25 p.m. UTC, <b>Lamarque Souza</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/110670/diff/1/?file=146608#file146608line235" style="color: black; font-weight: bold; text-decoration: underline;">ksmserver/shutdowndlg.cpp</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="4"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">KSMShutdownDlg::KSMShutdownDlg( QWidget* parent,</pre></td>

  </tr>
 </tbody>



 
 

 <tbody>

  <tr>
    <th bgcolor="#ebb1ba" style="border-right: 1px solid #C0C0C0;" align="right"><font size="2">235</font></th>
    <td bgcolor="#ffc5ce" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">    <span class="n">foreach</span><span class="p">(</span><span class="k">const</span> <span class="n">QString</span> <span class="o">&</span><span class="n">importPath</span><span class="p">,</span> <span class="n">KGlobal</span><span class="o">::</span><span class="n">dirs</span><span class="p">()</span><span class="o">-></span><span class="n">findDirs</span><span class="p">(</span><span class="s">"module"</span><span class="p">,</span> <span class="s">"imports"</span><span class="p">))</span> <span class="p">{</span></pre></td>
    <th bgcolor="#ebb1ba" style="border-left: 1px solid #C0C0C0; border-right: 1px solid #C0C0C0;" align="right"><font size="2"></font></th>
    <td bgcolor="#ffc5ce" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "></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;">What is exactly the bug this patch is trying to solve? Is there any bug entry in bugzilla for it (or them)?</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;">There's no bug filed but I can see (with lsof) that e.g. kscreenlocker_greet loads plasma libraries from the system when KGlobal::dirs()->findDirs("module", "imports") is ("/path/to/local/lib64/kde4/imports", "/usr/lib64/kde4/imports"). I thought that it might contribute to problems I'd been having with testing screenlocker qml changes, but my problem probably lies elsewhere.

Anyway, it's the same problem as that solved in kdelibs 400b9f2e9d10386bb175b6123fe0cdaafeaffe61 for KDeclarative.</pre>
<br />




<p>- Oliver</p>


<br />
<p>On May 27th, 2013, 1:14 p.m. UTC, Oliver Henshaw 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 kde-workspace, kwin and Plasma.</div>
<div>By Oliver Henshaw.</div>


<p style="color: grey;"><i>Updated May 27, 2013, 1:14 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;">QDeclarativeImportDatabase::addImportPath() prepends paths to the list, so paths must be added in reverse order (lowest preference -> highest preference).

To further complicate things, only paths not already in the list are added - hopefully this behaviour can be corrected in qt at some point. Nevertheless, these fixes should give the desired results with or without the further qt fix.


NB: kwin/kcmkwin/kwintabbox/layoutpreview.cpp is also affected by this issue but is not yet included in this RR, as it needs extra fixes and proper testing.

NB #2: there may be other files affected outside kde-workspace, but I haven't checked.


Branch for this RR can be found at clones/kde-workspace/oliverhenshaw/kde-workspace at review/qml-imports-v1 which comprises:

[1/3] Drop unneeded duplicate addImportPath

Let KDeclarative::setupBindings() add the import paths: it too takes
paths from KGlobal::dirs()->findDirs("module", "imports"); it adds paths
in the correct (reverse) order.

[2/3] Replace foreach with java-style iterator

In preparation for reversing the loop.

[3/3] add qml import paths in correct order

addImportPath prepends the path to importPathList so we must add our
paths in reverse order.

Based on the fix for kdeclarative.cpp in kdelibs
400b9f2e9d10386bb175b6123fe0cdaafeaffe61</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;">Compiles and runs. Checked that the resulting importPathList is correct for ksmserver/screenlocker/greeter/greeterapp.cpp and for kwin/clients/aurorae/src/aurorae.cpp</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>ksmserver/screenlocker/greeter/greeterapp.cpp <span style="color: grey">(b70c9d6c005aa66d2f85a42ef4f1dcb04ea44667)</span></li>

 <li>ksmserver/shutdowndlg.cpp <span style="color: grey">(247c8777f060a614436b4f757ba5d588035f3bf5)</span></li>

 <li>kwin/clients/aurorae/src/aurorae.cpp <span style="color: grey">(f7771c4cbee34194dcc8987a789712ab41898ec0)</span></li>

 <li>kwin/kcmkwin/kwindecoration/kwindecoration.cpp <span style="color: grey">(591a913c4032885474040e93e75d5f6f91bb9535)</span></li>

 <li>kwin/scripting/scripting.cpp <span style="color: grey">(13a77bc346b09f4b99f782370e8e0873332fad3d)</span></li>

 <li>kwin/tabbox/declarative.cpp <span style="color: grey">(f759512c76a2b589323614b412844a0ce8e4dd54)</span></li>

 <li>plasma/screensaver/shell/savercorona.cpp <span style="color: grey">(9cd207ffc8039cd1e41fdbbf9a4095426824f694)</span></li>

</ul>

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







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








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