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

List:       kde-panel-devel
Subject:    Re: Review Request 110122: Patch to handle notifications with low timeouts masking earlier important
From:       "Thomas Pfeiffer" <colomar () autistici ! org>
Date:       2013-04-26 23:54:11
Message-ID: 20130426235411.30387.18400 () vidsolbach ! de
[Download RAW message or body]

[Attachment #2 (multipart/alternative)]


> On April 25, 2013, 2:02 p.m., Aaron J. Seigo wrote:
> > plasma/generic/applets/notifications/contents/ui/LastNotificationPopup.qml, line \
> > 52 <http://git.reviewboard.kde.org/r/110122/diff/1/?file=140373#file140373line52>
> > 
> > no minimum is set here as there was in the prior code. there should probably be \
> > some sensible minimum applied.
> 
> James Pike wrote:
> The minimum is set on line 45.
> 
> James Pike wrote:
> I did however remove the 60 second maximum as I believe this is too low, many \
> people in my office have expressed a desire for higher notification timeouts. I \
> mark notifications from my boss with a timeout of several thousand seconds to \
> ensure I never miss them. Else he'll get angry. 
> James Pike wrote:
> Please feel free to re-instate the 60 second maximum though, it just means I'll \
> never be able to use KDE and have a non-angry boss at the same time :P 
> Thomas Pfeiffer wrote:
> If an information is so important that you must not miss it, it should not be \
> displayed as a notification (or at least not only). Notifications should only be \
> used for information that may be interesting, but not critical. If you have to set \
> timeouts to basically "forever", that's a sign that you're using a notification for \
> the wrong purpose. 
> James Pike wrote:
> And sure, I have audio notifications on top. Yet I still think, it's not up to you \
> to decide purpose, to decide the notification period. To decide on behalf of \
> everyone else. I didn't think that was the KDE philosophy at all, I thought the \
> philosophy was on user configuration. So IMO to decide on a blanket 60 second \
> maximum for everyone and enforce that is wrong. 
> Do you really wanna be the kinda person who tells an entire community about what \
> purpose "should be"? 
> James Pike wrote:
> Essentially I'm asking, why do you feel you have a mandate, as a WM, to override \
> hints given by user applications? Why do you assume a user application cannot have \
> a timeout above 60 seconds? Way too authoritarian for my likings... 
> James Pike wrote:
> The number of applications that would set long notifications maliciously VS the \
> number of people who may want notifications longer than 60 seconds... that's an \
> argument I'd bet large amounts of money on winning. 
> Thomas Pfeiffer wrote:
> I agree that if the API excepts any value for the timeout, values should not be \
> overridden at a later point. If a developer or user is allowed to set a timeout of \
> 1000s, than it should show for 1000s. 
> What this situation clearly shows me, though,  is a mismatch between the mental \
> model of the developers of the notification system and its users. A timeout of \
> 1000s is a workaround for "I don't want my notification to go away". And whenever \
> people work around something which is done by design, there is a gap between \
> designer and user. Therefore it seems to me that we have to rethink what purpose \
> the popup notifications are designed for and make it work well for that purpose \
> without the need for workarounds. And if users need a kinf of notification for \
> which the popup notifications were not made, we need a new kind of notification, \
> not a workaround.

And I apologize for at first not acknowledging your - justified - argument that a \
program should not accept a value at first and then override it later. My argument \
that a timeout of 1000s means that something is wrong dominated my mind at that \
point.


- Thomas


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


On April 25, 2013, 1:58 p.m., James Pike wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/110122/
> -----------------------------------------------------------
> 
> (Updated April 25, 2013, 1:58 p.m.)
> 
> 
> Review request for Plasma.
> 
> 
> Description
> -------
> 
> Currently the timeout of the last notification to arrive is used as a basis for \
> hiding the notification display. This means that a notification with a high timeout \
> can get hidden by a new notification arriving with a much lower timeout. 
> This patch simply changes the behaviour to, when expiring a timer, go back through \
> the stack and display the most recent unexpired timer. If all timers are expired \
> the notification is closed as before. 
> 
> This addresses bug 318295.
> http://bugs.kde.org/show_bug.cgi?id=318295
> 
> 
> Diffs
> -----
> 
> plasma/generic/applets/notifications/contents/ui/LastNotificationPopup.qml 2fa1b11 
> 
> Diff: http://git.reviewboard.kde.org/r/110122/diff/
> 
> 
> Testing
> -------
> 
> Test script in https://bugs.kde.org/show_bug.cgi?id=318295
> 
> 
> Thanks,
> 
> James Pike
> 
> 


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










<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: \
10px;">  <p style="margin-top: 0;">On April 25th, 2013, 2:02 p.m. UTC, <b>Aaron J. \
Seigo</b> wrote:</p>  <blockquote style="margin-left: 1em; border-left: 2px solid \
#d0d0d0; padding-left: 10px;">  



<table width="100%" border="0" bgcolor="white" style="border: 1px solid #C0C0C0; \
border-collapse: collapse; margin: 2px padding: 2px;">  <thead>
  <tr>
   <th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid #C0C0C0; \
font-size: 9pt; padding: 4px 8px; text-align: left;">  <a \
href="http://git.reviewboard.kde.org/r/110122/diff/1/?file=140373#file140373line52" \
style="color: black; font-weight: bold; text-decoration: \
underline;">plasma/generic/applets/notifications/contents/ui/LastNotificationPopup.qml</a>
  <span style="font-weight: normal;">

     (Diff revision 1)

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



 
 

 <tbody>

  <tr>
    <th bgcolor="#e9eaa8" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2">47</font></th>  <td bgcolor="#fdfebc" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; ">        <span \
class="nx">lastNotificationTimer</span><span class="p">.</span><span \
class="nx">interval</span> <span class="o">=</span> <span class="nb"><span \
class="hl">Math</span></span><span class="p"><span class="hl">.</span></span><span \
class="nx"><span class="hl">max</span></span><span class="p"><span \
class="hl">(</span></span><span class="mi"><span class="hl">4000</span></span><span \
class="p"><span class="hl">,</span></span><span class="hl"> </span><span \
class="nb"><span class="hl">Math</span></span><span class="p"><span \
class="hl">.</span></span><span class="nx"><span class="hl">min</span></span><span \
class="p"><span class="hl">(</span></span><span class="mi"><span \
class="hl">60</span></span><span class="o"><span class="hl">*</span></span><span \
class="mi"><span class="hl">1000</span></span><span class="p"><span \
class="hl">,</span></span><span class="hl"> </span><span class  \
="nx">notification<span class="hl">sModel</span></span><span class="p"><span \
class="hl">.</span></span><span class="nx"><span class="hl">get</span></span><span \
class="p"><span class="hl">(</span></span><span class="mi"><span \
class="hl">0</span></span><span class="p"><span class="hl">)</span>.</span><span \
class="nx">expireTimeout</span><span class="p"><span \
class="hl">))</span></span></pre></td>  <th bgcolor="#e9eaa8" style="border-left: 1px \
solid #C0C0C0; border-right: 1px solid #C0C0C0;" align="right"><font \
size="2">52</font></th>  <td bgcolor="#fdfebc" width="50%"><pre style="font-size: \
8pt; line-height: 140%; margin: 0; ">        <span \
class="nx">lastNotificationTimer</span><span class="p">.</span><span \
class="nx">interval</span> <span class="o">=</span> <span \
class="nx">notification</span><span class="p">.</span><span \
class="nx">expireTimeout</span></pre></td>  </tr>

 </tbody>

</table>

  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: \
-pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">no minimum is set here \
as there was in the prior code. there should probably be some sensible minimum \
applied.</pre>  </blockquote>



 <p>On April 25th, 2013, 2:09 p.m. UTC, <b>James Pike</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;">The minimum is set on \
line 45.</pre>  </blockquote>





 <p>On April 25th, 2013, 2:12 p.m. UTC, <b>James Pike</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;">I did however remove the \
60 second maximum as I believe this is too low, many people in my office have \
expressed a desire for higher notification timeouts. I mark notifications from my \
boss with a timeout of several thousand seconds to ensure I never miss them. Else \
he&#39;ll get angry.</pre>  </blockquote>





 <p>On April 25th, 2013, 2:20 p.m. UTC, <b>James Pike</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;">Please feel free to \
re-instate the 60 second maximum though, it just means I&#39;ll never be able to use \
KDE and have a non-angry boss at the same time :P</pre>  </blockquote>





 <p>On April 26th, 2013, 2:07 p.m. UTC, <b>Thomas Pfeiffer</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;">If an information is so \
important that you must not miss it, it should not be displayed as a notification (or \
at least not only). Notifications should only be used for information that may be \
interesting, but not critical. If you have to set timeouts to basically \
&quot;forever&quot;, that&#39;s a sign that you&#39;re using a notification for the \
wrong purpose.</pre>  </blockquote>





 <p>On April 26th, 2013, 10:55 p.m. UTC, <b>James Pike</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;">And sure, I have audio \
notifications on top. Yet I still think, it&#39;s not up to you to decide purpose, to \
decide the notification period. To decide on behalf of everyone else. I didn&#39;t \
think that was the KDE philosophy at all, I thought the philosophy was on user \
configuration. So IMO to decide on a blanket 60 second maximum for everyone and \
enforce that is wrong.

Do you really wanna be the kinda person who tells an entire community about what \
purpose &quot;should be&quot;?</pre>  </blockquote>





 <p>On April 26th, 2013, 11:01 p.m. UTC, <b>James Pike</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;">Essentially I&#39;m \
asking, why do you feel you have a mandate, as a WM, to override hints given by user \
applications? Why do you assume a user application cannot have a timeout above 60 \
seconds? Way too authoritarian for my likings...</pre>  </blockquote>





 <p>On April 26th, 2013, 11:04 p.m. UTC, <b>James Pike</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;">The number of \
applications that would set long notifications maliciously VS the number of people \
who may want notifications longer than 60 seconds... that&#39;s an argument I&#39;d \
bet large amounts of money on winning.</pre>  </blockquote>





 <p>On April 26th, 2013, 11:37 p.m. UTC, <b>Thomas Pfeiffer</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;">I agree that if the API \
excepts any value for the timeout, values should not be overridden at a later point. \
If a developer or user is allowed to set a timeout of 1000s, than it should show for \
1000s.

What this situation clearly shows me, though,  is a mismatch between the mental model \
of the developers of the notification system and its users. A timeout of 1000s is a \
workaround for &quot;I don&#39;t want my notification to go away&quot;. And whenever \
people work around something which is done by design, there is a gap between designer \
and user. Therefore it seems to me that we have to rethink what purpose the popup \
notifications are designed for and make it work well for that purpose without the \
need for workarounds. And if users need a kinf of notification for which the popup \
notifications were not made, we need a new kind of notification, not a \
workaround.</pre>  </blockquote>







</blockquote>
<pre style="margin-left: 1em; white-space: pre-wrap; white-space: -moz-pre-wrap; \
white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">And I \
apologize for at first not acknowledging your - justified - argument that a program \
should not accept a value at first and then override it later. My argument that a \
timeout of 1000s means that something is wrong dominated my mind at that point.</pre> \
<br />




<p>- Thomas</p>


<br />
<p>On April 25th, 2013, 1:58 p.m. UTC, James Pike wrote:</p>








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

<div>Review request for Plasma.</div>
<div>By James Pike.</div>


<p style="color: grey;"><i>Updated April 25, 2013, 1:58 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;">Currently the timeout of the last notification to arrive is used as a \
basis for hiding the notification display. This means that a notification with a high \
timeout can get hidden by a new notification arriving with a much lower timeout.

This patch simply changes the behaviour to, when expiring a timer, go back through \
the stack and display the most recent unexpired timer. If all timers are expired the \
notification is closed as before.</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;">Test script in https://bugs.kde.org/show_bug.cgi?id=318295</pre>  </td>
 </tr>
</table>



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


 <a href="http://bugs.kde.org/show_bug.cgi?id=318295">318295</a>


</div>


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

 <li>plasma/generic/applets/notifications/contents/ui/LastNotificationPopup.qml <span \
style="color: grey">(2fa1b11)</span></li>

</ul>

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







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