[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:       "Christian Esken" <esken () kde ! org>
Date:       2014-08-19 20:18:34
Message-ID: 20140819201834.26014.16651 () probe ! kde ! org
[Download RAW message or body]

--===============2699791652709332746==
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/ 
> Diego Casella wrote:
> 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. 
> Christian Esken wrote:
> Diego, I am not sure what went so wrong here. I am defintely also not happy how \
> things went on. What makes me most sad is, that you have a working QML applet that \
> just needs really minor integration work. All these minimal issues like \
> "scrollwheel not supported" (1) should really not stop us from giving the users the \
> option. If they must have scrollwheel or media buttons, then they can use classic \
> KMix dock. If they want a nicer integrated applet, they can use your applet (2). It \
> can be a simple option in KMix's configuration dialog (Dock: Classic, Plasma, Off) \
> instaed of (Dock: On, Off). 
> Sigh :-|
> 
> 
> Whatever your decision is, I can understand you Diego. If you want to integrate it \
> would make me happy (see some technical tips below). If you do not want it or you \
> cannot (essential missing plasma features that you do not want to add yourselves), \
> then it is possibly better to close this review request. 
> --- Technical notes -----------
> 
> About daemonizing KMix: That exists since forever: Simply disable "dock into \
> systray" and close window, and KMix will vanish forever. The "KMix will show its \
> GUI at every login" behavior/issue is gone since the support of hotplugging. To \
> show (I cannot remember that you ever mentioned problems with that before) just do \
> a DBUS call "show" on the Window (a standard for all Qt windows). If you want to \
> try that, please head along. If  
> Side note (as you mentioned it): There is also a real daemon (technically a kded \
> module), but KMixD daemon has no GUI, and proviees just a Mixer DBUS interface. 
> ----
> (1) Some ramblings about QML/Plasma: Things seem to progress sometimes slowly or \
> not at all in QML/Plasma. Though much has happened Plasma/QML seems to still lack \
> features. Initially there were no sliders at all in Plasma, and I knew it would be \
> a very rocky way to get all the features in, like to add missing stuff like \
> "mousewheel over slider". Then I made a clear decision to keep my foot out of QML \
> completely. 
> (2) I actually still do not understand if integration can now be done or not. There \
> was this mysterious comment "it would be pretty trivial to add a check in the \
> systemtray [...]" that sounds like somebody needs to take responsibilty and add \
> that. 
> Aaron J. Seigo wrote:
> <disclaimer>I am have not been involved with Plasma for almost a year, but I keep \
> getting CC'd on the comments here. ;)</disclaimer> 
> Firstly, Christian is the maintainer of KMix. It is ultimately his decision if this \
> goes into kmix or not. Plasma developers can and should provide feedback because \
> that is where the experience and expertise around QML in a Plasma workspace exists, \
> but it is ultimately Christian's decision. If the Plasma team has some wishes in \
> how KMix goes forward, they should coordinate those through Christian. This is \
> basic common sense and courtesy for KDE's culture of development. So if Christian \
> is happy with it, he should be able to push this into the kmix repository, end of \
> story. 
> Wheel events: they are well supported by QML2. There is *no reason* that they are \
> not made available here. The MouseArea item gets wheel events; if anything what is \
> called for is a "acceptWheelEvents" property on the iconic version of applets and \
> hook those up to some signals for applets to get access to. For all the discussion \
> about it, someone could have instead put such a patch in place. 
> Christian: as for your ramblings, they are unecessary and innacurate. I get that \
> you would have liked to see this go faster and as the maintainer of kmix I totally \
> understand that. But adding complaints about another project doesn't move anything \
> further, it just increases the chances of people deciding not to work with each \
> other. To address the content of your concerns: there have been sliders in Plasma \
> pre- and post-QML for just about forever. There may have been short period of time \
> when the QML widgets were first being made that there wasn't a QML slider, but that \
> certainly wasn't a long period. Also, adding mousewheel over slider is a trivial \
> patch if it isn't already there. (I haven't tested the QML2 slider for this at the \
> time of writing, so it may already be there.) 
> "There was this mysterious comment "it would be pretty trivial to add a check in \
> the systemtray [...]" that sounds like somebody needs to take responsibilty and add \
> that." 
> Let me take the "mystery" out of it: in Plasma 4 it had not yet been decided how \
> precisely to handle this. It was a "nice to have" feature and many other things \
> were still on the "must be done" list. In Plasma 5 there is now an implementation: \
> http://vizzzion.org/blog/2014/02/dbus-activated-systemtray-plasmoids/ 
> So KMix should just need to have a DBus service it registers and the kmix applet \
> should magically appear if it exists. What isn't there, at least afaict, is a way \
> for kmix to know if the widget has appeared (and if not, show its old \
> KSystemTrayIcon based UI). This could be done with another dbus service on the \
> applet side that kmix watches for, but even then ... the more fundamental question \
> for kmix looms: 
> Is KMix meant to be a tightly integrated part of a Plasma workspace, or is it \
> intended to be used in any "random" desktop environment? 
> Personally, I think there is a lot to be gained both in terms of user experience \
> and simplicity in development for kmix to be Plasma-focused, and I don't think \
> there are nearly as many users of KMix outside of Plasma as there are that use KMix \
> with Plasma (I would expect it to be a "rounding error" type number). But that's \
> your call, Christian. 
> If KMix does focus on Plasma, then a QML plasmoid with DBus activation as described \
> in Sebas' blog entry above is all that is needed and this could go into kmix \
> tomorrow at Christian's descrection. 
> Diego Casella wrote:
> @Christian and @Aaron: thanks for your replies :)
> 
> This morning I've modified a little the sourcecode in order to call "qdbus \
> org.kde.kmix /kmix/KMixWindow org.qtproject.Qt.QWidget.show", disabled the "old" \
> KMix tray icon, and it works. It's kinda clumsy, but it works :) Regular KMix \
> widget gets displayed when the corresponding button is clicked, and it won't appear \
> at login anymore. These are already great news for me :) 
> Now, I think we have some options here:
> * ship this applet _as is_ in KDE4, it is functioning afterall;
> * port and/extend/improve this applet to get the most out of KDE5/Plasma/QML2;
> 
> I'm ok with both of these, now you guys tell me what do you think.
> 
> Marco Martin wrote:
> Could it have a standalone, maybe extragear release for KDE4?
> 
> then focus can be shifted to the plasma5 port

Aaron, thanks for your comments and clear words. Please be assured my comment was not \
intended as a complaint. I sincerly believe that if one requires a new feature, it is \
ones own responsibility to take action. No one else too blame than oneself. I just \
wanted to explain, why I decided not to implement a QML applet myself. The text - as \
an immediate reaction on the former comment - reads very bad, though. It was not \
meant like that, and I do apologize.

On the practical side, I'd like to answer the question: "Is KMix meant to be a \
tightly integrated part of a Plasma workspace, or is it intended to be used in any \
"random" desktop environment?":  Well, optimal KDE integration will always get extra \
attention. But giving up cross-desktop functionality (Tray-protocol, MPRIS, DnD, ...) \
would be a step in the wrong direction. Thus, full functionality in KDE, and as much \
as possible under other desktops (XFCE, ...). A solution that is not cross-desktop \
compatible can be included, but not as default.

I now read the blog article \
http://vizzzion.org/blog/2014/02/dbus-activated-systemtray-plasmoids/ . Sounds rather \
interesting, especially how Plasma widgets can be managed, for showing, positioning \
and lifetime management. I am not sure how to apply this exactly to KMix, as the tray \
icon should typically always be shown (e.g. controlling the event volume) and KMix \
itself must also run all the time (e.g. for volume global shortcuts).

@Diego: Lets start promoting it in KDE4. If you put it in Extragear, I can add an \
option for it in KMix (as kind of "sneak preview"). If the applet is not installed, \
installation instructions can be shown instead. Then lets collect feedback from \
users, and head for full integration in KDE5/Plasma/QML2.


- Christian


-----------------------------------------------------------
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
> 
> 


--===============2699791652709332746==
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>





 <p>On August 17th, 2014, 5:42 p.m. UTC, <b>Diego Casella</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;">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>  </blockquote>





 <p>On August 18th, 2014, 11:34 p.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;">Diego, I am not sure what went so wrong here. I am defintely also not happy \
how things went on. What makes me most sad is, that you have a working QML applet \
that just needs really minor integration work. All these minimal issues like \
"scrollwheel not supported" (1) should really not stop us from giving the users the \
option. If they must have scrollwheel or media buttons, then they can use classic \
KMix dock. If they want a nicer integrated applet, they can use your applet (2). It \
can be a simple option in KMix's configuration dialog (Dock: Classic, Plasma, Off) \
instaed of (Dock: On, Off).</p> <p style="padding: 0;text-rendering: inherit;margin: \
0;line-height: inherit;white-space: inherit;">Sigh :-|</p> <p style="padding: \
0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: \
inherit;">Whatever your decision is, I can understand you Diego. If you want to \
integrate it would make me happy (see some technical tips below). If you do not want \
it or you cannot (essential missing plasma features that you do not want to add \
yourselves), then it is possibly better to close this review request.</p> <p \
style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: \
inherit;">--- Technical notes -----------</p> <p style="padding: 0;text-rendering: \
inherit;margin: 0;line-height: inherit;white-space: inherit;">About daemonizing KMix: \
That exists since forever: Simply disable "dock into systray" and close window, and \
KMix will vanish forever. The "KMix will show its GUI at every login" behavior/issue \
is gone since the support of hotplugging. To show (I cannot remember that you ever \
mentioned problems with that before) just do a DBUS call "show" on the Window (a \
standard for all Qt windows). If you want to try that, please head along. If </p> <p \
style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: \
inherit;">Side note (as you mentioned it): There is also a real daemon (technically a \
kded module), but KMixD daemon has no GUI, and proviees just a Mixer DBUS \
interface.</p> <hr style="text-rendering: inherit;margin: 0;padding: 0;white-space: \
normal;border: 1px solid #ddd;line-height: inherit;" /> <p style="padding: \
0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">(1) \
Some ramblings about QML/Plasma: Things seem to progress sometimes slowly or not at \
all in QML/Plasma. Though much has happened Plasma/QML seems to still lack features. \
Initially there were no sliders at all in Plasma, and I knew it would be a very rocky \
way to get all the features in, like to add missing stuff like "mousewheel over \
slider". Then I made a clear decision to keep my foot out of QML completely.</p> <p \
style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: \
inherit;">(2) I actually still do not understand if integration can now be done or \
not. There was this mysterious comment "it would be pretty trivial to add a check in \
the systemtray [...]" that sounds like somebody needs to take responsibilty and add \
that.</p></pre>  </blockquote>





 <p>On August 19th, 2014, 8:10 a.m. UTC, <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;"><p style="padding: \
0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: \
inherit;">&lt;disclaimer&gt;I am have not been involved with Plasma for almost a \
year, but I keep getting CC'd on the comments here. ;)&lt;/disclaimer&gt;</p> <p \
style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: \
inherit;">Firstly, Christian is the maintainer of KMix. It is ultimately his decision \
if this goes into kmix or not. Plasma developers can and should provide feedback \
because that is where the experience and expertise around QML in a Plasma workspace \
exists, but it is ultimately Christian's decision. If the Plasma team has some wishes \
in how KMix goes forward, they should coordinate those through Christian. This is \
basic common sense and courtesy for KDE's culture of development. So if Christian is \
happy with it, he should be able to push this into the kmix repository, end of \
story.</p> <p style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: inherit;">Wheel events: they are well supported by QML2. There \
is <em style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: normal;">no reason</em> that they are not made available here. \
The MouseArea item gets wheel events; if anything what is called for is a \
"acceptWheelEvents" property on the iconic version of applets and hook those up to \
some signals for applets to get access to. For all the discussion about it, someone \
could have instead put such a patch in place.</p> <p style="padding: \
0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: \
inherit;">Christian: as for your ramblings, they are unecessary and innacurate. I get \
that you would have liked to see this go faster and as the maintainer of kmix I \
totally understand that. But adding complaints about another project doesn't move \
anything further, it just increases the chances of people deciding not to work with \
each other. To address the content of your concerns: there have been sliders in \
Plasma pre- and post-QML for just about forever. There may have been short period of \
time when the QML widgets were first being made that there wasn't a QML slider, but \
that certainly wasn't a long period. Also, adding mousewheel over slider is a trivial \
patch if it isn't already there. (I haven't tested the QML2 slider for this at the \
time of writing, so it may already be there.)</p> <p style="padding: \
0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: \
inherit;">"There was this mysterious comment "it would be pretty trivial to add a \
check in the systemtray [...]" that sounds like somebody needs to take responsibilty \
and add that."</p> <p style="padding: 0;text-rendering: inherit;margin: \
0;line-height: inherit;white-space: inherit;">Let me take the "mystery" out of it: in \
Plasma 4 it had not yet been decided how precisely to handle this. It was a "nice to \
have" feature and many other things were still on the "must be done" list. In Plasma \
5 there is now an implementation: \
http://vizzzion.org/blog/2014/02/dbus-activated-systemtray-plasmoids/</p> <p \
style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: \
inherit;">So KMix should just need to have a DBus service it registers and the kmix \
applet should magically appear if it exists. What isn't there, at least afaict, is a \
way for kmix to know if the widget has appeared (and if not, show its old \
KSystemTrayIcon based UI). This could be done with another dbus service on the applet \
side that kmix watches for, but even then ... the more fundamental question for kmix \
looms:</p> <p style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: inherit;">Is KMix meant to be a tightly integrated part of a \
Plasma workspace, or is it intended to be used in any "random" desktop \
environment?</p> <p style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: inherit;">Personally, I think there is a lot to be gained both \
in terms of user experience and simplicity in development for kmix to be \
Plasma-focused, and I don't think there are nearly as many users of KMix outside of \
Plasma as there are that use KMix with Plasma (I would expect it to be a "rounding \
error" type number). But that's your call, Christian.</p> <p style="padding: \
0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">If \
KMix does focus on Plasma, then a QML plasmoid with DBus activation as described in \
Sebas' blog entry above is all that is needed and this could go into kmix tomorrow at \
Christian's descrection.</p></pre>  </blockquote>





 <p>On August 19th, 2014, 8:34 a.m. UTC, <b>Diego Casella</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;">@Christian and @Aaron: thanks for your replies :)</p> <p style="padding: \
0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">This \
morning I've modified a little the sourcecode in order to call "qdbus org.kde.kmix \
/kmix/KMixWindow org.qtproject.Qt.QWidget.show", disabled the "old" KMix tray icon, \
and it works. It's kinda clumsy, but it works :)<br style="padding: 0;text-rendering: \
inherit;margin: 0;line-height: inherit;white-space: normal;" /> Regular KMix widget \
gets displayed when the corresponding button is clicked, and it won't appear at login \
anymore. These are already great news for me :)</p> <p style="padding: \
0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Now, \
I think we have some options here:<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;"> ship \
this applet <em style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: normal;">as is</em> in KDE4, it is functioning afterall;</em> \
port and/extend/improve this applet to get the most out of KDE5/Plasma/QML2;</p> <p \
style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: \
inherit;">I'm ok with both of these, now you guys tell me what do you \
think.</p></pre>  </blockquote>





 <p>On August 19th, 2014, 8:40 a.m. UTC, <b>Marco Martin</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;">Could \
it have a standalone, maybe extragear release for KDE4?</p> <p style="padding: \
0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">then \
focus can be shifted to the plasma5 port</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;">Aaron, thanks for your comments and clear words. Please be assured my \
comment was not intended as a complaint. I sincerly believe that if one requires a \
new feature, it is ones own responsibility to take action. No one else too blame than \
oneself. I just wanted to explain, why I decided not to implement a QML applet \
myself. The text - as an immediate reaction on the former comment - reads very bad, \
though. It was not meant like that, and I do apologize.</p> <p style="padding: \
0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">On \
the practical side, I'd like to answer the question: "Is KMix meant to be a tightly \
integrated part of a Plasma workspace, or is it intended to be used in any "random" \
desktop environment?":  Well, optimal KDE integration will always get extra \
attention. But giving up cross-desktop functionality (Tray-protocol, MPRIS, DnD, ...) \
would be a step in the wrong direction. Thus, full functionality in KDE, and as much \
as possible under other desktops (XFCE, ...). A solution that is not cross-desktop \
compatible can be included, but not as default.</p> <p style="padding: \
0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">I now \
read the blog article \
http://vizzzion.org/blog/2014/02/dbus-activated-systemtray-plasmoids/ . Sounds rather \
interesting, especially how Plasma widgets can be managed, for showing, positioning \
and lifetime management. I am not sure how to apply this exactly to KMix, as the tray \
icon should typically always be shown (e.g. controlling the event volume) and KMix \
itself must also run all the time (e.g. for volume global shortcuts).</p> <p \
style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: \
inherit;">@Diego: Lets start promoting it in KDE4. If you put it in Extragear, I can \
add an option for it in KMix (as kind of "sneak preview"). If the applet is not \
installed, installation instructions can be shown instead. Then lets collect feedback \
from users, and head for full integration in KDE5/Plasma/QML2.</p></pre> <br />










<p>- Christian</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>


--===============2699791652709332746==--



_______________________________________________
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