<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Enrico Ros &#187; Computer Graphics</title>
	<atom:link href="http://www.enricoros.com/blog/category/interests/computer-graphics/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.enricoros.com/blog</link>
	<description>Focused ideas, bleeding edge madness and code recipes.</description>
	<lastBuildDate>Sun, 17 Apr 2011 20:51:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Delicious Transblurency [1]</title>
		<link>http://www.enricoros.com/blog/2010/04/delicious-transblurency/</link>
		<comments>http://www.enricoros.com/blog/2010/04/delicious-transblurency/#comments</comments>
		<pubDate>Mon, 19 Apr 2010 07:53:37 +0000</pubDate>
		<dc:creator>Enrico Ros</dc:creator>
				<category><![CDATA[Computer Graphics]]></category>
		<category><![CDATA[avanguardia]]></category>
		<category><![CDATA[creativity]]></category>
		<category><![CDATA[fotowall]]></category>
		<category><![CDATA[kde4]]></category>
		<category><![CDATA[planetkde]]></category>
		<category><![CDATA[qt]]></category>
		<category><![CDATA[x.org]]></category>

		<guid isPermaLink="false">http://www.enricoros.com/blog/?p=514</guid>
		<description><![CDATA[The &#8216;focus&#8216; word has many meanings, ranging from the optical concept of &#8216;good convergence of light rays generated by an object&#8217; to the cognitive process of directing the attention to a particular target while ignoring other targets. Now the interesting part: this concept can be used in computers too, especially in user interfaces, to direct [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>The &#8216;<strong>focus</strong>&#8216; word has many meanings, ranging from the optical concept of &#8216;good convergence of light rays generated by an object&#8217; to the cognitive process of directing the attention to a particular target while ignoring other targets.<br />
Now the interesting part: this concept can be used in computers too, especially in user interfaces, to direct the user to relevant information or to help him through a step-by-step process. How to do that? Since every image you see on screen is &#8216;on focus&#8217; by default, you can easily <strong>unfocus</strong> unuseful information.</p>
<p><strong>Blurring</strong> is the act of altering images so they appear out of focus. My <a href="http://ariya.blogspot.com/2008/02/to-blur-or-not-to-blur.html">Maestro</a>[2] and other <a href="http://zrusin.blogspot.com/2006/07/more-blurring.html">illustriuos</a> people already talked extensively about this topic here on <a href="http://www.planetkde.org">planet KDE</a>. However you don&#8217;t improve the world until a technology becomes available to everybody, right?</p>
<p><a href="http://www.enricoros.com/blog/wp-content/uploads/2010/04/blurandmonochrome.png"><img class="alignright size-full wp-image-519" title="blurandmonochrome" src="http://www.enricoros.com/blog/wp-content/uploads/2010/04/blurandmonochrome.png" alt="" width="312" height="150" /></a>Then some days ago I read on <a href="http://www.notmart.org/index.php/Software/Small_goodies">notmart</a>&#8216;s blog that plasma and kwin supported blurring the background on windows.. so I rebuilt KDE4 svn, restarted it, and&#8230; boy.. does it make a difference! Look at Marco&#8217;s blog or at this picture I <span style="text-decoration: underline;">stole</span> from him! All the popups become instantly more readable, even krunner does, and you immediately get the feeling that the plasma panel and all the systray applets really are above your desktop and they look as they were made of some glass/plastic material.</p>
<p>So: why limiting this just to some plasma applets? Well, I think that the usage of this effect must be wise, however I wanted that for my app too&#8230;</p>
<h3>&#8230;&#8217;cause I like eye-candy! <img src='http://www.enricoros.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </h3>
<p>After a quick tour through the beautiful KDE svn I grabbed all the needed source code and loaded <a href="http://www.enricoros.com/opensource/fotowall/">Fotowall</a> in creator. Since I already had the structure for the <a href="http://labs.trolltech.com/blogs/2009/09/15/using-blur-behind-on-windows/">blur-behind on windows</a> in place, adding the KDE4 effect was really easy. Here are some samples of what you can get:</p>
<p style="text-align: center;"><a href="http://www.enricoros.com/blog/wp-content/uploads/2010/04/fotowall-window.jpg"><img class="size-medium wp-image-516  aligncenter" title="fotowall-window" src="http://www.enricoros.com/blog/wp-content/uploads/2010/04/fotowall-window-300x214.jpg" alt="Fotowall using KWin's new Blur effect." width="300" height="214" /></a></p>
<p>To activate the back blur you need:</p>
<ul>
<li>obviously an application with a transparent background. Qt easily allows to work with transparency on top-level windows.</li>
<li>you have to enable the &#8220;blur&#8221; effect in kwin&#8217;s &#8220;desktop effects&#8221; configuration.</li>
<li>a couple of lines of code to ask kwin to activate blurring to your window.</li>
</ul>
<p>Here is the code that does the magic:</p>
<pre class="brush: cpp; collapse: false; title: ; notranslate">
#if defined(Q_WS_X11)
/**
  Blur behind windows (on KDE4.5+)
  Uses a feature done for Plasma 4.5+ for hinting the window manager to draw
  blur behind the window.
*/
#include &lt;X11/Xlib.h&gt;
#include &lt;X11/Xatom.h&gt;
#include &lt;QX11Info&gt;
static bool kde4EnableBlurBehindWindow(WId window, bool enable, const QRegion &amp;region = QRegion())
{
    Display *dpy = QX11Info::display();
    Atom atom = XInternAtom(dpy, &quot;_KDE_NET_WM_BLUR_BEHIND_REGION&quot;, False);

    if (enable) {
        QVector&lt;QRect&gt; rects = region.rects();
        QVector&lt;quint32&gt; data;
        for (int i = 0; i &lt; rects.count(); i++) {
            const QRect r = rects[i];
            data &lt;&lt; r.x() &lt;&lt; r.y() &lt;&lt; r.width() &lt;&lt; r.height();
        }

        XChangeProperty(dpy, window, atom, XA_CARDINAL, 32, PropModeReplace,
                        reinterpret_cast&lt;const unsigned char *&gt;(data.constData()), data.size());
    } else {
        XDeleteProperty(dpy, window, atom);
    }
}
#endif
</pre>
<p>And then you can activate the blur on the caller widget with:</p>
<pre class="brush: cpp; collapse: false; title: ; notranslate">
    kde4EnableBlurBehindWindow(winId(), true);
</pre>
<p>You <em>could</em> add the back blur to your application too, however I advise you that the interface is not standardized, so don&#8217;t blame either me or the kwin authors if something changes. Here is another picture, because everybody loves them <img src='http://www.enricoros.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p style="text-align: center;"><a href="http://www.enricoros.com/blog/wp-content/uploads/2010/04/fotowall-mainscreen.png"><img class="size-medium wp-image-524    aligncenter" title="fotowall-mainscreen" src="http://www.enricoros.com/blog/wp-content/uploads/2010/04/fotowall-mainscreen-300x202.png" alt="Another back-blurred screen in Fotowall." width="300" height="202" /></a></p>
<p><a href="http://www.enricoros.com/blog/wp-content/uploads/2010/04/fotowall-mainscreen.png"></a>And now, as a side note, a picture from my new work place: the beautiful city of San Diego, blessed by the sun and by a ton of great programmers that by some chance happen to be co-workers of me <img src='http://www.enricoros.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  With all the blue sky and long days, I can&#8217;t imagine a more inspiring place for making new blog posts and code experiments!</p>
<p style="text-align: center;"><a href="http://www.enricoros.com/blog/wp-content/uploads/2010/04/erosinsd.jpg"><img class="size-medium wp-image-525    aligncenter" title="erosinsd" src="http://www.enricoros.com/blog/wp-content/uploads/2010/04/erosinsd-225x300.jpg" alt="" width="225" height="300" /></a></p>
<p>Notes:<br />
[1] obviously the name is completely made up <img src='http://www.enricoros.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /><br />
[2] Italian word meaning &#8220;teacher&#8221; as in <em>school</em> or <em>life</em> teacher</p>
<div class="shr-publisher-514"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.enricoros.com/blog/2010/04/delicious-transblurency/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>QML to KDM! Presto!!</title>
		<link>http://www.enricoros.com/blog/2009/12/qml-to-kdm-presto/</link>
		<comments>http://www.enricoros.com/blog/2009/12/qml-to-kdm-presto/#comments</comments>
		<pubDate>Thu, 24 Dec 2009 16:40:41 +0000</pubDate>
		<dc:creator>Enrico Ros</dc:creator>
				<category><![CDATA[Computer Graphics]]></category>
		<category><![CDATA[avanguardia]]></category>
		<category><![CDATA[creativity]]></category>
		<category><![CDATA[kde4]]></category>
		<category><![CDATA[planetkde]]></category>
		<category><![CDATA[qt]]></category>

		<guid isPermaLink="false">http://www.enricoros.com/blog/?p=459</guid>
		<description><![CDATA[I&#8217;m really surprised you&#8217;re still reading, since the title really explains it all.. but for you, my beloved reader, I&#8217;ll spend some words more. The KDE login Manager The login manager is the &#8220;insert password&#8221; dialog that gets in the way when you want to use your computer. Of course you may not be the [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><div>I&#8217;m really surprised you&#8217;re still reading, since the title really explains it all.. but for you, my beloved reader, I&#8217;ll spend some words more.</div>
<h3>The KDE login Manager</h3>
<div><a rel="attachment wp-att-467" href="http://www.enricoros.com/blog/wp-content/uploads/2009/12/f_oxygenairm_2335e86-med.png"><img class="alignright size-full wp-image-467" title="f_oxygenairm_2335e86-med" src="http://www.enricoros.com/blog/wp-content/uploads/2009/12/f_oxygenairm_2335e86-med.png" alt="" width="314" height="221" /></a>The <em>login manager</em> is the &#8220;insert password&#8221; dialog that <em>gets in the way</em> when you want to use your computer. Of course you may not be the only user of the machine, so it&#8217;s somewhat needed when you <em>share the seat</em>. Some facts:</div>
<div>
<ul>
<li>the honorable <em>Stephan &#8216;coolo&#8217; Kulow</em> landed it in cvs Sept 2nd 1997 (yes, that&#8217;s <em>12 years ago</em>)</li>
<li>great people like <em>Waldo Bastian</em> and <em>David Faure</em> worked on it</li>
<li>it&#8217;s now maintained by the über-expert <em>Oswald &#8216;ossi&#8217; Buddenhagent</em></li>
<li>I did the graphical themes support, implementing the <a href="http://projects.gnome.org/gdm/docs/2.16/thememanual.html">GDM themes spec</a> back in the KDE3 days</li>
<li><strong>“The first thing you’ll notice about the new KDE 4 is it’s old login manager”</strong> &#8211; as <a href="http://www.icon-king.com/">David Vignoni</a> says <a href="http://www.icon-king.com/thoughts/few-things-about-kdm-that-do-not-make-much-sense-to-me/">in his controversial blog entry</a>,</li>
</ul>
<p>The funny thing is: 1 year from now <strong><span style="font-size: small;">Win7 and MacOS will stare at KDM with envy!!</span></strong> Read on to know the future history.</p>
</div>
<h3>Kdm Top to Bottom</h3>
<div>Let&#8217;s say that KDM rocks &#8216;backend-wise&#8217;: multiple-seats, integration with running sessions, XDMCP and all the other stuff that makes kdm the top of the class. But what do you find in <em>$SVN/KDE/kdebase/workspace/kdm</em> ?</div>
<div>
<ul>
<li>backend/* -&gt; the display management core</li>
<li>kfrontend/*.{cpp,h} -&gt; 90&#8242;s GUI, there is even an aliased analog clock..</li>
<li>kfrontend/themer/* -&gt; graphical themes stuff (just 2243 source lines of code)</li>
</ul>
</div>
<div>The <em>themer</em>, which is used by default, implemented the gdm theming specs but it was never package-compatible (afaik) with gdm (we lost a good inter-op chance there). It was implemented in the KDE3 days, so we had to code our &#8216;backing storage&#8217; to implement transparency between layers and in the end the themes are hand-written xml files that embed some default components (line-edits for user/pass insertion, listview for user list, etc).</div>
<div>It looks so old-style, doesn&#8217;t it?</div>
<h3>Qml to the rescue!</h3>
<p><a rel="attachment wp-att-474" href="http://www.enricoros.com/blog/wp-content/uploads/2009/12/flurries.png"><img class="alignright size-full wp-image-474" title="flurries" src="http://www.enricoros.com/blog/wp-content/uploads/2009/12/flurries.png" alt="" width="264" height="408" /></a>What if we throw away (or keep for &#8220;retro-compatibility&#8221;) the <em>classic</em> and <em>themer</em> frontends and just add a frontend using <a href="http://qt.nokia.com/doc/qml-snapshot/qmlelements.html">QML</a>? This is the name of the language of the <a href="http://qt.nokia.com/doc/qml-snapshot/declarativeui.html">Qt Declarative</a> module, that <a href="http://labs.trolltech.com/blogs/2009/12/14/qt-declarative-for-qt-460-released/">has just seen the light</a> and will be merged into Qt for the 4.7 release.</p>
<p>Imagine this:</p>
<ul>
<li>theme creators will have 100X or more expressive power: <em>make snow</em>! login via a <em>tetris puzzle</em>! bounce my<em> webcam picture</em>!</li>
<li>there will be animated themes (for login, user change, logout, etc..) or simple ones for more &#8216;classic&#8217; kind of people</li>
<li>kdm only needs to add a couple of bindings to the qml runtime, like functions for logging in and shutting down / suspend the system</li>
<li>there is no need for compiled binaries, packages will be interpreted by the qml runtime &#8211; finally a painless get-hot-new-stuff (compared to plasma widgets, at least).</li>
</ul>
<h3><strong>Conclusion</strong></h3>
<div>
<p>I&#8217;m not able to mock-up what comes to my mind, but just look at <a href="http://www.youtube.com/watch?v=5hgcLxAJ6hM&amp;feature=player_embedded">some</a> <a href="http://www.youtube.com/watch?v=U7IgwNrcln8">qml</a> <a href="http://www.youtube.com/watch?v=3VKqwDN6P6o">videos</a> on youtube to grab the concept.<br />
What do you think about that? Could this be a low-effort high-inpact development for KDE 4?</p>
</div>
<div>Thanks to <a href="http://blog.uninstall.it/">Davide Bettio</a> who made me blog this.</div>
<div class="shr-publisher-459"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.enricoros.com/blog/2009/12/qml-to-kdm-presto/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
		<item>
		<title>AddiQted to 4.6</title>
		<link>http://www.enricoros.com/blog/2009/10/addiqted/</link>
		<comments>http://www.enricoros.com/blog/2009/10/addiqted/#comments</comments>
		<pubDate>Sun, 11 Oct 2009 18:15:51 +0000</pubDate>
		<dc:creator>Enrico Ros</dc:creator>
				<category><![CDATA[Computer Graphics]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[amarok]]></category>
		<category><![CDATA[avanguardia]]></category>
		<category><![CDATA[creativity]]></category>
		<category><![CDATA[graphicsview]]></category>
		<category><![CDATA[planetkde]]></category>
		<category><![CDATA[planetqt]]></category>
		<category><![CDATA[qt]]></category>
		<category><![CDATA[qtsoftware]]></category>

		<guid isPermaLink="false">http://www.enricoros.com/blog/?p=354</guid>
		<description><![CDATA[note for planetkde readers: check the original article to see the video! I confess, I&#8217;m addiQted. You obviously think it&#8217;s normal (you&#8217;re not reading this blog by accident, aren&#8217;t you?) but it wasn&#8217;t always like this: I&#8217;ve liked some previous versions, but the upcoming Qt 4.6 really rocks! The Fotowall case As I shown previosly, [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p><strong>note for <a href="http://www.planetkde.org">planetkde</a> readers: check the <a href="http://www.enricoros.com/blog/2009/10/addiqted/">original article</a> to see the video!</strong></p>
<p>I confess, I&#8217;m addi<em>Qt</em>ed. You obviously think it&#8217;s normal (you&#8217;re not reading this blog by <em>accident</em>, aren&#8217;t you?) but it wasn&#8217;t always like this: I&#8217;ve liked some previous versions, but the upcoming Qt <strong>4.6</strong> really <a href="http://www.missouri-vacations.com/images/elephant-rocks-body.jpg">rocks</a>!</p>
<h4>The Fotowall case</h4>
<p>As I shown <a href="http://www.enricoros.com/blog/2009/09/cuteness-4-6/">previosly</a>, <a href="http://www.enricoros.com/opensource/fotowall">Fotowall</a> already uses some features of Qt 4.6. How much?<br />
Qt 4.6 is referenced in <em>32 places</em>, for example in snippets like this:</p>
<pre class="brush: cpp; collapse: false; title: ; notranslate">
    // center the path
    QPointF pathCenter = path.boundingRect().center();
    #if QT_VERSION &gt;= 0x040600
        path.translate(-pathCenter);
    #elif QT_VERSION &gt;= 0x040500
        path = QTransform::fromTranslate(-pathCenter.x(), -pathCenter.y()).map(path);
    #else
        QTransform tx;
        tx.translate(-pathCenter.x(), -pathCenter.y());
        path = tx.map(path);
    #endif
</pre>
<p>From simple <a href="http://doc.trolltech.com/4.6-snapshot/qpainterpath.html#translate">path translations</a> to more complex <a href="http://doc.trolltech.com/4.6-snapshot/qmetaproperty.html#notifySignalIndex">property manipulations</a>, everything got better. See this code snipped about extending QGraphicsObject in 4.6 versus 4.5 and 4.4.</p>
<pre class="brush: cpp; collapse: false; title: ; notranslate">
    #if QT_VERSION &gt;= 0x040600
    class AbstractContent : public QGraphicsObject
    #else
    class AbstractContent : public QObject, public QGraphicsItem
    #endif
    {
        Q_OBJECT
    #if QT_VERSION &lt; 0x040600
        Q_PROPERTY(QPointF pos READ pos WRITE setPos)
        Q_PROPERTY(qreal rotation READ rotation WRITE setRotation NOTIFY rotationChanged)
    #endif
    #if QT_VERSION &lt; 0x040600 &amp;&amp; QT_VERSION &gt;= 0x040500
        Q_PROPERTY(qreal opacity READ opacity WRITE setOpacity)
    #endif
</pre>
<p><em>Do you feel the pain</em>?</p>
<h4>I Need it</h4>
<p>I need a world with Qt 4.6 only, because:</p>
<ul>
<li>It&#8217;s too much of a <strong>pain to support older versions</strong> in the same codebase</li>
<li>It&#8217;s not even fair, because <strong>non-4.6 users won&#8217;t enjoy the program as it&#8217;s meant to be</strong></li>
<li><strong>I can&#8217;t use A TON of new features</strong> because they&#8217;ll either <strong>simplify too much the code</strong>, or just because they don&#8217;t have a pre-4.6 equivalent</li>
<li>and because I&#8217;d like to finally use
<ul>
<li><a href="http://doc.qt.nokia.com/4.6-snapshot/qgraphicseffect.html">QGraphicsEffect</a> for Fotowall&#8217;s content</li>
<li><a href="http://doc.qt.nokia.com/4.6-snapshot/qvector3d.html">QVector3D</a> to say goodbye to <a href="http://github.com/enricoros/fotowall/raw/master/3rdparty/enricomath.h"><em>enricomath.h</em></a></li>
<li><a href="http://doc.qt.nokia.com/4.6-snapshot/qgesture.html">QGesture</a> for multi-finger interaction</li>
<li><a href="http://doc.qt.nokia.com/4.6-snapshot/qpropertyanimation.html">QPropertyAnimation</a> to its full potential!</li>
</ul>
</li>
</ul>
<h4>More 4.6 TEASING</h4>
<ol>
<li>As <a href="http://www.enricoros.com/blog/2009/09/cuteness-4-6/">you seem to like videos</a>, here is a preview of something we&#8217;re working on for <a href="http://amarok.kde.org">Amarok</a> <img src='http://www.enricoros.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  <span style="text-decoration: underline;">Qt 4.6 only!!</span><br />
<p><a href="http://www.enricoros.com/blog/2009/10/addiqted/"><em>Click here to view the embedded video.</em></a></p></li>
<li>Also, since I&#8217;m <em>soooo much a giver</em>, see the new Fotowall&#8217;s <a href="http://www.enricoros.com/opensource/fotowall/assets/screenshots/teaser-wordcloud-1.png">Word Cloud</a> feature, coming in 0.9 <img src='http://www.enricoros.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </li>
</ol>
<h4>See you  @ Munich</h4>
<p>I&#8217;m packing for the <a href="http://qt.nokia.com/qtdevdays2009">DevDays 2009</a> Munich. See you there <img src='http://www.enricoros.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<div class="shr-publisher-354"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.enricoros.com/blog/2009/10/addiqted/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Cuteness 4.6</title>
		<link>http://www.enricoros.com/blog/2009/09/cuteness-4-6/</link>
		<comments>http://www.enricoros.com/blog/2009/09/cuteness-4-6/#comments</comments>
		<pubDate>Sun, 27 Sep 2009 05:01:34 +0000</pubDate>
		<dc:creator>Enrico Ros</dc:creator>
				<category><![CDATA[Computer Graphics]]></category>
		<category><![CDATA[Interests]]></category>
		<category><![CDATA[avanguardia]]></category>
		<category><![CDATA[creativity]]></category>
		<category><![CDATA[figosità]]></category>
		<category><![CDATA[fotowall]]></category>
		<category><![CDATA[graphicsview]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[planetkde]]></category>
		<category><![CDATA[planetqt]]></category>
		<category><![CDATA[qt]]></category>

		<guid isPermaLink="false">http://www.enricoros.com/blog/?p=319</guid>
		<description><![CDATA[Seven days after the release of the Tech Preview 1, we released the latest stable Windows build of Fotowall [1] that was based on Qt 4.6. Somebody could argue that this is a bit imprudent. We did that because the benefits of the 4.6 release are worth the risk of the move! Indirect Benefits, or [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Seven days after the release of the <a href="http://labs.qt.nokia.com/blogs/2009/09/09/qt-460-tech-preview-1/">Tech Preview 1</a>, we released the latest stable Windows build of <a href="http://www.enricoros.com/opensource/fotowall/">Fotowall</a> [1] that was based on Qt 4.6. Somebody could argue that this is a bit <em>imprudent</em>. We did that because <strong>the benefits of the 4.6 release are worth the risk of the move</strong>!</p>
<h4>Indirect Benefits, or &#8216;what you get for free&#8217;</h4>
<ul>
<li><em>Improved quality</em> and <em>better speed</em> in the OpenGL QPainter</li>
<li><em>Better speed </em>in <a href="http://doc.trolltech.com/4.6-snapshot/graphicsview.html">the GraphicsView framework</a></li>
</ul>
<h4>Direct Benefits</h4>
<ul>
<li><a href="http://qt.nokia.com/doc/4.6-snapshot/animation-overview.html"><em>Animation Framework</em></a>: this simply r0cks! I don&#8217;t know about the whole Kinetic stuff, I just mean the ability to create <em>simple property animations</em>.<br />
I don&#8217;t have a video to show you but just take a look at the Fotowall&#8217;s Top-Bar, the tabs appear and disappear with a nice and smooth grow-shrink animation, that make the program look soo 2009-ish! finally!</li>
<li><a href="http://doc.trolltech.com/4.6-snapshot/qnetworkreply.html#isFinished"><em>QNetworkReply::isFinished</em>()</a>: thanks to this method I could implement a smart time-saver: when the user starts to drag a flickr picture, Fotowall starts downloading it. It can happen that, upon drop, the content has already been completely downloaded (so it can be placed in the canvas) or partially downloaded (so the used only needs to wait for the missing percent)</li>
</ul>
<h4>Drawbacks</h4>
<ul>
<li>There are some<em> graphics glitches</em> when animating the opacity property of a QGaphicsProxyWidget (in OpenGL)</li>
<li>Even by setting the <a href="http://doc.trolltech.com/4.6-snapshot/qgraphicsitem.html#GraphicsItemFlag-enum">QGraphicsItem::ItemSendsGeometryChanges</a> flag, the previous <em>behavior</em> is <em>not perfectly restored</em> (we used itemChange, and the new behavior doesn&#8217;t allow Fotowall&#8217;s mirrors to sync properly to the objects)</li>
</ul>
<h4>Movie Time!</h4>
<p>I&#8217;ve tried hard to record a screencast about the <em>Cuteness &amp; Performance</em> of Qt 4.6, but in the end I had to use my camera.</p>
<p><a href="http://www.enricoros.com/blog/2009/09/cuteness-4-6/"><em>Click here to view the embedded video.</em></a></p>
<p style="text-align: center;">Thanks Nokia for this great release! <img src='http://www.enricoros.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>[1] <a href="http://www.enricoros.com/opensource/fotowall/">Fotowall</a> is a creative program to mix local and online graphics content and build original work.</p>
<div class="shr-publisher-319"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.enricoros.com/blog/2009/09/cuteness-4-6/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Elements of Ui Design &#8211; ColorPicker</title>
		<link>http://www.enricoros.com/blog/2007/11/elements-of-ui-design/</link>
		<comments>http://www.enricoros.com/blog/2007/11/elements-of-ui-design/#comments</comments>
		<pubDate>Fri, 23 Nov 2007 10:26:38 +0000</pubDate>
		<dc:creator>Enrico Ros</dc:creator>
				<category><![CDATA[Computer Graphics]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[colorpicker]]></category>
		<category><![CDATA[graphicsview]]></category>

		<guid isPermaLink="false">http://enricoros.wordpress.com/2007/11/23/elements-of-ui-design/</guid>
		<description><![CDATA[Update: the source code is included in the Fotowall project. The files you&#8217;re looking for are the ColorPickerItem ones. Say you&#8217;re writing an application and you want to let the user to change the color of an item; what will you do? The standard approach is to popup a color dialog with the standard HSV [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p><strong>Update: the source code is included in the <a href="http://www.enricoros.com/opensource/fotowall/">Fotowall</a> project. The <a href="http://www.enricoros.com/opensource/fotowall/source-code">files you&#8217;re looking for</a> are the ColorPickerItem ones.</strong></p>
<p>Say you&#8217;re writing an application and you want to let the user to change the color of an item; <em>what will you do?</em></p>
<p>The standard approach is to <span style="text-decoration: line-through;">popup a color dialog</span> with the standard HSV selector and all the sliders and values and buttons and confusion. Another approach is to <span style="text-decoration: line-through;">pop down a combobox</span> with a selection of default colors where the user won&#8217;t find the colour she is looking for (unless it&#8217;s RED, of course <img src='http://www.enricoros.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> ).<br />
Both approaches need you to get shocked by another window appearing right in front of you, so you loose the context and move the mouse far away from where it was.</p>
<p>Let&#8217;s take a look at this <strong>new approach</strong>:</p>
<p><a href="http://www.enricoros.com/blog/2007/11/elements-of-ui-design/"><em>Click here to view the embedded video.</em></a></p>
<p>The 2d (yet perspective transformed) dialog smoothly fades in when hovering the color and <em>your favorite hue is just 1 or 2 clicks apart</em>!</p>
<div class="shr-publisher-27"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.enricoros.com/blog/2007/11/elements-of-ui-design/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

