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





<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
 <p style="margin-top: 0;">On November 1st, 2011, 3:07 p.m., <b>Aaron J. Seigo</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;">the wholesale copying of KOpenWithDialog is very unfortunate and needs to be avoided if at *all* possible. why is it copied instead of used directly?

the really big issue is the exec()'ing of the dialog, however.

it would also be nice to be able to access individual launcher configuration via the individual launchers' context menu.

p.s. whitespace :)</pre>
 </blockquote>




 <p>On November 1st, 2011, 5:07 p.m., <b>Craig Drummond</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;">I agree the copying is bad - but without changing kdelibs I knew of no other way. The reason it is copied is that in KOpenWithDialog you cannot remove the "Open with" label (or change its text), or the kurlrequester below it.</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;">the Open With label is settable by using the KOpenWithDialog( const KUrl::List& urls, const QString& text, const QString& value, QWidget *parent = 0 ); constructor, so it could be set to something sensible for this case. as forthe KUrlRequester ... is that so bad? it allows the user to define an arbitrary exec on disk, the ultimate "last resort".</pre>
<br />





<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
 <p style="margin-top: 0;">On November 1st, 2011, 3:07 p.m., <b>Aaron J. Seigo</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/103007/diff/1/?file=39955#file39955line375" style="color: black; font-weight: bold; text-decoration: underline;">libs/taskmanager/taskactions.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; ">ToggleLauncherActionImpl::ToggleLauncherActionImpl(QObject *parent, AbstractGroupableItem *item, GroupManager *strategy)</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">375</font></th>
    <td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">        <span class="k">if</span><span class="p">(</span><span class="n">QDialog</span><span class="o">::</span><span class="n">Accepted</span><span class="o">==</span><span class="n">dlg</span><span class="p">.</span><span class="n">exec</span><span class="p">())</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;">dialogs must not be exec()'d as they *freeze* the entire UI.. in this case the whole plasma-desktop shell. i must be handled asynchronously.</pre>
 </blockquote>



 <p>On November 1st, 2011, 5:07 p.m., <b>Craig Drummond</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;">Good point!</pre>
 </blockquote>





 <p>On November 2nd, 2011, 9:07 a.m., <b>Craig Drummond</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;">This is odd. I've tried running the dialog via "show()" and connecting to the "okClicked()" signal. However, the slot never gets called. If I change it to "exec()" the slot does get called...

e.g. this does *not* work:

        KApplicationSelectorDialog *dlg=new KApplicationSelectorDialog(i18n("XXX"), 0L);
        connect(dlg, SIGNAL(okClicked()), this, SLOT(xxx()));
        dlg->show();

...but this does:

        KApplicationSelectorDialog *dlg=new KApplicationSelectorDialog(i18n("XXX"), 0L);
        connect(dlg, SIGNAL(okClicked()), this, SLOT(xxx()));
        dlg->exec();

(Ignore the obvious memory leak)

-----------------

However, this seems to be a general issue with plasma dialogs. e.g. if you configure a colour for the clock dialog, plasma is frozen. Perhaps all plasma dialogs need to be run via another process?</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;">"e.g. this does *not* work"

that is very, very odd. it would seem to imply that there is an event loop issue. there is no difference otherwise between exec() and show() (in fact, in fixing kcolorbutton i use show()). 

ah! perhaps i see the issue: LauncherProperties::run calls exec() on itself .. that creates an inner event loop around LauncherProperties. my guess is that trips it up. neither LauncherProperties nor KApplicationSelectorDialog should be exec()'d

"(Ignore the obvious memory leak)"

btw, easiest way to deal with this is to call dlg->setAttribute(Qt::WA_DeleteOnClose);

"this seems to be a general issue with plasma dialog"

we have this issue in very few places, and where it remains it is fixable ..  i just fixed KColorButton right now in fact (thanks for pointing that one out)</pre>
<br />

<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
 <p style="margin-top: 0;">On November 1st, 2011, 3:07 p.m., <b>Aaron J. Seigo</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/103007/diff/1/?file=39957#file39957line362" style="color: black; font-weight: bold; text-decoration: underline;">libs/taskmanager/taskitem.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; ">void TaskItem::addMimeData(QMimeData *mimeData) const</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">362</font></th>
    <td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "><span class="kt">void</span> <span class="n">TaskItem</span><span class="o">::</span><span class="n">setLauncherUrl</span><span class="p">(</span><span class="k">const</span> <span class="n">KUrl</span> <span class="o">&</span><span class="n">url</span><span class="p">,</span> <span class="kt">bool</span> <span class="n">saveMapping</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;">in which cases would the mapping not be saved (e.g. saveMapping == false)?</pre>
 </blockquote>



 <p>On November 1st, 2011, 5:07 p.m., <b>Craig Drummond</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;">In another patch (not done yet), LauncherItem::associateItemIfMatches() calls setLauncherUrl on the task. But as this was not done by the user, I didnt want to save the mapping.</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;">ah! well, this could be accomplished with a LauncherItem::setLauncherUrl(LauncherItem *item) overload. code duplication would be minimal (just the first 4 lines of code, really) and the API would be clearer imo.</pre>
<br />




<p>- Aaron J.</p>


<br />
<p>On October 31st, 2011, 8:42 p.m., Craig Drummond 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 Plasma.</div>
<div>By Craig Drummond.</div>


<p style="color: grey;"><i>Updated Oct. 31, 2011, 8:42 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;">1. If fail to automatically find launcher, then prompt user to select from installed applications.
2. Add a config page, so that manualy set launchers may be adjusted.

(Part of IconTasks' taskmanager changes)</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>libs/taskmanager/CMakeLists.txt <span style="color: grey">(57f5f73)</span></li>

 <li>libs/taskmanager/groupmanager.h <span style="color: grey">(acaa142)</span></li>

 <li>libs/taskmanager/groupmanager.cpp <span style="color: grey">(6e7ffa7)</span></li>

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

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

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

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

 <li>libs/taskmanager/launcherconfig.ui <span style="color: grey">(PRE-CREATION)</span></li>

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

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

 <li>libs/taskmanager/launcherproperties.ui <span style="color: grey">(PRE-CREATION)</span></li>

 <li>libs/taskmanager/taskactions.cpp <span style="color: grey">(0e6ba8e)</span></li>

 <li>libs/taskmanager/taskitem.h <span style="color: grey">(5de8478)</span></li>

 <li>libs/taskmanager/taskitem.cpp <span style="color: grey">(0a768e5)</span></li>

</ul>

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




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








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