[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-panel-devel
Subject:    Re: Review Request 112208: KMix qml applet
From:       "Diego Casella" <polentino911 () gmail ! com>
Date:       2014-08-17 17:42:44
Message-ID: 20140817174244.26014.70597 () probe ! kde ! org
[Download RAW message or body]

--===============4618692459034493890==
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit



> On Aug. 12, 2014, 11:19 a.m., Christian Esken wrote:
> > For me it looks fine, with some questions:
> > 1) Is this completely decoupled from KMix? I do not see a "open mixer" to open \
> > the main application. 2) Is it supposed to be integrated in KMix
> > 3) In general, the question is how to progress from here. Diego, do you want KMix \
> > integration, or a standalone app? Have any ideas or plans to get it in KDE?
> 
> Martin Klapetek wrote:
> Note that new work on QML based KMix has started, however this will be Plasma5 only \
> --> http://apachelog.wordpress.com/2014/08/11/volume/

I'll recap everything, hopefully once for all..
This applet is meant to show the availabe mixers (with the option to show all of \
them, or just the Master one), and modify/mute/unmute them. That's all. If you need \
to change Master channel or in general configure KMix, you need to run the "old" KMix \
application. That's why, in the QML applet, I added a button named "Mixer setup": you \
click it, and the "old" KMix should appear (in my opinion QML applets have be minimal \
and simple, so everything else must be done in a regular QtWidget based application). \
Anyway back on the topic: I said "should" because at the moment KMix does not appear, \
complaining that:

"QDBusConnection: session D-Bus connection created before QCoreApplication. \
Application may misbehave."

This is the reason why I mentioned, in the very first description of this review \
request, that KMix needs to be patched :) As about "how to progess from here", I've \
mentioned some ideas in the beginning:

* patch Plasma QML bindings to provide mouse wheel events, so I can intercept scroll \
events in the panel and update volume levels accordingly, providing the same \
                functionality the current KMix tray icon does;
* patch Plasma QML slider to provide mouse wheel support (don't know if this has been \
                already fixed in Plasma5);
* patch KMix itself. It should run somewhat "daemonized" and, when QML applet calls \
"kmix" the regular, QtWidget-based application, will pop up. Since in the sourcecode \
I've seen references to "kmixd", which i think it stands for "KMix daemon", this may \
be simple to implement: the daemon provides the low-level connection to the hardware, \
and this applet and KMix itself connect to the daemon (via DataEngine/DBus mechanism) \
to communicate with it.


That being said:
* I've been trying to update this applet in the last couple of years, but
* since KDE4/Plasma is now in maintenance mode (aka no new featured will be added), \
                those patches won't happen anymore;
* and since someone is already on the process to "reinvent" the wheel;

I'm kinda sad/tired of how things went so far. The applet is pretty functional (I use \
it on a daily basis), and it could work fine in Plasma5 too. As far as I'm concerned, \
at this point I don't see any reason to keep this review open. If Harald wants to use \
any portion of this code, I'm 100% OK with that.


- Diego


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/112208/#review64369
-----------------------------------------------------------


On May 4, 2014, 9:46 p.m., Diego Casella wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/112208/
> -----------------------------------------------------------
> 
> (Updated May 4, 2014, 9:46 p.m.)
> 
> 
> Review request for Plasma, Aaron J. Seigo, Christian Esken, Marco Martin, and Igor \
> Poboiko. 
> 
> Repository: kmix
> 
> 
> Description
> -------
> 
> KMix qml applet.
> As you can see from the screenshot, the applet is pretty much functional: you can \
> display all the controls available, change its orientation, and decide to whether \
> show all of them or just the Master Control, and refresh its status when new \
> controls are added/removed/updated (such as Amarok current playing track). See \
> screenshots below :) Differences from the old kmix tray:
> * no media player controls ( I never investigated how to get them, but honestly \
> opening the audio applet to change/skip/pause audio track makes little sense to me \
>                 ... if anyone wants this feature back, don't be shy and step in);
> * the button used to select which Mixers are visible has been changed to open \
> Phonon kcm page: since visible mixers are already configurable from KMix app, \
> having a button to show KMix *and* a button to modify Mixers visibilty made little \
> sense here too, so I preferred to give more visibility to Phonon kcm; 
> Known issues:
> * there is still no way to get notified of mouse wheel events over the popupIcon, \
> so it is not possible to scroll over to increase/decrease the master control \
>                 volume;
> * no scroll events over the sliders too;
> * if you want to use the applet you most likely will disable KMix tray icon but, if \
> you do so, KMix will show its GUI at every login and you have to close it manually. \
> This requires KMix to be patched. Furthermore, if you click "KMix Setup" button, \
>                 KMix window will not restored anymore: this needs to be pathed as \
>                 well.
> * resize doesn't work properly.
> 
> 
> Diffs
> -----
> 
> plasma/kmix-applet-qml/contents/ui/HorizontalControl.qml 7e87c8e 
> plasma/kmix-applet-qml/contents/ui/HorizontalMixerListDelegate.qml 26f2968 
> plasma/kmix-applet-qml/contents/ui/MixersList.qml 66bda73 
> plasma/kmix-applet-qml/contents/ui/VerticalControl.qml 1702be7 
> plasma/kmix-applet-qml/contents/ui/VerticalMixerListDelegate.qml bab9ac6 
> plasma/kmix-applet-qml/contents/ui/kmixapplet.qml eecb91c 
> 
> Diff: https://git.reviewboard.kde.org/r/112208/diff/
> 
> 
> Testing
> -------
> 
> Tested against master and works fine.
> 
> 
> File Attachments
> ----------------
> 
> Default look
> https://git.reviewboard.kde.org/media/uploaded/files/2013/08/22/kmix_applet.png
> Menu Actions
> https://git.reviewboard.kde.org/media/uploaded/files/2013/08/22/kmix_applet1.png
> Applet Config Options
> https://git.reviewboard.kde.org/media/uploaded/files/2013/08/22/kmix_applet2.png
> Vertical Control
> https://git.reviewboard.kde.org/media/uploaded/files/2013/08/22/kmix_applet3.png
> ToolButton label and Config page after updates
> https://git.reviewboard.kde.org/media/uploaded/files/2013/08/24/kmix_applet5.png
> Control Icon and Label left aligned
> https://git.reviewboard.kde.org/media/uploaded/files/2013/08/27/kmix_applet6.png
> Kmix, horizontal view
> https://git.reviewboard.kde.org/media/uploaded/files/2014/05/04/9d6b0ca4-5a75-45cc-ab8e-61b13d4079e6__kmix_horizontal_new.png
>  Kmix applet, vertical view
> https://git.reviewboard.kde.org/media/uploaded/files/2014/05/04/7efb308a-c306-47c2-883f-64d1f32db5b5__kmix_vertical_new.png
>  
> 
> Thanks,
> 
> Diego Casella
> 
> 


--===============4618692459034493890==
MIME-Version: 1.0
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: 7bit




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





<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: \
10px;">  <p style="margin-top: 0;">On August 12th, 2014, 11:19 a.m. UTC, <b>Christian \
Esken</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;">For me it looks fine, with some questions:<br \
style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: \
normal;" /> 1) Is this completely decoupled from KMix? I do not see a "open mixer" to \
open the main application.<br style="padding: 0;text-rendering: inherit;margin: \
0;line-height: inherit;white-space: normal;" /> 2) Is it supposed to be integrated in \
KMix<br style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: normal;" /> 3) In general, the question is how to progress from \
here. Diego, do you want KMix integration, or a standalone app? Have any ideas or \
plans to get it in KDE?</p></pre>  </blockquote>




 <p>On August 12th, 2014, 11:42 a.m. UTC, <b>Martin Klapetek</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;">Note \
that new work on QML based KMix has started, however this will be Plasma5 only --&gt; \
http://apachelog.wordpress.com/2014/08/11/volume/</p></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;"><p style="padding: \
0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">I'll \
recap everything, hopefully once for all..<br style="padding: 0;text-rendering: \
inherit;margin: 0;line-height: inherit;white-space: normal;" /> This applet is meant \
to show the availabe mixers (with the option to show all of them, or just the Master \
one), and modify/mute/unmute them. That's all.<br style="padding: 0;text-rendering: \
inherit;margin: 0;line-height: inherit;white-space: normal;" /> If you need to change \
Master channel or in general configure KMix, you need to run the "old" KMix \
application. That's why, in the QML applet, I added a button named "Mixer setup": you \
click it, and the "old" KMix should appear (in my opinion QML applets have be minimal \
and simple, so everything else must be done in a regular QtWidget based \
application).<br style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: normal;" /> Anyway back on the topic: I said "should" because at \
the moment KMix does not appear, complaining that:</p> <p style="padding: \
0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: \
inherit;">"QDBusConnection: session D-Bus connection created before QCoreApplication. \
Application may misbehave."</p> <p style="padding: 0;text-rendering: inherit;margin: \
0;line-height: inherit;white-space: inherit;">This is the reason why I mentioned, in \
the very first description of this review request, that KMix needs to be patched \
:)<br style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: normal;" /> As about "how to progess from here", I've mentioned \
some ideas in the beginning:</p> <ul style="padding: 0;text-rendering: \
inherit;margin: 0 0 0 1em;line-height: inherit;white-space: normal;"> <li \
style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: \
normal;">patch Plasma QML bindings to provide mouse wheel events, so I can intercept \
scroll events in the panel and update volume levels accordingly, providing the same \
functionality the current KMix tray icon does;</li> <li style="padding: \
0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;">patch \
Plasma QML slider to provide mouse wheel support (don't know if this has been already \
fixed in Plasma5);</li> <li style="padding: 0;text-rendering: inherit;margin: \
0;line-height: inherit;white-space: normal;">patch KMix itself. It should run \
somewhat "daemonized" and, when QML applet calls "kmix" the regular, QtWidget-based \
application, will pop up. Since in the sourcecode I've seen references to "kmixd", \
which i think it stands for "KMix daemon", this may be simple to implement: the \
daemon provides the low-level connection to the hardware, and this applet and KMix \
itself connect to the daemon (via DataEngine/DBus mechanism) to communicate with \
it.</li> </ul>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: inherit;">That being said:<br style="padding: 0;text-rendering: \
inherit;margin: 0;line-height: inherit;white-space: normal;" /> <em style="padding: \
0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;"> I've \
been trying to update this applet in the last couple of years, but<br style="padding: \
0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;" /> \
</em> since KDE4/Plasma is now in maintenance mode (aka no new featured will be \
added), those patches won't happen anymore;<br style="padding: 0;text-rendering: \
                inherit;margin: 0;line-height: inherit;white-space: normal;" />
* and since someone is already on the process to "reinvent" the wheel;</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: inherit;">I'm kinda sad/tired of how things went so far. The \
applet is pretty functional (I use it on a daily basis), and it could work fine in \
Plasma5 too. As far as I'm concerned, at this point I don't see any reason to keep \
this review open. If Harald wants to use any portion of this code, I'm 100% OK with \
that.</p></pre> <br />










<p>- Diego</p>


<br />
<p>On May 4th, 2014, 9:46 p.m. UTC, Diego Casella 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 Plasma, Aaron J. Seigo, Christian Esken, Marco Martin, and \
Igor Poboiko.</div> <div>By Diego Casella.</div>


<p style="color: grey;"><i>Updated May 4, 2014, 9:46 p.m.</i></p>









<div style="margin-top: 1.5em;">
 <b style="color: #575012; font-size: 10pt;">Repository: </b>
kmix
</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;">KMix qml applet. As you can see from the screenshot, the applet is \
pretty much functional: you can display all the controls available, change its \
orientation, and decide to whether show all of them or just the Master Control, and \
refresh its status when new controls are added/removed/updated (such as Amarok \
current playing track). See screenshots below :) Differences from the old kmix tray:
* no media player controls ( I never investigated how to get them, but honestly \
opening the audio applet to change/skip/pause audio track makes little sense to me \
                ... if anyone wants this feature back, don&#39;t be shy and step in);
* the button used to select which Mixers are visible has been changed to open Phonon \
kcm page: since visible mixers are already configurable from KMix app, having a \
button to show KMix *and* a button to modify Mixers visibilty made little sense here \
too, so I preferred to give more visibility to Phonon kcm;

Known issues:
* there is still no way to get notified of mouse wheel events over the popupIcon, so \
                it is not possible to scroll over to increase/decrease the master \
                control volume;
* no scroll events over the sliders too;
* if you want to use the applet you most likely will disable KMix tray icon but, if \
you do so, KMix will show its GUI at every login and you have to close it manually. \
This requires KMix to be patched. Furthermore, if you click &quot;KMix Setup&quot; \
                button, KMix window will not restored anymore: this needs to be \
                pathed as well.
* resize doesn&#39;t work properly.</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;">Tested against master and works fine.</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>plasma/kmix-applet-qml/contents/ui/HorizontalControl.qml <span style="color: \
grey">(7e87c8e)</span></li>

 <li>plasma/kmix-applet-qml/contents/ui/HorizontalMixerListDelegate.qml <span \
style="color: grey">(26f2968)</span></li>

 <li>plasma/kmix-applet-qml/contents/ui/MixersList.qml <span style="color: \
grey">(66bda73)</span></li>

 <li>plasma/kmix-applet-qml/contents/ui/VerticalControl.qml <span style="color: \
grey">(1702be7)</span></li>

 <li>plasma/kmix-applet-qml/contents/ui/VerticalMixerListDelegate.qml <span \
style="color: grey">(bab9ac6)</span></li>

 <li>plasma/kmix-applet-qml/contents/ui/kmixapplet.qml <span style="color: \
grey">(eecb91c)</span></li>

</ul>

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



<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">File Attachments \
</h1>


 <li><a href="https://git.reviewboard.kde.org/media/uploaded/files/2013/08/22/kmix_applet.png">Default \
look</a></li>

 <li><a href="https://git.reviewboard.kde.org/media/uploaded/files/2013/08/22/kmix_applet1.png">Menu \
Actions</a></li>

 <li><a href="https://git.reviewboard.kde.org/media/uploaded/files/2013/08/22/kmix_applet2.png">Applet \
Config Options</a></li>

 <li><a href="https://git.reviewboard.kde.org/media/uploaded/files/2013/08/22/kmix_applet3.png">Vertical \
Control</a></li>

 <li><a href="https://git.reviewboard.kde.org/media/uploaded/files/2013/08/24/kmix_applet5.png">ToolButton \
label and Config page after updates</a></li>

 <li><a href="https://git.reviewboard.kde.org/media/uploaded/files/2013/08/27/kmix_applet6.png">Control \
Icon and Label left aligned</a></li>

 <li><a href="https://git.reviewboard.kde.org/media/uploaded/files/2014/05/04/9d6b0ca4-5a75-45cc-ab8e-61b13d4079e6__kmix_horizontal_new.png">Kmix, \
horizontal view</a></li>

 <li><a href="https://git.reviewboard.kde.org/media/uploaded/files/2014/05/04/7efb308a-c306-47c2-883f-64d1f32db5b5__kmix_vertical_new.png">Kmix \
applet, vertical view</a></li>

</ul>




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








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


--===============4618692459034493890==--



_______________________________________________
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic