<div dir="ltr"><font face="monospace, monospace">Hello all,<br><br>I think there should be a progress hint in the notification spec </font><font face="monospace, monospace">(as in</font><div><font face="monospace, monospace">showing a progress bar inside notifications). Progress bars inside a</font></div><div><font face="monospace, monospace">notification can be useful in many ways:</font><div><font face="monospace, monospace"><br>* Show file operation status (copy, upload, download)<br>* Show task status (steps until completion, etc)<br><br>But you could also have simple progress indicators (represented as bar,</font></div><div><font face="monospace, monospace">but not updating) which can display other kinds of information:</font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">* Background setup wizard step indicator</font></div><div><font face="monospace, monospace">* "Hard drive nearly full" notification with current usage</font></div><div><font face="monospace, monospace">* Internet quota warning notification with current usage</font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">My suggestions for updating the spec would be the following:</font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">Servers supporting progress bars should add the Server Capability</font></div><div><font face="monospace, monospace">"progress". Description: Supports showing and updating progress bars.</font></div><div><font face="monospace, monospace">If returned, the server must support the "progress" and</font><span style="font-family:monospace,monospace"> "progress-label"</span></div><div><span style="font-family:monospace,monospace">hints.</span></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">Add "progress" of type byte to the standard hints. Valid values would be</font></div><div><font face="monospace, monospace">integers between incl. 0 and incl. 100 to represent progress. A value of</font></div><div><font face="monospace, monospace">-1 should be an indeterminate progress bar. For example this would be the</font></div><div><font face="monospace, monospace">state when starting a file transfer before a connection has been</font></div><div><font face="monospace, monospace">established. In an ASCII notification server this could be realized using</font></div><div><font face="monospace, monospace">an animated spinning \|/-</font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">Values over 100 should be clamped to 100, values under 0 (not including</font></div><div><font face="monospace, monospace">special values such as -1, possibly more in the future) should simply be</font></div><div><font face="monospace, monospace">discarded and the notification server should not show a progress bar.</font></div><div><font face="monospace, monospace"><br></font></div><div><div><font face="monospace, monospace">Additionally add "progress-label" of type string to the standard hints. If this is set the progress bar should have a label (inside it or near it)</font></div><div><font face="monospace, monospace">with the content of this string. If the string is empty the label should</font></div><div><font face="monospace, monospace">be hidden. If this hint is not specified the server should decide what it</font></div><div><font face="monospace, monospace">shows as default label. The server must be able to show this string in</font></div><div><font face="monospace, monospace">some </font><font face="monospace, monospace">way, if </font><span style="font-family:monospace,monospace">provided.</span></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">Updating a progress bar would simply call the existing Notify method and</font></div><div><font face="monospace, monospace">use the replaces_id parameter. To ensure a fluent desktop experience this</font></div><div><font face="monospace, monospace">should not be called more than a few times per second. But also to make</font></div><div><font face="monospace, monospace">sure that no already closed notifications are still trying to be updated</font></div><div><font face="monospace, monospace">by the client.</font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">An ongoing notification which shows an always updating status should use</font></div><div><font face="monospace, monospace">the existing </font><span style="color:rgb(0,0,0);font-family:monospace;font-size:medium">resident flag to ensure that it stays open. The existing</span></div><div><span style="color:rgb(0,0,0);font-family:monospace;font-size:medium">actions argument can be used to implement a cancel button by the caller</span></div><div><span style="color:rgb(0,0,0);font-family:monospace;font-size:medium">side.</span></div><div><span style="color:rgb(0,0,0);font-family:monospace;font-size:medium"><br></span></div><div><span style="color:rgb(0,0,0);font-family:monospace;font-size:medium">Adding this to the spec would make file and network operations more</span></div><div><span style="color:rgb(0,0,0);font-family:monospace;font-size:medium">transparent and accessible. Additionally it would standardize DE specific</span></div><div><span style="color:rgb(0,0,0);font-family:monospace;font-size:medium">solutions such </span><span style="color:rgb(0,0,0);font-family:monospace;font-size:medium">as KNotifications/KUI JobView in KDE.</span></div><div><font face="monospace, monospace"><br></font></div><font face="monospace, monospace">Thanks,<br><br>Jan Jurzitza</font></div></div></div>