Commit Graph

40 Commits (699efbe862efca5a0d18599dbc8a09d6e4cd0e9f)

Author SHA1 Message Date
Martin Smith 699efbe862 qdoc: Change remaining uses of qmlClass to qmlType
After changing the class name QmlClassNode to QmlTypeNode,
there remained several local variables that still used the
name qmlClass. These are now changed to qmlType. There were
also some uses of qmlType that were QString variables. These
have been changed to qmlTypeName.

Change-Id: I18fb05d4d8aeb1e36acabc4574c62c55a44f339a
Task-number: QTBUG-43715
Reviewed-by: Martin Smith <martin.smith@digia.com>
2015-02-03 11:52:13 +00:00
Martin Smith fdbf3bec30 qdoc: Change name of node type
QmlClassNode is renamed to QmlTypeNode. This is done
in preparation for implementing qdoc support for
documenting javascript code. Next, QmlTypeNode will
be renamed to JsTypeNode, and a new QmlTypeNode will
be declared that will inherit JsTypeNode.

Change-Id: Ia5d0c367d06c26cb43f887927bbcb096afcb7301
Task-number: QTBUG-43715
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2015-01-22 07:45:49 +01:00
Topi Reinio 9290383a1e qdoc: Remove zero-width-space characters from function signatures
The extra character was added in 5.4.0 to allow web browsers to
break up long function signatures in a nice manner. However, not
every browser supports it, and it causes problems in some code
editors when copy-pasting the code.

Change-Id: If6a52b92d683788c5e32f40bb8c280d76112723e
Reviewed-by: Martin Smith <martin.smith@digia.com>
2014-12-18 10:31:16 +01:00
Topi Reinio 1ad78f5f29 qdoc: Prepare QDoc for the new style on qt.io
The new template and CSS have some requirements that need changes
in the generated .html:

    - Generate a new div 'sidebar' and place the TOC (if one
      exists) inside it, allowing the template to extend the
      sidebar contents dynamically. Do this for all pages
      except index.html.

    - Change the DOCTYPE declaration to be html5-compliant

    - Replace <tt> tags with <code> to be html5-compliant

    - Add a new config variable HTML.prologue - this allows
      the template to insert custom html into beginning of
      the page, before the page title but after any navigation
      or table-of-contents items.

    - Wrap tables inside <div> elements. This allows for
      better-working CSS design for small-screen devices.

    - Write out extra parameters first when outputting
      function synopsis to have better styling.

    - Inject zero-width-space characters into function
      names to allow the browser break up long function
      signatures in a nice manner.

    - Edit the CSS for the offline style to adapt to
      above changes.

Task-number: QTBUG-42086
Change-Id: I3075cdc11bcb07a66150388519263fd721c8002b
Reviewed-by: Martin Smith <martin.smith@digia.com>
2014-11-11 20:42:35 +01:00
Matti Paaso 974c210835 Update license headers and add new license files
- Renamed LICENSE.LGPL to LICENSE.LGPLv21
- Added LICENSE.LGPLv3
- Removed LICENSE.GPL

Change-Id: Iec3406e3eb3f133be549092015cefe33d259a3f2
Reviewed-by: Iikka Eklund <iikka.eklund@digia.com>
2014-09-24 12:26:19 +02:00
Martin Smith a5570bbf9a qdoc: Remove all collision node stuff from qdoc
Now that the qdoc link command has ability to tell qdoc which module
contains a link target or whether to link to a QML or CPP entity,
collision pages should no longer be necessary. In fact, qdoc hasn't
been generating any collisions for some time. This task removes all
the collision node code from qdoc.

Task-number: QTBUG-40506
Change-Id: I34d1980ca1c0fe4bb5ad27dd4b00e61fa7e6e335
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2014-08-22 18:23:39 +02:00
Martin Smith 6b12d781fa qdoc: Generate obsolete members page for QML types
Generation of the obsolete members page, for QML types
that have obsolete members, had not been implemented.
This update implements that missing feature. The link
to the page appears right below the link to the "All
Members" page.

Change-Id: I3e4bb2a68d5c8ef2bbe2e0c431eccf94ecb1fd3c
Task-number: QTBUG-40214
Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2014-08-20 21:59:53 +02:00
Topi Reinio d15309edee qdoc: Support use of \value command outside \enum topic.
Even though qdoc accepts the \value command(s) anywhere in the
documentation and generates tables for them, the produced output was
invalid for documentation topics other than \enum.

This change fixes the issue by not trying to resolve the enumeration
values and removing the 'Value' column for generated tables when the
\value command is used outside c++ enum documentation topic.

This enables, for example, the use of the \value command for
documenting acceptable values for QML enumeration properties,
without having to use custom lists or tables.

Task-number: QTBUG-35019
Change-Id: I597b2f9d7d03d4ab72f276752ddf53e1c405313c
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Martin Smith <martin.smith@digia.com>
2014-07-18 10:14:31 +02:00
Martin Smith 47b898cdaf qdoc: Now lists variable in namespaces
qdoc never did list variables declared in a namespace. It was
probably an oversight, because there are currently no uses of
the \variable command in namespaces. But recently a developer
tried to use \variable to document a namespace variable, and
it didn't work. This update corrects that problem.

Task-number: QTBUG-38734
Change-Id: I47b6234f2bafbb73dfb755a2ad82c9596a4489b1
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2014-05-10 10:30:39 +02:00
Martin Smith 900c150a07 qdoc: fix inheritance information for some QML types
This update fixes a bug introduced by the extensive changes
for QTBUG-35377. For a QML base type loaded from an index file,
its QML base type was not being resolved. This resulted in the
"All members" page for some QML types to be incomplete because
the pointer to the base type was 0 when it should have been set.
This change also introduces the concept of "just in time"
resolution for base type pointers, which appears to speed up
qdoc a little.

Task-number: QTBUG-37326
Change-Id: I5f09336ec70ba84029b44b245c56f7f8fe349757
Reviewed-by: Martin Smith <martin.smith@digia.com>
2014-03-31 21:05:16 +02:00
Martin Smith e9954e3162 qdoc: Teach qdoc to use multiple trees
qdoc now builds a separate Node Tree for each index
file it parsed. The main Node Tree now contains only
the Nodes of things being documented in the current
module. This should make qdoc run a little faster.

qdoc now uses these separate trees to make intra-module
and inter-module linking more robust by searching the
trees in an order that depends on the type of link it
is searching for. The tree for the current module is
always searched first. Then qdoc searches the trees
for either the C++ modules or the QML modules, depending
on whether it is looking for a C++ link or a QML link.

In preparation for this update, qdoc was also simplified
a lot. Many functions became obsolete and were removed.
Others were combined.

Task-number: QTBUG-35377
Change-Id: Iea4e49869ff6a6ff0f4d53090728770d40d892f3
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2014-03-31 21:04:43 +02:00
Martin Smith 6893a0d656 qdoc: Part 2 of fix for inheriting abstract QML types
This fix not only gets the property lists correct
but also creates correct links to the property docs.
A side effect is that QML properties, methods, and
signals whose names begin with "__" are automatically
treated as if they are marked \internal. This had been
agreed earlier but had not been implemented. It is also
required to fix this bug so it is included here.

Task-number: QTBUG-33814
Change-Id: I57de1e49774db47cb57c042f181ccc8edec62d13
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Reviewed-by: Nico Vertriest <nico.vertriest@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-11-01 14:52:47 +01:00
Jerome Pasion 4533cc9944 Doc: Adding mark-up to boolean default values.
Default values should have mark-up to denote that they are code.
This commit changes:
-"property is true" to "property is \c true".
-"Returns true" to "Returns \c true".
-"property is false" to "property is \c false".
-"returns true" to "returns \c true".
-"returns false" to "returns \c false".

src/3rdparty and non-documentation instances were ignored.

Task-number: QTBUG-33360
Change-Id: Ie87eaa57af947caa1230602b61c5c46292a4cf4e
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-10-08 00:46:27 +02:00
Jędrzej Nowacki 8969f57b6a Improve qdoc performance.
Valgrind blamed CppCodeMarker::addMarkUp as slow, the patch improves
situation by ~12%

Use of QStringLiterals instead of const char* reduce amount of
allocations on startup.

Change-Id: I8737e02785506bba7e23868ab3952eab09d543d2
Reviewed-by: Martin Smith <martin.smith@digia.com>
2013-09-21 18:39:13 +02:00
Martin Smith 5cfb252b07 qdoc: Avoid CppCodeMarker crash on abstract QML types
In a while loop, when the first QML type encountered was
abstract, qdoc didn't create a class map on the heap, but
later in the loop, the class map was used anyway. This
caused a crash because of a null pointer to the class map.

Now qdoc creates a class map if one hasn't been created
yet, even if the QML type is abstract. This might not be
correct, but the real problem is probably the order in
which qdoc processes the QML types. It should probably
always start with a non-abstract type. But this fix will
at least avoid the crash.

Task-number: QTBUG-33387
Change-Id: Icecb165261469856820f81e3866218b15416ae3b
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-09-12 07:10:59 +02:00
Martin Smith 2eb28f51ce qdoc: Implement better handling of QML property groups
The \qmlpropertygroup command is added, and qdoc is taught to generate
better output for it. The format is, e.g.:

\qmlpropertygroup QtQuick2::Item::anchors
\qmlproperty AnchorLine QtQuick2::Item::anchors.top
\qmlproperty AnchorLine QtQuick2::Item::anchors.bottom
\qmlproperty AnchorLine QtQuick2::Item::anchors.left
\qmlproperty AnchorLine QtQuick2::Item::anchors.right
\qmlproperty AnchorLine QtQuick2::Item::anchors.horizontalCenter
\qmlproperty AnchorLine QtQuick2::Item::anchors.verticalCenter
\qmlproperty AnchorLine QtQuick2::Item::anchors.baseline
\qmlproperty Item QtQuick2::Item::anchors.fill
\qmlproperty Item QtQuick2::Item::anchors.centerIn
\qmlproperty real QtQuick2::Item::anchors.margins
\qmlproperty real QtQuick2::Item::anchors.topMargin
\qmlproperty real QtQuick2::Item::anchors.bottomMargin
\qmlproperty real QtQuick2::Item::anchors.leftMargin
\qmlproperty real QtQuick2::Item::anchors.rightMargin
\qmlproperty real QtQuick2::Item::anchors.horizontalCenterOffset
\qmlproperty real QtQuick2::Item::anchors.verticalCenterOffset
\qmlproperty real QtQuick2::Item::anchors.baselineOffset
\qmlproperty bool QtQuick2::Item::anchors.alignWhenCentered

Task-number: QTBUG-32341
Change-Id: I4b06a3a061b23680e663e8d4e82ac9863ffd4ecb
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-07-11 13:36:37 +02:00
Martin Smith 771a254d3c qdoc: Show signals inherited from abstract base types
qdoc was not including QML signals in the documentation
for a QML type, when the signals were inherited from a
QML type that had been marked abstract. This is now fixed.

Additionally, the QML type qualifier is not shown in the
header for the documentation for a member of a QML type.
The type qualifier was redundant information, and it was
incorrect for members inherited from abstract base types.

Task-number: QTBUG-30111
Change-Id: I73aef40f69a15bca6948bf36596b83800d248b1f
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-03-26 10:18:02 +01:00
Martin Smith 04770e5824 qdoc: List of all members subpage redesigned
The subpage listing all the members of a QML type,
including the inherited members, was trying to use
an old format that works ok for C++ classes but is
not optimal for QML types.

The redesigned format for QML types still lists all
the members but it lists the members for each base
type in a separate list.

The members for a QML type that has been marked as
abstract are listed with the members of the type
that inherits the abstract type.

This fix does not fix QTBUG-30111, which will be
fixed in a separate commit. This means that some
links on the subpage generated by this change
will be links to a page that doesn't actually
contain any documentation for the linked member.
But it will eventually.

Task-number: QTBUG-30114
Change-Id: I8ae4227d1eaecdbc24a4ac9b8119f0ced2cdee92
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-03-22 12:13:23 +01:00
Martin Smith bfce04fe5b doc: QML Inheritance is not resolved correctly.
qdoc did not resolve QML Inheritance correctly and the result was that
QML inheritance was not shown correctly in the documentation. Part of
the problem was that information was missing for QML types in the .index
files produced by qdoc. qdoc also did not show inheritance properly
when one of its base types was marked internal. These problems have
now been fixed.

This update also fixes the problem that caused qdoc to slow down to a
snail's pace over time. The group members list for certain group pages
was getting longer and longer, because qdoc added the same member to
the member list an additional time every time qdoc was run in -prepare
mode if you didn't clear the index files first. Now, qdoc only adds a
member to the member list if it isn't already in the member list.

Task-number: QTBUG-29778
Change-Id: Ie4f0458a2ea4ceb1a64cdcd7f60f16b124a20790
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-02-22 18:34:35 +01:00
Martin Smith 2cb22c6cc0 qdoc: QML Inheritance is not resolved correctly.
This change adds some QML property, signal, and method
data to the .index file. It also provides more robust
resolving of QML inheritance for qml types.

Task-number: QTBUG-29778
Change-Id: Iaefd64227913a19f427b21e904ca5e32c82d7b29
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-02-20 17:22:26 +01:00
Martin Smith cd84491aad qdoc: inherited members do not show up for QML components
This was a regression bug owing to a big qdoc cleanup
for Qt5. But the way QML inheritance had been handled
was not a good design, so it has been changed here.
When a .qml file is parsed by qdoc, the base type of
the QML component is detected, and its name is stored
in qdoc's tree node for the component. After qdoc has
parsed all the QML files, it traverses the tree, and
for each QML component that has a base type name but
no base type node pointer yet, it searches the tree
for the base type node and stores the pointer to
the node in the node for the components. Then when
the output generator generates the doc page for the
component, it has access to all the inherited members
in the base type.

Task-number: QTBUG-29569
Change-Id: Ib4958d05f55fa48a572f8ca51ffd57712f29bbc7
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Reviewed-by: Martin Smith <martin.smith@digia.com>
2013-02-13 10:11:48 +01:00
Sergio Ahumada 48e0c4df23 Update copyright year in Digia's license headers
Change-Id: Ic804938fc352291d011800d21e549c10acac66fb
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-01-18 09:07:35 +01:00
Topi Reinio 90c3340356 QDoc: Fix generated anchors for c++ class signals
Add a missing 's' for plural form for signals. This fixes the linking
to Signals topic in class references.

Task-number: QTBUG-28450
Change-Id: Ic666e608b4b5b40b1f886ea581e54227e1a94678
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2012-12-11 11:02:13 +01:00
Martin Smith fd1f65a9b8 qdoc: Don't include inherited members in the class ref
Once upon a time, the inherited functions, signals,
slots, etc were not listed on the class reference
page, but they were counted and a link to the base
class was provided for them, eg:

2 public functions inherited from QAbstractListModel
39 public functions inherited from QAbstractItemModel
31 public functions inherited from QObject

Somehow, this got broken, so that all these inherited
things were listed on the class reference page as if
they were members of the class. But they liunked to
the documentation in the base class.

This now works correctly again. It simnplifies the
class reference pages a lot.

Task-number: QTBUG-27496
Change-Id: If493da8cbf81634f1344b12094d9a06f8528e8e5
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2012-12-05 17:29:46 +01:00
Marc Mutz 06c89ae026 Use QStringList::join(QChar) overload where applicable [tools]
This is an automated change performing the following replacements:
                    join\("(.)"\) -> join('\1')
  join\(QLatin1String\("(.)"\)\)  -> join(QLatin1Char('\1'))
  join\(QStringLiteral\("(.)"\)\) -> join(QLatin1Char('\1'))

Change-Id: Ia087beb886bbaec1a0976cd924440d8904044879
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2012-09-23 23:30:33 +02:00
Iikka Eklund be15856f61 Change copyrights from Nokia to Digia
Change copyrights and license headers from Nokia to Digia

Change-Id: If1cc974286d29fd01ec6c19dd4719a67f4c3f00e
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
2012-09-22 19:20:11 +02:00
Martin Smith 14f7eb86ca qdoc: Refactoring of qdoc data structures
This commit is the beginning of a significant
overhaul of qdoc. A new class, QDocDatabase, is
added, which will eventually encapsulate all the
data structures used by qdoc. In this commit, the
Tree class is made private and only accessible
from QDocDatabase. Several maps structures are
also moved into QDocDatabase from other classes.

Much dead code and unused parameters were removed.
Further simplification will follow.

Change-Id: I237411c50f3ced0d2fc8d3b0fbfdf4e55880f8e9
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@nokia.com>
2012-09-14 15:23:15 +02:00
Frederik Gladhorn 4d78b86731 Use QString() instead of "".
Change-Id: I42c55344663808b8362e2c9185273a00fc1c70b0
Reviewed-by: Martin Smith <martin.smith@nokia.com>
2012-09-01 11:24:57 +02:00
Martin Smith 5f4d793d81 doc: Replaced FakeNode with DocNode
The name FakeNode was a bad choice. It was used
to represent something that wasn't derived from
a C++ declaration in a .h file. Any generic page
or QML item or any special kind of qdoc construct
was stored in a FakeNode. The name was unfortunate
because the constructs stored in FakeNodes were
just as real as C++ constructs.

So FakeNode has been renamed to DocNode, which
just refers to a documentation node. The node
type Fake has been replaced with node type
Document.

Change-Id: Ida9de8288b7b8915bf9273fd890ca84aaf05e182
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-08-21 16:15:21 +02:00
Martin Smith 35215a0f5f qdoc: No longer prints namespace qualifier twice
enum values in the Qt namespace were being printed
as. e.g.: Qt::Qt::AlignLeft. This was due to the
presence of a collision node that was not handled
properly.

Task nr: QTBUG-26628

Change-Id: I54adaba72410b2838f0922f181846bb7e76b61d4
Reviewed-by: Jerome Pasion <jerome.pasion@nokia.com>
2012-08-06 01:31:19 +02:00
Martin Smith e0b3965831 qdoc: Ignore property functions of obsolete properties
Property setter and getter functions are no longer
included in the output when the property itself has
been marked \obsolete.

Task nr: QTBUG-26425

Change-Id: Iac315445d1916467b12be03989bd4513a03a2397
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-08-02 20:38:54 +02:00
Thiago Macieira 395f7579c0 Make qdoc compile with QT_STRICT_ITERATORS
Change-Id: I2923315678d1aef516b35a8c83fe734367723a28
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-05-29 11:35:21 +02:00
Friedemann Kleint 078ba2d0a2 qdoc: Fix some QString usage issues (Krazy warnings).
- Avoid single-character constants.
- Use QString() instead of "".

Change-Id: If04eff389e7b6d4a18201365b711708fdf545d00
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-05-16 12:30:32 +02:00
Martin Smith f3476d3ae2 qdoc: Don't include internal QML properties in output
QML properties marked internal were still appearing in the
the HTML output. Also, the title for QML type pages was not
correct in the help project writer.

Change-Id: Icaad7cefce77a4af70796bc185c99a3035fb17c8
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-05-15 14:01:58 +02:00
Casper van Donderen b587da56b9 QDoc: Also use the CppCodeMarker for .qtx and .qtt files.
Change-Id: Iff44975bc17fbf1158b373ecd967782b6cb5a3c1
Reviewed-by: Martin Smith <martin.smith@nokia.com>
2012-05-12 23:48:14 +02:00
Martin Smith 0909c01b2f qdoc: Fixed a regression bug caused by fixing error messages
The C++ code marker is the default code marker. The default
code marker was being called for .qdoc files. But when the
tree nodes were each assigned a location object based on
the location in the source file where the node was built,
the default code marker was no longer used. Instead, the
plain code marker was used. This was wrong. qdoc now knows
to use the C++ code marker for all .qdoc files.

Change-Id: I15a58168db74cc5aa82a1fbccc5b7ece219ec297
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-05-11 15:11:20 +02:00
Martin Smith b1addf36c1 qdoc: Fixed to report read-only QML properties correctly
Now the default for a QML property is writable. If qdoc
can't detect the actual read-only status, writable is
assumed. There were some cases where qdoc could not
determine the actual read-only/writable status for a
QML property. In these cases, qdoc reported read-only
because the default was read-only, which was not optimal.

Change-Id: I55aeb2bedcde92a414f4d48a8d995e5e9dbca5da
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-04-11 16:08:09 +02:00
Martin Smith 9b0c0823c0 qdoc: Allow documenting a C++ class as a QML type.
Now qdoc can handle the case where a C++ class is
documented as a QML type of the same name, or as
both a C++ class and a QML type of the same name.

And collisions pages are created for both the HTML
and the DITA XML output. A collision page is created
when two items have the same name. The collision
pages will be augmented later to include the list
of pages where ambiguous links to one of the items
listed on the collision page are actually located,
so the writer can go back to those links and add
the appropriate qualifier.

Change-Id: I5a9632b2d2209e0784392047056bed8962005624
Reviewed-by: Martin Smith <martin.smith@nokia.com>
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-04-02 12:30:04 +02:00
Martin Smith 0d43b8c617 qdoc3: qdoc now handles overloaded methods for QML
When a C++ class is documented as a QML type, it can
have overloaded QML methods. These are now handled
correctly by qdoc. The method list for QML types is
now output with the full method signature. For signals
and handlers too.

Task-number:  QTBUG-24670
Change-Id: If529d4136f5b480373b6ac25d2dceef15e6ea3db
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-03-13 18:04:12 +01:00
Lars Knoll 448a3cfe17 Move qdoc into qtbase and bootstrap it
We need qdoc in qtbase to be able to properly
modularize our documentation and build it
when building the different Qt modules.

qdoc does contain a copy of the qml parser from
qmldevtools, but this is the lesser evil compared
to how we are currently forced to genereate our
docs (and the fact that no developer can run
qdoc and check the docs for their module).

Change-Id: I9f748459382a11cf5d5153d1ee611d7a5d3f4ac1
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
Reviewed-by: Martin Smith <martin.smith@nokia.com>
2012-03-08 05:31:40 +01:00