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

List:       kde-panel-devel
Subject:    Re: Review Request 127540: [plasma-pa] Don't show virtual streams which aren't displayed correctly
From:       Yoann Laissus <yoann.laissus () gmail ! com>
Date:       2016-04-05 17:23:15
Message-ID: 20160405172315.8809.15095 () mimi ! kde ! org
[Download RAW message or body]

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


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

(Updated avr. 5, 2016, 5:23 après-midi)


Review request for Plasma.


Changes
-------

,Thanks for the review.

From your example, I can't manage to get mapRowFromSource() and get() working in \
filterCallback. It's probably because, at this time, the filtered model isn't yet \
filled with data. I take a more classic approach by calling directly source model \
methods. I also define the custom NonVirtualStreamModel in its own QML file to avoid \
duplication in multiple places.

I keep AbstractStreamModel in order to be able to retrieve the PulseObject role from \
the NonVirtualStreamModel qml object.

I also fixed virtual stream names and icons.

The branch has been updated here : \
https://quickgit.kde.org/?p=clones%2Fplasma-pa%2Flaissus%2Fplasma-pa.git&a=shortlog&h=bfe3f9ab7d775511815995f4ea9c1453c63dfbdd



Repository: plasma-pa


Description
-------

Virtual streams appear when virtual devices are defined in PulseAudio configuration \
(eg: combined output for classic analog and HDMI) Those virtual streams aren't \
properly shown in both the KCM and the applet, producing ghost entries.

Screens attached.

I added a new property to the Stream object to identify if a stream is real or not.
Then, a proxy model takes care of the filtering in the KCM and the applet.
For now, only real devices are shown. But we could add a combobox later, at least in \
the KCM, to be able to display Virtual, Real or both kind of streams. (like \
pavucontrol)

The branch is here : \
https://quickgit.kde.org/?p=clones%2Fplasma-pa%2Flaissus%2Fplasma-pa.git&a=shortlog&h=014d6925b0911f9db2dc5f55cec5e5a9a84df8c9


PS : Other review requests are coming (sink selection for streams) but needs some \
rebasing with David Rosca's latest patches.


Diffs (updated)
-----

  applet/contents/ui/StreamListItem.qml a47be1cb65d634e49bb9d97f11853ff667f9aa7d 
  applet/contents/ui/main.qml cbe63ced145cd6e755511d025df84a536976eac4 
  src/kcm/package/contents/ui/StreamListItem.qml \
c9ec36c31ef55dbc0281d9807f45f0e48bb4cc41   src/kcm/package/contents/ui/StreamView.qml \
b08c87a2452cadd13bae5b0b94b57c3d8f531b3b   src/kcm/package/contents/ui/main.qml \
3360201dd8e2a4b5ab03c82c94e5c79d8af9ea4c   src/pulseaudio.h \
9fc9656e84ee4761d9e8dd9d2a7b8c9d0af9e517   src/pulseaudio.cpp \
14887849a04ff2fb3ded5d0d5e60ec3ce4c40745   src/qml/CMakeLists.txt \
0c2edb305d2745fd857a552c058cf1b7e652f3eb   src/qml/ClientIcon.qml \
83545a1a446c6c07611cb59cdc8a7f11e81407e3   src/qml/NonVirtualStreamFilterModel.qml \
PRE-CREATION   src/qml/plugin.cpp 5743253f9a7b8283d2bcbeeb081d0706ba4c7b12 
  src/qml/qmldir 88715cac57d6b8c9c6854caa54b0e3d3f773014a 
  src/stream.h b5e09ebaaa0b812f3db81e269671640c783e7c87 
  src/stream.cpp d8f390805e96bbc2dc69ca02520c049b2ca0a4b6 

Diff: https://git.reviewboard.kde.org/r/127540/diff/


Testing
-------


File Attachments
----------------

KCM
  https://git.reviewboard.kde.org/media/uploaded/files/2016/03/31/fd74b564-2e56-45e2-88b9-6bf526f98311__Screenshot_20160331_225655.png
 Applet
  https://git.reviewboard.kde.org/media/uploaded/files/2016/03/31/44b3c277-ee01-4dbf-99f7-dc27edc592e9__Screenshot_20160331_225554.png
 pavucontrol
  https://git.reviewboard.kde.org/media/uploaded/files/2016/03/31/5a872915-dd32-4558-9e4e-947f92f75a70__Screenshot_20160331_231548.png
 KCM
  https://git.reviewboard.kde.org/media/uploaded/files/2016/03/31/cdf983ea-032f-4246-95b8-ba9a4d228ccd__Screenshot_20160331_232502.png
 Applet
  https://git.reviewboard.kde.org/media/uploaded/files/2016/03/31/1a3d3e3a-6078-445d-84c4-8929cb6243a8__Screenshot_20160331_232444.png



Thanks,

Yoann Laissus


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




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




<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.</div>
<div>By Yoann Laissus.</div>


<p style="color: grey;"><i>Updated avr. 5, 2016, 5:23 après-midi</i></p>



<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Changes</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;">,Thanks for the review.

From your example, I can&#39;t manage to get mapRowFromSource() and get() working in \
filterCallback. It&#39;s probably because, at this time, the filtered model isn&#39;t \
yet filled with data. I take a more classic approach by calling directly source model \
methods. I also define the custom NonVirtualStreamModel in its own QML file to avoid \
duplication in multiple places.

I keep AbstractStreamModel in order to be able to retrieve the PulseObject role from \
the NonVirtualStreamModel qml object.

I also fixed virtual stream names and icons.

The branch has been updated here : \
https://quickgit.kde.org/?p=clones%2Fplasma-pa%2Flaissus%2Fplasma-pa.git&amp;a=shortlog&amp;h=bfe3f9ab7d775511815995f4ea9c1453c63dfbdd</pre>
  </td>
 </tr>
</table>







<div style="margin-top: 1.5em;">
 <b style="color: #575012; font-size: 10pt;">Repository: </b>
plasma-pa
</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;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: inherit;">Virtual streams appear when virtual devices are \
defined in PulseAudio configuration (eg: combined output for classic analog and HDMI) \
Those virtual streams aren't properly shown in both the KCM and the applet, producing \
ghost entries.</p> <p style="padding: 0;text-rendering: inherit;margin: \
0;line-height: inherit;white-space: inherit;">Screens attached.</p> <p \
style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: \
inherit;">I added a new property to the Stream object to identify if a stream is real \
or not. Then, a proxy model takes care of the filtering in the KCM and the applet.
For now, only real devices are shown. But we could add a combobox later, at least in \
the KCM, to be able to display Virtual, Real or both kind of streams. (like \
pavucontrol)</p> <p style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: inherit;">The branch is here : \
https://quickgit.kde.org/?p=clones%2Fplasma-pa%2Flaissus%2Fplasma-pa.git&amp;a=shortlog&amp;h=014d6925b0911f9db2dc5f55cec5e5a9a84df8c9</p>
 <p style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: inherit;">PS : Other review requests are coming (sink selection \
for streams) but needs some rebasing with David Rosca's latest patches.</p></pre>  \
</td>  </tr>
</table>



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

 <li>applet/contents/ui/StreamListItem.qml <span style="color: \
grey">(a47be1cb65d634e49bb9d97f11853ff667f9aa7d)</span></li>

 <li>applet/contents/ui/main.qml <span style="color: \
grey">(cbe63ced145cd6e755511d025df84a536976eac4)</span></li>

 <li>src/kcm/package/contents/ui/StreamListItem.qml <span style="color: \
grey">(c9ec36c31ef55dbc0281d9807f45f0e48bb4cc41)</span></li>

 <li>src/kcm/package/contents/ui/StreamView.qml <span style="color: \
grey">(b08c87a2452cadd13bae5b0b94b57c3d8f531b3b)</span></li>

 <li>src/kcm/package/contents/ui/main.qml <span style="color: \
grey">(3360201dd8e2a4b5ab03c82c94e5c79d8af9ea4c)</span></li>

 <li>src/pulseaudio.h <span style="color: \
grey">(9fc9656e84ee4761d9e8dd9d2a7b8c9d0af9e517)</span></li>

 <li>src/pulseaudio.cpp <span style="color: \
grey">(14887849a04ff2fb3ded5d0d5e60ec3ce4c40745)</span></li>

 <li>src/qml/CMakeLists.txt <span style="color: \
grey">(0c2edb305d2745fd857a552c058cf1b7e652f3eb)</span></li>

 <li>src/qml/ClientIcon.qml <span style="color: \
grey">(83545a1a446c6c07611cb59cdc8a7f11e81407e3)</span></li>

 <li>src/qml/NonVirtualStreamFilterModel.qml <span style="color: \
grey">(PRE-CREATION)</span></li>

 <li>src/qml/plugin.cpp <span style="color: \
grey">(5743253f9a7b8283d2bcbeeb081d0706ba4c7b12)</span></li>

 <li>src/qml/qmldir <span style="color: \
grey">(88715cac57d6b8c9c6854caa54b0e3d3f773014a)</span></li>

 <li>src/stream.h <span style="color: \
grey">(b5e09ebaaa0b812f3db81e269671640c783e7c87)</span></li>

 <li>src/stream.cpp <span style="color: \
grey">(d8f390805e96bbc2dc69ca02520c049b2ca0a4b6)</span></li>

</ul>

<p><a href="https://git.reviewboard.kde.org/r/127540/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/2016/03/31/fd74b564-2e56-45e2-88b9-6bf526f98311__Screenshot_20160331_225655.png">KCM</a></li>


 <li><a href="https://git.reviewboard.kde.org/media/uploaded/files/2016/03/31/44b3c277-ee01-4dbf-99f7-dc27edc592e9__Screenshot_20160331_225554.png">Applet</a></li>


 <li><a href="https://git.reviewboard.kde.org/media/uploaded/files/2016/03/31/5a872915 \
-dd32-4558-9e4e-947f92f75a70__Screenshot_20160331_231548.png">pavucontrol</a></li>

 <li><a href="https://git.reviewboard.kde.org/media/uploaded/files/2016/03/31/cdf983ea-032f-4246-95b8-ba9a4d228ccd__Screenshot_20160331_232502.png">KCM</a></li>


 <li><a href="https://git.reviewboard.kde.org/media/uploaded/files/2016/03/31/1a3d3e3a-6078-445d-84c4-8929cb6243a8__Screenshot_20160331_232444.png">Applet</a></li>


</ul>




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



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


--===============2284618436348713713==--


[Attachment #3 (text/plain)]

_______________________________________________
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