<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://reviewboard.kde.org/r/5167/">http://reviewboard.kde.org/r/5167/</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 30th, 2010, 10:08 p.m., <b>jmho</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'm wondering if there is a more canonical way of preventing the screensaver starting. Applications which provide a presentation mode or video players should have the same problem to solve.</pre>
</blockquote>
<p>On August 31st, 2010, 6:13 a.m., <b>Dennis Nienhüser</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;">Hm, the inhibition comes down to
#include <QtMobility>
new QSystemScreenSaver( this )->setScreenSaverInhibit();
It works on Maemo, Linux, and possibly every other platform supported by Qt. Not sure how a better solution should look like? I'd guess other solutions not using QtMobility are full of platform dependent #ifdefs.
The rest of the code is there to realize it as a Marble plugin, which adds some code overhead, but has the neat side-effect of adding the QtMobility dependency only to the inhibit-screensaver plugin. The marblewidget lib and the marble applications don't need to know / link against QtMobility.
</pre>
</blockquote>
<p>On August 31st, 2010, 7:03 a.m., <b>Torsten Rahn</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;">Well, to be honest this patch looks a bit odd to me as well. I know it's a pragmatic approach (and usually I like those), but still:
* For some feature that would be regarded a common use case on all platforms we link ("optionally") against yet another library that isn't even shipped with distributions yet. I do understand that in the future Qt Mobility might become important to rely on - at least on "mobile" devices. Still I wonder whether the library is "there" yet.
* The way it is implemented as an "invisible" render plugin looks a bit like a workaround. Do we need another new plugin interface?
* The feature touches the "energy saving" dept. We haven't much taken this subject into account yet (except for avoiding timers in Marble). Is there some other "big picture" for energy saving/avoidance of waking up the CPU where this kind of plugin would fit in better?
</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;">> * For some feature that would be regarded a common use case on all platforms we link ("optionally") against yet another library that isn't even shipped with distributions yet. I do understand that in the future Qt Mobility might become important to rely on - at least on "mobile" devices. Still I wonder whether the library is "there" yet.
Well, it works on Maemo where it is most important. If other platforms don't work as well yet, it doesn't hurt much if the plugin is not compiled. I could use the Maemo libraries directly like in the Maemo position provider, but why choose a specific solution if a more general one is there?
> * The way it is implemented as an "invisible" render plugin looks a bit like a workaround. Do we need another new plugin interface?
I thought about that, but finally decided for stressing the term render plugin a bit and use the existing interface. Mainly for two reasons: 1) Pragmatic (get it done fast) 2) Unsure about similar use cases to have it fit into a common plugin interface.
> * The feature touches the "energy saving" dept. We haven't much taken this subject into account yet (except for avoiding timers in Marble). Is there some other "big picture" for energy saving/avoidance of waking up the CPU where this kind of plugin would fit in better?
I don't think energy saving is the primary concern here: Driving around with Marble on the N900 without this plugin, you have to touch the screen every two minutes (the longest period you can configure the screen not to go off as a user). This makes it unusable for turn-by-turn navigation.
</pre>
<br />
<p>- Dennis</p>
<br />
<p>On August 27th, 2010, 11:31 a.m., Dennis Nienhüser wrote:</p>
<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('http://reviewboard.kde.orgrb/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 marble.</div>
<div>By Dennis Nienhüser.</div>
<p style="color: grey;"><i>Updated 2010-08-27 11:31:52</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;">In turn-by-turn navigation mode you usually just watch the screen, but do not "use" the system. A screensaver (screen blanking and locking on Maemo) coming in at that point is highly annoying. This patch adds an invisible render plugin that uses QtMobility to inhibit the screensaver as long as the plugin is enabled and a position provider is active. Given that it is a plugin on its own, the new dependency to QtMobility doesn't affect Marble much: Without QtMobility, the screensaver inhibition plugin is not build and its functionality isn't there, nothing else.
</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;">Works on my N900.
</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/kdeedu/marble/FindQtsysteminfo.cmake <span style="color: grey">(PRE-CREATION)</span></li>
<li>/trunk/KDE/kdeedu/marble/src/lib/graphicsview/ScreenGraphicsItem_p.h <span style="color: grey">(1168534)</span></li>
<li>/trunk/KDE/kdeedu/marble/src/plugins/render/CMakeLists.txt <span style="color: grey">(1168534)</span></li>
<li>/trunk/KDE/kdeedu/marble/src/plugins/render/inhibit-screensaver/CMakeLists.txt <span style="color: grey">(PRE-CREATION)</span></li>
<li>/trunk/KDE/kdeedu/marble/src/plugins/render/inhibit-screensaver/InhibitScreensaverPlugin.h <span style="color: grey">(PRE-CREATION)</span></li>
<li>/trunk/KDE/kdeedu/marble/src/plugins/render/inhibit-screensaver/InhibitScreensaverPlugin.cpp <span style="color: grey">(PRE-CREATION)</span></li>
</ul>
<p><a href="http://reviewboard.kde.org/r/5167/diff/" style="margin-left: 3em;">View Diff</a></p>
</td>
</tr>
</table>
</div>
</body>
</html>