<?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>eduardofleury.com &#187; News</title>
	<atom:link href="http://blog.eduardofleury.com/archives/category/news/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.eduardofleury.com</link>
	<description>Thoughts, shuffled...</description>
	<lastBuildDate>Sat, 01 May 2010 00:22:18 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Foi lançado o Qt 4.6 !</title>
		<link>http://blog.eduardofleury.com/archives/2009/12/98/</link>
		<comments>http://blog.eduardofleury.com/archives/2009/12/98/#comments</comments>
		<pubDate>Tue, 01 Dec 2009 16:15:34 +0000</pubDate>
		<dc:creator>fleury</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Maemo]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Português]]></category>
		<category><![CDATA[Primary]]></category>
		<category><![CDATA[Qt]]></category>
		<category><![CDATA[Qt Labs Americas (pt)]]></category>
		<category><![CDATA[anchorlayout]]></category>
		<category><![CDATA[brasil]]></category>
		<category><![CDATA[brazil]]></category>
		<category><![CDATA[fleury]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[indt]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[Nokia]]></category>
		<category><![CDATA[openbossa]]></category>
		<category><![CDATA[oslo]]></category>
		<category><![CDATA[Qt 4.6]]></category>
		<category><![CDATA[recife]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[symbian]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://blog.eduardofleury.com/?p=98</guid>
		<description><![CDATA[Está disponível desde hoje cedo a versão 4.6.0 do Qt com diversas novidades, como diz o post oficial dos nossos amigos do Qt. A nova versão está disponível para download em qt.nokia.com, em versões pré compiladas para Windows, MacOS e Symbian, além do código fonte (para todas as plataformas). Usuários Linux podem baixar e compilar [...]]]></description>
			<content:encoded><![CDATA[<p>Está disponível desde hoje cedo a versão 4.6.0 do Qt com diversas novidades, como diz o <a href="http://labs.trolltech.com/blogs/2009/12/01/qt-460-released-early-due-to-good-behaviour/" target="_blank">post oficial</a> dos nossos amigos do Qt.</p>
<p>A nova versão está disponível para download em <a title="Qt" href="http://qt.nokia.com/" target="_blank">qt.nokia.com</a>, em versões pré compiladas para Windows, MacOS e Symbian, além do código fonte (para todas as plataformas). Usuários Linux podem baixar e compilar o fonte ou então instalar usando os procedimentos normais de cada distribuição, tão logo estejam disponíveis os pacotes desta versão.</p>
<p>Entre as novidades dessa versão estão:</p>
<ul>
<li>API de Animação (QAnimation)</li>
<li>Máquina de Estados (QStateMachine)</li>
<li>Novo layout (QGraphicsAnchorLayout)</li>
<li>Suporte para a plataforma Symbian, o que permite que o Qt rode em dezenas de milhões de novos aparelhos <img src='http://blog.eduardofleury.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </li>
</ul>
<p>A documentação atualizada com todas as novas classes está pronta também, ou pelo Qt Assistant ou <a title="Qt Docs" href="http://qt.nokia.com/doc/4.6/index.html" target="_blank">online</a>.</p>
<p>Outro fato marcante desta versão é o fato de ser a primeira após a abertura do repositório Git do Qt, e assim marca uma integração cada vez maior com a comunidade. Nesse sentido esperamos que todos usem, testem e mandem opiniões e reports de eventuais bugs, para que as próximas versões sejam cada vez melhores!</p>
<p>Para ilustrar um pouco, <a title="Qt 4.6.0 video" href="http://www.youtube.com/watch?v=PCx8RfNhhXk" target="_blank">um vídeo</a> feito pelo pessoal aqui do openBossa mostrando o 4.6.0 rodando em diversos aparelhos!</p>
<p><object width="480" height="295"><param name="movie" value="http://www.youtube.com/v/PCx8RfNhhXk&#038;hl=en_US&#038;fs=1&#038;rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/PCx8RfNhhXk&#038;hl=en_US&#038;fs=1&#038;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="295"></embed></object></p>
<p>Para finalizar, algumas fotos do time do Qt.</p>
<p>Em Oslo</p>
<p><a title="Oslo Team" href="http://labs.trolltech.com/blogs/wp-content/uploads/2009/12/oslo1.jpg"><img width=340 height=255 src="http://labs.trolltech.com/blogs/wp-content/uploads/2009/12/oslo1.jpg" alt="Oslo Team" /></a></p>
<p>Em Berlin</p>
<p><a title="Berlin Development Team" href="http://labs.trolltech.com/blogs/wp-content/uploads/2009/12/berlin.jpg"><img width=340 height=192 src="http://labs.trolltech.com/blogs/wp-content/uploads/2009/12/berlin.jpg" alt="Berlin Development Team" /></a></p>
<p>Em Brisbane</p>
<p><a title="Brisbane Development Team" href="http://labs.trolltech.com/blogs/wp-content/uploads/2009/12/brisbane.jpg"><img width=340 height=255 src="http://labs.trolltech.com/blogs/wp-content/uploads/2009/12/brisbane.jpg" alt="Brisbane Development Team" /></a></p>
<p>Em Munich</p>
<p><a title="Munich Development Team" href="http://labs.trolltech.com/blogs/wp-content/uploads/2009/12/munich.jpg"><img width=340 height=96 src="http://labs.trolltech.com/blogs/wp-content/uploads/2009/12/munich.jpg" alt="Munich Development Team" /></a></p>
<p>Parabéns pessoal!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.eduardofleury.com/archives/2009/12/98/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>O QGraphicsAnchorLayout</title>
		<link>http://blog.eduardofleury.com/archives/2009/09/91/</link>
		<comments>http://blog.eduardofleury.com/archives/2009/09/91/#comments</comments>
		<pubDate>Mon, 21 Sep 2009 15:42:00 +0000</pubDate>
		<dc:creator>fleury</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Media]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Português]]></category>
		<category><![CDATA[Qt]]></category>
		<category><![CDATA[Qt Labs Americas (pt)]]></category>
		<category><![CDATA[anchor layout]]></category>
		<category><![CDATA[brasil]]></category>
		<category><![CDATA[brazil]]></category>
		<category><![CDATA[fleury]]></category>
		<category><![CDATA[indt]]></category>
		<category><![CDATA[openbossa]]></category>
		<category><![CDATA[qgal]]></category>
		<category><![CDATA[recife]]></category>

		<guid isPermaLink="false">http://blog.eduardofleury.com/?p=91</guid>
		<description><![CDATA[No último artigo mencionei que o QGraphicsLayout, a ser lançado no Qt 4.6, já está disponível no repositório público do Qt. Hoje gostaria de dar uma visão geral sobre como este novo layout funciona e sobre o porquê de estarmos tão animados com isso. Para tal, vou falar um pouco sobre: os layouts que já [...]]]></description>
			<content:encoded><![CDATA[<p>No último artigo mencionei que o QGraphicsLayout, a ser lançado no Qt 4.6, já está disponível no repositório público do Qt.</p>
<p>Hoje gostaria de dar uma visão geral sobre como este novo layout funciona e sobre o porquê de estarmos tão animados com isso.</p>
<p>Para tal, vou falar um pouco sobre: os layouts que já existiam no Qt, o uso do Anchor Layout e finalmente, os problemas que são melhores resolvidos por ele. De agora em diante assuma que estou escrevendo sobre o universo QGraphicsView e assim, onde ler &#8220;widget&#8221; ou &#8220;layout&#8221;, entenda que me refiro a QGraphicsWidgets ou QGraphicsLayouts.</p>
<p><strong>QGraphicsLayouts existentes<br />
</strong></p>
<p>Até o Qt 4.5, estavam disponíveis os layouts Linear e de Grid. Com eles, como seus nomes indicam, usuários poderiam ter seus widgets alinhados lado a lado ou em formato de tabela, com widgets ocupando uma ou mais células.</p>
<p>No entanto, não era possível organizar os itens para que ficassem fora da tela ou que se sobrepusessem, total ou parcialmente. Além disto, para obter o resultado desejado em alguns casos, era necessário utilizar diversos layouts encadeados.</p>
<p><strong>O conceito do Anchor Layout<br />
</strong></p>
<p>Layouts anteriores funcionavam assim: o layout Linear pedia que você adicionasse items ao layout em uma determinada seqüência e assim os itens seriam arranjados lado a lado (ou um sobre o outro); no caso do layout de Grid o conceito era similar, mas com itens associados a índices X,Y para representar a linha e coluna onde eles deveriam ser inseridos.</p>
<p>O Anchor Layout quebra com este paradigma no sentido de que não existe um conceito pré-definido de como os itens devem ser dispostos. A posição final de cada item é totalmente dependente de como você cria as âncoras. Em outras palavras, o Anchor Layout é um layout muito, muito <em>flexível</em>.</p>
<p>Apesar da maioria dos layouts serem flexíveis até certo ponto, e permitirem que se configure parâmetros como o espaçamento entre itens ou as margens, o Anchor Layout eleva a flexibilidade a um novo patamar. Foi também um dos nossos objetivos, fazer com que o processo de criação do layout fosse algo simples. Não queríamos expor centenas de parâmetros abstratos ao usuário, ao invés disto, nós  queríamos disponibilizar uma conceito e uma API de alto-nível. Além de fazer com que seu uso seja mais gratificante, isto facilita a tarefa de transformar em código C++, as idéias e a maneira de pensar dos designers de interfaces. E é assim que surgiram <em>as âncoras</em>.</p>
<p>Neste layout, cada item possui seis pontos de ancoragem, que são esquerda, direita, topo, base e os centros horizontal e vertical. O usuário por sua vez, é responsável por conectar os pontos de ancoragem de diferentes itens entre eles, e com os pontos de ancoragem do próprio layout. Essas conexões são feitas através das tais âncoras, que têm tamanhos bem definidos.</p>
<p>Depois, com base em:</p>
<p>- as âncoras criadas,<br />
- os tamanhos mínimo, recomendado e máximo de cada item, e<br />
- o tamanho do layout propriamente dito.</p>
<p>o layout calcula as geometrias apropriadas para cada um dos widgets.</p>
<p><strong>Casos de uso do Anchor Layout no mundo real</strong></p>
<p>Aqui no openBossa nós temos trabalhado no desenvolvimento de interfaces ricas há um bom tempo, e foi com essa experiência como bagagem que começamos a contribuir com o pessoal do Qt no desenvolvimento do QGraphicsAnchorLayout.</p>
<p>A seguir você irá encontrar alguns dos nossos casos de uso que não eram bem tratados pelos layouts existentes e que são bem mapeados para âncoras.</p>
<p><em>Transição entre telas</em></p>
<p>Nós freqüentemente precisamos fazer uma transição entre duas telas de uma mesma aplicação. Imagine que o usuário executa alguma ação que causar o sumiço da tela atual para que uma nova apareça.</p>
<p>Em uma aplicação de interface rica nós provavelmente gostaríamos de animar tal transição. Duas das alternativas seriam tornar transparente ou embaçar a tela corrente até que a que está por vir se faça visível. Para alcançar tal efeito, nós precisamos que as duas telas ocupem a mesma posição na tela, sendo que a mais velha deverá estar na frente (índice Z maior). Em seguida, basta aplicar o efeito à tela que está na frente, por exemplo mudar sua opacidade, e pronto, temos o efeito!</p>
<p>Então, como poderíamos usar um layout comum para fazer um widget (a tela nova) ocupar o mesmo espaço que outro (a tela velha)? Não dava. Agora com âncoras, basta ancorar os lados de uma tela aos lados da outra (direita com direita, topo com topo, etc) e pronto!</p>
<div id="attachment_87" class="wp-caption aligncenter" style="width: 330px"><img class="size-full wp-image-87" title="AnchorLayout_Swallow" src="http://blog.eduardofleury.com/wp-content/uploads/2009/09/swallow.png" alt="Usage of AnchorLayout to set two swallows on the same place" width="320" height="348" /><p class="wp-caption-text">Uso do AnchorLayout para colocar duas telas no mesmo lugar.</p></div>
<p><em>Items fora da tela</em></p>
<p>Outro &#8220;truque&#8221; que usamos na animação de interfaces é fazer um item &#8220;entrar&#8221; ou &#8220;sair&#8221; da tela. Por exemplo, imagine uma barra de ferramentas no topo da tela que desliza pra dentro da tela e depois pra fora. A idéia aqui é criar dois estados (usando QStates talvez) onde a barra está dentro da tela em um deles,. e fora no outro.</p>
<p>Mais uma vez, com os layouts comuns não poderíamos criar o estado &#8220;fora-da-tela&#8221;. Com âncoras, basta ancorar a base da barra ao topo do layout, por conseqüência a barra será colocada logo acima do layout, pronta para entrar na tela quando necessário.</p>
<div id="attachment_88" class="wp-caption aligncenter" style="width: 333px"><img class="size-full wp-image-88" title="AnchorLayout_Toolbar" src="http://blog.eduardofleury.com/wp-content/uploads/2009/09/toolbar.png" alt="Usage of AnchorLayout to set a toolbar on or off-screen." width="323" height="404" /><p class="wp-caption-text">Uso do AnchorLayout para colocar um widget fora da tela.</p></div>
<p><em>Disposição orgânica</em></p>
<p>Existem também aqueles casos onde os designers criam um protótipo de tela com diversos itens arranjados de maneira disforme ou &#8220;orgânica&#8221;. Na maioria destes casos não é prático (ou possível) ter de usar diversos layouts encadeados para definir tal arranjo. No entanto, com um único Anchor Layout, todos os itens podem ser organizados de maneira precisa.</p>
<p><strong>Experimente!<br />
</strong></p>
<p>Existem outras situações não mencionadas onde um layout tão flexível também é útil. Eu acredito no entanto que os exemplos que coloquei aqui são suficientes para mostrar o tipo de problema que estamos tentando resolver. Por favor, experimente e nos diga o que achou. Todo o tipo de opinião é realmente bem vindo,  quanto à forma de uso, performance, API, recursos e assim por diante. Tudo será levado em conta para que vocês tenham uma boa ferramenta nova para usar no Qt 4.6.</p>
<p>Aproveitem <img src='http://blog.eduardofleury.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.eduardofleury.com/archives/2009/09/91/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Anchor Layout disponível no repositório do Qt 4.6</title>
		<link>http://blog.eduardofleury.com/archives/2009/09/83/</link>
		<comments>http://blog.eduardofleury.com/archives/2009/09/83/#comments</comments>
		<pubDate>Tue, 08 Sep 2009 22:18:45 +0000</pubDate>
		<dc:creator>fleury</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Misc Links]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Português]]></category>
		<category><![CDATA[Qt]]></category>
		<category><![CDATA[Qt Labs Americas (pt)]]></category>

		<guid isPermaLink="false">http://blog.eduardofleury.com/?p=83</guid>
		<description><![CDATA[Este post é para avisá-los que o layout de âncoras do Qt, o QGraphicsAnchorLayout,  está disponível no repositório do Qt 4.6. Para olhar o código fonte ou fazer o download de um tarball do código fonte, visite o Gitorious do Qt. Como o nome indica, a versão atual só é compatível com o canvas Graphics [...]]]></description>
			<content:encoded><![CDATA[<p>Este post é para avisá-los que o layout de âncoras do Qt, o QGraphicsAnchorLayout,  está disponível no repositório do Qt 4.6.</p>
<p>Para olhar o código fonte ou fazer o download de um tarball do código fonte, visite o <a href="http://qt.gitorious.org/qt/qt/commits/4.6" target="_blank">Gitorious do Qt</a>.</p>
<p>Como o nome indica, a versão atual só é compatível com o canvas Graphics View, ou seja é um QGraphicsLayout, e não um QLayout. Esta versão ainda está em desenvolvimento e possui defeitos conhecidos, especialmente quando os itens são organizados de maneira impossível. No entato melhoras virão ao longo do próximo mês, podem esperar.</p>
<p>Enquanto a documentação não está pronta, veja a <a href="http://qt.gitorious.org/qt/qt/blobs/4.6/src/gui/graphicsview/qgraphicsanchorlayout.h" target="_blank">declaracão da classe</a> QGraphicsAnchorLayout para conhecer sua API. Logo que possível eu publicarei algum material explicando melhor o seu uso.</p>
<p>Como sempre, comentários são bem vindos!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.eduardofleury.com/archives/2009/09/83/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Anchor Layout available in Qt 4.6 repository</title>
		<link>http://blog.eduardofleury.com/archives/2009/09/81/</link>
		<comments>http://blog.eduardofleury.com/archives/2009/09/81/#comments</comments>
		<pubDate>Tue, 08 Sep 2009 22:09:21 +0000</pubDate>
		<dc:creator>fleury</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Misc Links]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Primary]]></category>
		<category><![CDATA[Qt]]></category>
		<category><![CDATA[Qt Labs Americas (en)]]></category>
		<category><![CDATA[anchor layout]]></category>
		<category><![CDATA[anchorlayout]]></category>
		<category><![CDATA[brasil]]></category>
		<category><![CDATA[brazil]]></category>
		<category><![CDATA[fleury]]></category>
		<category><![CDATA[graphicsview]]></category>
		<category><![CDATA[indt]]></category>
		<category><![CDATA[openbossa]]></category>
		<category><![CDATA[qgal]]></category>
		<category><![CDATA[qgraphicsanchorlayout]]></category>
		<category><![CDATA[recife]]></category>

		<guid isPermaLink="false">http://blog.eduardofleury.com/?p=81</guid>
		<description><![CDATA[This post is just to let you know that the Qt approach to Anchor Layouts, the QGraphicsAnchorLayout is available in the Qt 4.6 repository. To browse the source or download a tarball, visit Qt Gitorious. As the name implies, the current version is only available for the Graphics View Framework, ie. it is a QGraphicsLayout, [...]]]></description>
			<content:encoded><![CDATA[<p>This post is just to let you know that the Qt approach to Anchor Layouts, the QGraphicsAnchorLayout is available in the Qt 4.6 repository.</p>
<p>To browse the source or download a tarball, visit <a title="Qt 4.6 Gitorious" href="http://qt.gitorious.org/qt/qt/commits/4.6" target="_blank">Qt Gitorious.</a></p>
<p>As the name implies, the current version is only available for the Graphics View Framework, ie. it is a QGraphicsLayout, not a QLayout. The current version is still under development and still have know issues, specially with impossible arrangements of items. You can expect improvements through the next month though.</p>
<p>Check the QGraphicsAnchorLayout <a href="http://qt.gitorious.org/qt/qt/blobs/4.6/src/gui/graphicsview/qgraphicsanchorlayout.h" target="_blank">header</a> for its public API while documentation is not available. I&#8217;m going to post more about its usage soon as well.</p>
<p>Comments are always welcome!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.eduardofleury.com/archives/2009/09/81/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Canola-like layout in Qt Kinetic</title>
		<link>http://blog.eduardofleury.com/archives/2009/04/69/</link>
		<comments>http://blog.eduardofleury.com/archives/2009/04/69/#comments</comments>
		<pubDate>Fri, 03 Apr 2009 22:17:15 +0000</pubDate>
		<dc:creator>fleury</dc:creator>
				<category><![CDATA[Canola]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Maemo]]></category>
		<category><![CDATA[Misc Links]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Primary]]></category>
		<category><![CDATA[Qt]]></category>
		<category><![CDATA[Qt Labs Americas (en)]]></category>
		<category><![CDATA[animated layouts]]></category>
		<category><![CDATA[animation]]></category>
		<category><![CDATA[brasil]]></category>
		<category><![CDATA[gui]]></category>
		<category><![CDATA[openbossa]]></category>
		<category><![CDATA[recife]]></category>
		<category><![CDATA[rich UI]]></category>

		<guid isPermaLink="false">http://blog.eduardofleury.com/?p=69</guid>
		<description><![CDATA[Hi all, We&#8217;ve just uploaded a new video showing our latest animated layout example. You can check it at: OpenBossa&#8217;s Youtube Channel Or here: Rather than showing how to animate from one layout to another, this example shows how could a Qt user create his/her own custom layout that uses QGraphicsLayoutProxies internally to animate its [...]]]></description>
			<content:encoded><![CDATA[<p>Hi all,</p>
<p>We&#8217;ve just uploaded a new video showing our latest animated layout example.</p>
<p>You can check it at:<br />
<a href=http://www.youtube.com/openbossa>OpenBossa&#8217;s Youtube Channel</a></p>
<p>Or here:<br />
<object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/eJcTBJaPRZg&#038;hl=en&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/eJcTBJaPRZg&#038;hl=en&#038;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object></p>
<p>Rather than showing how to animate from one layout to another, this example shows how could a Qt user create his/her own custom layout that uses QGraphicsLayoutProxies internally to animate its items.</p>
<p>From the usage point of view, once the layout is ready, all one has to do is to add or remove widgets to the layout or resize it to see them animating to the right places.</p>
<p>Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.eduardofleury.com/archives/2009/04/69/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Using QAnimation to create Animated Qt Layouts</title>
		<link>http://blog.eduardofleury.com/archives/2009/02/51/</link>
		<comments>http://blog.eduardofleury.com/archives/2009/02/51/#comments</comments>
		<pubDate>Thu, 26 Feb 2009 15:22:27 +0000</pubDate>
		<dc:creator>fleury</dc:creator>
				<category><![CDATA[Canola]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Misc Links]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Português]]></category>
		<category><![CDATA[Primary]]></category>
		<category><![CDATA[Qt]]></category>
		<category><![CDATA[Qt Labs Americas (en)]]></category>
		<category><![CDATA[Talks]]></category>
		<category><![CDATA[qt; animated layouts; rich UI; gui; animation;]]></category>

		<guid isPermaLink="false">http://blog.eduardofleury.com/?p=51</guid>
		<description><![CDATA[In this post I&#8217;ll share a little bit about what we&#8217;ve been working with, Animated Layouts in Qt. To be more precise, how we have been animating QGraphicsLayouts. Layouts If you are familiar with Qt, chances are you have already used layouts and widgets a couple times. If you haven&#8217;t, try to think of a [...]]]></description>
			<content:encoded><![CDATA[<p>In this post I&#8217;ll share a little bit about what we&#8217;ve been working with, Animated Layouts in Qt. To be more precise, how we have been animating QGraphicsLayouts.</p>
<p><strong>Layouts</strong></p>
<p>If you are familiar with Qt, chances are you have already used layouts and widgets a couple times. If you haven&#8217;t, try to think of a layout as a set of geometry rules, or principles, that are applied to the children widgets when the layout is associated to a parent widget.</p>
<p>In other words, imagine you have a box drawn on the screen, and, inside it, three widgets, say, a button, a checkbox and a label. Now imagine you want these three components to be organized somehow inside the box, horizontally aligned for instance. In Qt all you have to do is to apply an horizontal layout to the box and its widgets (button, checkbox and label) will follow the rules enforced by that layout.</p>
<p><strong>The Goal</strong></p>
<p>While existing layouts work fine for forms  other static UIs but lack something when seek the development of rich, animated, interfaces, as the one in <a title="Canola 2" href="http://openbossa.indt.org.br/canola/" target="_blank">Canola 2</a>. In these scenarios animating from different layouts and/or different layout states is a must, and that&#8217;s what we went after. As the starting point, we focused on the <em>Graphics View Framework</em> and therefore started with QGraphicsLayouts rather than QLayouts. After talking with the guys at Qt Software we found a solution that enables:</p>
<ul><span></p>
<li>animated transitions from one QGraphicsLayout to a completely different one (grid to linear, for instance);</li>
<li>animated transitions from one QGraphicsLayout state to another (when an item is added for instance, or items are re-arranged);</li>
<li>works with all third-party QGraphicsLayout subclasses you may have coded to fit your personal needs; and</li>
<li>works with all third-party widgets.</li>
<p></span></ul>
<p><strong>The result</strong></p>
<p>A video is worth more than a bunch of words. <img src='http://blog.eduardofleury.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> In this demo we show:</p>
<ul>
<li>Addition of new items to a visible layout;</li>
<li>Change between three different layouts (horizontal, vertical and grid); and</li>
<li>Changes in the parent widget size.</li>
</ul>
<p><object width="425" height="344" data="http://www.youtube.com/v/M3HbmrNvQl4&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/M3HbmrNvQl4&amp;hl=en&amp;fs=1" /><param name="allowfullscreen" value="true" /></object></p>
<p>Can&#8217;t see the video? Watch it on YouTube:</p>
<p><a title="Animated Layouts Demo" href="http://www.youtube.com/watch?v=M3HbmrNvQl4" target="_blank">http://www.youtube.com/watch?v=M3HbmrNvQl4</a></p>
<p><strong>The Usage</strong></p>
<p>This post is focused on the internals but read <a title="MoRpHeUz blog" href="http://labs.morpheuz.eng.br/blog/26/02/2009/animated-layouts-with-qt-kinetic/" target="_blank">MoRpHeUz recent post</a> about this subject for the end-user point of view.</p>
<p><strong>The Solution</strong></p>
<p>We had a strong requirement of providing compatibility with 3rd party layouts and widgets, we also couldn&#8217;t break Qt&#8217;s API or ABI. To understand the next step it is necessary to know a little bit about how QGraphicsLayouts work in Qt, but, in a nutshell what happens when a layout is applied to a widget is the following:</p>
<ul>
<li>When the parent widget (the outer box) undergoes a change (is resized for instance), its associated layout is informed about it.</li>
<li>The layout recalculates new geometries for each of the child widgets (the label, the button and the checkbox).</li>
<li>The layout sets the new children geometries.</li>
</ul>
<p>What we did was to create an Animated Layout Proxy that sits between the Layout and each of the child widgets. Due to the way Qt is organized what is expected then is that our proxies pass along the geometry change information they received from the layout to the item below it. The <em>trick</em> here is that rather than sending the geometry change request immediatelly, the Proxy creates a QAnimation from the former state to the new one. The result after the animation is finished is the same, the child widgets were set to their new geometries, what is different however is that the widget moves in an animated, sleek way, rather than at once, which is the standard.</p>
<p>The high-level diagram below shows how the Animated Layout Proxy is inserted in the existing QGraphicsLayoutItem hierarchy. Other relationships were omitted to keep things simple.</p>
<p><img class="size-full wp-image-56" title="proxy" src="http://blog.eduardofleury.com/wp-content/uploads/2009/02/proxy.png" alt="Qt Animated Proxy Layout diagram" width="600" height="372" /><br />
<br />
Cheers,<br />
Fleury</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.eduardofleury.com/archives/2009/02/51/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Azul inicia venda de passagens para trecho Recife &#8211; Campinas</title>
		<link>http://blog.eduardofleury.com/archives/2009/02/47/</link>
		<comments>http://blog.eduardofleury.com/archives/2009/02/47/#comments</comments>
		<pubDate>Tue, 03 Feb 2009 21:00:45 +0000</pubDate>
		<dc:creator>fleury</dc:creator>
				<category><![CDATA[Media]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Português]]></category>

		<guid isPermaLink="false">http://blog.eduardofleury.com/?p=47</guid>
		<description><![CDATA[Azul iniciou nesta tarde a venda de passagens para o trecho VCP-REC-VCP para vôos a partir do dia 18 de fevereiro. O vôo inicial já antecipado no Contato Radar é o seguinte: AZU 4151 (diário) OPR E195 2200 VCP 0115 REC AZU 4152 (diário) OPR E195 0245 REC 0600 VCP Espera-se que em breve inicie-se [...]]]></description>
			<content:encoded><![CDATA[<p>Azul iniciou nesta tarde a venda de passagens para o trecho <strong>VCP-REC-VCP</strong> para vôos a partir do dia 18 de fevereiro.</p>
<p>O vôo inicial já antecipado no Contato Radar é o seguinte:</p>
<p>AZU 4151 (diário) OPR E195<br />
<strong>2200</strong> VCP <strong>0115</strong> REC</p>
<p>AZU 4152 (diário) OPR E195<br />
<strong>0245</strong> REC <strong>0600</strong> VCP</p>
<p>Espera-se que em breve inicie-se o segundo diário nos seguintes horários:</p>
<p>AZU 4150 (diário) OPR E190<br />
0955 VCP 1310 REC</p>
<p>AZU 4149 (diário) OPR E190<br />
1340 REC 1655 VCP</p>
<p>Valor do trecho por enquanto, na Azul, incluindo datas do Carnaval é de <strong>R$ 239,00</strong> .</p>
<p>Para comparação, na TAM, simulação para o início de Marco:<br />
- Voando para GRU, R$ 389,50.<br />
- Voando para VCP (com conexão), R$ 549,50.</p>
<p>Expectativa para diminuição dos preços por parte das congêneres.  <img src='http://blog.eduardofleury.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a href="http://www.voeazul.com.br" target="_blank">www.voeazul.com.br</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.eduardofleury.com/archives/2009/02/47/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Bossa Conference Programme is out!</title>
		<link>http://blog.eduardofleury.com/archives/2009/02/45/</link>
		<comments>http://blog.eduardofleury.com/archives/2009/02/45/#comments</comments>
		<pubDate>Tue, 03 Feb 2009 20:50:28 +0000</pubDate>
		<dc:creator>fleury</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Maemo]]></category>
		<category><![CDATA[Misc Links]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Primary]]></category>
		<category><![CDATA[Qt]]></category>
		<category><![CDATA[Qt Labs Americas (en)]]></category>
		<category><![CDATA[Talks]]></category>
		<category><![CDATA[bossa conference brazil linux mobile conference beach openbossa indt]]></category>

		<guid isPermaLink="false">http://blog.eduardofleury.com/?p=45</guid>
		<description><![CDATA[Fresh news right from the source, the programme for Bossa Conference 2009 in Porto de Galinhas, Pernambuco &#8211; Brazil was just released. Check it out at: http://www.bossaconference.indt.org/programme And for those who haven&#8217;t seen it yet, don&#8217;t miss the Bossa Conference teaser at YouTube: http://www.youtube.com/watch?v=IHM8cUoxmio Don&#8217;t miss this one!]]></description>
			<content:encoded><![CDATA[<p>Fresh news right from the source, the <strong>programme</strong> for <strong>Bossa Conference 2009</strong> in Porto de Galinhas, Pernambuco &#8211; Brazil was just released.</p>
<p>Check it out at:<br />
<a href="http://www.bossaconference.indt.org/programme" target="_blank">http://www.bossaconference.indt.org/programme</a></p>
<p>And for those who haven&#8217;t seen it yet, don&#8217;t miss the Bossa Conference <strong>teaser at YouTube</strong>:<br />
<a href="http://www.youtube.com/watch?v=IHM8cUoxmio" target="_blank">http://www.youtube.com/watch?v=IHM8cUoxmio</a></p>
<p>Don&#8217;t miss this one! <img src='http://blog.eduardofleury.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.eduardofleury.com/archives/2009/02/45/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>44 and counting&#8230; Days for Bossa Conference 09 :-)</title>
		<link>http://blog.eduardofleury.com/archives/2009/01/38/</link>
		<comments>http://blog.eduardofleury.com/archives/2009/01/38/#comments</comments>
		<pubDate>Fri, 23 Jan 2009 17:28:14 +0000</pubDate>
		<dc:creator>fleury</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Maemo]]></category>
		<category><![CDATA[Misc Links]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Primary]]></category>
		<category><![CDATA[Qt]]></category>
		<category><![CDATA[Qt Labs Americas (en)]]></category>
		<category><![CDATA[Talks]]></category>

		<guid isPermaLink="false">http://blog.eduardofleury.com/?p=38</guid>
		<description><![CDATA[No, that&#8217;s not a post about the 44th President of the USA, Mr. Barack Obama. The inauguration was very nice and so it is to know that hopefully some change will come to America, I mean, less weapons, more jobs However let&#8217;s get back to the topic, the 2009 edition of Bossa Conference is around [...]]]></description>
			<content:encoded><![CDATA[<p>No, that&#8217;s not a post about the 44th President of the USA, Mr. Barack Obama. The inauguration was very nice and so it is to know that hopefully some change will come to America, I mean, less weapons, more jobs <img src='http://blog.eduardofleury.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  However let&#8217;s get back to the topic, <strong>the 2009 edition of Bossa Conference is around the corner, have you registered online yet?</strong></p>
<p>I had just begun working at OpenBossa (the company) when I attended to last year&#8217;s Bossa Conference was delighted to experience this unique event on Free and Open Source solutions for mobile embedded devices.</p>
<p>Bossa is different because it goes beyond the high quality talks, those who attend to Bossa have the chance to hang out with the speakers and other participants in a very casual way, all of that while enjoying the best-in-class Summerville Beach Resort, in the northeast of Brazil. Expanding your network and chatting about the latest technologies is incredibly amusing when done inside a pool and under the bright sun of Porto de Galinhas, Pernambuco.</p>
<p>A teaser for those who could not be present at last years edition.</p>
<p><object width="425" height="344" data="http://www.youtube.com/v/IHM8cUoxmio&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/IHM8cUoxmio&amp;hl=en&amp;fs=1" /><param name="allowfullscreen" value="true" /></object></p>
<p>Online subscription is opened already at the <a title="Bossa Conference" href="http://www.bossaconference.indt.org/" target="_blank">Official Site</a>.</p>
<p>Don&#8217;t forget to read about this year&#8217;s <a title="Bossa 09 List of Speakers" href="http://www.bossaconference.indt.org/programme" target="_blank">list of speakers</a> that include, in no special order:</p>
<p>Andreas Aardal Hanssen<br />
Carsten Haitzler (Rasterman)<br />
David Zeuthen<br />
Gustavo Barbieri<br />
Hadi Nahari<br />
Holger Krekel<br />
Iñaky Pérez- Gonzalez<br />
Karen Sandler<br />
Koen Kooi<br />
Marius Bugge Monsen<br />
Olivier Crête<br />
Patrícia Montenegro<br />
Scoot James Remnant<br />
Sebastian Kügler<br />
Simon Hausmann<br />
Thiago Macieira<br />
Zack Rusin</p>
<p>Best regards!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.eduardofleury.com/archives/2009/01/38/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ensol 2.0</title>
		<link>http://blog.eduardofleury.com/archives/2008/05/25/</link>
		<comments>http://blog.eduardofleury.com/archives/2008/05/25/#comments</comments>
		<pubDate>Fri, 02 May 2008 20:25:10 +0000</pubDate>
		<dc:creator>fleury</dc:creator>
				<category><![CDATA[Canola]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Português]]></category>
		<category><![CDATA[Primary]]></category>
		<category><![CDATA[Talks]]></category>
		<category><![CDATA[ensol maemo mamona canola portugues]]></category>

		<guid isPermaLink="false">http://blog.eduardofleury.com/?p=25</guid>
		<description><![CDATA[Acontece nestes dias 2, 3 e 4 de Maio a segunda edição do Encontro de Software Livre da Paraíba, ou simplesmente, Ensol. Eu, Eduardo Fleury, e Rodrigo Vivi, teremos o prazer de apresentar duas palestras na manhã do Domingo, dia 04 e agradecemos antecipadamente a presença de todos. As palestras são independentes porém relacionadas, a [...]]]></description>
			<content:encoded><![CDATA[<p>Acontece nestes dias 2, 3 e 4 de Maio a segunda edi<span>ç</span>ão do <strong>Encontro de Software Livre da Paraíba</strong>, ou simplesmente, Ensol.</p>
<p>Eu, Eduardo Fleury, e Rodrigo Vivi, teremos o prazer de apresentar duas palestras na manhã do Domingo, dia 04 e agradecemos antecipadamente a presen<span>ça de todos.</span></p>
<p>As palestras são independentes porém relacionadas, a primeira, <strong>Embarcando no Linux para sistemas embarcados (<a title="Rodrigo Vivi" href="http://blog.vivi.eng.br" target="_blank">Rodrigo Vivi</a>)</strong> ocorrerá as <strong>09.00h de Domingo</strong> e cobrirá os conceitos fundamentais das plataformas móveis embarcadas baseadas em Linux, mais especificamente o Mamona e o Maemo.</p>
<p>Na seqüência, às <strong>10.15h</strong> apresentarei a palestra <strong>Velejando com o Linux para sistemas embarcados</strong> na qual discutirei aspectos focados no desenvolvimento de aplica<span>ções para estas plataformas, incluindo questões como o ciclo de desenvolvimento e uma compara</span><span>ção entre linguagens de programa</span><span>ção</span>, partindo então para uma introdu<span>ção à linguagem </span>Python e suas principais características.</p>
<p>Links:</p>
<ul>
<li>Ensol 2.0 &#8211; <a title="http://www.ensol.org.br/2008/" href="http://www.ensol.org.br/2008/" target="_blank">http://www.ensol.org.br/2008/</a></li>
<li>Embarcando no Linux para sistemas embarcados &#8211; <a title="http://www.ensol.org.br/2008/node/74" href="http://www.ensol.org.br/2008/node/74" target="_blank">http://www.ensol.org.br/2008/node/74</a></li>
<li><span class="title">Velejando com o Linux para sistemas embarcados &#8211; <a title="http://www.ensol.org.br/2008/node/73" href="http://www.ensol.org.br/2008/node/73" target="_blank">http://www.ensol.org.br/2008/node/73</a></span></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.eduardofleury.com/archives/2008/05/25/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
