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





<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
 <p style="margin-top: 0;">On September 4th, 2012, 5:59 a.m., <b>Frank Reininghaus</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;">Thanks for your explanations!

First of all, let me say that I greatly appreciate all the awesome work you're doing in Konqueror and kdelibs. I know that you made many great contributins to areas that many others have little interest in.

I see now why you propose to add these signals, but I ask you to also try to understand my point of view. One of my main goals is to keep Dolphin's code readable and maintainable. If we follow your suggestion, KFileItemModel would have the signals

itemsAdded(const KFileItemList&)
itemsDeleted(const KFileItemList&)
itemsInserted(const KItemRangeList&)
itemsRemoved(const KItemRangeList&)

which have completely different semantics. This would be quite confusing, not only at first sight, and seriously harm the readability of the code IMHO.

But I think that you can achieve what you want quite easily without these signals. You could create a dir lister inside the dir filter plugin that watches the directory. This would give you access to all files in the directory without the need to add those signals. You would just have to make sure that this dir lister has the correct "show hidden files" setting, but this should be doable because DolphinView has a signal hiddenFilesShownChanged(bool).

If this solution is acceptable for you, I'm happy to add the mime filter functionality to KFileItemModel.

Just for the record, I also discussed this with Peter last night, just to make sure that I don't tell you complete nonsense here. He agrees that adding those signals to KFileItemModel and DolphinView would be a very bad idea.</pre>
 </blockquote>







</blockquote>

<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">First thank you for the kind words. Secondly I most definitely understand your dilema. I undestand what it takes to keep APIs clean and maintaintable and I can appreciate your desire to maintain Dolphin's in such manner. However, I can most definitely tell you that the solution you suggested is a complete non-starter for me. Though the solution might seem the cleanest way to handle this issue, duplicating the work the embedded part already performs penalizes those Konqueror users who have enabled the directory filter plugin (the default) unnecessarily. That would not only be true for local file systems, but also remote ones that support listing like FTP and SFTP. To me that is simply not acceptable. The reason I use a hack in the directory filter plugin to locate the KDirLister from the part was to avoid the very exact thing you suggested above.

Anyhow, I have split out the notification related code into its own extension as you can see in REVIEW:106288. That way the filtering extension can stand on its own and if you guys still disagree with a new solution I came up with to solve this issue, then at least the filtering extension can be committed. I will post a new review for the implementation of the notification extension.</pre>
<br />








<p>- Dawit</p>


<br />
<p>On September 4th, 2012, 8:01 p.m., Dawit Alemayehu 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 Dolphin and KDE Base Apps.</div>
<div>By Dawit Alemayehu.</div>


<p style="color: grey;"><i>Updated Sept. 4, 2012, 8:01 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;">The attached patch provides an implementation of KParts' ListingFilterExtension for Dolphin. The extension allows the Dolphin KPart to provide directory/file filtering services without requiring direct linking against Dolphin itself.

The review for the new KPart listing filter extension (ListingFilterExtension) can be found at https://git.reviewboard.kde.org/r/106288/</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>dolphin/src/kitemviews/private/kfileitemmodelfilter.h <span style="color: grey">(9bdf1fd)</span></li>

 <li>dolphin/src/kitemviews/private/kfileitemmodelfilter.cpp <span style="color: grey">(816d356)</span></li>

 <li>dolphin/src/views/dolphinview.h <span style="color: grey">(10f63c5)</span></li>

 <li>dolphin/src/views/dolphinview.cpp <span style="color: grey">(8050415)</span></li>

 <li>dolphin/src/kitemviews/kfileitemmodel.h <span style="color: grey">(d9bebdf)</span></li>

 <li>dolphin/src/kitemviews/kfileitemmodel.cpp <span style="color: grey">(6936af4)</span></li>

 <li>dolphin/src/dolphinpart.h <span style="color: grey">(e5693b3)</span></li>

 <li>dolphin/src/dolphinpart.cpp <span style="color: grey">(fff7dc0)</span></li>

</ul>

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




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








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