Re: Review Request: Actually use ExecuteBrowserPlugin in XDebugJob

"Dominik Schmidt" <[email protected]> Tue, 17 Apr 2012 00:01:48 -0000
Newsgroups gmane.comp.kde.devel.quanta
Message-ID <[email protected]>
--===============4745883151833363564==
Content-Type: multipart/alternative;
	boundary="===============0915509843002304189=="

--===============0915509843002304189==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable



> On April 15, 2012, 8:47 p.m., Milian Wolff wrote:
> > plugins/executebrowser/iexecutebrowserplugin.h, line 52
> > <http://git.reviewboard.kde.org/r/104595/diff/1/?file=3D56601#file56601=
line52>
> >
> >     I don't understand this comment after the e.g. part - could you rep=
hrase this? or give a proper example? what happens by default, i.e. if the =
url is empty?

Sure.

How about ..

"// if you provide a valid url as second parameter that one is opened inste=
ad of the url stored in the launch configuration
 // e.g. this is used in xdebug plugin to add additional GET parameters to =
the configured url"

?


> On April 15, 2012, 8:47 p.m., Milian Wolff wrote:
> > plugins/executebrowser/browserappjob.cpp, line 79
> > <http://git.reviewboard.kde.org/r/104595/diff/1/?file=3D56598#file56598=
line79>
> >
> >     is it ok to emit the result directly? or should one wait for the "s=
tarted" signal (that should exist afaik)? that would also allow one to prop=
erly handle error cases, i.e. if. m_browser points to a non-existing browse=
r-app or if something else goes wrong, or?

I'll check, sounds reasonable.


> On April 15, 2012, 8:47 p.m., Milian Wolff wrote:
> > debuggers/xdebug/debugjob.cpp, line 297
> > <http://git.reviewboard.kde.org/r/104595/diff/1/?file=3D56596#file56596=
line297>
> >
> >     this is unstable, it will crash as soon as the executebrowserplugin=
 is disabled, or is that a requirement of the xdebug plugin? hm would make =
sense - just make sure that this is so in the *.desktop file please

Good hint!

It doesn't do that so far, but it perfectly makes sense:
a) the settings are already stored in an executebrowserplugin instance
b) you'd need to implement fallback code in the xdebug plugin which is alre=
ady inside the EBP
c) if not for this, what is the EBP good for then? ;)


- Dominik


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/104595/#review12488
-----------------------------------------------------------


On April 13, 2012, 11:29 p.m., Dominik Schmidt wrote:
> =

> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/104595/
> -----------------------------------------------------------
> =

> (Updated April 13, 2012, 11:29 p.m.)
> =

> =

> Review request for KDevelop and Quanta.
> =

> =

> Description
> -------
> =

> Currently the XDebugJob always uses QDesktopServices::openUrl() to open t=
he debug page in the browser, this patch makes use of the ExecuteBrowserPlu=
gin instance that is already present in XDebug job so the configured browse=
r is launched.
> =

> Also it makes BrowserAppJob launch the external browser KProc with .start=
Detached() instead of .execute() to prevent freezing of the KDevelop GUI.
> =

> =

> Arguments are currently ignored still, a patch for that is following
> =

> Feel free to nitpick, I haven't done any KDE coding in a while and would =
like to hear any suggestion for improvements :-)
> =

> =

> Diffs
> -----
> =

>   debuggers/xdebug/debugjob.h 9925733 =

>   debuggers/xdebug/debugjob.cpp 0f04914 =

>   plugins/executebrowser/browserappjob.h 37ff700 =

>   plugins/executebrowser/browserappjob.cpp a211205 =

>   plugins/executebrowser/executebrowserplugin.h 7c78733 =

>   plugins/executebrowser/executebrowserplugin.cpp 921142f =

>   plugins/executebrowser/iexecutebrowserplugin.h f786622 =

> =

> Diff: http://git.reviewboard.kde.org/r/104595/diff/
> =

> =

> Testing
> -------
> =

> It works ... ;-)
> =

> =

> Thanks,
> =

> Dominik Schmidt
> =

>


--===============0915509843002304189==
Content-Type: text/html; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable




<html>
 <body>
  <div style=3D"font-family: Verdana, Arial, Helvetica, Sans-Serif;">
   <table bgcolor=3D"#f9f3c9" width=3D"100%" cellpadding=3D"8" style=3D"bor=
der: 1px #c9c399 solid;">
    <tr>
     <td>
      This is an automatically generated e-mail. To reply, visit:
      <a href=3D"http://git.reviewboard.kde.org/r/104595/">http://git.revie=
wboard.kde.org/r/104595/</a>
     </td>
    </tr>
   </table>
   <br />








<blockquote style=3D"margin-left: 1em; border-left: 2px solid #d0d0d0; padd=
ing-left: 10px;">
 <p style=3D"margin-top: 0;">On April 15th, 2012, 8:47 p.m., <b>Milian Wolf=
f</b> wrote:</p>
 <blockquote style=3D"margin-left: 1em; border-left: 2px solid #d0d0d0; pad=
ding-left: 10px;">
  =




<table width=3D"100%" border=3D"0" bgcolor=3D"white" style=3D"border: 1px s=
olid #C0C0C0; border-collapse: collapse; margin: 2px padding: 2px;">
 <thead>
  <tr>
   <th colspan=3D"4" bgcolor=3D"#F0F0F0" style=3D"border-bottom: 1px solid =
#C0C0C0; font-size: 9pt; padding: 4px 8px; text-align: left;">
    <a href=3D"http://git.reviewboard.kde.org/r/104595/diff/1/?file=3D56596=
#file56596line297" style=3D"color: black; font-weight: bold; text-decoratio=
n: underline;">debuggers/xdebug/debugjob.cpp</a>
    <span style=3D"font-weight: normal;">

     (Diff revision 1)

    </span>
   </th>
  </tr>
 </thead>

 <tbody style=3D"background-color: #e4d9cb; padding: 4px 8px; text-align: c=
enter;">
  <tr>

   <td colspan=3D"4"><pre style=3D"font-size: 8pt; line-height: 140%; margi=
n: 0; ">void XDebugBrowserJob::start()</pre></td>

  </tr>
 </tbody>



 =

 =





 <tbody>

  <tr>
    <th bgcolor=3D"#e9eaa8" style=3D"border-right: 1px solid #C0C0C0;" alig=
n=3D"right"><font size=3D"2">297</font></th>
    <td bgcolor=3D"#fdfebc" width=3D"50%"><pre style=3D"font-size: 8pt; lin=
e-height: 140%; margin: 0; ">            <span class=3D"n">kWarning</span><=
span class=3D"p">()</span> <span class=3D"o">&lt;&lt;</span> <span class=3D=
"s">&quot;openUrl failed, something went wrong when creating the job&quot;<=
/span><span class=3D"p">;</span></pre></td>
    <th bgcolor=3D"#e9eaa8" style=3D"border-left: 1px solid #C0C0C0; border=
-right: 1px solid #C0C0C0;" align=3D"right"><font size=3D"2">297</font></th>
    <td bgcolor=3D"#fdfebc" width=3D"50%"><pre style=3D"font-size: 8pt; lin=
e-height: 140%; margin: 0; ">        <span class=3D"n">IExecuteBrowserPlugi=
n</span><span class=3D"o">*</span> <span class=3D"n">iface</span> <span cla=
ss=3D"o">=3D</span> <span class=3D"n">KDevelop</span><span class=3D"o">::</=
span><span class=3D"n">ICore</span><span class=3D"o">::</span><span class=
=3D"n">self</span><span class=3D"p">()</span><span class=3D"o">-&gt;</span>=
<span class=3D"n">pluginController</span><span class=3D"p">()</span></pre><=
/td>
  </tr>

 </tbody>

</table>

  <pre style=3D"white-space: pre-wrap; white-space: -moz-pre-wrap; white-sp=
ace: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">this is u=
nstable, it will crash as soon as the executebrowserplugin is disabled, or =
is that a requirement of the xdebug plugin? hm would make sense - just make=
 sure that this is so in the *.desktop file please</pre>
 </blockquote>





</blockquote>
<pre style=3D"margin-left: 1em; white-space: pre-wrap; white-space: -moz-pr=
e-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-=
word;">Good hint!

It doesn&#39;t do that so far, but it perfectly makes sense:
a) the settings are already stored in an executebrowserplugin instance
b) you&#39;d need to implement fallback code in the xdebug plugin which is =
already inside the EBP
c) if not for this, what is the EBP good for then? ;)</pre>
<br />

<blockquote style=3D"margin-left: 1em; border-left: 2px solid #d0d0d0; padd=
ing-left: 10px;">
 <p style=3D"margin-top: 0;">On April 15th, 2012, 8:47 p.m., <b>Milian Wolf=
f</b> wrote:</p>
 <blockquote style=3D"margin-left: 1em; border-left: 2px solid #d0d0d0; pad=
ding-left: 10px;">
  =




<table width=3D"100%" border=3D"0" bgcolor=3D"white" style=3D"border: 1px s=
olid #C0C0C0; border-collapse: collapse; margin: 2px padding: 2px;">
 <thead>
  <tr>
   <th colspan=3D"4" bgcolor=3D"#F0F0F0" style=3D"border-bottom: 1px solid =
#C0C0C0; font-size: 9pt; padding: 4px 8px; text-align: left;">
    <a href=3D"http://git.reviewboard.kde.org/r/104595/diff/1/?file=3D56598=
#file56598line79" style=3D"color: black; font-weight: bold; text-decoration=
: underline;">plugins/executebrowser/browserappjob.cpp</a>
    <span style=3D"font-weight: normal;">

     (Diff revision 1)

    </span>
   </th>
  </tr>
 </thead>

 <tbody style=3D"background-color: #e4d9cb; padding: 4px 8px; text-align: c=
enter;">
  <tr>

   <td colspan=3D"4"><pre style=3D"font-size: 8pt; line-height: 140%; margi=
n: 0; ">void BrowserAppJob::start()</pre></td>

  </tr>
 </tbody>






 =

 =


 <tbody>

  <tr>
    <th bgcolor=3D"#f0f0f0" style=3D"border-right: 1px solid #C0C0C0;" alig=
n=3D"right"><font size=3D"2">79</font></th>
    <td bgcolor=3D"#ffffff" width=3D"50%"><pre style=3D"font-size: 8pt; lin=
e-height: 140%; margin: 0; ">    <span class=3D"n">emitResult</span><span c=
lass=3D"p">();</span></pre></td>
    <th bgcolor=3D"#f0f0f0" style=3D"border-left: 1px solid #C0C0C0; border=
-right: 1px solid #C0C0C0;" align=3D"right"><font size=3D"2">79</font></th>
    <td bgcolor=3D"#ffffff" width=3D"50%"><pre style=3D"font-size: 8pt; lin=
e-height: 140%; margin: 0; ">    <span class=3D"n">emitResult</span><span c=
lass=3D"p">();</span></pre></td>
  </tr>

 </tbody>

</table>

  <pre style=3D"white-space: pre-wrap; white-space: -moz-pre-wrap; white-sp=
ace: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">is it ok =
to emit the result directly? or should one wait for the &quot;started&quot;=
 signal (that should exist afaik)? that would also allow one to properly ha=
ndle error cases, i.e. if. m_browser points to a non-existing browser-app o=
r if something else goes wrong, or?</pre>
 </blockquote>





</blockquote>
<pre style=3D"margin-left: 1em; white-space: pre-wrap; white-space: -moz-pr=
e-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-=
word;">I&#39;ll check, sounds reasonable.</pre>
<br />

<blockquote style=3D"margin-left: 1em; border-left: 2px solid #d0d0d0; padd=
ing-left: 10px;">
 <p style=3D"margin-top: 0;">On April 15th, 2012, 8:47 p.m., <b>Milian Wolf=
f</b> wrote:</p>
 <blockquote style=3D"margin-left: 1em; border-left: 2px solid #d0d0d0; pad=
ding-left: 10px;">
  =




<table width=3D"100%" border=3D"0" bgcolor=3D"white" style=3D"border: 1px s=
olid #C0C0C0; border-collapse: collapse; margin: 2px padding: 2px;">
 <thead>
  <tr>
   <th colspan=3D"4" bgcolor=3D"#F0F0F0" style=3D"border-bottom: 1px solid =
#C0C0C0; font-size: 9pt; padding: 4px 8px; text-align: left;">
    <a href=3D"http://git.reviewboard.kde.org/r/104595/diff/1/?file=3D56601=
#file56601line52" style=3D"color: black; font-weight: bold; text-decoration=
: underline;">plugins/executebrowser/iexecutebrowserplugin.h</a>
    <span style=3D"font-weight: normal;">

     (Diff revision 1)

    </span>
   </th>
  </tr>
 </thead>

 <tbody style=3D"background-color: #e4d9cb; padding: 4px 8px; text-align: c=
enter;">
  <tr>

   <td colspan=3D"4"><pre style=3D"font-size: 8pt; line-height: 140%; margi=
n: 0; ">public:</pre></td>

  </tr>
 </tbody>




 =

 =




 <tbody>

  <tr>
    <th bgcolor=3D"#b1ebb0" style=3D"border-right: 1px solid #C0C0C0;" alig=
n=3D"right"><font size=3D"2"></font></th>
    <td bgcolor=3D"#c5ffc4" width=3D"50%"><pre style=3D"font-size: 8pt; lin=
e-height: 140%; margin: 0; "></pre></td>
    <th bgcolor=3D"#b1ebb0" style=3D"border-left: 1px solid #C0C0C0; border=
-right: 1px solid #C0C0C0;" align=3D"right"><font size=3D"2">51</font></th>
    <td bgcolor=3D"#c5ffc4" width=3D"50%"><pre style=3D"font-size: 8pt; lin=
e-height: 140%; margin: 0; ">    <span class=3D"c1">// second param overrid=
es the url set in the launch configuration, e.g. with additional parameters=
</span></pre></td>
  </tr>

 </tbody>

</table>

  <pre style=3D"white-space: pre-wrap; white-space: -moz-pre-wrap; white-sp=
ace: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">I don&#39=
;t understand this comment after the e.g. part - could you rephrase this? o=
r give a proper example? what happens by default, i.e. if the url is empty?=
</pre>
 </blockquote>





</blockquote>
<pre style=3D"margin-left: 1em; white-space: pre-wrap; white-space: -moz-pr=
e-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-=
word;">Sure.

How about ..

&quot;// if you provide a valid url as second parameter that one is opened =
instead of the url stored in the launch configuration
 // e.g. this is used in xdebug plugin to add additional GET parameters to =
the configured url&quot;

?</pre>
<br />




<p>- Dominik</p>


<br />
<p>On April 13th, 2012, 11:29 p.m., Dominik Schmidt wrote:</p>






<table bgcolor=3D"#fefadf" width=3D"100%" cellspacing=3D"0" cellpadding=3D"=
8" style=3D"background-image: url('http://git.reviewboard.kde.org/media/rb/=
images/review_request_box_top_bg.png'); background-position: left top; back=
ground-repeat: repeat-x; border: 1px black solid;">
 <tr>
  <td>

<div>Review request for KDevelop and Quanta.</div>
<div>By Dominik Schmidt.</div>


<p style=3D"color: grey;"><i>Updated April 13, 2012, 11:29 p.m.</i></p>






<h1 style=3D"color: #575012; font-size: 10pt; margin-top: 1.5em;">Descripti=
on </h1>
 <table width=3D"100%" bgcolor=3D"#ffffff" cellspacing=3D"0" cellpadding=3D=
"10" style=3D"border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style=3D"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;">Currently the XDebugJob always uses QDesktopServices::openUr=
l() to open the debug page in the browser, this patch makes use of the Exec=
uteBrowserPlugin instance that is already present in XDebug job so the conf=
igured browser is launched.

Also it makes BrowserAppJob launch the external browser KProc with .startDe=
tached() instead of .execute() to prevent freezing of the KDevelop GUI.


Arguments are currently ignored still, a patch for that is following

Feel free to nitpick, I haven&#39;t done any KDE coding in a while and woul=
d like to hear any suggestion for improvements :-)</pre>
  </td>
 </tr>
</table>


<h1 style=3D"color: #575012; font-size: 10pt; margin-top: 1.5em;">Testing <=
/h1>
<table width=3D"100%" bgcolor=3D"#ffffff" cellspacing=3D"0" cellpadding=3D"=
10" style=3D"border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style=3D"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;">It works ... ;-)</pre>
  </td>
 </tr>
</table>




<h1 style=3D"color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b>=
 </h1>
<ul style=3D"margin-left: 3em; padding-left: 0;">

 <li>debuggers/xdebug/debugjob.h <span style=3D"color: grey">(9925733)</spa=
n></li>

 <li>debuggers/xdebug/debugjob.cpp <span style=3D"color: grey">(0f04914)</s=
pan></li>

 <li>plugins/executebrowser/browserappjob.h <span style=3D"color: grey">(37=
ff700)</span></li>

 <li>plugins/executebrowser/browserappjob.cpp <span style=3D"color: grey">(=
a211205)</span></li>

 <li>plugins/executebrowser/executebrowserplugin.h <span style=3D"color: gr=
ey">(7c78733)</span></li>

 <li>plugins/executebrowser/executebrowserplugin.cpp <span style=3D"color: =
grey">(921142f)</span></li>

 <li>plugins/executebrowser/iexecutebrowserplugin.h <span style=3D"color: g=
rey">(f786622)</span></li>

</ul>

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




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








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


--===============0915509843002304189==--

--===============4745883151833363564==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
quanta-devel mailing list
[email protected]
https://mail.kde.org/mailman/listinfo/quanta-devel

--===============4745883151833363564==--