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

List:       kde-panel-devel
Subject:    Re: Review Request: KMix Declarative Applet - First attempt
From:       "Igor Poboiko" <igor.poboiko () gmail ! com>
Date:       2012-04-20 13:14:51
Message-ID: 20120420131451.17880.66559 () vidsolbach ! de
[Download RAW message or body]

[Attachment #2 (multipart/alternative)]


> On March 28, 2012, 6:06 p.m., Marco Martin wrote:
> > to me the blocker is mostly having to have kmix running...
> > since actual kmix would be (sill ;) needed for the actual complete ui... what \
> > about this? 
> > a modification in the systray applet, that queries sycoca for offers of plasmoids \
> > that can manage a determined statusnotifier item, so it would ask for something \
> > providing KMix (better if the ksni id is renamed in org.kde.kmix) then will be \
> > the systray itself that either instantiates the kmix applet, or just doesn't show \
> > the kmix icon if the applet was explicitly created by the user. 
> > idea is still a bit nebulous, did i explain myself enough? ;)
> 
> Diego Casella wrote:
> From a quick look of the code, there's the chance to build the daemon too.. If so, \
> there's no need to do all that work :) About the need of the complete UI, we need \
> it only for one purpose: select which channel will be the Master channel. I can't \
> list all the available channels inside the standard config page (the one which \
> appears when you click on the wrench icon in the applet handle), because of \
> scripted plasmoid limitiations. But, thanks to the awesome progress made with \
> plasmacomponents, I could use your fancy Dialog item to show all the channels \
> available, and allow the user to choose which one will be the Master channel :) In \
> this way, we could drop the KMix windowed app, keep only the daemon, and talk to it \
> with one (or more) kmix applet. What do you think?

I think the windowed app will still be needed, since we ain't going to show all the \
sliders in the applet (it will be a complete mess). There may be few sliders users \
don't want to see in applet but still want to control sometimes (as for me, for \
example, capture sliders). Daemonizing is a good idea, but we should think how \
windowed app should work with it. Also, have you seen my implementation of applet ( \
http://quickgit.kde.org/index.php?p=scratch%2Fpoboiko%2Fkmix-plasmoid.git&a=tree )? \
It isn't declarative, but it has more features (since it hasn't limitations scripted \
plasmoids have).


- Igor


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://svn.reviewboard.kde.org/r/6928/#review10739
-----------------------------------------------------------


On March 28, 2012, 6:49 p.m., Diego Casella wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://svn.reviewboard.kde.org/r/6928/
> -----------------------------------------------------------
> 
> (Updated March 28, 2012, 6:49 p.m.)
> 
> 
> Review request for Plasma, Aaron Seigo, Marco Martin, and Christian Esken.
> 
> 
> Description
> -------
> 
> First attempt of making a declarative kmix applet for plasma.
> What the apple does right now:
> * modifies the volume level and the mute/unmute status of the master channel;
> * reacts to changes of the volume level/status (i.e. made with multimedia keys);
> * disables the slider if the channel gets muted, and enables it back as soon as the \
>                 channel gets unmuted;
> * collapses gracefully in a popup icon when placed inside the panel.
> 
> 
> Diffs
> -----
> 
> trunk/KDE/kdemultimedia/kmix/plasma/CMakeLists.txt 1287513 
> trunk/KDE/kdemultimedia/kmix/plasma/kmix-applet/contents/code/VerticalControl.qml \
> PRE-CREATION  trunk/KDE/kdemultimedia/kmix/plasma/kmix-applet/contents/code/kmixapplet.qml \
> PRE-CREATION  trunk/KDE/kdemultimedia/kmix/plasma/kmix-applet/metadata.desktop \
> PRE-CREATION  
> Diff: http://svn.reviewboard.kde.org/r/6928/diff/
> 
> 
> Testing
> -------
> 
> Tested against r1287510. For basic audio management it works great imho.
> 
> However, there is a lot of room for improvements, but this is gonna need some extra \
>                 work outside the kmix applet scope:
> * first of all, the applet need kmix executable to run in order to perform the dbus \
> calls. You can of course disable KMix tray icon feature but, at every login, KMix \
> mainwindow will be shown and the user must closeby hand. This is a kind of ugly \
>                 behavior that should be avoided;
> * it will be great to great to add an action to allow the user to select the master \
> channel (by reusing KMix "Select Master Channel" widget), but this will require \
>                 tweaking KMix dbus interface;
> * as you noticed in the screenshots, the applet in the panel and in the desktop \
> have different size even if it __is__ actually the same: something is going wrong \
> when plasma shows the PopupApplet. This behavior was even worse when I started \
> implementing a "flip" action to change the layout from horizontal to vertical and \
> vice-versa, and for this reason I gave up and simply stick with the vertical \
> layout. 
> Could this applet be shipped in the current status, or should we wait for all the \
> aforementioned improvements? Comments/ideas/suggestions?
> 
> Cheers :)
> 
> 
> Screenshots
> -----------
> 
> Applet look in panel and desktop
> http://svn.reviewboard.kde.org/r/6928/s/627/
> Applet look in panel and desktop - audio muted
> http://svn.reviewboard.kde.org/r/6928/s/628/
> 
> 
> Thanks,
> 
> Diego Casella
> 
> 


[Attachment #5 (text/html)]

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





<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: \
10px;">  <p style="margin-top: 0;">On March 28th, 2012, 6:06 p.m., <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;">to me the blocker is mostly having to have kmix running... since actual \
kmix would be (sill ;) needed for the actual complete ui... what about this?

a modification in the systray applet, that queries sycoca for offers of plasmoids \
that can manage a determined statusnotifier item, so it would ask for something \
providing KMix (better if the ksni id is renamed in org.kde.kmix) then will be the \
systray itself that either instantiates the kmix applet, or just doesn&#39;t show the \
kmix icon if the applet was explicitly created by the user.

idea is still a bit nebulous, did i explain myself enough? ;)</pre>
 </blockquote>




 <p>On March 28th, 2012, 7:42 p.m., <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;">From a quick look of the \
code, there&#39;s the chance to build the daemon too.. If so, there&#39;s no need to \
do all that work :) About the need of the complete UI, we need it only for one \
purpose: select which channel will be the Master channel. I can&#39;t list all the \
available channels inside the standard config page (the one which appears when you \
click on the wrench icon in the applet handle), because of scripted plasmoid \
limitiations. But, thanks to the awesome progress made with plasmacomponents, I could \
use your fancy Dialog item to show all the channels available, and allow the user to \
choose which one will be the Master channel :) In this way, we could drop the KMix \
windowed app, keep only the daemon, and talk to it with one (or more) kmix applet. \
What do you think? </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;">I think the windowed app \
will still be needed, since we ain&#39;t going to show all the sliders in the applet \
(it will be a complete mess). There may be few sliders users don&#39;t want to see in \
applet but still want to control sometimes (as for me, for example, capture sliders). \
Daemonizing is a good idea, but we should think how windowed app should work with it. \
Also, have you seen my implementation of applet ( \
http://quickgit.kde.org/index.php?p=scratch%2Fpoboiko%2Fkmix-plasmoid.git&amp;a=tree \
)? It isn&#39;t declarative, but it has more features (since it hasn&#39;t \
limitations scripted plasmoids have).</pre> <br />








<p>- Igor</p>


<br />
<p>On March 28th, 2012, 6:49 p.m., Diego Casella wrote:</p>






<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" \
style="background-image: \
url('http://svn.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, Aaron Seigo, Marco Martin, and Christian Esken.</div>
<div>By Diego Casella.</div>


<p style="color: grey;"><i>Updated March 28, 2012, 6:49 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;">First attempt of making a declarative kmix applet for plasma. What the \
                apple does right now:
* modifies the volume level and the mute/unmute status of the master channel;
* reacts to changes of the volume level/status (i.e. made with multimedia keys);
* disables the slider if the channel gets muted, and enables it back as soon as the \
                channel gets unmuted;
* collapses gracefully in a popup icon when placed inside the panel.</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 r1287510. For basic audio management it works great imho.

However, there is a lot of room for improvements, but this is gonna need some extra \
                work outside the kmix applet scope:
* first of all, the applet need kmix executable to run in order to perform the dbus \
calls. You can of course disable KMix tray icon feature but, at every login, KMix \
mainwindow will be shown and the user must closeby hand. This is a kind of ugly \
                behavior that should be avoided;
* it will be great to great to add an action to allow the user to select the master \
channel (by reusing KMix &quot;Select Master Channel&quot; widget), but this will \
                require tweaking KMix dbus interface;
* as you noticed in the screenshots, the applet in the panel and in the desktop have \
different size even if it __is__ actually the same: something is going wrong when \
plasma shows the PopupApplet. This behavior was even worse when I started \
implementing a &quot;flip&quot; action to change the layout from horizontal to \
vertical and vice-versa, and for this reason I gave up and simply stick with the \
vertical layout.

Could this applet be shipped in the current status, or should we wait for all the \
aforementioned improvements? Comments/ideas/suggestions?

Cheers :)</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>trunk/KDE/kdemultimedia/kmix/plasma/CMakeLists.txt <span style="color: \
grey">(1287513)</span></li>

 <li>trunk/KDE/kdemultimedia/kmix/plasma/kmix-applet/contents/code/VerticalControl.qml \
<span style="color: grey">(PRE-CREATION)</span></li>

 <li>trunk/KDE/kdemultimedia/kmix/plasma/kmix-applet/contents/code/kmixapplet.qml \
<span style="color: grey">(PRE-CREATION)</span></li>

 <li>trunk/KDE/kdemultimedia/kmix/plasma/kmix-applet/metadata.desktop <span \
style="color: grey">(PRE-CREATION)</span></li>

</ul>

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



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

<div>

 <a href="http://svn.reviewboard.kde.org/r/6928/s/627/"><img \
src="http://svn.reviewboard.kde.org/media/uploaded/images/2012/03/28/kmixapplet_400x100.png" \
style="border: 1px black solid;" alt="Applet look in panel and desktop" /></a>

 <a href="http://svn.reviewboard.kde.org/r/6928/s/628/"><img \
src="http://svn.reviewboard.kde.org/media/uploaded/images/2012/03/28/kmixapplet_muted_400x100.png" \
style="border: 1px black solid;" alt="Applet look in panel and desktop - audio muted" \
/></a>

</div>


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








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



_______________________________________________
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