<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">

    <title type="text">Qt Contributors&apos; Summit</title>
    <subtitle type="text">Qt Contributors&apos; Summit</subtitle>
    <link rel="alternate" type="text/html" href="http://qt-project.org/groups/qt-contributors-summit-2011/wiki" />
    <link rel="self" type="application/atom+xml" href="http://qt-project.org/groups/qt-contributors-summit-2011/wiki/Special:Recentchanges_Atom" />
    <updated>2011-12-09T11:14:47Z</updated>
    <rights>Copyright (c) 2013 Qt Developer Network, devnet@qt-project.org</rights>
    <generator uri="http://expressionengine.com/" version="2.3.1">ExpressionEngine</generator>
    <id>tag:qt-project.org,2011:12:09:wiki</id>


    <entry>
      <title>Qt5ProductDefinition</title>
      <link rel="alternate" type="text/html" href="http://qt-project.org/groups/qt-contributors-summit-2011/wiki/Qt5ProductDefinition" />
      <id>tag:qt-project.org,2011:wiki:Qt5ProductDefinition/1171.10458</id>
      <published>2011-12-09T11:14:47Z</published>
      <updated>2011-12-09T11:14:47Z</updated>
      <author>
            <name>hehaveri</name>
            <email></email>
      </author>
      <content type="html"><![CDATA[
        <div class="factbox right"><h3>Table of Content</h3><ul>
<li><a href="#e71f8707a86ea68e5423b5fd3f71470a">Qt 5 product definition</a><ul>
<li><a href="#a9ded1e5ce5d75814730bb4caaf49419">Background</a></li>
<li><a href="#22e49aae5c4c38358dadc9bf863c0435">How Qt is structured</a><ul>
<li><a href="#db5a1972d9a39488e9f1b10a3d958b8f">Modules and Repositories</a></li>
<li><a href="#4b6e137dbb45d92479d4a80d6de2b85a">QML, C++ and qmake guidelines for Qt Essentials and Qt Add-On modules</a></li>
<li><a href="#76ef7af1223cfaae53f4f1902f6b662e">Guidelines for the QML import statement of other Qt-related modules</a></li>
<li><a href="#0bf7fbd889e284668ecf19d2cff8e83e">Module version numbers</a></li></ul>
</li>
<li><a href="#a0d95a884d6b735cd55b7ae460186660">Moving modules between categories</a></li>
<li><a href="#5d113f2038d289f391614c39043629e8">Scope</a></li>
<li><a href="#d50ae403cb49a205bdf789f377f5cfe6">Releases</a><ul>
<li><a href="#109e2b5cef5606ce22b606575b53583c">Qt 5 minor releases</a></li>
<li><a href="#498fdb87f6aeea669d2861712f56c988">Independent module releases</a></li>
<li><a href="#fd2ba2e8de88db1649993aa5dcf51a75">Patch level releases</a></li></ul>
</li>
<li><a href="#4582cf86974b397c8f3a2ed2fd502f8c">Configuration Tiers and Platform support</a></li>
<li><a href="#c6eb98439f903a34abf6e29f47b06270">Cross-platform promise</a></li>
<li><a href="#a79cebd30df3933c09d6584eb0e9fa54">Compatibility promise and Qt release numbering</a></li>
<li><a href="#b2942393218146f6e2ad72a1034eb173">Qt 5.0</a></li></ul>
</li></ul>
</div> 

	<a name="e71f8707a86ea68e5423b5fd3f71470a"></a>	<h1>Qt 5 product definition</h1>

	<p>This document summarizes the outcome of Qt 5 product definition discussions at QtCS, and the follow up discussions on the qt5-feedback mailing list.</p>

	<a name="a9ded1e5ce5d75814730bb4caaf49419"></a>	<h2>Background</h2>

	<p>This document is the Qt 5 product definition. It discusses the naming, module structure, forward and backward compatibility promises, cross-platform promise, platform tiers, and high level principles about Qt releases. </p>

	<p>The targets for the definition include
	<ul>
		<li>Simple and clear structure and naming that works for existing users of Qt, new users of Qt, and creators of Qt, in all environments (desktop, embedded, mobile)</li>
		<li>Consistency between different parts of Qt and consistency between &#8220;marketing&#8221; and Real World</li>
		<li>There should be room for Qt Add-ons that provide additional benefits on specific environments, without bloating Qt for everyone.</li>
		<li>We want to send the correct message to the users of QWidget classes: they are 1st class citizens in the desktop environment, but not necessarily available in the embedded or mobile environments</li>
	</ul></p>

	<a name="22e49aae5c4c38358dadc9bf863c0435"></a>	<h2>How Qt is structured</h2>

	<p>Qt consists of the Qt Essentials, Qt Tools and Qt Add-Ons. The following table summarizes these categories.  </p>

<table class="infotable line"><tr><td> <strong>Category of module or tool</strong>  </td><td> <strong>Description</strong> </td></tr><tr><td> Qt Essentials </td><td> Qt Essentials consist of the Qt modules that are cross-platform and are available on all reference platforms. A platform must support all Qt Essential modules in order to be Qt compliant. Qt Essentials define the heart or the foundation of Qt on all platforms. They will be source and binary compatible during Qt 5. These modules should cover a meaningful set of use cases of real applications. These modules are general and useful for a big portion of applications; a niche module needed in a specialized domain should not become essential even if it was completely cross-platform. </td></tr><tr><td> Qt Tools </td><td> Tools that are officially a part of Qt. The official tools should run on Qt&#8217;s supported desktop platforms. </td></tr><tr><td> Qt Add-Ons </td><td> Modules and tools that bring additional value in specific environments. These modules and tools may be cross-platform or platform-specific. Some of them are included in the Qt releases on certain platforms. Each add-on module specifies its compatibility promise separately. </td></tr><tr><td> Other Qt-related modules and tools </td><td> Modules and tools that are not developed in the Qt project </td></tr></table>

	<p>The naming convention for all modules and tools that originate from the Qt project is to start with &#8220;Qt&#8221;, followed by a descriptive name of the module. For example Qt Designer, Qt Core, Qt Quick 3D and Qt Contacts. </p>

	<p>Please pick just one name for the module, and use it consistently in documentation, <span class="caps">QML</span> import statement, library name, and the header file name. This makes Qt appear more consistent and guessable.</p>

	<p>A recommended way for other Qt-related modules and tools to refer to Qt is to follow the pattern &#8220;Foo for Qt&#8221;. </p>

	<p>Modules usually have a C++ <span class="caps">API</span> and a <span class="caps">QML</span> <span class="caps">API</span>. In the official documentation, we shouldn&#8217;t refer to &#8220;<span class="caps">QML</span> bindings&#8221; or &#8220;<span class="caps">QML</span> plugins&#8221; or &#8220;<span class="caps">QML</span> modules&#8221; when we actually mean the <span class="caps">QML</span> <span class="caps">API</span> provided by a Qt module.</p>

	<a name="db5a1972d9a39488e9f1b10a3d958b8f"></a>	<h3>Modules and Repositories</h3>

	<p>This section has been moved to the Qt Project wiki at <a href="http://wiki.qt-project.org/Creating_a_new_module_or_tool_for_Qt#The_structure_of_a_new_module_repository.">http://wiki.qt-project.org/Creating_a_new_module_or_tool_for_Qt#The_structure_of_a_new_module_repository.</a> </p>

	<a name="4b6e137dbb45d92479d4a80d6de2b85a"></a>	<h3><span class="caps">QML</span>, C++ and qmake guidelines for Qt Essentials and Qt Add-On modules</h3>

	<p>This section has been moved to the Qt Project wiki at  <a href="http://wiki.qt-project.org/Creating_a_new_module_or_tool_for_Qt#Using_the_module_name_in_application_code">http://wiki.qt-project.org/Creating_a_new_module_or_tool_for_Qt#Using_the_module_name_in_application_code</a></p>

	<a name="76ef7af1223cfaae53f4f1902f6b662e"></a>	<h3>Guidelines for the <span class="caps">QML</span> import statement of other Qt-related modules</h3>

	<p>It&#8217;s a good practice to pick a name that is likely to be unique among Qt related modules. One way to avoid clashes in the <span class="caps">QML</span> import statement is to use a reverse domain name:</p>

	<p><div class="cpp-qt geshi"><ol><li class="li1"><div class="de1">import com.<span class="me1">example</span><span class="sy0">-</span>organization.<span class="me1">foo</span> <span class="nu16">1.0</span> </div></li>
</ol></div></p>

	<p>Alternatively, it is possible to use a prefix in the module name, making the probability of a clash lower:</p>

	<p><div class="cpp-qt geshi"><ol><li class="li1"><div class="de1">import MyPrefixMyModule <span class="nu16">1.0</span></div></li>
</ol></div></p>

	<a name="0bf7fbd889e284668ecf19d2cff8e83e"></a>	<h3>Module version numbers</h3>

	<p>The owners of each module decide how they number their releases. Not everything needs to be numbered from the 5.x range but it is fine to have Qt Quick 2.0 in Qt 5, for instance. </p>

	<p>Versions in the 0.x range are used for experimental releases of add-on modules. Experimental modules are not included in Qt Essentials.</p>

	<p>A Qt release will have different versions of different modules, so the developer will have to look up the version anyways. Documentation or auto-complete features in Creator will help here.</p>

	<p>There should be no new features in the patch level releases of Qt 5. Not all modules need to be updated in every minor release.</p>

	<p>Recommendation: each module should have just one name and one version number. Currently this is not the case, but we have stuff like lilbqtwebkit.so.4.8, which is the same as Qt WebKit 2.1 in the documentation and you import it with &#8220;import QtWebKit 1.1&#8221;.  There is a similar problem with Qt Declarative/Qt Quick.</p>

	<a name="a0d95a884d6b735cd55b7ae460186660"></a>	<h2>Moving modules between categories</h2>

	<p>Some of the Qt Add-Ons for Qt 5.0 were a part of Qt 4. These modules become add-ons mainly because they are not available on all environments (for example the QWidget classes), or because the primary solution for the problem in Qt 5 is different from Qt 4 (e.g. Qt Script).  We should not move any modules from Qt Essentials of Qt 5.0 into Add-ons later during the Qt 5 series. Because of the Qt 5 source compatibility target, we will not put the former Qt 4 modules in the QtAddOn C++ namespace. </p>

	<p>It should be very easy to start a new Qt Add-On in the Qt project. When a new project is started, a module name is reserved (mechanism <span class="caps">TBD</span>). This module name will be used in the library name, import statement and in the C++ namespace (see above). </p>

	<p>When a new Qt Add-On module is ready, stable and considered useful on some of Qt&#8217;s platforms, it can be included in the Qt release. This is a major decision that indicates endorsement by the Qt project. A high level quality, <span class="caps">API</span> reviews etc. are expected. No changes to the naming of the module, import statement, or C++ naming are required.</p>

	<p>If a Qt Add-on module is considered essential and important for all users of Qt, then the add-on module can be moved to Qt Essentials. This requires a full compatibility and cross-platform promise. The module can be renamed at this point. A complete <span class="caps">API</span> review should be done to make the <span class="caps">API</span> consistent with the rest of Qt Essentials.</p>

	<p>The C++ namespace is removed when an add-on module becomes an essential module.</p>

	<a name="5d113f2038d289f391614c39043629e8"></a>	<h2>Scope</h2>

	<p>Qt is a toolkit for developers and designers. It consists of libraries, developer tools, design tools, documentation, demos, examples. Qt&#8217;s main technologies are <span class="caps">QML</span>, C++ and JavaScript.</p>

	<p>The following areas are not in scope of the Qt Essentials  (but may be in scope of Qt Add-Ons)
	<ul>
		<li>Applications</li>
		<li>Operating system functionalities such as window manager, process manager, application lifecycle management</li>
		<li>Other programming languages besides <span class="caps">QML</span>, C++ and !JavaScript</li>
	</ul></p>

	<a name="d50ae403cb49a205bdf789f377f5cfe6"></a>	<h2>Releases</h2>

	<a name="109e2b5cef5606ce22b606575b53583c"></a>	<h3>Qt 5 minor releases</h3>

	<p>Qt is released commonly for everyone. Global releases maintain the integrity and identity of Qt as a single toolkit instead of a fragmented collection of related toolkits. </p>

	<p>Synchronized releases allow <span class="caps">API</span> review rounds and enable pervasive changes such as code refactoring to be done, because the project has a maturization period. </p>

	<p>Global releases should be schedule based (Qt 5.0 is an exception). </p>

	<p>Even though Qt is developed in a modular way and modules are generally independent, Qt is released as a collection of modules, where a certain combination of module versions is released together. Most Qt users should not need to care about the detailed version numbers of the modules but they should be able to consider Qt as a single non-fragmented toolkit. </p>

	<a name="498fdb87f6aeea669d2861712f56c988"></a>	<h3>Independent module releases</h3>

	<p>A new version of a module is developed against the latest released versions of other modules, and can be released as an independent module release. An independent module release must ensure that there is no regression. Also the new features need to be tested and new <span class="caps">API</span>s need to be reviewed.</p>

	<p>The developers of Qt modules and advanced users who are willing to take additional risks may also create &#8220;pick and mix&#8221; builds with other module version combinations. However, because the bigger Qt releases get a lot more review and validation from users and the developers of other modules, it is possible to discover problems or conflicts with other new modules, when an intermediate module release is finally included in the Qt release. Therefore, the new features in the intermediate module releases should be considered experimental.</p>

	<a name="fd2ba2e8de88db1649993aa5dcf51a75"></a>	<h3>Patch level releases</h3>

	<p>Patch level releases are meant for critical bug fixes and security updates only. Some modules (for example Qt WebKit) may need to issue security related patch level releases on a very short notice. Modules make patch level updates independently. Qt patch level releases consist of module patch level releases.</p>

	<a name="4582cf86974b397c8f3a2ed2fd502f8c"></a>	<h2>Configuration Tiers and Platform support</h2>

	<p>A configuration is a detailed specification of an operating system version, a tool chain version, a graphics system, and possibly other dependencies. The supported configurations of Qt are defined by what is used in the build bots. For user documentation, it is possible to &#8220;extrapolate&#8221; platform support from the tested configurations using common sense.</p>

	<p>In Qt 5, the configuration tiers should be a matter of documenting the facts: if a configuration meets the criteria, it becomes Tier 1. A configuration can move between tiers during the lifetime of a release.</p>

	<p><strong>Reference configurations</strong>: 
	<ul>
		<li>The Qt Project defines a small number of reference configurations, which are the primary configurations used in developing Qt. The number of reference configurations should not be a lot more than 5.</li>
		<li>All Qt releases must support all reference configurations</li>
		<li>Reference configurations must meet the Tier 1 criteria and never drop to Tier 2.</li>
	</ul></p>

	<p><strong>Tier 1 configuration criteria:</strong> 
	<ul>
		<li>The configuration participates in the CI system and any other  automated testing</li>
		<li>Availability of beta, alpha packages for the platform, and timely participation in manual testing for the packages</li>
		<li>Bug metrics criteria like # of P0 and P1 bugs on the platform</li>
		<li>Community committed to maintain the configuration for patch level releases, and commitment is credible (capacity exists)</li>
		<li>Other possible criteria, for example any required platform specific documentation exists and is of high quality</li>
	</ul></p>

	<p><strong>Tier 2 configuration criteria:</strong>
	<ul>
		<li>The configuration participates in the CI system and any other automated testing</li>
		<li>Availability of release packages for the platform</li>
	</ul></p>

	<p><strong>Tier 3 configurations</strong> are not officially a part of Qt. Platforms that do not meet the Tier 2 criteria fall into this category, for example because the platform is not in the CI system or &#8220;upstream&#8221;. </p>

	<p><strong>For new platforms</strong>, the contributors should start with a branch that tracks the master branches of the Qt, and provide a CI system for the branch. It is perfectly fine to make releases out of such platform specific branches. Once the platform has been proven to track the master successfully, the platform-specific branches can be integrated to the Qt module master branches and the platform can become an official part of Qt. </p>

	<a name="c6eb98439f903a34abf6e29f47b06270"></a>	<h2>Cross-platform promise</h2>

	<p>The cross-platform promise of Qt 5 differs from Qt 4 slightly, because some important functionalities are provided by add-on modules for which the platform support is defined separately. </p>

	<p>We should aim at releasing new versions of each module for all the reference platforms and Tier1 platforms of the module. That results in the same mix of module versions in the Qt release. This has a couple of benefits:</p>

	<ul>
		<li>Synergies in testing and validating the new designs and fixing bugs. A significant portion of Qt&#8217;s bugs are cross-platform issues, so having all the platforms work on the same module version mix creates synergies and improves the quality of the release.</li>
	</ul>

	<ul>
		<li>We avoid releasing designs that haven&#8217;t been validated on some of the important platforms</li>
	</ul>

	<ul>
		<li>We maintain the integrity of Qt as a single toolkit, which makes it easier for developers to understand what Qt is and to reuse code across platforms. It also makes it easier for the <span class="caps">SDK</span> to include documentation, demos, and examples.</li>
	</ul>

	<p>Making a new release of a module and choosing to not support a platform that is normally Tier1 should not be done.  Similarly, defining a different module version mix for different platforms in a Qt release should not be done. </p>

	<a name="a79cebd30df3933c09d6584eb0e9fa54"></a>	<h2>Compatibility promise and Qt release numbering</h2>

	<p>We will continue with the current major.minor.patch numbering scheme for Qt releases. The modules in Qt Essentials have the same forward and backward compatibility promises as Qt 4: New Qt 5 minor releases will not break binary compatibility, and patch level releases are forward and backward compatible. Qt Add-On modules specify their compatibility promise separately.</p>

	<a name="b2942393218146f6e2ad72a1034eb173"></a>	<h2>Qt 5.0</h2>

	<p>See the Qt 5.0 page on the roadmap for a list of modules in Qt Essentials and Qt Add-Ons for Qt 5.0: <br />
<a href="http://developer.qt.nokia.com/wiki/Qt_5.0">http://developer.qt.nokia.com/wiki/Qt_5.0</a></p>
      ]]></content>
    </entry>

    <entry>
      <title>QtQuickComponents_for_Qt5</title>
      <link rel="alternate" type="text/html" href="http://qt-project.org/groups/qt-contributors-summit-2011/wiki/QtQuickComponents_for_Qt5" />
      <id>tag:qt-project.org,2011:wiki:QtQuickComponents_for_Qt5/1262.10198</id>
      <published>2011-11-02T10:58:15Z</published>
      <updated>2011-11-02T10:58:15Z</updated>
      <author>
            <name>auotila</name>
            <email></email>
      </author>
      <content type="html"><![CDATA[
        <a name="e2e225a4c51a2283462b218043808e7b"></a>	<h1>Qt Quick Components for Qt 5</h1>

	<a name="12c74214cb4c18cf36d885303d6aa2e1"></a>	<h2>Goal</h2>

	<ol>
		<li>Qt Quick Components for multiple platforms
	<ul>
		<li>Cross platform achieved through, &#8220;One code base&#8221;</li>
	</ul></li>
		<li>Provides Qt look &amp; feel and behavior
	<ul>
		<li>For developers would mean good looking applications that works similarly on various platforms (not necessarily with native look&amp;feel)</li>
	</ul></li>
		<li>Customizable components
	<ul>
		<li>Platform specific components could use these components as baseline so that common <span class="caps">API</span> and behavior for components would be met</li>
	</ul></li>
	</ol>

	<a name="f9134937ba5da4d91eead723aee72481"></a>	<h2>Current status</h2>

	<ol>
		<li>Each platform is providing its own widget set (Symbian, Meego Harmattan Nokia, MeegoUX Intel)</li>
		<li>Some commonality on the Common <span class="caps">API</span> on the Nokia component set, but not enough to provide a solid cross-platform solution</li>
		<li>Component set between Symbian / Meego differs
	<ul>
		<li>common api, but behaviors are not guaranteed to be the same</li>
	</ul></li>
		<li>Desktop components is out of scope for this discussion (on the desktop we can provide a QWidget like cross-platform api)</li>
	</ol>

	<a name="ad4e206408c1c59bfb8a057ba7857446"></a>	<h2>Context</h2>

	<p>There are now at least 3 component sets developed, during this process we learned that it is extremely difficult to create a cross platform offering for platforms that are still in development. This effort involves synchronizing teams working on different platforms, with different requirements (for styling and theming, for example), to do a collaborative development that in the end might slow the whole process down, which is critical in the device release context.</p>

	<p>It is natural that platforms provide their own widget set, but Qt should ease the task of application developers that want to target the highest share of devices/platform possible. Qt needs a widget set with an api to be used as basis for app developers and also as a reference implementation for new platforms.</p>

	<a name="87a222577e9c7b7a0739d92337f4fe46"></a>	<h2>Reasoning</h2>

	<ol>
		<li>We&#8217;re lacking clear 3rd party story “Code once, run everywhere”</li>
		<li>Demand for UI components that runs across multiple platforms</li>
		<li>It is not worth trying to do 100% merge of code base of different platforms: for example, Meego and Symbian
	<ul>
		<li>We have seen in Meego/Symbian components activities that when developing for a specific platform, the focus is tightly related to platform specific problems. Thus, creating platform dependencies.</li>
	</ul></li>
	</ol>

	<a name="b98e4718638691c68df68cfa5dbb1f39"></a>	<h2>What to do (plan)</h2>

	<ol>
		<li>Mission: &#8220;provide a style for mobile devices that works everywhere, as a cross-platform solution for application developers&#8221;</li>
		<li>Cross platform achieved by using the same code base!</li>
		<li>Easy to use mobile friendly navigation model
	<ul>
		<li>Page concept provides a browsing like experience that is understood by end-user</li>
		<li>Most mobile UIs have a similar concept</li>
	</ul></li>
		<li>Platform neutral Qt look and feel
	<ul>
		<li>promote collaborative design in the open source community</li>
	</ul></li>
		<li><span class="caps">API</span> and behaviors defined by Qt</li>
		<li>Start as Qt 5 add-on</li>
	</ol>

	<a name="f37f19dc7cc64a44bd9a81a1d0a8a864"></a>	<h2>Way to get there</h2>

	<ol>
		<li>Develop project openly as Qt 5 add-on</li>
		<li>Use the custom/template branch of qt-components repository as basis for customization possibilities
	<ul>
		<li>Styling <span class="caps">API</span>s would not be opened at the first phase. (we still can have a private styling api internally)</li>
	</ul></li>
		<li>No platform specific code involved, would run on top of Qt Quick (Qt Quick 2?)
	<ul>
		<li>In spirit of “Code once, run everywhere”</li>
		<li>Best would be <span class="caps">QML</span> code only, without compilation needs (this is not a hard requirement)</li>
	</ul></li>
		<li>What components?
	<ul>
		<li>basic core controls: button, checkbox, radiobutton, switch, buttongroup, buttonrow, slider, progress, TextArea, TextField</li>
		<li>advanced (later): page, dialog, window, screen, context menu, toolbar</li>
		<li>out of scope: tooltip, menu</li>
	</ul></li>
	</ol>
      ]]></content>
    </entry>

    <entry>
      <title>Schedule</title>
      <link rel="alternate" type="text/html" href="http://qt-project.org/groups/qt-contributors-summit-2011/wiki/Schedule" />
      <id>tag:qt-project.org,2011:wiki:Schedule/1126.8824</id>
      <published>2011-07-15T20:04:13Z</published>
      <updated>2011-07-15T20:04:13Z</updated>
      <author>
            <name>konrad</name>
            <email></email>
      </author>
      <content type="html"><![CDATA[
        <a name="25f7347236b51a5eae4ba01a7862cb55"></a>	<h1>Schedule</h1>

	<p><strong>DO <span class="caps">NOT</span> <span class="caps">UPDATE</span> <span class="caps">THIS</span> <span class="caps">SCHEDULE</span> <span class="caps">DURING</span> <span class="caps">THE</span> <span class="caps">SUMMIT</span> TO <span class="caps">ADD</span> <span class="caps">SESSIONS</span>! <span class="caps">USE</span> <span class="caps">THE</span> <span class="caps">PAPER</span> <span class="caps">VERSION</span> IN <span class="caps">THE</span> <span class="caps">ENTRANCE</span> <span class="caps">AREA</span>!</strong></p>

	<p><strong><span class="caps">NOTE</span>:</strong> &#8220;x&#8221; is a placeholder that can (and should!) be replaced with a real title. <span class="smiley">:)</span><br />
The training sessions in <span class="caps">GEO</span> will be filmed and made available online after the event.</p>

	<p><span class="caps">PDF</span> version of the Saturday schedule as of 10:00 is at <a href="http://bit.ly/iNEMAK">http://bit.ly/iNEMAK</a></p>

	<a name="78ae6f0cd191d25147e252dc54768238"></a>	<h2>Thursday</h2>

<table class="infotable line"><tr><td></td><td><strong><span class="caps">GEO</span></strong></td><td><strong><span class="caps">MARS</span> A</strong></td><td><strong><span class="caps">MARS</span> B</strong></td><td><strong><span class="caps">METEOR</span> A</strong></td><td><strong><span class="caps">METEOR</span> B</strong></td><td><strong><span class="caps">VENERA</span> A</strong></td><td><strong><span class="caps">VENERA</span> B</strong></td><td><strong><span class="caps">VEGA</span> A</strong></td><td><strong><span class="caps">VEGA</span> B</strong></td></tr><tr><td><strong>09:00 &#8211; 10:00</strong></td><td style="text-align:center;" colspan="9">Registrations in the entrance area</td></tr><tr><td><strong>10:00 &#8211; 12:30</strong></td><td style="text-align:center;" colspan="9">Keynotes <span class="caps">KOSMOS</span></td></tr><tr><td><strong>12:30 &#8211; 13:30</strong></td><td style="text-align:center;" colspan="9">Lunch <span class="caps">GLOBUS</span></td></tr><tr><td><strong>13:30 &#8211; 14:30</strong></td><td rowspan="2">Qt Roadmap review (including Roadmap process, Roadmap status and Qt 5.0 highlights)</td><td>x</td><td>Object model (QObject)</td><td>WebKit 2</td><td>Interoperability with non-Qt code</td><td><span class="caps">QPA</span> (lighthouse) plugins</td><td><a href="http://qt-project.org/groups/qt-contributors-summit-2011/wiki/Qt-and-OAuth" title="Qt-and-OAuth" class="noArticle">Qt and OAuth</a></td><td><a href="http://qt-project.org/groups/qt-contributors-summit-2011/wiki/qtquick3d" title="qtquick3d">Qt Quick 3D</a></td><td>x</td></tr><tr><td><strong>14:30 &#8211; 15:30</strong></td><td>Accessibility</td><td><a href="http://qt-project.org/groups/qt-contributors-summit-2011/wiki/QMetaType" title="QMetaType">QMetaType</a></td><td><a href="http://qt-project.org/groups/qt-contributors-summit-2011/wiki/where_does_qt_lack_quality" title="where_does_qt_lack_quality">Where does Qt lack quality?</a></td><td><a href="http://qt-project.org/groups/qt-contributors-summit-2011/wiki/interop_with_non_qt_code" title="interop_with_non_qt_code">Interoperability with non Qt code</a></td><td>Future of localization and translation</td><td>x</td><td>x</td><td>Modules in Qt 5</td></tr><tr><td><strong>15:30 &#8211; 16:00</strong></td><td style="text-align:center;" colspan="9">Coffee break <span class="caps">GLOBUS</span> &amp; <span class="caps">ASTRON</span></td></tr><tr><td><strong>16:00 &#8211; 17:00</strong></td><td rowspan="2">Qt Open Governance Roles and Processes</td><td><a href="http://qt-project.org/groups/qt-contributors-summit-2011/wiki/qt_quick_components_for_symbian" title="qt_quick_components_for_symbian">Qt Quick components for Symbian</a></td><td><a href="http://thread.gmane.org/gmane.comp.lib.qt.script/36">QtScript</a> <em>[thread.gmane.org]</em></td><td><a href="http://qt-project.org/groups/qt-contributors-summit-2011/wiki/SceneGraph" title="SceneGraph">SceneGraph</a></td><td><a href="http://qt-project.org/groups/qt-contributors-summit-2011/wiki/Qt-Network" title="Qt-Network" class="noArticle">Qt Network</a></td><td>x</td><td>Qt 5 Structure</td><td>x</td><td>Translation</td></tr><tr><td><strong>17:00 &#8211; 18:00</strong></td><td>x</td><td>ItemViews</td><td><a href="http://qt-project.org/groups/qt-contributors-summit-2011/wiki/PerformanceQA" title="PerformanceQA">Performance QA</a></td><td><a href="http://qt-project.org/groups/qt-contributors-summit-2011/wiki/Qt-Network" title="Qt-Network" class="noArticle">Qt Network</a></td><td> <a href="http://qt-project.org/groups/qt-contributors-summit-2011/wiki/QtQuickComponents_for_Qt5" title="QtQuickComponents_for_Qt5">Reusability of Qt Quick Components across platforms</a> </td><td>Qt 5 Releases and Platforms</td><td>x</td><td>x</td></tr><tr><td><strong>18:00 &#8211; 18:30</strong></td><td style="text-align:center;" colspan="9">Break</td></tr><tr><td><strong>18:30 &#8211; 20:30</strong></td><td style="text-align:center;" colspan="9">Dinner <span class="caps">GLOBUS</span></td></tr><tr><td><strong>21:00 &#8211; 23:00</strong></td><td style="text-align:center;" colspan="9">Party with Trollband <span class="caps">KOSMOS</span></td></tr></table>

	<a name="c33b138a163847cdb6caeeb7c9a126b4"></a>	<h2>Friday</h2>

<table class="infotable line"><tr><td></td><td><strong><span class="caps">GEO</span></strong></td><td><strong><span class="caps">MARS</span> A</strong></td><td><strong><span class="caps">MARS</span> B</strong></td><td><strong><span class="caps">METEOR</span> A</strong></td><td><strong><span class="caps">METEOR</span> B</strong></td><td><strong><span class="caps">VENERA</span> A</strong></td><td><strong><span class="caps">VENERA</span> B</strong></td><td><strong><span class="caps">VEGA</span> A</strong></td><td><strong><span class="caps">VEGA</span> B</strong></td></tr><tr><td><strong>09:00 &#8211; 10:00</strong></td><td>Legal training</td><td>How can QA tools and assets be improved?</td><td>Qt, Meego and AppUp</td><td>x</td><td><span class="caps">QML</span> 2</td><td>x</td><td>Qt <span class="caps">SQL</span></td><td>x</td><td>x</td></tr><tr><td><strong>10:00 &#8211; 11:00</strong></td><td>&#8220;Hot topic&#8221; <span class="caps">TBD</span></td><td>Qt, MeeGo and AppUp</td><td><span class="caps">KDE</span> and Qt communities working together</td><td>Localization in <span class="caps">QML</span></td><td>Testcocoon (overview)</td><td>Necessitas Qt on Android (Overview)</td><td>Dynamic Meta Object</td><td>Qt WebKit (outside Nokia)</td><td><a href="http://qt-project.org/groups/qt-contributors-summit-2011/wiki/QtBuildSystem" title="QtBuildSystem">Build System</a></td></tr><tr><td><strong>11:00 &#8211; 11:30</strong></td><td style="text-align:center;" colspan="9">Coffee break <span class="caps">GLOBUS</span> &amp; <span class="caps">ASTRON</span></td></tr><tr><td><strong>11:30 &#8211; 12:30</strong></td><td>Qt Open Governance Tools (<span class="caps">JIRA</span>, git and Gerrit)</td><td>Qt Wayland</td><td>Qt Font Stack</td><td>x</td><td>Testcocoon Discussion</td><td>x</td><td>Qt Script Hacking</td><td>Qt MultimediaKit What next?</td><td><span class="caps">KDE</span> &amp; Qt Technical Issues</td></tr><tr><td><strong>12:30 &#8211; 13:30</strong></td><td style="text-align:center;" colspan="9">Lunch <span class="caps">GLOBUS</span></td></tr><tr><td><strong>13:30 &#8211; 14:30</strong></td><td><a href="http://qt-project.org/groups/qt-contributors-summit-2011/wiki/API_Design" title="API_Design"><span class="caps">API</span> Design</a> (&amp; binary compatibility)</td><td>Qt Quick components for Desktop</td><td>Qt Embedded</td><td><a href="http://qt-project.org/groups/qt-contributors-summit-2011/wiki/your_experience_with_contributing" title="your_experience_with_contributing">What is your personal experience with contributing to Qt?</a></td><td>Documentation and DevNet &amp; Examples and demos for the documentation</td><td><a href="http://qt-project.org/groups/qt-contributors-summit-2011/wiki/QIODevice-API-fixes" title="QIODevice-API-fixes" class="noArticle"><span class="caps">QIOD</span>evice <span class="caps">API</span> fixes</a></td><td>WebKit 2 War stories</td><td><a href="http://qt-project.org/groups/qt-contributors-summit-2011/wiki/ImprovingObjectLifeCycle" title="ImprovingObjectLifeCycle">Improving object life cycle</a></td><td>x</td></tr><tr><td><strong>14:30 &#8211; 15:30</strong></td><td>Legal training (recap)</td><td><a href="http://qt-project.org/groups/qt-contributors-summit-2011/wiki/QtCS2011_Qt_on_Mobile" title="QtCS2011_Qt_on_Mobile">Qt on Mobile</a></td><td>Qt Commercial How to cooperate?</td><td><a href="http://qt-project.org/groups/qt-contributors-summit-2011/wiki/Metrics" title="Metrics">What metrics would help Qt contributors?</a></td><td>&#8220;<span class="caps">CPAN</span>&#8221; for Qt Qt add-on gallery</td><td><a href="http://qt-project.org/groups/qt-contributors-summit-2011/wiki/Printing" title="Printing">Printing in Qt5</a></td><td>Symbian command line debugging</td><td><a href="http://qt-project.org/groups/qt-contributors-summit-2011/wiki/Contributing-to-Qt-Creator" title="Contributing-to-Qt-Creator" class="noArticle">Contributing to Qt Creator</a></td><td>Qt WebKit releases and security updates</td></tr><tr><td><strong>15:30 &#8211; 16:00</strong></td><td style="text-align:center;" colspan="9">Coffee break <span class="caps">GLOBUS</span> &amp; <span class="caps">ASTRON</span></td></tr><tr><td><strong>16:00 &#8211; 17:00</strong></td><td><a href="http://qt-project.org/groups/qt-contributors-summit-2011/wiki/Qt5ProductDefinition" title="Qt5ProductDefinition">Qt 5 product definition</a></td><td><a href="http://qt-project.org/groups/qt-contributors-summit-2011/wiki/Input_methods_and_Wayland_in_Qt_5" title="Input_methods_and_Wayland_in_Qt_5">Input methods and Wayland in Qt 5</a></td><td>Qt office documents <span class="caps">API</span>s</td><td>Improving QLocale / KLocale, <a href="http://qt-project.org/groups/qt-contributors-summit-2011/wiki/QDateTime" title="QDateTime">QDateTime</a>, Collation</td><td>x</td><td>Necessitas Qt on Android (Hands-on)</td><td><a href="http://qt-project.org/groups/qt-contributors-summit-2011/wiki/QML_Tooling" title="QML_Tooling"><span class="caps">QML</span> tooling</a></td><td>x</td></tr><tr><td><strong>17:00 &#8211; 18:00</strong></td><td>&#8220;Social Skills for Geeks&#8221; / Ways of Working </td><td>x</td><td>x</td><td>Games with Qt</td><td>CrowdQuick UX Feedback</td><td>x</td><td>x</td><td>x</td><td>Qt/DirectFB</td></tr></table>

	<a name="8b7051187b9191cdcdae6ed5a10e5adc"></a>	<h2>Saturday</h2>

<table class="infotable line"><tr><td></td><td><strong><span class="caps">GEO</span></strong></td><td><strong><span class="caps">MARS</span> A</strong></td><td><strong><span class="caps">MARS</span> B</strong></td><td><strong><span class="caps">METEOR</span> A</strong></td><td><strong><span class="caps">METEOR</span> B</strong></td><td><strong><span class="caps">VENERA</span> A</strong></td><td><strong><span class="caps">VENERA</span> B</strong></td><td><strong><span class="caps">VEGA</span> A</strong></td><td><strong><span class="caps">VEGA</span> B</strong></td></tr><tr><td><strong>09:00 &#8211; 10:00</strong></td><td>Qt Open Governance Roles and Processes (recap)</td><td>x</td><td>x</td><td>x</td><td>x</td><td>x</td><td>x</td><td>x</td><td>x</td></tr><tr><td><strong>10:00 &#8211; 11:00</strong></td><td>Necessitas Qt on Android (Hands-on)</td><td>x</td><td><a href="http://qt-project.org/groups/qt-contributors-summit-2011/wiki/QML_Tooling" title="QML_Tooling"><span class="caps">QML</span> tooling feedback</a></td><td><span class="caps">SQL</span> Followup</td><td>Qt Module naming</td><td>Trolls in opensource</td><td>x</td><td>x</td><td>x</td></tr><tr><td><strong>11:00 &#8211; 11:30</strong></td><td style="text-align:center;" colspan="9">Coffee break <span class="caps">GLOBUS</span> &amp; <span class="caps">ASTRON</span></td></tr><tr><td><strong>11:30 &#8211; 12:30</strong></td><td>Qt Open Governance Tools (<span class="caps">JIRA</span>, git and Gerrit)(recap)</td><td>x</td><td>x</td><td>x</td><td>Defining meta data for Qt Library</td><td>x</td><td>Qt on iOS</td><td><span class="caps">ORM</span> (not <span class="caps">DRM</span>)</td><td><a href="http://qt-project.org/groups/qt-contributors-summit-2011/wiki/analytics_like_feature_for_qt_apps" title="analytics_like_feature_for_qt_apps">Analytics like feature for Qt apps</a></td></tr><tr><td><strong>12:30 &#8211; 13:30</strong></td><td style="text-align:center;" colspan="9">Lunch <span class="caps">GLOBUS</span></td></tr><tr><td><strong>13:30 &#8211; 14:30</strong></td><td>&#8220;Hot topic&#8221; <span class="caps">TBD</span></td><td>Meego Apps development</td><td>Qt Date Time handling</td><td>x</td><td>Qt Creator plugins</td><td><a href="http://qt-project.org/groups/qt-contributors-summit-2011/wiki/qtquick3d" title="qtquick3d">Qt Quick 3D how to contribute</a></td><td>contribution for neural network classes</td><td>Applications with <span class="caps">QML</span> &#8211; Lessons Learnt from real world apps</td><td>x</td></tr><tr><td><strong>14:30 &#8211; 15:30</strong></td><td>&#8220;Hot topic&#8221; <span class="caps">TBD</span></td><td><a href="http://qt-project.org/groups/qt-contributors-summit-2011/wiki/LDAP-Integration" title="LDAP-Integration" class="noArticle"><span class="caps">LDAP</span> Integration</a></td><td>Language Bindings</td><td><a href="http://qt-project.org/groups/qt-contributors-summit-2011/wiki/DevNet_Wiki" title="DevNet_Wiki">DevNet_Wiki</a></td><td>x</td><td>x</td><td>x</td><td>QPainter feature</td><td>x</td></tr><tr><td><strong>15:30 &#8211; 16:00</strong></td><td style="text-align:center;" colspan="9">Closing</td></tr></table>
      ]]></content>
    </entry>

    <entry>
      <title>LDAP_Integration</title>
      <link rel="alternate" type="text/html" href="http://qt-project.org/groups/qt-contributors-summit-2011/wiki/LDAP_Integration" />
      <id>tag:qt-project.org,2011:wiki:LDAP_Integration/1288.8720</id>
      <published>2011-07-10T20:43:43Z</published>
      <updated>2011-07-10T20:43:43Z</updated>
      <author>
            <name>msvb</name>
            <email></email>
      </author>
      <content type="html"><![CDATA[
        <a name="bee526237b9d3431e968409886a0d967"></a>	<h1><span class="caps">LDAP</span> Integration</h1>

	<a name="2df82b80b0dd97384fe06832f26a1fd5"></a>	<h3>Michael Schloh von Bennewitz</h3>

	<a name="ceef57ed10b4e134229fdf75100379a3"></a>	<h3>Cafe Moskau Mars A, 14:30-15:30</h3>

	<a name="84287b0ab454d23c30956b604ad87b88"></a>	<h3>Qt Contributor Summit Minutes</h3>

	<p>A one timeslot meeting was scheduled after hallway chats which led to interest in pursuing integration of <span class="caps">LDAP</span> in Qt. </p>

	<ul>
		<li>Discussion about licensing was discussed, probably due to developers&#8217; concern of prototyping using <em>OpenLDAP</em> or integrating code from <span class="caps">KDE</span>.</li>
	</ul>

	<ul>
		<li>Lecture sheet is wrong to state that <em>OpenLDAP</em> includes the <span class="caps">GPL</span>. Instead it includes the <span class="caps">BSD</span>. This is not true either! After the fact, it was determined that <em>OpenLDAP</em> distributes its own license called the &#8216;OpenLDAP Public License&#8217; which is similar to <span class="caps">BSD</span>.</li>
	</ul>

	<ul>
		<li><a href="http://api.kde.org/4.0-api/kdepimlibs-apidocs/kldap/"><span class="caps">KLDAP</span></a> <em>[api.kde.org]</em> has been available for a while, seems to be actively developed but not that popular.</li>
	</ul>

	<ul>
		<li><em><span class="caps">KLDAP</span></em> is qualified by the <span class="caps">GPL</span>, and could be a very important clue in progress towards <span class="caps">LDAP</span> integrating.</li>
	</ul>

	<blockquote>
		<p>Use cases for <span class="caps">LDAP</span> integration in Qt abound, and many closely resemble use cases served (sometimes inappropriately) by the <span class="caps">QSQL</span> classes.</p>
	</blockquote>

	<ul>
		<li>Use cases abound including <strong>QNetwork</strong> <span class="caps">LDAP</span> authentication. Several examples were mentioned such as input completion in email clients and IP telephones.</li>
	</ul>

	<ul>
		<li>Many use cases served by <strong><span class="caps">QSQL</span></strong> could benefit from a <strong><span class="caps">QLDAP</span></strong> library.</li>
	</ul>

	<ul>
		<li>The differences between <span class="caps">SQL</span> and <span class="caps">LDAP</span> technology were mentioned.</li>
	</ul>

	<ul>
		<li>It was emphasized that <span class="caps">SQL</span> and <span class="caps">LDAP</span> are similar in many ways, at least in the sense that the problems that they solve overlap.</li>
	</ul>

	<ul>
		<li><del>To reduce <span class="caps">API</span> (re)structure, <span class="caps">LDAP</span> components could be integrated into the <strong><span class="caps">QSQL</span></strong> classes.</del> It was agreed that any <span class="caps">LDAP</span> logic placed in or near Qt should not be integrated into the existing <strong><span class="caps">QSQL</span></strong> library. Instead it should be its own library, and probably take a back seat to priority libraries by means of becoming a addon component.</li>
	</ul>

	<ul>
		<li>Lecture sheets corresponding to the presentation will be published.</li>
	</ul>

	<ul>
		<li>Update! The sheets are available from the <a href="ftp://ftp.europalab.com/pub/doc/lect/ldapint/">Europalab Fileserver</a> <em>[ftp.europalab.com]</em></li>
	</ul>
      ]]></content>
    </entry>

    <entry>
      <title>Topic_List</title>
      <link rel="alternate" type="text/html" href="http://qt-project.org/groups/qt-contributors-summit-2011/wiki/Topic_List" />
      <id>tag:qt-project.org,2011:wiki:Topic_List/952.8718</id>
      <published>2011-07-10T19:48:45Z</published>
      <updated>2011-07-10T19:48:45Z</updated>
      <author>
            <name>msvb</name>
            <email></email>
      </author>
      <content type="html"><![CDATA[
        <a name="334aa717fee0225307396c00dd9f54df"></a>	<h1>Current topic list</h1>

	<p>This is a living list that will most likely change over the coming weeks. </p>

	<p>1 slot is meant to take 50 minutes to allow for easy changing of rooms and coffee I/O. Longer sessions can book 2 slots.</p>

<table class="infotable line"><tr><td><strong>Topic title</strong></td><td><strong>Topic Owner</strong></td><td><strong>Slots</strong></td><td><strong>Description</strong></td><td><strong>Comments</strong></td></tr><tr><td> Qt Roadmap Review</td><td>Pia Vuorela</td><td>1</td><td>public roadmap reviews kick-off</td><td>Qt Public Roadmap process</td></tr><tr><td>&#8220;</td><td>Henry Haverinen</td><td></td><td></td><td>Qt Roadmap overview</td></tr><tr><td>&#8220;</td><td>Lars Knoll</td><td></td><td></td><td>Highlights of Qt 5.0</td></tr><tr><td>Network stack</td><td>Markus Goetz</td><td>1</td><td>General information and overview</td><td>Makes only sense if we have people participating that are interested in the network stack</td></tr><tr><td>Object model</td><td>Olivier Goffart</td><td>1</td><td>How to move forward with QObject, signals and slots, moc, &#8230;</td><td>Technical introducion to the code and discussions on what could be done, <a href="http://developer.qt.nokia.com/wiki/New_Signal_Slot_Syntax">new connection syntax</a> <em>[developer.qt.nokia.com]</em> </td></tr><tr><td><a href="http://qt-project.org/groups/qt-contributors-summit-2011/wiki/API_Design" title="API_Design"><span class="caps">API</span> Design</a>  </td><td>Olivier Goffart</td><td>1</td><td>Presentation on the Qt way of <span class="caps">API</span> design and binary compatibility</td><td> </td></tr><tr><td>Qt Quick 2 and beyond </td><td>Michael Brasser</td><td>2</td><td>Planned features for Qt Quick 2 and future directions </td><td>General overview and discussions on what could be done </td></tr><tr><td></td><td></td><td></td><td></td><td>Qt Quick on the desktop</td></tr><tr><td></td><td></td><td></td><td></td><td>C++ data models for <span class="caps">QML</span></td></tr><tr><td>QtWebKit roadmap review</td><td></td><td>1</td><td></td><td></td></tr><tr><td><span class="caps">QPA</span> (lighthouse) plugins</td><td>Jørgen</td><td>1</td><td></td><td></td></tr><tr><td>QtWayland</td><td>Jørgen</td><td>1</td><td>QtWayland is a new Qt module containing the wayland qpa plugin and QtCompositor</td><td></td></tr><tr><td><a href="http://qt-project.org/groups/qt-contributors-summit-2011/wiki/SceneGraph" title="SceneGraph">SceneGraph adaptions</a></td><td>Gunnar</td><td>1</td><td></td><td></td></tr><tr><td>Modularization</td><td>Kristian/Thiago</td><td>1</td><td></td><td></td></tr><tr><td>Platform support</td><td></td><td>1</td><td></td><td></td></tr><tr><td>Examples and demos for the documentation</td><td>Casper van Donderen</td><td>0.5</td><td></td><td></td></tr><tr><td>Documentation and DevNet</td><td>Kevin Wright</td><td>0.5</td><td></td><td></td></tr><tr><td>Workflow for contributing to the documentation</td><td></td><td>1</td><td></td><td>The workflow for code contribution has been setup. We need a similar process for contributing to the documentation (excluding the actual <span class="caps">API</span> docs?)</td></tr><tr><td><a href="http://qt-project.org/groups/qt-contributors-summit-2011/wiki/DevNet_Wiki" title="DevNet_Wiki">DevNet_Wiki</a></td><td><a href="http://developer.qt.nokia.com/member/20">Volker</a> <em>[developer.qt.nokia.com]</em></td><td>1</td><td></td><td>A <a href="http://developer.qt.nokia.com/wiki/Structuring_DevNet_Wiki">wiki article</a> <em>[developer.qt.nokia.com]</em> has a suggestion</td></tr><tr><td>SW project management and feature planning</td><td></td><td>2</td><td></td><td></td></tr><tr><td>Criteria for reviewer-/maintainership</td><td>Thiago</td><td>1</td><td></td><td>There needs to be a way to find out who the maintainer is, and a way to actually reach that maintainer.</td></tr><tr><td>Qt vs. QtWebKit practices/workflows/rules</td><td>Simon</td><td>1</td><td></td><td></td></tr><tr><td><a href="http://qt-project.org/groups/qt-contributors-summit-2011/wiki/where_does_qt_lack_quality" title="where_does_qt_lack_quality">Where does Qt lack quality?</a></td><td>Caroline Chao</td><td>1</td><td></td><td></td></tr><tr><td><a href="http://qt-project.org/groups/qt-contributors-summit-2011/wiki/PerformanceQA" title="PerformanceQA">Performance QA</a></td><td>Jo Asplin</td><td>1</td><td></td><td></td></tr><tr><td>How can QA tools and assets be improved?</td><td>Sergey Hambardzumyan</td><td>1</td><td></td><td></td></tr><tr><td>What metrics would help Qt contributors? </td><td>Sergio Ahumada</td><td>1</td><td></td><td></td></tr><tr><td>Open Governance practicalities: Tools overview </td><td>Kevin Wright</td><td>1</td><td>tooling, infrastructure, cooperation. We also need some discussion on how we structure the approval of new features. For instance, it would be good to be able to discuss a contribution <em>and get an OK for it</em>  in principle before any code is submitted. </td><td></td></tr><tr><td>Open Governance Tools training</td><td>Kevin Wright</td><td>2</td><td>Gerrit, git, <span class="caps">JIRA</span>, ..</td><td></td></tr><tr><td>Open Governance Roles and Processes training</td><td>Hanne Linaae</td><td>2</td><td>More in-depth than keynote about how Qt Open Governance is supposed to work. </td><td> Should be done by Thiago or similar.</td></tr><tr><td>&#8220;Social Skills for Geeks&#8221;</td><td>Hanne Linaae</td><td>1</td><td>Training and discussion style. Ways of working in the community</td><td></td></tr><tr><td>How to start a Qt project</td><td></td><td>1</td><td></td><td></td></tr><tr><td>C++0x</td><td></td><td>1</td><td></td><td></td></tr><tr><td>QtScript</td><td>Jędrzej Nowacki</td><td>1</td><td>Future of QtScript, V8 port and in general <span class="caps">ECMA</span> Script integration </td><td></td></tr><tr><td>Qt 5</td><td></td><td>1</td><td></td><td></td></tr><tr><td>Qt 5 product definition </td><td> Henry Haverinen </td><td> 1 </td><td> Qt5 &#8220;product&#8221; topics like scope, module/package structure, cross-platform promise, compatibility promise, naming and numbering, Qt and add-ons for Qt </td><td> <a href="http://qt-project.org/groups/qt-contributors-summit-2011/wiki/Qt5ProductDefinition" title="Qt5ProductDefinition">Wiki article about this topic</a> </td></tr><tr><td>WebKit 2 for Qt</td><td>Simon</td><td>1</td><td></td><td></td></tr><tr><td>Localization</td><td>Denis Dzyubenko</td><td>1</td><td>Currenct status and ideas for improvements</td><td>Only if there are people interested in the topic. Feedback and code from <span class="caps">KDE</span> (John Layt) would be great.  <span class="caps">KDE</span> very interested in discussing using QLocale and QDateTime.  See <a href="http://developer.qt.nokia.com/groups/qt_contributors_summit/wiki/QDateTime">http://developer.qt.nokia.com/groups/qt_contributors_summit/wiki/QDateTime</a> and <a href="http://community.kde.org/KDE_Core/Platform_11/Locale">http://community.kde.org/KDE_Core/Platform_11/Locale</a></td></tr><tr><td><a href="http://qt-project.org/groups/qt-contributors-summit-2011/wiki/QtFontStack" title="QtFontStack">Qt Font Stack</a></td><td>Eskil, Jiang</td><td>1</td><td>Recent changes and future plans for the font stack</td><td></td></tr><tr><td>Contributing to Qt Creator</td><td>Daniel Molkentin / Erik Verbruggen</td><td>1</td><td>How can we encourage external contributions? What do people miss?</td><td></td></tr><tr><td>Accessibility</td><td>Frederik Gladhorn</td><td>1</td><td></td><td></td></tr><tr><td>The Meditech Project</td><td>Enrico Miglino</td><td>1</td><td>A Qt-based project in the health care field integrating custom hardware, wireless, mobile, networking and multiplatform desktop environment.</td><td>The project is totally open-source and open-hardware. Applying in other projects too, in this project should be presented a different approach to multi-platform development and mobile vs desktop application integration.</td></tr><tr><td>Introduction to git</td><td>Enrico Miglino</td><td>1</td><td>Introduction to git (with special focus on the usage within the Qt ecosystem)</td><td>Some additional information for users who are familiar with svn and/or hg would be helpful</td></tr><tr><td><a href="http://qt-project.org/groups/qt-contributors-summit-2011/wiki/QtBuildSystem" title="QtBuildSystem">Build System</a></td><td>Andr&eacute; P&ouml;nitz</td><td>1</td><td>a session on the build system &#8211; does it make sense to keep qmake around? Should Qt adopt cmake, maybe turning qma</td><td>For preparation, please read <a href="http://labs.qt.nokia.com/2009/10/14/to-make-or-not-to-make-qmake-and-beyond-redux/">http://labs.qt.nokia.com/2009/10/14/to-make-or-not-to-make-qmake-and-beyond-redux/</a></td></tr><tr><td><a href="http://qt-project.org/groups/qt-contributors-summit-2011/wiki/LDAP-Integration" title="LDAP-Integration" class="noArticle"><span class="caps">LDAP</span></a></td><td>Michael Schloh von Bennewitz</td><td>1</td><td>Discussion of potential integration of <em><span class="caps">LDAP</span></em> in the Qt library</td><td>Integration could resemble the <strong><span class="caps">QSQL</span>&#8230;</strong> classes, or be part of the new <em>addon architecture</em>. Lecture sheets are available from the <a href="ftp://ftp.europalab.com/pub/doc/lect/ldapint/">Europalab Fileserver</a> <em>[ftp.europalab.com]</em></td></tr><tr><td>ItemViews</td><td>Gabriel de Dietrich</td><td>1</td><td>The What, Who, and How of the future of ItemViews</td><td>I don&#8217;t think it&#8217;s worth doing a presentation, but I can moderate the debate if there&#8217;s enough interest</td></tr><tr><td>Legal Training for Maintainers &amp; Approvers</td><td>Cristy Hamley &amp; Ari Tähti</td><td>1</td><td>The legal &#8220;how to&#8221; for maintainers &amp; approvers</td><td></td></tr><tr><td>Code cleanup</td><td>Jeremy Katz?</td><td>1</td><td>areas where the code could use some non-feature, non-bug fix love</td><td></td></tr><tr><td>Interoperability with non-Qt code</td><td>Jeremy Katz?</td><td>1</td><td>Should Qt have better interoperability with (<span class="caps">GTK</span><ins>, Boost, ?)</td><td></td></tr><tr><td>Next Step in Qt Training</td><td>Juergen Bocklage-Ryannel</td><td>1</td><td>Training Material is Open Sourced. How to contribute?</td><td></td></tr><tr><td><a href="http://qt-project.org/groups/qt-contributors-summit-2011/wiki/QtMultimediaKit" title="QtMultimediaKit">QtMultimediaKit Beyond Mobility</a></td><td>Gerard Loughran, Michael Goddard</td><td>1</td><td> An overview of what is currently offered, future plans (including Qt5 and OpenGov), and how contribution is supported </td><td></td></tr><tr><td>Qt on Mobile</td><td>Tero Äijälä and Aleksi Uotila </td><td>1</td><td>Discussions on Qt developer experience, short term roadmap and <span class="caps">API</span>s on mobile device (Symbian, MeeGo)</td><td></td></tr><tr><td><a href="http://qt-project.org/groups/qt-contributors-summit-2011/wiki/qt_quick_components_for_symbian" title="qt_quick_components_for_symbian">Qt Quick components for Symbian</a></td><td>Pekka Jokela, Timo Rouvinen</td><td>1</td><td> Demo of Symbian Qt Components 1.0 using QtCreator. Going through the essential components and demonstrating application development with simulator and hardware. </td><td></td></tr><tr><td><a href="http://qt-project.org/groups/qt-contributors-summit-2011/wiki/SQL_session_notes" title="SQL_session_notes">Qt <span class="caps">SQL</span></a></td><td>Michael Goddard, Charles Yin</td><td>1</td><td>Improvements, future, finding <del>victim</del>&zwj;hero to maintain it</td><td> The other sessions that touch on maintanership (legal, opengov, criteria etc) might also be interesting to potential maintainers. </td></tr><tr><td>Code coverage testing of Qt applications</td><td>Sebastien Fricker &amp; Bill King</td><td>1</td><td>Using Testcocoon to provide coverage metrics to improve testing levels of Qt applications</td><td></td></tr><tr><td>Qt Quick 3D</td><td>Minjung Shin</td><td>1</td><td>Qt Quick 3D roadmap and feedback session</td><td></td></tr><tr><td>MetaType/introspection model</td><td>Stephen Kelly,  Olivier Goffart</td><td>1</td><td>Figuring out what the Metatype introspection stuff/QVariant should make possible</td><td>A bunch of stuff may be possible, such as <a href="http://steveire.wordpress.com/2010/09/29/grantlee-pairs-up-with-the-other-template-system/">Recursive Autoconditional Container registration</a> and <a href="http://steveire.wordpress.com/2011/03/16/implementing-qvariantqmetatype-features-with-template-tricks/">QVariant/QObject introspection features, <a href="http://bugreports.qt.nokia.com/browse/QTBUG-15313">http://bugreports.qt.nokia.com/browse/QTBUG-15313</a></a></td></tr><tr><td><a href="http://qt-project.org/groups/qt-contributors-summit-2011/wiki/Embedded_session_notes" title="Embedded_session_notes">Qt really Embedded</a>, <span class="caps">RTOS</span></td><td>Harald Fernengel, Jørgen Lind</td><td>1</td><td>Discussion about really embedded devices, and the <span class="caps">RTOS</span> (<span class="caps">QNX</span>, VxWorks, <span class="caps">INTEGRITY</span>) ports of Qt. How can we make Qt super-small, yet still usable / maintainable?</td><td></td></tr><tr><td> <span class="caps">KDE</span> and Qt communities working together </td><td> Cornelius Schumacher, Frederik Gladhorn </td><td>1</td><td>What can we learn from each other? Looking at community and collaboration beyond the technical aspect.</td><td></td></tr><tr><td> <a href="http://qt-project.org/groups/qt-contributors-summit-2011/wiki/Qt_Object_Relational_Mapping" title="Qt_Object_Relational_Mapping">Qt and Object Relational Mapping (<span class="caps">ORM</span>)</a> </td><td> Michael Goddard, Charles Yin </td><td>1</td><td> Ideas for adding <span class="caps">ORM</span> to Qt. </td><td></td></tr><tr><td> Necessitas introduction and discussion (Qt on Android)</td><td>BogDan Vatra, Robert Schuster</td><td>2</td><td>What is necessitas? What does this Ministro-thing do? What has been achieved? What needs to be worked on? How to contribute? Discussion.</td><td></td></tr><tr><td> Necessitas coding (Qt on Android)</td><td>BogDan Vatra, Robert Schuster</td><td>2</td><td>Come here and get to know how to write Qt applications for Android. Bring your own app or port an existing one. No Android knowledge or device needed &#8211; just a laptop.</td><td> If you miss this workshop on one day don&#8217;t worry we try to offer this one once per conference day depending on interest.</td></tr><tr><td><a href="http://qt-project.org/groups/qt-contributors-summit-2011/wiki/Printing" title="Printing">Printing in Qt</a></td><td>John Layt</td><td>1</td><td>Improvements required to Printing, maintainership.</td><td></td></tr><tr><td><span class="caps">KDE</span> Technology in Qt</td><td>John Layt(?)</td><td>2(?)</td><td>Looking at what <span class="caps">KDE</span> code and technology can be integrated into Qt</td><td>This session will look at specific <span class="caps">KDE</span> code and frameworks which could be added to Qt, from small feature enhancement to existing classes (KUrl, KIcon, KLineEdit, etc), new functionality (KMimeType), and new add-on modules KJob).</td></tr><tr><td>Qt, Meego and AppUp</td><td>Sulamita Garcia, Monika Lischke</td><td>1</td><td>AppUp is open for Meego applications submission. Qt is the main technology supported for this, and we would like to talk to developers about the submissions, and also hear back their feedback.</td><td> We believe AppUp can be a great distribution channel for Qt applications, so let&#8217;s work together.</td></tr><tr><td><a href="http://developer.qt.nokia.com/groups/qt_contributors_summit/wiki/Qt_library_archive">Qt library archive</a> <em>[developer.qt.nokia.com]</em></td><td>Cornelius Schumacher</td><td>1</td><td>Getting a better overview and more easy access to all the great Qt based libraries out there, especially also those done independently of the core Qt libraries. Having something like <span class="caps">CPAN</span> or Ruby gems would be great. Let&#8217;s discuss what we can do here.</td><td> We discussed this topic at the <span class="caps">KDE</span> Platform sprint and collected some input and ideas.</td></tr><tr><td>The future of Qt and DirectFB</td><td>Denis Oliver Kropp and Andreas Shimokawa</td><td>1</td><td>We&#8217;d like to demonstrate the latest developments regarding Qt/DirectFB and talk about the future of this symbiosis</td><td></td></tr><tr><td><span class="caps">PIM</span></td><td>John Layt (?)</td><td>1</td><td>A session for Qt Mobility and <span class="caps">KDE</span> <span class="caps">PIM</span> teams to meet and discuss common issues</td><td>Only if enough interest, may be better as an informal social meeting?  Could also discuss issues around QDateTime and Time Zones.</td></tr><tr><td>UX Feedback System &#8211; <a href="http://developer.qt.nokia.com/groups/qt_contributors_summit/wiki/CrowdQuick">CrowdQuick</a> <em>[developer.qt.nokia.com]</em></td><td> Sivan Greenberg </td><td> 1 </td><td> A session to discuss and write a functional specification for CrowdQuick </td><td> I would love influential Qt people to participate and help me start this.</td></tr><tr><td> QNetworkAccessManager more synchronous support? </td><td> Sivan Greenberg </td><td> 1 </td><td> importance of synchronous <span class="caps">API</span> in <span class="caps">QNAM</span>, who needs and why? </td><td> Informal, with room for some hands on hacking I&#8217;d think, and if either Peter Hartmann and/or Markus Goetz can participate &#8211; perfect!</td></tr><tr><td> QtQuick comprehensive teaching </td><td> Sivan Greenberg </td><td> 1 </td><td> More comprehensive teaching of QtQuick, emphasis on more than just 2D and UX &#8211; A start: QtQuick for network access and web services consumption, maybe in par with <a href="http://tinyurl.com/3qtpphy">http://tinyurl.com/3qtpphy</a></td><td> Informal with action items extracted hopefully at finish. Needs Jürgen Bocklage-Ryannel</td></tr><tr><td> Drawing more community to QtQuick components contributions. </td><td> Sivan Greenberg </td><td> 1 </td><td> Brainstorm how to make it easier and attractive  to get your name on Qt&#8217;s commit list without knowing too much C</ins>+ and make your CV shine!</td><td> I&#8217;d like to use the fact QtQuick components use <span class="caps">QML</span>/Javascript to attract new developer contributors to Qt , perhaps as a more code oriented approach to <a href="http://tinyurl.com/5uqqeds">http://tinyurl.com/5uqqeds</a></td></tr></table>
      ]]></content>
    </entry>

    <entry>
      <title>QtBuildSystem</title>
      <link rel="alternate" type="text/html" href="http://qt-project.org/groups/qt-contributors-summit-2011/wiki/QtBuildSystem" />
      <id>tag:qt-project.org,2011:wiki:QtBuildSystem/1281.8717</id>
      <published>2011-07-10T19:36:15Z</published>
      <updated>2011-07-10T19:36:15Z</updated>
      <author>
            <name>msvb</name>
            <email></email>
      </author>
      <content type="html"><![CDATA[
        <p>This roughly covers the session itself and some even less formal face-to-face talks during the summit.</p>

	<p>At the session titled &#8216;Build System&#8217; two use cases of &#8220;Building Qt itself&#8221; and &#8220;Building applications using Qt Creator&#8221; were primarily discussed. The case of building Qt applications from the command line was discussed but not emphasized.</p>

	<p>For &#8220;Building Qt itself&#8221; it was noted that &#8211; 	<ol>
		<li>qmake can build Qt 5 now,</li>
		<li>even if it is not nice, it is there and works,</li>
		<li>there is no need to change anything for the sake of change only,</li>
		<li>people do not care much about the process as long as builds Qt.</li>
	</ol></p>

	<p>For &#8220;Building applications using Qt Creator&#8221; it was noted that &#8211; 	<ol>
		<li>qmake is difficult to control due to its imperative nature,</li>
		<li>cmake started its life imperative, mixed in declarative constructs for <span class="caps">KDE</span>.</li>
		<li>qmake does not do project configuration (easily),</li>
		<li>qmake does not cover the actual building (delegated to make/nmake),</li>
		<li>qmake does not handle deployment/packaging (easily),</li>
		<li>qmake does not offer cheap &#8220;null builds&#8221;,</li>
		<li>qmake can only parallelize build to the degree the make/nmake/ib does it,</li>
		<li>an existing build system called &#8216;incredible&#8217; can parallelize builds but is not portable.</li>
		<li>cmake basically shares all these shortcomings with notable exceptions of configuration.</li>
	</ol></p>

	<p>For &#8220;Building applications using a command line tool&#8221; it was noted that &#8211; 	<ol>
		<li>while logic from a new build system could be shared across a <span class="caps">CLI</span> tool and a <span class="caps">IDE</span> (by a common library) the <span class="caps">IDE</span> would actively run the logic while a <span class="caps">CLI</span> tool explicitly on demand only.</li>
		<li>there were a lot of Qt Creator developers in the room, leading to the sense that work towards any new build system would probably need to be geared at an <span class="caps">IDE</span>.</li>
		<li>one development strategy for a new build system would involve abstracting code into a library which could be integrated into a command line tool as well.</li>
	</ol></p>

	<p>While some limited discussion was heard of premake, gyp (generate your projects), and wxwidgets build system &#40;not sure about that one&#41;, most attention was placed on cmake. Cmake is developed by primarily by Kitware and whose developers are active on mailing lists including Qt. Although some interest was shown by these members regarding this topic, unfortunately none of them were able to attend the summit and seem quite busy.</p>

	<p>All in all there was a general feeling of: What is there (both qmake and cmake) sort-of-works, within limits, but is painful to use at times, and the missing/broken parts do not look easily fixable. Starting from scratch looks like an interesting alternative, but would also require a significant amount of work. Some developers are disillusioned with the current state with no clear solution.</p>
      ]]></content>
    </entry>

    <entry>
      <title>Qt_library_archive</title>
      <link rel="alternate" type="text/html" href="http://qt-project.org/groups/qt-contributors-summit-2011/wiki/Qt_library_archive" />
      <id>tag:qt-project.org,2011:wiki:Qt_library_archive/1209.8714</id>
      <published>2011-07-10T16:35:23Z</published>
      <updated>2011-07-10T16:35:23Z</updated>
      <author>
            <name>cornelius</name>
            <email></email>
      </author>
      <content type="html"><![CDATA[
        <a name="2f7cf73a2c4ac9691e9a0455c26ceacb"></a>	<h1>#inqlude &#8211; The Qt library archive</h1>

	<p>Notes from the Qt Developers&#8217; Summit session of a Qt library archive aka &#8220;<span class="caps">CPAN</span>&#8221; for Qt</p>

	<p>Getting a better overview and more easy access to all the great Qt based libraries out there, especially also those done independently of the core Qt libraries. Having something like <span class="caps">CPAN</span> or Ruby gems would be great. Let’s discuss what we can do here. We already discussed this topic at the <span class="caps">KDE</span> Platform sprint and collected some input and ideas.</p>

	<p>It shall not be just an archive on a website, but also include a system to install stuff. It&#8217;s inspired by Perl&#8217;s <span class="caps">CPAN</span> or Ruby&#8217;s gem.</p>

	<p>A <em>prototype</em> is available on <a href="http://inqlude.org">http://inqlude.org</a><br />
Git repository is at <a href="https://github.com/cornelius/inqlude">https://github.com/cornelius/inqlude</a><br />
The metadata git repo is at <a href="https://github.com/cornelius/inqlude_data">https://github.com/cornelius/inqlude_data</a><br />
Mailing list for discussing Inqlude: <a href="https://mail.kde.org/mailman/listinfo/inqlude">https://mail.kde.org/mailman/listinfo/inqlude</a></p>

	<p>implemented as a git repository with metadata for the &#8220;packages&#8221;</p>

	<p>There is a prototype command line tool</p>

	<p><div class="cpp-qt geshi"><ol><li class="li1"><div class="de1"><span class="co1">// install with </span></div></li>
<li class="li1"><div class="de1">gem install inqlude</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="co1">// install a package:</span></div></li>
<li class="li2"><div class="de2">inqlude install qjson</div></li>
</ol></div></p>

	<p>The installer is hooked into the native package manager (e.g. rpm, dep). It installs the operating system&#8217;s packages if available.</p>

	<a name="896f4eaa4f12972b56ed9cdd9a90b949"></a>	<h2>Dependencies</h2>

	<ul>
		<li>not yet fully designed and implemented</li>
		<li>is needed in the long term</li>
	</ul>

	<a name="bf711f5b19fc3de90599a651e1df0c2f"></a>	<h2>Use of native package managers</h2>

	<a name="6dfaa0182ae50e35c709a97441778b70"></a>	<h3>Pros</h3>

	<ul>
		<li>using the infrastructure that&#8217;s already there</li>
	</ul>

	<a name="b1bdb69e447b48ba53aa4f3c7431ce50"></a>	<h3>Cons</h3>

	<ul>
		<li>Mixing native packages and manually installed ones is messing up the system</li>
		<li>No native packages for various platforms (including Mac, Windows)</li>
	</ul>

	<a name="9062aef37682ecaeb79a2df3f3820105"></a>	<h2>Build Systems</h2>

	<ul>
		<li>force the libs to provide a qmake .pro file or allow different build tools (qmake, CMake, autotools)</li>
		<li>possible tools to look at:<br />
Gentoo ebuilds<br />
Ruby gems</li>
	</ul>

	<a name="ce21470ab49d1d1976bc3dc72438c183"></a>	<h2>Metadata</h2>

	<ul>
		<li>use own format or adapt an existing one (deb, gems)?</li>
		<li>what info to put in?
	<ul>
		<li>dependencies (on qt libs and/or external libs)</li>
		<li>which type of build system is used</li>
		<li>supported platforms</li>
		<li>licenses</li>
		<li>required Qt version (min, probably max)</li>
	</ul></li>
		<li>who will create the metadata (bootstrapping?)</li>
		<li>where is it stored (file inside the tarball?)</li>
	</ul>

	<a name="64045d79b60ebfe145dcce8262fce6ea"></a>	<h2><span class="caps">QML</span> Components</h2>

	<p>Search for a particualar component should be possible (where to find it, which package to install it)</p>

	<a name="74248c725e00bf9fe04df4e35b249a19"></a>	<h2>Misc</h2>

	<ul>
		<li>rating a lib (centralized? or on different sites focusing on specialized audiences)</li>
	</ul>

	<a name="5ee3262832f6d032a4651553a5959c51"></a>	<h1>Metadata Followup Session</h1>

	<a name="f2cb1b4ca4354a9bf9829c4a2d4aac10"></a>	<h2>Field description</h2>

	<a name="97d3eac7adde139f514dd0ca20b5385e"></a>	<h3>schema_version</h3>

	<ul>
		<li>identifies the version of the used metadata schema</li>
	</ul>

	<a name="b068931cc450442b63f5b3d276ea4297"></a>	<h3>name</h3>

	<ul>
		<li>identifies the add on</li>
		<li>must be unique</li>
		<li>first come, first server</li>
	</ul>

	<a name="2af72f100c356273d46284f6fd1dfc08"></a>	<h3>version</h3>

	<ul>
		<li>to distinguish different versions of an add on</li>
		<li>is the same as the upstream version</li>
		<li>there is no <span class="caps">QPAN</span>/inqlude specific versioning</li>
	</ul>

	<a name="1d0083dcc8458d22c91e76ce011cca4f"></a>	<h3>release_date</h3>

	<ul>
		<li>date when the library was released upstream</li>
	</ul>

	<a name="a80da1282f2c775bbc5f2c92c836968b"></a>	<h3>summary</h3>

	<ul>
		<li>a <em>short</em> string (one line) describing the library</li>
	</ul>

	<a name="45a82579528dcdc6535fdcb693a36170"></a>	<h3>urls</h3>

	<p>with subkeys:</p>

	<ul>
		<li>homepage<br />
for the project homepage</li>
		<li>api_docs<br />
for the <span class="caps">API</span> docs</li>
		<li>readme</li>
		<li>logo</li>
		<li>screenshots<br />
with a list of <span class="caps">URL</span>s</li>
	</ul>

	<a name="9d2fccd1fa9364fe38442db17bb0cb15"></a>	<h3>licenses</h3>

	<ul>
		<li>list of multiple licenses</li>
		<li>well known licenses are identified by keywords</li>
		<li>custom licenses with a keyword only, no link</li>
	</ul>

	<a name="67daf92c833c41c95db874e18fcb2786"></a>	<h3>description</h3>

	<ul>
		<li>a long description</li>
		<li>can include multiple paragraphs</li>
		<li>format plain text (newlines for separating paragraphs)</li>
	</ul>

	<a name="5d9449e8d8508c7ee2cf746c86e5dde3"></a>	<h3>authors</h3>

	<ul>
		<li>list of authors consisting of author&#8217;s name and a url/email address in a string</li>
	</ul>

	<a name="053efab68568ae829fa4bd7d2070387a"></a>	<h3>maturity</h3>

	<ul>
		<li>inspired by sourceforge, but leaving out some states</li>
	</ul>

	<a name="a7c281f374c78d5e835f4e117805d967"></a>	<h3>platforms</h3>

	<ul>
		<li>list of platforms (Linux, Windows, Mac&#8230;)</li>
	</ul>

	<a name="2fc9e51174a78dd5bfc57e8e368590b3"></a>	<h3>packages</h3>

	<ul>
		<li>with subkeys for various systems</li>
		<li>source is mandatory
	<ul>
		<li>optionally scm repositories (scm specific)</li>
		<li>build systems (may be more)</li>
	</ul></li>
		<li>platform/distribution specific formats</li>
	</ul>

	<a name="59aeb2c9970b7b25be2fab2317e31fcb"></a>	<h3>keywords</h3>

	<ul>
		<li>should be obvious <span class="smiley">:-)</span></li>
	</ul>

	<a name="0e591676949d1032471f2681537da651"></a>	<h3>dependencies</h3>

	<ul>
		<li>dependencies within the metadata space and external</li>
		<li>name, min version, max version</li>
		<li>this are hard dependencies which are required to build the lib/app</li>
		<li>optional requirements should go into the description</li>
	</ul>

	<a name="f3e334d42863e8250c7d03efefbfd387"></a>	<h3>languages</h3>

	<ul>
		<li>list of programming languages. Mostly will be C++, but could be something like Python, with bindings, or <span class="caps">QML</span>, if we want to extend to that.</li>
	</ul>

	<a name="4358b5009c67d0e31d7fbf1663fcd3bf"></a>	<h2>notes</h2>

	<ul>
		<li>update_date (reflecting the last change of the metadata) is not required</li>
	</ul>

	<a name="4c02a061fc849adae8c6a2ddb15e936c"></a>	<h2>Example for meta data</h2>

	<p><div class="cpp-qt geshi"><ol><li class="li1"><div class="de1"><span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; <span class="st0">&quot;schema_version&quot;</span><span class="sy0">:</span> <span class="nu0">1</span><span class="sy0">,</span></div></li>
<li class="li1"><div class="de1">&nbsp; <span class="st0">&quot;name&quot;</span><span class="sy0">:</span> <span class="st0">&quot;qjson&quot;</span><span class="sy0">,</span></div></li>
<li class="li1"><div class="de1">&nbsp; <span class="st0">&quot;version&quot;</span><span class="sy0">:</span> <span class="st0">&quot;0.7.1&quot;</span><span class="sy0">,</span></div></li>
<li class="li2"><div class="de2">&nbsp; <span class="st0">&quot;release_date&quot;</span><span class="sy0">:</span> <span class="st0">&quot;20110618&quot;</span><span class="sy0">,</span></div></li>
<li class="li1"><div class="de1">&nbsp; <span class="st0">&quot;summary&quot;</span><span class="sy0">:</span> <span class="st0">&quot;Development files for QJson&quot;</span><span class="sy0">,</span></div></li>
<li class="li1"><div class="de1">&nbsp; <span class="st0">&quot;urls&quot;</span><span class="sy0">:</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="st0">&quot;homepage&quot;</span><span class="sy0">:</span> <span class="st0">&quot;http://qjson.sourceforge.net/&quot;</span><span class="sy0">,</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="st0">&quot;api_docs&quot;</span><span class="sy0">:</span> <span class="st0">&quot;http://qjson.sf.net/api&quot;</span><span class="sy0">,</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <span class="st0">&quot;readme&quot;</span><span class="sy0">:</span> <span class="st0">&quot;http://qjson.sf.net/README&quot;</span><span class="sy0">,</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="st0">&quot;logo&quot;</span><span class="sy0">:</span> <span class="st0">&quot;http://qjson.sf.net/logo.png&quot;</span><span class="sy0">,</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="st0">&quot;screenshots&quot;</span><span class="sy0">:</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; <span class="st0">&quot;Fancy Widgets&quot;</span><span class="sy0">:</span> <span class="st0">&quot;http://example.com/one.jpg&quot;</span><span class="sy0">,</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; <span class="st0">&quot;Boring widgets&quot;</span><span class="sy0">:</span> <span class="st0">&quot;http://example.com/two.jpg&quot;</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp; <span class="br0">&#125;</span><span class="sy0">,</span></div></li>
<li class="li1"><div class="de1">&nbsp; <span class="st0">&quot;licenses&quot;</span><span class="sy0">:</span> <span class="br0">&#91;</span> <span class="st0">&quot;LGPL&quot;</span> <span class="br0">&#93;</span><span class="sy0">,</span></div></li>
<li class="li1"><div class="de1">&nbsp; <span class="st0">&quot;description&quot;</span><span class="sy0">:</span> <span class="st0">&quot;JSON (JavaScript Object Notation) is a lightweight data-interchange format.<span class="es1">\n</span>It can represent integer, real number, string, an ordered sequence of value,<span class="es1">\n</span>and a collection of name/value pairs. QJson is a qt-based library that maps<span class="es1">\n</span>JSON data to QVariant objects. JSON arrays will be mapped to QVariantList<span class="es1">\n</span>instances, while JSON's objects will be mapped to QVariantMap.<span class="es1">\n</span><span class="es1">\n</span>This package contains files for developing applications using QJson.<span class="es1">\n</span><span class="es1">\n</span>&quot;</span><span class="sy0">,</span></div></li>
<li class="li1"><div class="de1">&nbsp; <span class="st0">&quot;authors&quot;</span><span class="sy0">:</span> <span class="br0">&#91;</span> <span class="st0">&quot;Flavio Castelli &lt;flavio@castelli.name&gt;&quot;</span> <span class="br0">&#93;</span><span class="sy0">,</span></div></li>
<li class="li2"><div class="de2">&nbsp; <span class="st0">&quot;maturity&quot;</span><span class="sy0">:</span> <span class="st0">&quot;stable&quot;</span><span class="sy0">,</span></div></li>
<li class="li1"><div class="de1">&nbsp; <span class="st0">&quot;platforms&quot;</span><span class="sy0">:</span> <span class="br0">&#91;</span> <span class="st0">&quot;Linux&quot;</span><span class="sy0">,</span> <span class="st0">&quot;Windows&quot;</span> <span class="br0">&#93;</span><span class="sy0">,</span></div></li>
<li class="li1"><div class="de1">&nbsp; <span class="st0">&quot;packages&quot;</span><span class="sy0">:</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="st0">&quot;source&quot;</span><span class="sy0">:</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; <span class="st0">&quot;git&quot;</span><span class="sy0">:</span> <span class="br0">&#123;</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;url&quot;</span><span class="sy0">:</span> <span class="st0">&quot;http://github.com/flavio/qjson&quot;</span><span class="sy0">,</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;tag&quot;</span><span class="sy0">:</span> <span class="st0">&quot;0_7_1&quot;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="sy0">,</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; <span class="st0">&quot;url&quot;</span><span class="sy0">:</span> <span class="st0">&quot;http://download.qjson.com/qjson-0.7.1.tgz&quot;</span><span class="sy0">,</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; <span class="st0">&quot;build_system&quot;</span><span class="sy0">:</span> <span class="br0">&#91;</span> <span class="st0">&quot;cmake&quot;</span><span class="sy0">,</span> <span class="st0">&quot;qmake&quot;</span> <span class="br0">&#93;</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <span class="br0">&#125;</span><span class="sy0">,</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="st0">&quot;openSUSE&quot;</span><span class="sy0">:</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; <span class="st0">&quot;11.4&quot;</span><span class="sy0">:</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;package_name&quot;</span><span class="sy0">:</span> <span class="st0">&quot;libqjson-devel&quot;</span><span class="sy0">,</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;repository&quot;</span><span class="sy0">:</span> <span class="br0">&#123;</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;url&quot;</span><span class="sy0">:</span> <span class="st0">&quot;http://download.opensuse.org/distribution/11.4/repo/oss/&quot;</span><span class="sy0">,</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;name&quot;</span><span class="sy0">:</span> <span class="st0">&quot;openSUSE-11.4-Oss&quot;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="sy0">,</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;source_rpm&quot;</span><span class="sy0">:</span> <span class="st0">&quot;libqjson-0.7.1-9.3.src.rpm&quot;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp; <span class="st0">&quot;keywords&quot;</span><span class="sy0">:</span> <span class="br0">&#91;</span> <span class="st0">&quot;JSON&quot;</span><span class="sy0">,</span> <span class="st0">&quot;magic&quot;</span> <span class="br0">&#93;</span><span class="sy0">,</span></div></li>
<li class="li1"><div class="de1">&nbsp; <span class="st0">&quot;dependencies&quot;</span><span class="sy0">:</span> <span class="br0">&#91;</span> <span class="st0">&quot;QtCore&quot;</span><span class="sy0">,</span> <span class="st0">&quot;QtUi &gt;= 4.6.1&quot;</span><span class="sy0">,</span> <span class="st0">&quot;QtUi &lt; 4.9&quot;</span><span class="sy0">,</span> <span class="st0">&quot;libfoo&quot;</span> <span class="br0">&#93;</span><span class="sy0">,</span></div></li>
<li class="li1"><div class="de1">&nbsp; <span class="st0">&quot;languages&quot;</span><span class="sy0">:</span> <span class="br0">&#91;</span> <span class="st0">&quot;C++&quot;</span> <span class="br0">&#93;</span></div></li>
<li class="li2"><div class="de2"><span class="br0">&#125;</span></div></li>
</ol></div></p>
      ]]></content>
    </entry>

    <entry>
      <title>Metrics</title>
      <link rel="alternate" type="text/html" href="http://qt-project.org/groups/qt-contributors-summit-2011/wiki/Metrics" />
      <id>tag:qt-project.org,2011:wiki:Metrics/1211.8560</id>
      <published>2011-06-30T08:48:11Z</published>
      <updated>2011-06-30T08:48:11Z</updated>
      <author>
            <name>seahumad</name>
            <email></email>
      </author>
      <content type="html"><![CDATA[
        <p>The session discussed and tried to answer the question: &#8211; What metrics are relevant for Qt Contributors?</p>

	<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
Summary:</p>

	<ul>
		<li>Different stakeholders will consume metrics from different places</li>
		<li>Contributors would benefit from metrics when committing, so for example links from Gerrit to pages showing how the commit would affect Qt. Also test results would be useful.</li>
		<li>Contributors would also benefit from test coverage metrics, to show where test coverage is lacking. Either on a general level or on commit level, showing coverage for the code to be checked in.</li>
		<li>Static analysis metrics / comments would also be useful on a commit level.</li>
		<li>Static analysis such as spell checking would be useful for Qt Creator code, for example capitalization checks for dialogs</li>
	</ul>

	<ul>
		<li>Metrics on a general level (such as a metrics page) should include: test coverage per platform, most used parts of the code, most changed files, bugs in components / files</li>
		<li>Get/present usage stats for a set of Qt apps, to show which parts of the code is being used most. Can be useful for Approvers, to help them know importance of performance when reviewing for example</li>
	</ul>

	<ul>
		<li>Integration / release managers would be interested in trends on quality, to help them explain why contributions don&#8217;t get &#8220;accepted&#8221;</li>
	</ul>

	<ul>
		<li>For people optimizing for different platforms, performance metrics on different platform configurations might be useful.</li>
	</ul>

	<ul>
		<li>Social metrics -&gt; Nbr contributors, nbr commits / time, changed parts of Qt / time, top ten contributors</li>
	</ul>

	<ul>
		<li>Start collecting common reasons for contributions being rejected, collect and publish those to help contributors get their code into Qt.</li>
	</ul>

	<p>Let&#8217;s follow up using <a href="http://lists.qt.nokia.com/mailman/listinfo/qt-metrics-feedback">http://lists.qt.nokia.com/mailman/listinfo/qt-metrics-feedback</a></p>
      ]]></content>
    </entry>

    <entry>
      <title>QDateTime</title>
      <link rel="alternate" type="text/html" href="http://qt-project.org/groups/qt-contributors-summit-2011/wiki/QDateTime" />
      <id>tag:qt-project.org,2011:wiki:QDateTime/1185.8549</id>
      <published>2011-06-29T18:20:27Z</published>
      <updated>2011-06-29T18:20:27Z</updated>
      <author>
            <name>jlayt</name>
            <email></email>
      </author>
      <content type="html"><![CDATA[
        <a name="f1c2e85cd2efb21f8da4cc34119de12a"></a>	<h1>QDateTime</h1>

	<p>This page details the discussions about QDateTime in the Date/Time and Localisation sessions.</p>

	<p>This page was written by John Layt from <span class="caps">KDE</span> (jlayt@kde.org).</p>

	<p><span class="caps">KDE</span> would like to phase out using our own KDateTime, KLocalizedDate and KCalendarSystem implementations in favour of QDateTime but many changes would be required to do so.  We believe most of these changes will be of use to other app developers, especially the QtMobility calendaring team.  More details on the issues can be found on the <span class="caps">KDE</span> wiki at <a href="http://community.kde.org/KDE_Core/QtMerge/QDateTime.">http://community.kde.org/KDE_Core/QtMerge/QDateTime.</a>  <span class="caps">KDE</span> code can be found at <a href="https://projects.kde.org/projects/kde/kdelibs/repository/revisions/master/show/kdecore/date.">https://projects.kde.org/projects/kde/kdelibs/repository/revisions/master/show/kdecore/date.</a></p>

	<p>It is proposed that Qt will fully implement the Unicode <span class="caps">CLDR</span> standard for date/time handling across all platforms.</p>

	<a name="3dac5cd5e3b884e0323399111418d18e"></a>	<h2>Code Quality</h2>

	<p>Important code is inline and no d_ptr makes it impossible to change the implementation without breaking BC, this should be fixed.<br />
Poor overflow checking in places returns incorrect results instead of an invalid date, fixing this in Qt4 was impossible as it is inline code.</p>

	<p>John Layt to provide patches.</p>

	<a name="b37eec6c1caeeb522c8007b7b3292d2a"></a>	<h2>Calendar Systems</h2>

	<p>Calendar System support is standard in Windows and Mac and fully integrated into their date localization systems.  Unicode <span class="caps">CLDR</span> defines Calendar System support and <span class="caps">ICU</span> implements it.  Qt does not properly localise dates and date formats for those users who have selected an alternative Calendar System on these platforms.  Linux does not have standardised support, but both <span class="caps">KDE</span> and <span class="caps">ICU</span> implement support.</p>

<table class="infotable line"><tr><td><strong>Calendar</strong></td><td><strong>Win</strong></td><td><strong>Mac</strong></td><td><strong><span class="caps">CLDR</span></strong></td><td><strong><span class="caps">KDE</span></strong></td></tr><tr><td>Gregorian</td><td>X</td><td>X</td><td>X</td><td>X</td></tr><tr><td>Hebrew</td><td>X</td><td>X</td><td>X</td><td>X</td></tr><tr><td>Islamic Civil</td><td>X</td><td>X</td><td>X</td><td>X</td></tr><tr><td>Persian / Jalali</td><td>X</td><td>X</td><td>X</td><td>X</td></tr><tr><td>Japanese Era</td><td>X</td><td>X</td><td>X</td><td>X</td></tr><tr><td>RoC / Taiwan / Minguo</td><td>X</td><td>X</td><td>X</td><td>X</td></tr><tr><td>Thai / Buddhist Era</td><td>X</td><td>X</td><td>X</td><td>X</td></tr><tr><td>Coptic</td><td></td><td>X</td><td>X</td><td>X</td></tr><tr><td>Ethiopian</td><td></td><td>X</td><td>X</td><td>X</td></tr><tr><td>Ethiopian Amete Alem</td><td></td><td>X</td><td>X</td><td>X</td></tr><tr><td>Indian National</td><td></td><td>X</td><td>X</td><td>X</td></tr><tr><td>Islamic Lunar</td><td></td><td>X</td><td>X</td><td></td></tr><tr><td>Chinese Lunisolar</td><td>X</td><td></td><td>X</td><td></td></tr><tr><td>Islamic Um Al Qura</td><td>X</td><td></td><td></td><td></td></tr><tr><td>Koran / Tangun</td><td>X</td><td></td><td></td><td></td></tr><tr><td>East Asian Lunisolar</td><td>X</td><td></td><td></td><td></td></tr><tr><td>Japanese Lunisolar</td><td>X</td><td></td><td></td><td></td></tr><tr><td>Taiwan Lunisolar</td><td>X</td><td></td><td></td><td></td></tr><tr><td>Julian</td><td></td><td></td><td></td><td>X</td></tr><tr><td><span class="caps">ISO</span> 8601</td><td></td><td></td><td></td><td></td></tr><tr><td>Hindu Lunar</td><td></td><td></td><td></td><td></td></tr><tr><td>North Korean / Juche</td><td></td><td></td><td></td><td></td></tr></table>

	<p>Note that some of these calendars are just the Gregorian calendar with different Epochs or Eras, i.e. ISO8601, Japanese Era, Thai, RoC, North Korean (same as RoC).  The Coptic and Ethiopean are also the same calculation with different Epochs.  The various Asian Lunisolar calendars are all derived form the Chinese Lunisolar.  Windows uses separate implementations of the Gregorian for different digit sets or translations (Arabic, English, localized, etc) but others cover this using api.</p>

	<p>Lars in favour of minimal set of calendars common to all platforms, but this will not solve the issue of say .Net and Qt apps running side-by-side and showing different format dates.  Compromise may be that on Windows and Mac the date formatting/parsing internally uses Win/Mac system calendar system, but on Linux Qt only supports minimal set which are then available for explicit use on all platforms.</p>

	<p>One consequence of this will be separate Calendar System support for Gregorian and Julian calendars, the current hybrid calendar would be removed and it would be up to the app to decide if/when they need to switch between the different calculations.</p>

	<p>Proposed api:</p>

	<p><div class="cpp-qt geshi"><ol><li class="li1"><div class="de1">&nbsp;<span class="kw2">enum</span> <a href="http://qt-project.org/doc/QLocale.html"><span class="kw5">QLocale</span></a><span class="sy0">::</span><span class="me2">CalendarSystem</span> <span class="br0">&#123;</span>LocaleCalendar<span class="sy0">,</span> GregorianCalendar<span class="sy0">,</span> JulianCalendar<span class="sy0">,</span> ... <span class="br0">&#125;</span><span class="sy0">;</span> &nbsp;<span class="co1">// All possible calendar systems</span></div></li>
<li class="li1"><div class="de1">&nbsp;<a href="http://qt-project.org/doc/QList.html"><span class="kw5">QList</span></a><span class="sy0">&lt;</span><a href="http://qt-project.org/doc/QLocale.html"><span class="kw5">QLocale</span></a><span class="sy0">::</span><span class="me2">CalendarSystem</span><span class="sy0">&gt;</span> <a href="http://qt-project.org/doc/QLocale.html"><span class="kw5">QLocale</span></a><span class="sy0">::</span><span class="me2">calendarSystems</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span> &nbsp;<span class="co1">// Returns the list of host system calendars</span></div></li>
<li class="li1"><div class="de1">&nbsp;<a href="http://qt-project.org/doc/QLocale.html"><span class="kw5">QLocale</span></a><span class="sy0">::</span><span class="me2">CalendarSystem</span> <a href="http://qt-project.org/doc/QLocale.html"><span class="kw5">QLocale</span></a><span class="sy0">::</span><span class="me2">calendarSystem</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span> &nbsp;<span class="co1">// Returns the locale calendar system</span></div></li>
<li class="li1"><div class="de1">&nbsp;<a href="http://qt-project.org/doc/QString.html"><span class="kw5">QString</span></a> <a href="http://qt-project.org/doc/QLocale.html"><span class="kw5">QLocale</span></a><span class="sy0">::</span><span class="me2">calendarSystemName</span><span class="br0">&#40;</span><a href="http://qt-project.org/doc/QLocale.html"><span class="kw5">QLocale</span></a><span class="sy0">::</span><span class="me2">CalendarSystem</span> calSys<span class="sy0">=</span><a href="http://qt-project.org/doc/QLocale.html"><span class="kw5">QLocale</span></a><span class="sy0">::</span><span class="me2">LocaleCalendar</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li>
<li class="li2"><div class="de2">&nbsp;<a href="http://qt-project.org/doc/QLocale.html"><span class="kw5">QLocale</span></a><span class="sy0">::</span><span class="me2">CalendarSystem</span> <a href="http://qt-project.org/doc/QDate.html"><span class="kw5">QDate</span></a><span class="sy0">::</span><span class="me2">calendarSystem</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span> &nbsp;<span class="co1">// Returns the QDate instance calendar system, usually the locale one</span></div></li>
<li class="li1"><div class="de1">&nbsp;<span class="kw4">void</span> <a href="http://qt-project.org/doc/QDate.html"><span class="kw5">QDate</span></a><span class="sy0">::</span><span class="me2">setCalendarSystem</span><span class="br0">&#40;</span><a href="http://qt-project.org/doc/QLocale.html"><span class="kw5">QLocale</span></a><span class="sy0">::</span><span class="me2">CalendarSystem</span> calSys<span class="br0">&#41;</span><span class="sy0">;</span> &nbsp;<span class="co1">// Set the QDate instance calendar system, LocaleCalendar sets to locale calendar</span></div></li>
</ol></div></p>

	<p>The enum will list all possible calendars for all platforms with a calendarSystems() returning which ones are available on a given platform.</p>

	<p>Implement QCalendarSystem which is embedded in QDateTime, possibly doesn&#8217;t need to be public?  QCalendarSystem to provide names to QDateTime (but how does that affect the QLocale month/day methods?).  <span class="caps">KDE</span> can sub-class and extend using platform backend for calendars Qt does not want to support directly?</p>

	<p>John Layt will work on a design and merge request for this.</p>

	<a name="d848d1c7856a88fff2f5a3b24ff75f28"></a>	<h2>Time Zones</h2>

	<p>Proper timezone support is required to allow apps like calendaring to use QDateTime. While full support inside QDateTime would be ideal, it should at least be able to act as the data container with apps providing their own advanced manipulation tools.  <span class="caps">KDE</span> has full cross-platform time zone support which could be adapted.  Qt Mobility is also interested in this area and any solution should be coordinated with them.</p>

	<p>Cross platform support is a major issue, apps need a consistent api and naming standard, for example to create a QTimeZone instance for Central European Time (<span class="caps">CET</span>).  Lars in favour of a single implementation and database in Qt common to all platforms to give apps a consistent experience, with Qt providing a conversion layer to system time zone, especially on Windows.</p>

	<p>Using a tz file shipped with Qt would quickly go out of date as the tz file is updated very frequently, sometimes even weekly.  The system tz file should be preferred if available as it is more likely to be automatically kept up-to-date.  Only if no system file is found should Qt fall back to its own file.</p>

	<p>Unix tz zones.tab is regularly updated by OS, but no translations and no canonical ID&#8217;s.</p>

	<p>Mac uses own tz file and translations.  Mac api should provide inspiration for Qt api.</p>

	<p>Windows does have its own time zone database stored in the registry and is regularly updated, but the names and definitions are very different to the Unix tz / Olsen zones.  <span class="caps">KDE</span> implements a translation layer to convert Windows zones and names into Olsen zones and names which could be used.</p>

	<p><span class="caps">CLDR</span> time zones (<a href="http://www.unicode.org/reports/tr35/tr35-15.html#Timezone_Names)">http://www.unicode.org/reports/tr35/tr35-15.html#Timezone_Names)</a> based on Olson zones.tab but provides canonical ID&#8217;s for each zone and translations for all zone names.  Problem comes with lack of regular system updates.</p>

	<p>Possible api: 
	<ul>
		<li>add enum value TimeSpec::TimeZone</li>
		<li>add new QTimeZone class</li>
		<li>add QDateTime timeZone() api to return the zone value if TimeSpec set to TimeZone, otherwise return null QTimeZone</li>
	</ul></p>

	<a name="77b405d08fb2337ef87522fb7b819292"></a>	<h2>Date/Time Span/Duration</h2>

	<p>QTime is restricted to a range from 00:00 to 23:59.  However there is often a need for time durations such 52 hours or 52:00 which QTime is unable to represent or format.  Either QTime should be extended to allow for a duration mode or a QDuration/QTimeSpan class created.  Basically a period of x milliseconds, but able to be relative to a start date, and having various maths and formatting functions.</p>

	<p><span class="caps">KDE</span> has an implementation in KCalCore::Duration <a href="http://api.kde.org/4.x-api/kdepimlibs-apidocs/kcalcore/html/classKCalCore_1_1Duration.html">http://api.kde.org/4.x-api/kdepimlibs-apidocs/kcalcore/html/classKCalCore_1_1Duration.html</a> using KDateTime </p>

	<p>QTimeSpan is a merge proposal at <a href="https://qt.gitorious.org/qt/qt/merge_requests/1014.">https://qt.gitorious.org/qt/qt/merge_requests/1014.</a></p>

	<p>Does QtMobility Organizer have a similar class?</p>

	<a name="96890fc24f7cd51028e2c53b2ad0fcb4"></a>	<h2>Valid Date Range</h2>

	<p>The date is stored as a Julian Day Number in a uint with jd == 0 erroneously considered to be invalid. This restricts dates to a range of 2 January 4713BC to about 11 million AD. Changing the uint into an int32 or a int64 will make this date range more useful scientifically:</p>

	<ul>
		<li>int32 = 5.8 million BC to 5.8 million AD</li>
		<li>int64 = 25 Quadrillion BC to 25 Quadrillion AD</li>
		<li>Geological time: Age of Earth = 4.5 billion years old</li>
		<li>Astronomical time: Age of Universe = 13.75 billion years old</li>
	</ul>

	<p>So an int32 is sufficient for geological time, but int64 seems overkill to gain astronomical time.</p>

	<p>In theory every value of JD will be considered valid, although the lowest negative number may be designated the null value rather than using a bool.</p>

	<p>Currently used Gregorian/Julian formulas do not reliably support converting JD&#8217;s to/from Dates outside of 8000BC to 8000AD, but this can be later extended.</p>

	<p>isValid() will indicate if the current JD lies in a valid date range, i.e. one supported by the conversion formulas of the current Calendar System.</p>

	<p>isNull() will indicate an uninitialised date or completely invalid date, e.g. where date maths has overflowed the JD storage size.</p>

	<p>Nothing should stop setting Julian Days outside the isValid() date range as this will still be scientifically useful, you just won&#8217;t be able to convert them to Date form or do Date maths beyond adding days.</p>

	<p>John Layt to submit patches.</p>

	<a name="1b6fed1f8e8bd4799ec52baf159410ac"></a>	<h2>Date Locale Functions</h2>

	<p>Some additional localization options could be added to QLocale to support date formatting, these are all defined by Unicode <span class="caps">CLDR</span>:</p>

	<ul>
		<li>Short Year Window</li>
		<li>Digit Sets</li>
		<li>Calendar System</li>
		<li>Week Number System &#40;support US weeks as well as <span class="caps">ISO</span>&#41;</li>
	</ul>

	<p>Note Week Start Date and Working Week have been added for 4.8.</p>

	<a name="8826768aab46ef8b36ef8bdab1d5e662"></a>	<h2>Extra Calendar/Date Attributes</h2>

	<p>Add additional standard date attributes defined in the <span class="caps">CLDR</span> such as quarter, months in year, etc, that are useful for calendar systems and date formatting support.</p>

	<p>Proposed api:</p>

	<p><div class="cpp-qt geshi"><ol><li class="li1"><div class="de1"><span class="kw4">int</span> <a href="http://qt-project.org/doc/QDate.html"><span class="kw5">QDate</span></a><span class="sy0">::</span><span class="me2">monthsInYear</span><span class="br0">&#40;</span><span class="br0">&#41;</span></div></li>
<li class="li1"><div class="de1"><span class="kw4">int</span> <a href="http://qt-project.org/doc/QDate.html"><span class="kw5">QDate</span></a><span class="sy0">::</span><span class="me2">weeksInYear</span><span class="br0">&#40;</span><span class="br0">&#41;</span></div></li>
<li class="li1"><div class="de1"><span class="kw4">int</span> <a href="http://qt-project.org/doc/QDate.html"><span class="kw5">QDate</span></a><span class="sy0">::</span><span class="me2">quarter</span><span class="br0">&#40;</span><span class="br0">&#41;</span></div></li>
<li class="li1"><div class="de1"><span class="kw4">int</span> <a href="http://qt-project.org/doc/QDate.html"><span class="kw5">QDate</span></a><span class="sy0">::</span><span class="me2">weekOfMonth</span><span class="br0">&#40;</span><span class="br0">&#41;</span></div></li>
<li class="li2"><div class="de2"><span class="kw4">int</span> <a href="http://qt-project.org/doc/QDate.html"><span class="kw5">QDate</span></a><span class="sy0">::</span><span class="me2">weekdayInMonth</span><span class="br0">&#40;</span><span class="br0">&#41;</span></div></li>
</ol></div></p>

	<p>See also Name functions and Date Format Codes which implement string versions of some of these.</p>

	<p>John Layt to submit patches.</p>

	<a name="9abd1a1cc0d70e6118084a482be682da"></a>	<h2>Date Name formatting</h2>

	<p>The current QLocale and QDate api for month/weekday names is rather messy and mixed up due to incremental changes and is marked for clean-up in Qt5.  The following new api based on <span class="caps">CLDR</span> is proposed:</p>

	<p><div class="cpp-qt geshi"><ol><li class="li1"><div class="de1">&nbsp;<span class="kw2">enum</span> <a href="http://qt-project.org/doc/QLocale.html"><span class="kw5">QLocale</span></a><span class="sy0">::</span><span class="me2">NameFormat</span> <span class="br0">&#123;</span>LongName<span class="sy0">,</span> ShortName<span class="sy0">,</span> NarrowName<span class="br0">&#125;</span> &nbsp;<span class="co1">//Replaces QLocale::FormatType</span></div></li>
<li class="li1"><div class="de1">&nbsp;<span class="kw2">enum</span> <a href="http://qt-project.org/doc/QLocale.html"><span class="kw5">QLocale</span></a><span class="sy0">::</span><span class="me2">NameContext</span> <span class="br0">&#123;</span>SentanceFormat<span class="sy0">,</span> StandaloneFormat<span class="br0">&#125;</span> &nbsp;<span class="co1">//Replaces QDate::MonthNameType</span></div></li>
<li class="li1"><div class="de1">&nbsp;<a href="http://qt-project.org/doc/QString.html"><span class="kw5">QString</span></a> <a href="http://qt-project.org/doc/QLocale.html"><span class="kw5">QLocale</span></a><span class="sy0">::</span><span class="me2">monthName</span><span class="br0">&#40;</span><span class="kw4">int</span> month<span class="sy0">,</span> <a href="http://qt-project.org/doc/QLocale.html"><span class="kw5">QLocale</span></a><span class="sy0">::</span><span class="me2">NameFormat</span> format <span class="sy0">=</span> <a href="http://qt-project.org/doc/QLocale.html"><span class="kw5">QLocale</span></a><span class="sy0">::</span><span class="me2">LongName</span><span class="sy0">,</span> <a href="http://qt-project.org/doc/QLocale.html"><span class="kw5">QLocale</span></a><span class="sy0">::</span><span class="me2">NameContext</span> context <span class="sy0">=</span> <a href="http://qt-project.org/doc/QLocale.html"><span class="kw5">QLocale</span></a><span class="sy0">::</span><span class="me2">SentenceFormat</span><span class="br0">&#41;</span></div></li>
<li class="li1"><div class="de1">&nbsp;<a href="http://qt-project.org/doc/QString.html"><span class="kw5">QString</span></a> <a href="http://qt-project.org/doc/QLocale.html"><span class="kw5">QLocale</span></a><span class="sy0">::</span><span class="me2">weekdayName</span><span class="br0">&#40;</span><span class="kw4">int</span> weekday <a href="http://qt-project.org/doc/QLocale.html"><span class="kw5">QLocale</span></a><span class="sy0">::</span><span class="me2">NameFormat</span> format<span class="sy0">,</span> <a href="http://qt-project.org/doc/QLocale.html"><span class="kw5">QLocale</span></a><span class="sy0">::</span><span class="me2">NameContext</span> context <span class="sy0">=</span> <a href="http://qt-project.org/doc/QLocale.html"><span class="kw5">QLocale</span></a><span class="sy0">::</span><span class="me2">SentenceFormat</span><span class="br0">&#41;</span></div></li>
<li class="li2"><div class="de2">&nbsp;<a href="http://qt-project.org/doc/QString.html"><span class="kw5">QString</span></a> <a href="http://qt-project.org/doc/QLocale.html"><span class="kw5">QLocale</span></a><span class="sy0">::</span><span class="me2">quarterName</span><span class="br0">&#40;</span><span class="kw4">int</span> quarter<span class="sy0">,</span> <a href="http://qt-project.org/doc/QLocale.html"><span class="kw5">QLocale</span></a><span class="sy0">::</span><span class="me2">NameFormat</span> format<span class="sy0">,</span> <a href="http://qt-project.org/doc/QLocale.html"><span class="kw5">QLocale</span></a><span class="sy0">::</span><span class="me2">NameContext</span> context <span class="sy0">=</span> <a href="http://qt-project.org/doc/QLocale.html"><span class="kw5">QLocale</span></a><span class="sy0">::</span><span class="me2">SentenceFormat</span><span class="br0">&#41;</span></div></li>
<li class="li1"><div class="de1">&nbsp;<a href="http://qt-project.org/doc/QString.html"><span class="kw5">QString</span></a> <a href="http://qt-project.org/doc/QDate.html"><span class="kw5">QDate</span></a><span class="sy0">::</span><span class="me2">monthName</span><span class="br0">&#40;</span><a href="http://qt-project.org/doc/QLocale.html"><span class="kw5">QLocale</span></a><span class="sy0">::</span><span class="me2">NameFormat</span> format <span class="sy0">=</span> <a href="http://qt-project.org/doc/QLocale.html"><span class="kw5">QLocale</span></a><span class="sy0">::</span><span class="me2">LongName</span><span class="sy0">,</span> <a href="http://qt-project.org/doc/QLocale.html"><span class="kw5">QLocale</span></a><span class="sy0">::</span><span class="me2">NameContext</span> context <span class="sy0">=</span> <a href="http://qt-project.org/doc/QLocale.html"><span class="kw5">QLocale</span></a><span class="sy0">::</span><span class="me2">SentenceFormat</span><span class="br0">&#41;</span></div></li>
<li class="li1"><div class="de1">&nbsp;<a href="http://qt-project.org/doc/QString.html"><span class="kw5">QString</span></a> <a href="http://qt-project.org/doc/QDate.html"><span class="kw5">QDate</span></a><span class="sy0">::</span><span class="me2">weekdayName</span><span class="br0">&#40;</span><a href="http://qt-project.org/doc/QLocale.html"><span class="kw5">QLocale</span></a><span class="sy0">::</span><span class="me2">NameFormat</span> format<span class="sy0">,</span> <a href="http://qt-project.org/doc/QLocale.html"><span class="kw5">QLocale</span></a><span class="sy0">::</span><span class="me2">NameContext</span> context <span class="sy0">=</span> <a href="http://qt-project.org/doc/QLocale.html"><span class="kw5">QLocale</span></a><span class="sy0">::</span><span class="me2">SentenceFormat</span><span class="br0">&#41;</span></div></li>
<li class="li1"><div class="de1">&nbsp;<a href="http://qt-project.org/doc/QString.html"><span class="kw5">QString</span></a> <a href="http://qt-project.org/doc/QDate.html"><span class="kw5">QDate</span></a><span class="sy0">::</span><span class="me2">quarterName</span><span class="br0">&#40;</span><a href="http://qt-project.org/doc/QLocale.html"><span class="kw5">QLocale</span></a><span class="sy0">::</span><span class="me2">NameFormat</span> format<span class="sy0">,</span> <a href="http://qt-project.org/doc/QLocale.html"><span class="kw5">QLocale</span></a><span class="sy0">::</span><span class="me2">NameContext</span> context <span class="sy0">=</span> <a href="http://qt-project.org/doc/QLocale.html"><span class="kw5">QLocale</span></a><span class="sy0">::</span><span class="me2">SentenceFormat</span><span class="br0">&#41;</span></div></li>
</ol></div></p>

	<p>Alternatively NameFormat and NameContext could be merged but this is less future proof, i.e. if more contexts are later required:</p>

	<p><div class="cpp-qt geshi"><ol><li class="li1"><div class="de1">&nbsp;<span class="kw2">enum</span> <a href="http://qt-project.org/doc/QLocale.html"><span class="kw5">QLocale</span></a><span class="sy0">::</span><span class="me2">NameFormat</span> <span class="br0">&#123;</span>LongName<span class="sy0">,</span> ShortName<span class="sy0">,</span> NarrowName<span class="sy0">,</span> StandaloneLongName<span class="sy0">,</span> StandaloneShortName<span class="sy0">,</span> StandaloneNarrowName<span class="br0">&#125;</span></div></li>
</ol></div></p>

	<a name="90177c1da7060a82231c9ccb0e7377d6"></a>	<h2>Date/Time Format Codes</h2>

	<p>The Qt to/from string format codes are mostly based on the Unicode <span class="caps">CLDR</span> formats but have a couple of problems:</p>

	<ul>
		<li>Only a small sub-set of <span class="caps">CLDR</span> codes are supported</li>
		<li>A few Qt format codes are not in the <span class="caps">CLDR</span> standard</li>
		<li>Currently 3 different implementations of parsers/formatters, need simplifying to one</li>
	</ul>

	<p>These format codes also have equivalents in the standard Posix, Windows and <span class="caps">OSX</span> date/time formats which are used in localization, so by not supporting them Qt may not be correctly localizing dates to the users system date/time formats. Many apps also need more flexibility in formatting dates.</p>

	<p>Most of the missing format codes are just string forms of existing Qt api.</p>

	<p>Reference <a href="http://www.unicode.org/reports/tr35/tr35-15.html#Date_Format_Patterns">http://www.unicode.org/reports/tr35/tr35-15.html#Date_Format_Patterns</a></p>

	<p>Qt currently supports the following format codes:</p>

	<p><div class="cpp-qt geshi"><ol><li class="li1"><div class="de1">d &nbsp; &nbsp;Day as a number without a leading zero <span class="br0">&#40;</span><span class="nu0">1</span> to <span class="nu0">31</span><span class="br0">&#41;</span></div></li>
<li class="li1"><div class="de1">dd &nbsp; Day as a number with a leading zero <span class="br0">&#40;</span><span class="nu8">01</span> to <span class="nu0">31</span><span class="br0">&#41;</span></div></li>
<li class="li1"><div class="de1">ddd &nbsp;Weekday abbreviated localized name <span class="br0">&#40;</span>e.<span class="me1">g</span>. <span class="st0">'Mon'</span> to <span class="st0">'Sun'</span><span class="br0">&#41;</span>.</div></li>
<li class="li1"><div class="de1"><span class="me1">dddd</span> Weekday <span class="kw4">long</span> localized name <span class="br0">&#40;</span>e.<span class="me1">g</span>. <span class="st0">'Monday'</span> to <span class="st0">'Sunday'</span><span class="br0">&#41;</span>.</div></li>
<li class="li2"><div class="de2"><span class="me1">M</span> &nbsp; &nbsp;Month as a number without a leading zero <span class="br0">&#40;</span><span class="nu0">1</span> to <span class="nu0">12</span><span class="br0">&#41;</span></div></li>
<li class="li1"><div class="de1">MM &nbsp; Month as a number with a leading zero <span class="br0">&#40;</span><span class="nu8">01</span> to <span class="nu0">12</span><span class="br0">&#41;</span></div></li>
<li class="li1"><div class="de1">MMM &nbsp;Month abbreviated localized name <span class="br0">&#40;</span>e.<span class="me1">g</span>. <span class="st0">'Jan'</span> to <span class="st0">'Dec'</span><span class="br0">&#41;</span>.</div></li>
<li class="li1"><div class="de1"><span class="me1">MMMM</span> Month <span class="kw4">long</span> localized name <span class="br0">&#40;</span>e.<span class="me1">g</span>. <span class="st0">'January'</span> to <span class="st0">'December'</span><span class="br0">&#41;</span>.</div></li>
<li class="li1"><div class="de1"><span class="me1">yy</span> &nbsp; Year as two digit number <span class="br0">&#40;</span><span class="nu8">00</span> to <span class="nu0">99</span><span class="br0">&#41;</span></div></li>
<li class="li2"><div class="de2">yyyy Year as four digit number. <span class="br0">&#40;</span><span class="sy0">-</span><span class="nu0">9999</span> to <span class="nu0">9999</span><span class="br0">&#41;</span></div></li>
<li class="li1"><div class="de1">h &nbsp; &nbsp;Hour without a leading zero <span class="br0">&#40;</span><span class="nu0">0</span> to <span class="nu0">23</span> or <span class="nu0">1</span> to <span class="nu0">12</span> <span class="kw1">if</span> AM<span class="sy0">/</span>PM<span class="br0">&#41;</span></div></li>
<li class="li1"><div class="de1">hh &nbsp; Hour with a leading zero <span class="br0">&#40;</span><span class="nu8">00</span> to <span class="nu0">23</span> or <span class="nu8">01</span> to <span class="nu0">12</span> <span class="kw1">if</span> AM<span class="sy0">/</span>PM<span class="br0">&#41;</span></div></li>
<li class="li1"><div class="de1">H &nbsp; &nbsp;<span class="nu0">24</span> Hour without a leading zero <span class="br0">&#40;</span><span class="nu0">0</span> to <span class="nu0">23</span><span class="br0">&#41;</span></div></li>
<li class="li1"><div class="de1">HH &nbsp; <span class="nu0">24</span> Hour with a leading zero <span class="br0">&#40;</span><span class="nu8">00</span> to <span class="nu0">23</span><span class="br0">&#41;</span></div></li>
<li class="li2"><div class="de2">m &nbsp; &nbsp;Minute without a leading zero <span class="br0">&#40;</span><span class="nu0">0</span> to <span class="nu0">59</span><span class="br0">&#41;</span></div></li>
<li class="li1"><div class="de1">mm &nbsp; Minute with a leading zero <span class="br0">&#40;</span><span class="nu8">00</span> to <span class="nu0">59</span><span class="br0">&#41;</span></div></li>
<li class="li1"><div class="de1">s &nbsp; &nbsp;Second without a leading zero <span class="br0">&#40;</span><span class="nu0">0</span> to <span class="nu0">59</span><span class="br0">&#41;</span></div></li>
<li class="li1"><div class="de1">ss &nbsp; Second with a leading zero <span class="br0">&#40;</span><span class="nu8">00</span> to <span class="nu0">59</span><span class="br0">&#41;</span></div></li>
<li class="li1"><div class="de1">z &nbsp; &nbsp;Milliseconds without leading zeroes <span class="br0">&#40;</span><span class="nu0">0</span> to <span class="nu0">999</span><span class="br0">&#41;</span></div></li>
<li class="li2"><div class="de2">zzz &nbsp;Milliseconds with leading zeroes <span class="br0">&#40;</span><span class="nu8">000</span> to <span class="nu0">999</span><span class="br0">&#41;</span></div></li>
<li class="li1"><div class="de1">AP &nbsp; AM<span class="sy0">/</span>PM uppercase</div></li>
<li class="li1"><div class="de1">ap &nbsp; AM<span class="sy0">/</span>PM lowercase</div></li>
<li class="li1"><div class="de1">A &nbsp; &nbsp;AM<span class="sy0">/</span>PM uppercase</div></li>
<li class="li1"><div class="de1">a &nbsp; &nbsp;AM<span class="sy0">/</span>PM lowercase</div></li>
<li class="li2"><div class="de2">t &nbsp; &nbsp;Timezone <span class="br0">&#40;</span><span class="kw1">for</span> example <span class="st0">&quot;CEST&quot;</span><span class="br0">&#41;</span></div></li>
</ol></div></p>

	<p>Note that:
	<ul>
		<li>ddd and dddd formats are not valid <span class="caps">CLDR</span> forms but derived from Windows, they should be <span class="caps">EEE</span> and <span class="caps">EEEE</span> instead.</li>
		<li>AP and ap are not valid <span class="caps">CLDR</span> forms</li>
		<li>h and hh do not exactly match the <span class="caps">CLDR</span> definition</li>
		<li>t is not a valid <span class="caps">CLDR</span> form</li>
	</ul></p>

	<p>The following <span class="caps">CLDR</span> codes should be supported:</p>

	<p><div class="cpp-qt geshi"><ol><li class="li1"><div class="de1">ddddd Day narrow localized name <span class="br0">&#40;</span>e.<span class="me1">g</span>. <span class="st0">'M'</span> to <span class="st0">'S'</span><span class="br0">&#41;</span>.</div></li>
<li class="li1"><div class="de1"><span class="me1">MMMMM</span> Month narrow localized name <span class="br0">&#40;</span>e.<span class="me1">g</span>. <span class="st0">'J'</span> to <span class="st0">'D'</span><span class="br0">&#41;</span>.</div></li>
<li class="li1"><div class="de1"><span class="me1">y</span> &nbsp; &nbsp; Year without a leading zero <span class="br0">&#40;</span><span class="nu0">1</span> to <span class="nu0">9999</span><span class="br0">&#41;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li2"><div class="de2">D <span class="br0">&#40;</span><span class="nu0">1</span>..<span class="nu0">3</span><span class="br0">&#41;</span></div></li>
<li class="li1"><div class="de1">Day of Year<span class="sy0">,</span> numeric with or without leading zeros.</div></li>
<li class="li1"><div class="de1"><span class="me1">Matches</span> existing dayOfYear<span class="br0">&#40;</span><span class="br0">&#41;</span> api.</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="me1">w</span> <span class="br0">&#40;</span><span class="nu0">1</span><span class="sy0">-</span><span class="nu0">2</span><span class="br0">&#41;</span></div></li>
<li class="li2"><div class="de2">Week of Year<span class="sy0">,</span> numeric with or without leading zero.</div></li>
<li class="li1"><div class="de1"><span class="me1">Matches</span> existing weekNumber<span class="br0">&#40;</span><span class="br0">&#41;</span> api.</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="me1">Y</span> <span class="br0">&#40;</span><span class="nu0">1</span>..<span class="me1">n</span><span class="br0">&#41;</span></div></li>
<li class="li1"><div class="de1">Week year<span class="sy0">,</span> e.<span class="me1">g</span>. <span class="kw1">for</span> ISO Week Number year week falls in<span class="sy0">,</span> forms to match y.</div></li>
<li class="li2"><div class="de2"><span class="me1">Matches</span> existing weekNumber<span class="br0">&#40;</span><span class="br0">&#41;</span> api.</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="me1">L</span> <span class="br0">&#40;</span><span class="nu0">1</span>..<span class="nu0">5</span><span class="br0">&#41;</span></div></li>
<li class="li1"><div class="de1">Stand<span class="sy0">-</span>alone Month</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li2"><div class="de2">E <span class="br0">&#40;</span><span class="nu0">1</span>..<span class="nu0">5</span><span class="br0">&#41;</span></div></li>
<li class="li1"><div class="de1">Weekday<span class="sy0">,</span> abbreviated <span class="br0">&#40;</span>e.<span class="me1">g</span>. <span class="st0">'Mon'</span><span class="br0">&#41;</span><span class="sy0">,</span> <span class="kw4">long</span> <span class="br0">&#40;</span>e.<span class="me1">g</span>. <span class="st0">'Monday'</span><span class="br0">&#41;</span> and narrow <span class="br0">&#40;</span>e.<span class="me1">g</span>. <span class="st0">'M'</span><span class="br0">&#41;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">c <span class="br0">&#40;</span><span class="nu0">1</span>..<span class="nu0">5</span><span class="br0">&#41;</span></div></li>
<li class="li1"><div class="de1">Stand<span class="sy0">-</span>alone Weekday</div></li>
<li class="li2"><div class="de2">&nbsp;</div></li>
<li class="li1"><div class="de1">G <span class="br0">&#40;</span><span class="nu0">1</span>..<span class="nu0">5</span><span class="br0">&#41;</span></div></li>
<li class="li1"><div class="de1">Era localized name<span class="sy0">,</span> abbreviated <span class="br0">&#40;</span>e.<span class="me1">g</span>. <span class="st0">'AD'</span><span class="br0">&#41;</span><span class="sy0">,</span> <span class="kw4">long</span> <span class="br0">&#40;</span>e.<span class="me1">g</span>. <span class="st0">'Anno Domini'</span><span class="br0">&#41;</span> and narrow <span class="br0">&#40;</span>e.<span class="me1">g</span>. <span class="st0">'A'</span><span class="br0">&#41;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">z<span class="sy0">/</span>Z<span class="sy0">/</span>v<span class="sy0">/</span>V</div></li>
<li class="li2"><div class="de2">Timezones. &nbsp;<span class="me1">TODO</span>. &nbsp;<span class="me1">Depends</span> on <a href="http://qt-project.org/doc/QTime.html"><span class="kw5">QTime</span></a> support.</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="me1">Q</span> <span class="br0">&#40;</span><span class="nu0">1</span>..<span class="nu0">4</span><span class="br0">&#41;</span></div></li>
<li class="li1"><div class="de1">Quarter in year<span class="sy0">,</span> <span class="st0">'2'</span><span class="sy0">,</span> <span class="st0">'02'</span><span class="sy0">,</span> <span class="st0">'Q2'</span> or <span class="st0">'2nd Quarter'</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li2"><div class="de2">q <span class="br0">&#40;</span><span class="nu0">1</span>..<span class="nu0">4</span><span class="br0">&#41;</span></div></li>
<li class="li1"><div class="de1">Stand<span class="sy0">-</span>alone Quarter in year</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">W <span class="br0">&#40;</span><span class="nu0">1</span><span class="br0">&#41;</span></div></li>
<li class="li1"><div class="de1">Week of Month<span class="sy0">,</span> numeric.</div></li>
<li class="li2"><div class="de2">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="me1">F</span> <span class="br0">&#40;</span><span class="nu0">1</span><span class="br0">&#41;</span></div></li>
<li class="li1"><div class="de1">Day of Week In Month<span class="sy0">,</span> e.<span class="me1">g</span>. <span class="kw1">if</span> today is 2nd Monday in Month <span class="sy0">=</span> <span class="nu0">2</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">e <span class="br0">&#40;</span><span class="nu0">1</span>..<span class="nu0">5</span><span class="br0">&#41;</span></div></li>
<li class="li2"><div class="de2">Weekday<span class="sy0">,</span> localized numeric <span class="br0">&#40;</span><span class="nu0">1</span> or <span class="nu8">01</span><span class="br0">&#41;</span><span class="sy0">,</span> abbreviated <span class="br0">&#40;</span>e.<span class="me1">g</span>. <span class="st0">'Mon'</span><span class="br0">&#41;</span><span class="sy0">,</span> <span class="kw4">long</span> <span class="br0">&#40;</span>e.<span class="me1">g</span>. <span class="st0">'Monday'</span><span class="br0">&#41;</span> and narrow <span class="br0">&#40;</span>e.<span class="me1">g</span>. <span class="st0">'M'</span><span class="br0">&#41;</span>.</div></li>
<li class="li1"><div class="de1"><span class="me1">Would</span> require <a href="http://qt-project.org/doc/QLocale.html"><span class="kw5">QLocale</span></a> support <span class="kw1">for</span> localized week number<span class="sy0">,</span> i.<span class="me1">e</span>. <span class="me1">US</span> week as well as ISO week.</div></li>
</ol></div></p>

	<p>It was suggested to use a regex based fromString() method like in QTimeSpan.  This can wait for 5.1 or later.</p>

	<p>Agreed to remove non-standard format codes, implement as many standard <span class="caps">CLDR</span> codes as possible.  Initial implementation may not be most efficient but can be improved later.  Must be in 5.0 as changes Source Compatibility and changes behaviour.</p>

	<p>John Layt to submit patches.</p>

	<a name="9a30df09a384daca21e94a4eb20278a2"></a>	<h2>Date/Time Named Formats</h2>

	<p>QDateTime supports a number of named date/time formats:</p>

	<p><div class="cpp-qt geshi"><ol><li class="li1"><div class="de1">&nbsp; &nbsp; <span class="kw2">enum</span> <a href="http://qt-project.org/doc/Qt.html"><span class="kw5">Qt</span></a><span class="sy0">:</span>DateFormat <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; TextDate<span class="sy0">,</span> &nbsp; &nbsp; &nbsp;<span class="co1">// default Qt</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; ISODate<span class="sy0">,</span> &nbsp; &nbsp; &nbsp; <span class="co1">// ISO 8601</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; SystemLocaleDate<span class="sy0">,</span> <span class="co1">// deprecated</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; LocalDate <span class="sy0">=</span> SystemLocaleDate<span class="sy0">,</span> <span class="co1">// deprecated</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; LocaleDate<span class="sy0">,</span> &nbsp; &nbsp; <span class="co1">// deprecated</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; SystemLocaleShortDate<span class="sy0">,</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; SystemLocaleLongDate<span class="sy0">,</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; DefaultLocaleShortDate<span class="sy0">,</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; DefaultLocaleLongDate</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span><span class="sy0">;</span></div></li>
</ol></div></p>

	<p>This enum is used by QDate, QTime and QDateTime so being called DateFormat is a misnomer and should be fixed, either by splitting into date/time/datetime enums or making the value names more generic.</p>

	<p>The <span class="caps">CLDR</span> standard defines standard date formats for Full, Long, Medium, and Short, all of which are also supported by Mac and Windows.  The extra Full and Medium formats should be added.</p>

	<p>The difference between the System* and Default* formats should be investigated and if possible split to a second enum?  The deprecated ones should be removed, and TextDate investigated to see if it is meaningful anymore.</p>

	<p>The following common formats supported in <span class="caps">KDE</span> could also be added:
	<ul>
		<li><span class="caps">ISOT</span>ime &#8211; <span class="caps">ISO</span> 8601 format time</li>
		<li>ISODateTime &#8211; <span class="caps">ISO</span> 8601 format date and time</li>
		<li>RFCDateTime &#8211; <span class="caps">RFC</span> 822/850/1036/1123/2822 format</li>
		<li>RFCDateTimeDay &#8211; <span class="caps">RFC</span> format including day of the week</li>
		<li>RFC3339DateTime &#8211; <span class="caps">RFC</span> 3339 format</li>
		<li>ISOWeekDate &#8211; <span class="caps">ISO</span> 8601 Week Date format</li>
		<li>ISOOrdinalDate &#8211; <span class="caps">ISO</span> 8601 Ordinal Date format</li>
	</ul></p>

	<p>The <span class="caps">ISO</span> dates should accept both basic and expanded formats.</p>

	<p>Note KDateTime uses regex&#8217;s for some of these in an inefficient way so don&#8217;t just copy the code.</p>

	<p>Possible api:</p>

	<p><div class="cpp-qt geshi"><ol><li class="li1"><div class="de1"><span class="kw2">enum</span> <a href="http://qt-project.org/doc/QLocale.html"><span class="kw5">QLocale</span></a><span class="sy0">::</span><span class="me2">DateTimeFormat</span> <span class="br0">&#123;</span> DefaultFormat<span class="sy0">,</span> FullFormat<span class="sy0">,</span> LongFormat<span class="sy0">,</span> MediumFormat<span class="sy0">,</span> ShortFormat<span class="sy0">,</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;IsoFormat<span class="sy0">,</span> RfcFormat<span class="sy0">,</span> Rfc3339Format<span class="sy0">,</span> WeekFormat<span class="sy0">,</span> OrdinalFormat <span class="br0">&#125;</span></div></li>
</ol></div></p>

	<p>Where the context of the class will determine if it is a date, time or datetime version.  Where a format is inappropriate the default format will be returned.</p>

	<p>Alternative api</p>

	<p><div class="cpp-qt geshi"><ol><li class="li1"><div class="de1"><span class="kw2">enum</span> <a href="http://qt-project.org/doc/QLocale.html"><span class="kw5">QLocale</span></a><span class="sy0">::</span><span class="me2">DateTimeFormat</span> <span class="br0">&#123;</span> DefaultDateTime<span class="sy0">,</span> FullDateTime<span class="sy0">,</span> LongDateTime<span class="sy0">,</span> MediumDateTime<span class="sy0">,</span> ShortDateTime<span class="sy0">,</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;IsoDateTime<span class="sy0">,</span> RfcDateTime<span class="sy0">,</span> Rfc3339DateTime<span class="sy0">,</span> WeekDateTime<span class="sy0">,</span> OrdinalDateTime <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="kw2">enum</span> <a href="http://qt-project.org/doc/QLocale.html"><span class="kw5">QLocale</span></a><span class="sy0">::</span><span class="me2">DateFormat</span> <span class="br0">&#123;</span> DefaultDate<span class="sy0">,</span> FullDate<span class="sy0">,</span> LongDate<span class="sy0">,</span> MediumDate<span class="sy0">,</span> ShortDate<span class="sy0">,</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;IsoDate<span class="sy0">,</span> RfcDate<span class="sy0">,</span> Rfc3339Date<span class="sy0">,</span> WeekDate<span class="sy0">,</span> OrdinalDate <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="kw2">enum</span> <a href="http://qt-project.org/doc/QLocale.html"><span class="kw5">QLocale</span></a><span class="sy0">::</span><span class="me2">TimeFormat</span> <span class="br0">&#123;</span> DefaultTime<span class="sy0">,</span> FullTime<span class="sy0">,</span> LongTime<span class="sy0">,</span> MediumTime<span class="sy0">,</span> ShortTime<span class="sy0">,</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; IsoTime<span class="sy0">,</span> RfcTime<span class="sy0">,</span> Rfc3339Time<span class="sy0">,</span> WeekTime<span class="sy0">,</span> OrdinalTime <span class="br0">&#125;</span></div></li>
</ol></div></p>

	<a name="a1536af3a2ed6ae4cf2c645e206e8ff7"></a>	<h2>Date Eras</h2>

	<p>Many locales have an optional Era system for dates, others such as Japan use an era system in its official date formats.  Proper localisation support requires this to be added, especially if Calendar Systems are supported.</p>

	<p>Proposed api:</p>

	<p><div class="cpp-qt geshi"><ol><li class="li1"><div class="de1"><a href="http://qt-project.org/doc/QString.html"><span class="kw5">QString</span></a> <a href="http://qt-project.org/doc/QDate.html"><span class="kw5">QDate</span></a><span class="sy0">::</span><span class="me2">eraName</span><span class="br0">&#40;</span><span class="br0">&#41;</span></div></li>
<li class="li1"><div class="de1"><span class="kw4">int</span> &nbsp; &nbsp; <a href="http://qt-project.org/doc/QDate.html"><span class="kw5">QDate</span></a><span class="sy0">::</span><span class="me2">yearInEra</span><span class="br0">&#40;</span><span class="br0">&#41;</span></div></li>
<li class="li1"><div class="de1"><a href="http://qt-project.org/doc/QString.html"><span class="kw5">QString</span></a> <a href="http://qt-project.org/doc/QDate.html"><span class="kw5">QDate</span></a><span class="sy0">::</span><span class="me2">eraName</span><span class="br0">&#40;</span><a href="http://qt-project.org/doc/QLocale.html"><span class="kw5">QLocale</span></a><span class="sy0">::</span><span class="me2">NameFormat</span> format<span class="br0">&#41;</span><span class="kw4">bool</span></div></li>
<li class="li1"><div class="de1"><a href="http://qt-project.org/doc/QDate.html"><span class="kw5">QDate</span></a><span class="sy0">::</span><span class="me2">isValidEraDate</span><span class="br0">&#40;</span><a href="http://qt-project.org/doc/QString.html"><span class="kw5">QString</span></a> eraName<span class="sy0">,</span> <span class="kw4">int</span> yearInEra<span class="sy0">,</span> <span class="kw4">int</span> month<span class="sy0">,</span> <span class="kw4">int</span> day<span class="br0">&#41;</span></div></li>
<li class="li2"><div class="de2"><span class="kw4">bool</span> <a href="http://qt-project.org/doc/QDate.html"><span class="kw5">QDate</span></a><span class="sy0">::</span><span class="me2">setEraDate</span><span class="br0">&#40;</span><a href="http://qt-project.org/doc/QString.html"><span class="kw5">QString</span></a> eraName<span class="sy0">,</span> <span class="kw4">int</span> yearInEra<span class="sy0">,</span> <span class="kw4">int</span> month<span class="sy0">,</span> <span class="kw4">int</span> day<span class="br0">&#41;</span></div></li>
</ol></div></p>

	<p>John Layt to submit patches.</p>

	<a name="172228b9aa024e5b961737907b41cd4a"></a>	<h2><span class="caps">ISO</span> Ordinal Date</h2>

	<p>The <span class="caps">ISO</span> 8601 standard defines an Ordinal Date standard of yyyy-ddd for day ddd in year yyyy.  Qt already provides api for dayOfYear().  Support could be added to to/from string using the standard Unicode format codes and a named date format, and api provided for directly setting the date using the ordinal date.</p>

	<p>Proposed api:</p>

	<p><div class="cpp-qt geshi"><ol><li class="li1"><div class="de1"><span class="kw4">bool</span> <a href="http://qt-project.org/doc/QDate.html"><span class="kw5">QDate</span></a><span class="sy0">::</span><span class="me2">isValidOrdinalDate</span><span class="br0">&#40;</span><span class="kw4">int</span> year<span class="sy0">,</span> <span class="kw4">int</span> dayOfYear<span class="br0">&#41;</span></div></li>
<li class="li1"><div class="de1"><span class="kw4">bool</span> <a href="http://qt-project.org/doc/QDate.html"><span class="kw5">QDate</span></a><span class="sy0">::</span><span class="me2">setOrdinalDate</span><span class="br0">&#40;</span><span class="kw4">int</span> year<span class="sy0">,</span> <span class="kw4">int</span> dayOfYear<span class="br0">&#41;</span></div></li>
</ol></div></p>

	<p>John Layt to submit patches.</p>

	<a name="43b323173ed24660790684ef8aa9ac0d"></a>	<h2><span class="caps">ISO</span> Week Date</h2>

	<p>The <span class="caps">ISO</span> 8601 standard defines a Week Date standard of yyyy-Www-d for weekday d in <span class="caps">ISO</span> week ww of year yyyy.  Qt already provides api for weekNumber().  Support could be added to to/from string using the standard Unicode format codes and a named date format, and api provided for directly setting the date using the week date.</p>

	<p>Proposed api:</p>

	<p><div class="cpp-qt geshi"><ol><li class="li1"><div class="de1"><span class="kw4">bool</span> <a href="http://qt-project.org/doc/QDate.html"><span class="kw5">QDate</span></a><span class="sy0">::</span><span class="me2">isValidIsoWeekDate</span><span class="br0">&#40;</span><span class="kw4">int</span> year<span class="sy0">,</span> <span class="kw4">int</span> weekOfYear<span class="sy0">,</span> <span class="kw4">int</span> dayOfWeek<span class="br0">&#41;</span></div></li>
<li class="li1"><div class="de1"><span class="kw4">bool</span> <a href="http://qt-project.org/doc/QDate.html"><span class="kw5">QDate</span></a><span class="sy0">::</span><span class="me2">setIsoWeekDate</span><span class="br0">&#40;</span><span class="kw4">int</span> year<span class="sy0">,</span> <span class="kw4">int</span> weekOfYear<span class="sy0">,</span> <span class="kw4">int</span> dayOfWeek<span class="br0">&#41;</span></div></li>
</ol></div></p>

	<p>If support for week number systems other than <span class="caps">ISO</span> Weeks is added (e.g. US Weeks) then the api would be changed to remove the <span class="caps">ISO</span> form the name and optionally add the week number system as a parameter.</p>

	<p>John Layt to submit patches</p>

	<a name="1604543bdf4bd176b00b85c09f688ecf"></a>	<h2>Date Maths</h2>

	<p>Qt currently only provides standard date math functions for adding years, months or days. Some more convenience functions could be added.</p>

	<ul>
		<li>Date difference (inverse of addYMD())</li>
		<li>Years difference (inverse of addYears())</li>
		<li>Months difference (inverse of addMonths())</li>
	</ul>

	<p>The following are useful with Calendar System support:
	<ul>
		<li>First day of year</li>
		<li>Last day of year</li>
		<li>First day of month</li>
		<li>Last day of month</li>
	</ul></p>

	<p>Possible api:</p>

	<p><div class="cpp-qt geshi"><ol><li class="li1"><div class="de1"><span class="kw4">void</span> <a href="http://qt-project.org/doc/QDate.html"><span class="kw5">QDate</span></a><span class="sy0">::</span><span class="me2">dateDifference</span><span class="br0">&#40;</span><span class="kw4">const</span> <a href="http://qt-project.org/doc/QDate.html"><span class="kw5">QDate</span></a> <span class="sy0">&amp;</span>toDate<span class="sy0">,</span> <span class="kw4">int</span> <span class="sy0">*</span>years<span class="sy0">,</span> <span class="kw4">int</span> <span class="sy0">*</span>months<span class="sy0">,</span> <span class="kw4">int</span> <span class="sy0">*</span>days<span class="sy0">,</span> <span class="kw4">int</span> <span class="sy0">*</span>sign<span class="br0">&#41;</span></div></li>
<li class="li1"><div class="de1"><span class="kw4">int</span> &nbsp;<a href="http://qt-project.org/doc/QDate.html"><span class="kw5">QDate</span></a><span class="sy0">::</span><span class="me2">yearsDifference</span><span class="br0">&#40;</span><span class="kw4">const</span> <a href="http://qt-project.org/doc/QDate.html"><span class="kw5">QDate</span></a> <span class="sy0">&amp;</span>toDate<span class="br0">&#41;</span></div></li>
<li class="li1"><div class="de1"><span class="kw4">int</span> &nbsp;<a href="http://qt-project.org/doc/QDate.html"><span class="kw5">QDate</span></a><span class="sy0">::</span><span class="me2">monthsDifference</span><span class="br0">&#40;</span><span class="kw4">const</span> <a href="http://qt-project.org/doc/QDate.html"><span class="kw5">QDate</span></a> <span class="sy0">&amp;</span>toDate<span class="br0">&#41;</span></div></li>
<li class="li1"><div class="de1"><span class="kw4">int</span> &nbsp;<a href="http://qt-project.org/doc/QDate.html"><span class="kw5">QDate</span></a><span class="sy0">::</span><span class="me2">daysDifference</span><span class="br0">&#40;</span><span class="kw4">const</span> <a href="http://qt-project.org/doc/QDate.html"><span class="kw5">QDate</span></a> <span class="sy0">&amp;</span>toDate<span class="br0">&#41;</span></div></li>
<li class="li2"><div class="de2"><a href="http://qt-project.org/doc/QDate.html"><span class="kw5">QDate</span></a> <a href="http://qt-project.org/doc/QDate.html"><span class="kw5">QDate</span></a><span class="sy0">::</span><span class="me2">firstDayOfYear</span><span class="br0">&#40;</span><span class="br0">&#41;</span></div></li>
<li class="li1"><div class="de1"><a href="http://qt-project.org/doc/QDate.html"><span class="kw5">QDate</span></a> <a href="http://qt-project.org/doc/QDate.html"><span class="kw5">QDate</span></a><span class="sy0">::</span><span class="me2">lastDayOfYear</span><span class="br0">&#40;</span><span class="br0">&#41;</span></div></li>
<li class="li1"><div class="de1"><a href="http://qt-project.org/doc/QDate.html"><span class="kw5">QDate</span></a> <a href="http://qt-project.org/doc/QDate.html"><span class="kw5">QDate</span></a><span class="sy0">::</span><span class="me2">firstDayOfMonth</span><span class="br0">&#40;</span><span class="br0">&#41;</span></div></li>
<li class="li1"><div class="de1"><a href="http://qt-project.org/doc/QDate.html"><span class="kw5">QDate</span></a> <a href="http://qt-project.org/doc/QDate.html"><span class="kw5">QDate</span></a><span class="sy0">::</span><span class="me2">lastDayOfMonth</span><span class="br0">&#40;</span><span class="br0">&#41;</span></div></li>
</ol></div></p>

	<p>Look in KCalCore and QtOrganizer to see what other date math / classes might be useful.</p>

	<a name="fa07652cb6a5517c5dffb407c8eca014"></a>	<h2>Widgets</h2>

	<p>The various widgets will need modification to match the new features and api and to resolve old bugs.</p>

	<p>QDateTimeEdit needs to support null dates and extend the supported date range.</p>

	<p>QCalendarWidget needs to use Start of Week and Working Week Start/End from QLocale, but be able to override if needed.</p>

	<p>Some new widgets may be needed,perhaps based on <span class="caps">KDE</span> combo box versions.</p>
      ]]></content>
    </entry>

    <entry>
      <title>qtquick3d</title>
      <link rel="alternate" type="text/html" href="http://qt-project.org/groups/qt-contributors-summit-2011/wiki/qtquick3d" />
      <id>tag:qt-project.org,2011:wiki:qtquick3d/1264.8524</id>
      <published>2011-06-29T02:04:11Z</published>
      <updated>2011-06-29T02:04:11Z</updated>
      <author>
            <name>minjung.shin</name>
            <email></email>
      </author>
      <content type="html"><![CDATA[
        <div class="factbox right"><h3>Table of Content</h3><ul>
<li><a href="#2cd73596379b74b4d7445bedde178153">Session 1</a><ul>
<li><a href="#f4c6f851b00d5518bf888815de279aba">Notes</a></li></ul>
</li>
<li><a href="#6fc52483e576310151919549c96faecf">Session 2</a><ul>
<li><a href="#f4c6f851b00d5518bf888815de279aba_0">Notes</a></li></ul>
</li></ul>
</div> 

	<a name="2cd73596379b74b4d7445bedde178153"></a>	<h1>Session 1</h1>

	<ul>
		<li>16/Jun/11 Thursday 13:30 – 14:30</li>
		<li><span class="caps">VEGA</span> A</li>
	</ul>

	<a name="f4c6f851b00d5518bf888815de279aba"></a>	<h2>Notes</h2>

	<ul>
		<li>Introduction to QtQuick3D
	<ul>
		<li>3D programming in <span class="caps">QML</span> making it easy to add 3D contents to 2D applications.</li>
		<li><a href="http://doc.qt.nokia.com/qt-quick3d-snapshot/">http://doc.qt.nokia.com/qt-quick3d-snapshot/</a></li>
		<li>Code walkthrough on SpaceTyper as an example and code distribution for hacking challenge <a href="http://gitorious.org/spacetyper">http://gitorious.org/spacetyper</a></li>
	</ul></li>
		<li>Feedback
	<ul>
		<li>Q. Relationship between Qt5 Scenegraph and QtQuick3D? A. We do not have a separate scenegraph for 3D. Item3D writes to <span class="caps">FBO</span>.</li>
		<li>Q. Any software fallback if OpenGL is not available? A. Qt5 requires OpenGL so that is the baseline.</li>
		<li>Q. Any plan to add video texture? A. That is doable but not currently planned.</li>
		<li>Car industries are interested in 3D.</li>
		<li>Qt Partner using QtQuick3D to model industrial machines. <a href="http://www.youtube.com/watch?v=g_cf-7uoK5o">http://www.youtube.com/watch?v=g_cf-7uoK5o</a></li>
	</ul></li>
	</ul>

	<a name="6fc52483e576310151919549c96faecf"></a>	<h1>Session 2</h1>

	<ul>
		<li>18/Jun/11 Saturday 13:30 – 14:30</li>
		<li><span class="caps">VENERA</span> A</li>
	</ul>

	<a name="f4c6f851b00d5518bf888815de279aba_0"></a>	<h2>Notes</h2>

	<ul>
		<li>QtQuick3D roadmap on <span class="caps">JIRA</span>
	<ul>
		<li><a href="http://bugreports.qt.nokia.com/secure/Dashboard.jspa?selectPageId=11096">http://bugreports.qt.nokia.com/secure/Dashboard.jspa?selectPageId=11096</a></li>
	</ul></li>
		<li>QtQuick3D tutorial on Youtube
	<ul>
		<li><a href="http://www.youtube.com/watch?v=OXcxFZbKUNI">http://www.youtube.com/watch?v=OXcxFZbKUNI</a></li>
	</ul></li>
		<li>Feedback
	<ul>
		<li>Community ported QtQuick3D to iOS (IanFromAfrica on <span class="caps">IRC</span>)</li>
		<li>Demoed iPad running QtQuick3D, one patch made to handle defualt framebuffer</li>
		<li>Qt for Android is yet to support OpenGL.</li>
		<li>Q. Does QtQuick3D work with 4.8? A. It works with 4.7 and 4.8 but the official 1.0 will be released aligned with Qt5.</li>
		<li>Q. (Digia)How about 0.x pre releases? A. That is not our normal practice but we will consider it if that helps comercial customers.</li>
		<li>More video tutorials the better.</li>
	</ul></li>
		<li>SpaceTyper challenge winner
	<ul>
		<li>Thorbjørn <a href="http://gitorious.org/~bjorn/spacetyper/bjorns-spacetyper">http://gitorious.org/~bjorn/spacetyper/bjorns-spacetyper</a></li>
		<li>The original code had one Viewport for each 3D item which did not give proper perspective when there is more than one items. Thorbjørn changed the code to have only one Viewport for the whole game. This is better for the performance but makes the game a bit harder to play.</li>
	</ul></li>
	</ul>
      ]]></content>
    </entry>


</feed>