Commit Graph

1052 Commits (f8f3f0fbd468feaf14adcedbccbf6b434f2e2e49)

Author SHA1 Message Date
Gabriel de Dietrich 629f5a46d5 moc: Generate qt_static_metacall for creatable-only gadgets
Prior to this, moc would not generate the function unless the
gadget class had a property or a non-constructor invokable.

Change-Id: Ic020ea5f8f59702f5e9e194a46e26850e53e5cfe
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-05-13 12:08:57 +00:00
Gabriel de Dietrich d6efc6b543 moc: Fix type for gadget's CreateInstance metacall
An error similar to the one below would be emitted
by the compiler on the moc generated file:

error: assigning to 'QObject *' from incompatible type 'Gadget *'
       if (_a[0]) *reinterpret_cast<QObject**>(_a[0]) = _r; } break;

Change-Id: I75ae7bd6c46d20db2d47a80eaa08aae302d7d6c8
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-05-13 12:08:54 +00:00
Martin Smith 5891f90846 qdoc: Update documentation of \qmlabstract
The \qmlabstract command was missing from the qdoc user manual, and
qdoc was still allowing the \abstract command to be used for marking
up the abstract of a scientific paper. The \abstract command is now
made a synonym of \qmlabstract, and they are both added to the qdoc
user manual.

Change-Id: I003ac50b8dabbf037f18d9ea3e6d88a12d69bf5f
Task-number: QTBUG-46003
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
Reviewed-by: Martin Smith <martin.smith@digia.com>
2015-05-12 05:57:33 +00:00
Olivier Goffart bf06924f3f Documentation: Show an example for each overloaded signal
The new connection syntax is a bit tricky to use, when the signal or
the slot is overloaded, because one must explicitly cast to the
correct signal type.

This patch adds an example to the documentation of each overloaded
signal. The example shows how to do the cast to the correct signal
type.

Change-Id: Ifc9f28d05c2ae126a674d2ca5887935fc59cd83b
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-05-10 08:06:45 +00:00
Topi Reinio 7c6b6876aa qdoc: Enable prepare-phase warnings in single-exec mode
In single-exec mode, QDoc must never skip documentation warnings
as there is no subsequent QDoc run to re-execute the same code
paths (in generate phase) that generate warnings.

Change-Id: I8da2f16cfb12b3b3509249d1c9941d63733176a9
Reviewed-by: Martin Smith <martin.smith@digia.com>
2015-05-05 13:33:57 +00:00
Liang Qi 1c8451bdbb Merge remote-tracking branch 'origin/5.5' into dev
Conflicts:
	src/tools/qdoc/tree.cpp
	tests/auto/gui/painting/qcolor/tst_qcolor.cpp

Change-Id: Iaa78f601a63191fa643aabf853520f913f2f0fdc
2015-04-27 21:36:32 +02:00
Jacek Całusiński 0635b1a69d Moc: test if superclass list is not empty before accessing first()
Accessing QList().first() with an empty superclassList caused assertion
fail. Added check to fix it.

Change-Id: I1aff35e0d267fc0e670beadba1bd196b175a4da8
Co-authored-with: Olivier Goffart <ogoffart@woboq.com>
Task-number: QTBUG-45790
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-04-27 16:14:17 +00:00
Topi Reinio 3e7cf5981a qdoc: Resolve base classes for a class declared in a namespace
For classes declared in a namespace, QDoc needs to take account
the fact that its base classes typically are not qualified with
the namespace name if those base classes are from the same
namespace.

There already was code for this, but it was disabled by a macro.
This change re-enables it, and adds an additional check to
restart the search in valid namespaces only.

Change-Id: Ia07dcb783b59de5fc9ddcfd43000a63c6c74ebe1
Reviewed-by: Martin Smith <martin.smith@digia.com>
2015-04-27 11:47:34 +00:00
Topi Reinio 21c90bcc98 qdoc: Sanitize anchors in URLs for functions
When QDoc constructs the full path to a documentation node, it
must construct a clean anchor reference. Intra-page links use
a different code path, so the links e.g. from Member Functions
list to their detailed descriptions always work, but using the
link command to link to functions with certain characters (such
as 'operator==') failed because the node name was used as-is and
not sanitized ('operator-eq-eq').

This change moves HtmlGenerator::cleanRef() static function to
its parent class, Generator, and takes it into use in
Generator::fullDocumentLocation().

Change-Id: Ic939ffa3ae0f4495ef2a30eff0d4a1de65ea3e8f
Task-number: QTBUG-45629
Reviewed-by: Martin Smith <martin.smith@digia.com>
2015-04-27 11:44:06 +00:00
Martin Smith 7ebec0fa84 qdoc: Fix broken links in qdoc manual
This update to the qdoc manual fixes a few broken links.

Change-Id: Ibdd954a473c3e010b3856cca68601cd11905e457
Task-number: QTBUG-45793
Reviewed-by: Martin Smith <martin.smith@digia.com>
2015-04-27 10:11:11 +00:00
Martin Smith 74f28ef1ca qdoc: Now parses enum values containing commas
qdoc can now parse enum values in the enum declaration where the
enum value contains a comma. See, for example, thise values in
QSysInfo::MacVersion:

MV_IOS_4_3 = Q_MV_IOS(4, 3),
MV_IOS_5_0 = Q_MV_IOS(5, 0),
MV_IOS_5_1 = Q_MV_IOS(5, 1),
MV_IOS_6_0 = Q_MV_IOS(6, 0),
MV_IOS_6_1 = Q_MV_IOS(6, 1),
MV_IOS_7_0 = Q_MV_IOS(7, 0),
MV_IOS_7_1 = Q_MV_IOS(7, 1),
MV_IOS_8_0 = Q_MV_IOS(8, 0)

Change-Id: Idd7da89330efc0e9fa428a99b0090969ea1d97d9
Task-number: QTBUG-45758
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
2015-04-23 13:58:06 +00:00
Friedemann Kleint c3737573ce uic: Delay the setting of QPushButton::default.
For the property to take effect, the button must have its
parent set. This might not be the case when a container like
for example QTabWidget is involved. Move the setting of the
property to the bottom of setupUi.

Task-number: QTBUG-44406
Change-Id: Ic2013865a020986475fa28f2e3805c63d4de8ed0
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2015-04-23 09:59:51 +00:00
Liang Qi aed5a71683 Merge remote-tracking branch 'origin/5.5' into dev
Conflicts:
	src/corelib/statemachine/qstatemachine.cpp
	src/corelib/statemachine/qstatemachine_p.h
	src/gui/painting/qdrawhelper.cpp
	src/plugins/platforms/xcb/qxcbnativeinterface.cpp
	src/plugins/platforms/xcb/qxcbwindow.cpp
	src/plugins/platforms/xcb/qxcbwindow.h
	src/testlib/qtestblacklist.cpp
	src/tools/qdoc/node.cpp
	src/tools/qdoc/node.h
	tests/auto/gui/painting/qcolor/tst_qcolor.cpp

Change-Id: I6c78b7b162001712d5774293f501b06b4ff32684
2015-04-22 09:25:54 +02:00
Sérgio Martins 84ad129440 Fix inconsistent overrides. [-Winconsistent-missing-override]
Change-Id: I7c27632cdda13ebc8ee5d2bc18d9ba64c1f4ec70
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2015-04-20 08:45:50 +00:00
Marc Mutz 1b5f29e28a Remove <qhash.h> where it's not used
To avoid source-incompatibilites, wrap in QT_DEPRECATED_SINCE(5, 5)
in public headers.

Change-Id: I6117e8a6b11200d2f1a0a94a0e87d5c27538218e
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-04-20 07:41:34 +00:00
Martin Smith aea74dcaee qdoc: Properly document "private" signals
When a signal declaration is marked with QSignalPrivate,
This note is included in its documentation: "Note: This
is a private signal. It must not be emitted by the user."

For Notifier signals, [see note] is appended to the signature line,
and the Note is printed below the list.

Change-Id: Ie792894ace56cda47fd9a45af9c732f408ac45f6
Task-number: QTBUG-45535
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2015-04-16 09:36:39 +00:00
Topi Reinio c09ff1dbcb qdoc: Don't end sentences with a full stop in requisite tables
This is a minor visual change that stops QDoc from ending the
sentences with a full stop in the tables for class/QML type
requisites (Inherits, Inherited by, etc).

This ensures a uniform look for the table, as some of the
fields were already omitting the full stop.

Change-Id: I37b39ed0a5e273b40b24f24602042194d069ed00
Reviewed-by: Martin Smith <martin.smith@digia.com>
2015-04-15 13:14:17 +00:00
Kai Koehne 2748661ddd Work around MSVC warnings about unused variables in moc output
Change 8836a4d5f0 already added Q_UNUSED in one place,
but that was not enough.

Change-Id: Ib98ba3fe47c0903cc01c56fd3eb8461c8938c75e
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-04-15 10:10:46 +00:00
Martin Smith 1d91d155f2 qdoc: Changing InnerNode to Aggregate
An Aggregate node is a tree node that is not a leaf.

Change-Id: I4a3964865fb653a217ee75d0b21e563f7f990a1c
Task-number: QTBUG-45450
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2015-04-13 12:28:00 +00:00
Martin Smith 8a2645b8f0 qdoc: More data member name changes
In preparation for refactoring the Node class hierarchy,
the names of a few enum types and the functions that set
and get them are changed so that they will not be confused
with other uses of the word Type.

Change-Id: I0496b46e5d7adffccadcb464aedb2806728e781d
Task-number: QTBUG-45450
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2015-04-11 10:25:14 +00:00
Liang Qi 4973786f0d Merge remote-tracking branch 'origin/5.5' into dev
Change-Id: I04f9f2749f68c0cb5a427b8d84e43b44bb143e4d
2015-04-08 21:24:26 +02:00
Martin Smith 0b17d23285 qdoc: Data member name changes
In preparation for refactoring the Node class hierarchy,
several data member names and some getter and setter names
in the Node hierarchy have been changed to make them more
readable.

Change-Id: Id76ce21c960e4033673f5cf0684aa70e701957b1
Task-number: QTBUG-45450
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2015-04-08 11:23:49 +00:00
Martin Smith 0d4232f531 qdoc: No longer creates empty subdirectories
qdoc was creating the scripts and used-in-examples subdirectories
whether or not there were any scripts or images used in examples.
Now qdoc creates these subdirectories only if there is something
to put in them.

Change-Id: Ied0e1b38ee28973313c68754c821b34edfd5f505
Task-number: QTBUG-44655
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Reviewed-by: Dmitry Shachnev <mitya57@gmail.com>
2015-04-07 19:36:38 +00:00
Liang Qi 0e6ee136c9 Merge remote-tracking branch 'origin/5.5' into dev
Conflicts:
	src/testlib/qtestblacklist.cpp
	src/widgets/accessible/qaccessiblewidgets.cpp

Change-Id: If032adb9296428f62384ed835dbf41ee7a0b886c
2015-04-01 09:10:26 +02:00
Topi Reinio b929006513 qdoc: Use the title instead of plain name when listing groups
When listing group nodes, for example, with \annotatedlist command,
QDoc created a link with the plain name (the string that was passed
to \group command as parameter) as the link text.

This change makes QDoc use the group \title, if one exists.

Change-Id: I30b7f9eefc60c12f67b1e579bbc4c5cebe84474b
Task-number: QTBUG-45420
Reviewed-by: Martin Smith <martin.smith@digia.com>
2015-04-07 11:49:13 +00:00
Martin Smith 696a18b063 qdoc: No internal qmlabstract types in the "inherited by" list
This update ensures that there are no internal QML types in a
QML type's "inherited by" list. It also fixes a bug that caused
the "inherited by" lists to be empty when running qdoc in the
single-exec mode.

Change-Id: Iee8b9dbcd56a09b7a49ec8a703b5d861f0b1f0ec
Task-number: QTBUG-44004
Reviewed-by: Martin Smith <martin.smith@digia.com>
2015-03-27 13:55:56 +00:00
Martin Smith 6a5e2f69a8 qdoc: Update for classes in namespaces
The resolving of namespaces across module boundaries
was moving all the nodes for elements contained in the
namespace into the namespace node for the \namespace
command for that namespace. But moving class and
namespace nodes is wrong because they are actually in
different modules where they should also be output.
This update to the fix for the original bug leaves
the class and nested namespace nodes where they are
but adds them as special "orphan" nodes to the
namespace node that has the \namespace command.

These orphan nodes are then included in the namespace
content list when it is written out.

Change-Id: I0eee368ed39f28129b5b43bb4a16963961f53db3
Task-number: QTBUG-44688
Reviewed-by: Martin Smith <martin.smith@digia.com>
2015-03-27 13:55:44 +00:00
Friedemann Kleint 58da6f96a8 qdoc: Add details to messages about not finding files.
Print example directories and files.

Change-Id: I58553f45f87ec2c2036a8c4ddf9ffb54baa75870
Reviewed-by: Martin Smith <martin.smith@digia.com>
2015-03-27 13:39:42 +00:00
Martin Smith 1341161998 qdoc: Duplicate QML types in the "All QML Types" list are distinguished
We have two State types in the All QML Types list. One is in QtQuick
and the other is in QtQml, but they are both just listed as "State"
with no way to tell which is which. Now they look like this:

State: QtQml
State: QtQuick

Change-Id: I48bb3deda10a61f565d1aed1910360fea4fb7891
Task-number: QTBUG-45141
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2015-03-25 10:59:25 +00:00
Martin Smith 040e201ba2 qdoc: Remove obsolete stuff from the qdoc manual
Remove the \service and \mainclass commands, and the ditamap stuff.
Also remove all reverences to these commands from qdoc itself.

Change-Id: I8d150acdd56d40e6a4198a021e50f5fe3f3b1194
Task-number: QTBUG-45143
Reviewed-by: Martin Smith <martin.smith@digia.com>
2015-03-25 10:59:16 +00:00
Liang Qi 135ebe4f3d Merge remote-tracking branch 'origin/5.5' into dev
Change-Id: If5d2e621c2fa5476c3ab687a3f4620c54fc3b32e
2015-03-24 07:38:02 +01:00
Topi Reinio 642b80e9e9 qdoc: Recursively set the output subdirectory for InnerNode
When QDoc resolves and combines namespace child nodes located in
different modules to be under a single namespace node, it also changes
the output subdirectory of each child according to the destination
module.

However, if one of those child nodes is a namespace node or a class
node with nested child classes, the output subdir of those children is
left as the old (incorrect) directory.

This change fixes that by making the setOutputSubdirectory() function
recursive for nodes of type InnerNode.

Change-Id: I07b2f406283e1bf3bd8643797c3b789b0211b5bb
Reviewed-by: Martin Smith <martin.smith@digia.com>
2015-03-16 12:50:09 +00:00
Simon Hausmann 198606f6db Merge remote-tracking branch 'origin/5.5' into dev
Conflicts:
	src/plugins/platforms/xcb/qxcbnativeinterface.cpp
	src/plugins/platforms/xcb/qxcbnativeinterface.h

Change-Id: I31b38ba439b9341d51a01c0fd54bea33f7410076
2015-03-16 10:31:07 +01:00
Martin Smith 4da66d5dbf qdoc: ignores .pragma and .import in javascript files
For some reason, the QML/JS parser doesn't like them,
so they must be removed when qdoc parses JavaScript
code. This update handles every case I could find
except jquery.min.js, which is a different problem.

Change-Id: Iacbc4eda554516496a642189368d63d6560e3571
Task-number: QTBUG-44817
Reviewed-by: Caroline Chao <caroline.chao@theqtcompany.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2015-03-14 10:02:21 +00:00
Martin Smith 70f92f8cee qdoc: Show correct method signatures for QML types
The return type was not printed, for \qmlmethod commands used
in QML files. The parameter types and default values weren't
being printed either. This update corrects those problems.

Change-Id: I68301fb2040c9dc5f5650e7dd3fee9c42197e3f7
Task-number: QTBUG-44064
Reviewed-by: Caroline Chao <caroline.chao@theqtcompany.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2015-03-12 13:47:20 +00:00
Martin Smith ee63462f47 qdoc: Bring qdoc's QML parser up to date
qdoc's QML parser has fallen behind the QML: parser in
QtDeclarative. Bring it up to date.

Change-Id: I12a688873564762434852960350c56655004e460
Task-number: QTBUG-44868
Reviewed-by: Martin Smith <martin.smith@digia.com>
2015-03-12 08:32:30 +00:00
Thiago Macieira 6b38d9fa77 qdoc: Fix const correctness in old style casts
Found with GCC's -Wcast-qual.

Change-Id: Ia0aac2f09e9245339951ffff13c94687a79b3f40
Reviewed-by: Martin Smith <martin.smith@digia.com>
2015-03-11 01:50:23 +00:00
Frederik Gladhorn 6cef72d0b4 Merge remote-tracking branch 'origin/5.5' into dev
Change-Id: I9d10911c51700965f2cf0e3173b88fd9116bd3ee
2015-03-09 10:23:15 +01:00
Martin Smith 495b3d357d qdoc: Fix regression in Node type testing
When support for documenting JavaScript was added to qdoc,
some tests qdoc uses to determine whether an entity is a
QML signal or a QML method were modified incorrectly, a
case of premature optimization. This caused QML methods to
be listed as QML signals in the documentation. This update
corrects those tests.

Change-Id: Ie6d5b43a03a6f3ae39982292cb9ad92952de0bff
Task-number: QTBUG-44825
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
2015-03-07 09:47:32 +00:00
Martin Smith 100ffb60ef qdoc: Teach qdoc to resolve namespaces
It turns out this bug was caused by modularization,
which created the situation where members of the Qt
namespace are in different modules. Most are in QtCore,
but a few are in QtGui.

qdoc was creating a namespace node for the Qt namespace
in the node tree for QtCore, and another namespace node
in the node tree for QtGui. This meant that there were
two NamespaceNodes for the Qt namespace. Correctly, only
one of these nodes contained the text for the \namespace
command for the Qt namespace. This was the namespace node
that was being used to create the HTML reference page for
the Qt namespace.

Unfortunately, the Qt namespace node in the tree for QtGui
was not being merged into the Qt namespace node in QtCore,
so some of the members of the Qt namespace were not being
shown on the reference page.

This update teches qdoc how to merge namespace nodes to
ensure that all the members appear on the reference page
for the namespace. There can be a namespace node for the
namespace xxx in any number of modules, but they will all
be merged into the namespace node for namespace xxx that
contains the qdoc comment for \namespace xxx.

Change-Id: I0f6a653ea6f920aacd5d8e13f9865488d95f6458
Task-number: QTBUG-44688
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2015-03-07 09:47:23 +00:00
Venugopal Shivashankar aabbb87f4a qdoc: Switched to QList from QMap for subprojects list
QMap sorts the subproject entries by default, which doesn't seem
logical for the qch use case. The subprojects should be listed in the
order they are defined in the qdocconf. Moreover, the no. of
subproject entries in the map is often less than 4, at least for qt.
So there is no performance gain in using QMap for this scenario.

QList just serves the purpose of storing the subprojects in a list
before they are written to the qhp file.

Change-Id: I841934289e09e8e232859353a3dfa15c491dba2e
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@theqtcompany.com>
2015-03-06 09:07:35 +00:00
Oswald Buddenhagen c0a5e8c9d7 Merge remote-tracking branch 'origin/5.5' into dev
Conflicts:
	src/plugins/platforms/xcb/qxcbscreen.cpp

Change-Id: Ie42931791a849b34b63d814d2eb5ac653986d868
2015-03-03 13:37:38 +01:00
Topi Reinio 4fd8513475 qdoc: Improve handling of current working directory
When qdoc reads (potentially nested) documentation files, it sets
the current working directory to the path of the currently read
file to make relative paths work for include statements and
config variables. This works as long as there's only one top-level
.qdocconf file.

This change fixes problems with handling the CWD to enable
relative paths also when we have multiple top-level .qdocconf
files, as is the case when running qdoc in single-exec mode.

Change-Id: I03a7ec5af93d54070ea29f90ea2ba29c57028781
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
Reviewed-by: Martin Smith <martin.smith@digia.com>
2015-02-27 11:41:05 +00:00
Topi Reinio 01d5c77389 qdoc: Fix generation of Doxygen tag files
This change addresses two issues that affect generating .tags files
in QDoc:
    - Paths written to the .tags file are now always relative to output
      subdirectory, i.e. the same folder where the file is created in.
    - Opening the file for writing no longer fails silently. If the
      'tagfile' configuration variable specifies no path, or the path
      does not exist, the file is written to the output directory by
      default.

Change-Id: I23ac529dbfa67575ae96da1c3123ea487cd664f5
Task-number: QTBUG-44366
(cherry picked from commit 5113fdeb7d)
Reviewed-by: Martin Smith <martin.smith@digia.com>
2015-02-26 13:46:33 +00:00
Martin Smith 99120ca3cf qdoc: Correct parsing of the using clause
qdoc could only parse the using clause where the 'using'
keyword was followed by 'namespace'. Now it can parse
using clauses with or without 'namespace'.

Change-Id: Ic4aad025c00b3bda2bc1cbd52d0ba8dbbad653e5
Task-number: QTBUG-44553
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2015-02-26 13:24:13 +00:00
Frederik Gladhorn 2cac171dde Merge "Merge remote-tracking branch 'origin/5.5' into dev" into refs/staging/dev 2015-02-25 11:23:46 +00:00
Topi Reinio 5113fdeb7d qdoc: Fix generation of Doxygen tag files
This change addresses two issues that affect generating .tags files
in QDoc:
    - Paths written to the .tags file are now always relative to output
      subdirectory, i.e. the same folder where the file is created in.
    - Opening the file for writing no longer fails silently. If the
      'tagfile' configuration variable specifies no path, or the path
      does not exist, the file is written to the output directory by
      default.

Change-Id: I23ac529dbfa67575ae96da1c3123ea487cd664f5
Task-number: QTBUG-44366
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
2015-02-25 11:02:04 +00:00
Frederik Gladhorn 34b14a8472 Merge remote-tracking branch 'origin/5.4' into 5.5
Conflicts:
	examples/xml/htmlinfo/simpleexample.html
	examples/xml/rsslisting/rsslisting.cpp
	qmake/generators/win32/msbuild_objectmodel.cpp
	src/3rdparty/harfbuzz-ng/src/hb-private.hh
	src/corelib/global/qlogging.cpp
	src/corelib/io/qstorageinfo_unix.cpp
	src/corelib/thread/qwaitcondition_unix.cpp
	src/gui/kernel/qguiapplication.cpp
	src/plugins/platforms/linuxfb/qlinuxfbintegration.cpp
	src/testlib/doc/src/qt-webpages.qdoc
	tests/auto/other/qaccessibility/tst_qaccessibility.cpp

Change-Id: Ib272ff0bc30a1a5d51275eb3cd2f201dc82c11ff
2015-02-24 21:02:08 +01:00
Oswald Buddenhagen d34353a065 Merge dev into 5.5
Change-Id: Id6dbbbfc542c214fe695c6795c6aaf23aedc1cd1
2015-02-23 11:24:07 +01:00
Martin Smith 62a2f46d29 qdoc: Support documentation of JavaScript
This update provides the actual support for documenting
JavaScript. It has been tested with JavaScript commands
in qdoc comments in .qdoc files but not in .js files.
Currently, we have the use case of needing to document
JavaScript using qdoc comments in .qdoc files.

For each qdoc command for QML, i.e. \qmltype, \qmlproperty,
etc, there is now a corresponding JavaScript command, i.e.
\jstype, \jsproperty, etc. Some of these might not be needed,
but they are all provided.

Briefly, document JavaScript in a .qdoc file the same way you
would document QML in a .qdoc file, but instead of using the
\qmlxxx commands, use \jsxxx commands.

Change-Id: Ib68a5f66c16472af87d9f776db162332ca13fbb7
Task-number: QTBUG-43715
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2015-02-20 11:37:18 +00:00
Martin Smith fe7c2662b5 qdoc: Mark Genus of each Node object
The concept of Genus was introduced to allow link commands
(\l) to specify what kind of entity should be accepted as the
link target. Possible values were CPP, QML, DOC, and DONTCARE.
This became necessary when we started seeing more cases where
the same name was used for a C++ class and a QML type. The
Genus for an entity was returned by a member function of the
specific subclass of Node that represents that entity. For
example, QmlTypeNode::genus() returns QML, while Class::genus()
returns CPP.

Now we are seeing an increasing need to document Javascript.
Rather than add subclasses of all the QmlXxxNode classes to
represent the javascript entities, the Qml Node subclasses
will be used. JS is added to the Genus enum to mark Nodes
that represent javascript entities. But this requires storing
the Genus value in the node, rather than just having a member
function in each subclass return it. Now there are two member
functions in the Node base class, genus() and setGenus(), and
the value is stored in the Node. This doesn't increase the
size, because there was a byte available.

Change-Id: Ifcee78595f4288792e09bb255d2e8c01ebafac46
Task-number: QTBUG-43715
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2015-02-20 11:37:07 +00:00
Topi Reinio 7f12b9da18 qdoc: Omit output subdirectory from paths written to .qhp
When writing the help project file, all the files can be assumed
to be in the same subdirectory, defined by the qhp virtualFolder
variable in the documentation config.

Since commit 77165553, the output subdirectory is stored for each
documentation node, which caused the subdir to be written to paths
in .qhp as well. The result was duplication of the subdir in paths
passed to Assistant, giving page not found errors.

Change-Id: I69fd74874f9d8eac6957287941193917728476fd
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
2015-02-20 08:02:05 +00:00
Martin Smith 765a8343d7 qdoc: Reduce size of Node class
The Node class represents every entity to be documented.
By changing some of its data members from enum to uchar,
it's size has been reduced from 176 bytes to 160 bytes.

Change-Id: Idd43866a435f1b0f1ac932870597631b5bbde523
Task-number: QTBUG-43715
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-02-20 07:11:09 +00:00
Jani Heikkinen cb95fff1c7 Fixed license headers
Change-Id: Ibebe1318d1c2de97601aa07269705c87737083ee
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-02-17 18:46:09 +00:00
Frederik Gladhorn 393fc2d4f5 Merge remote-tracking branch 'origin/dev' into 5.5
Needed due to license header patch.

Change-Id: Id7e30490132a7c487687a0a376419e9f9b97ea41
2015-02-17 12:35:29 +01:00
Thiago Macieira 51b7bd1e4f Output the JSON binary data with printable characters
This makes it easier to debug QJsonDocument binary bugs.

Note that the last character is never printed as printable, but by way
of construction it's always binary data anyway (the offsets table is at
the end after parsing JSON sources).

Change-Id: I8a7a116f51864cecb52fffff13bc24ad01ad8a49
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-02-17 00:42:26 +00:00
Topi Reinio 0cc37b6e60 qdoc: Clear the list of output files during generator init
QDoc keeps a list of files it generates (or copies) to the output
directory, for writing it to a .qhp file later on.

In single-exec mode, QDoc processes several qdocconf files
without deleting the generator in between. Therefore, we need to
clear the list of files whenever the generator is initialized,
to avoid duplicating the filenames across multiple .qhp files.

Change-Id: Ibc2a6b171466aa1db6cfe3da9a820d5ba2845004
Reviewed-by: Martin Smith <martin.smith@digia.com>
2015-02-16 13:10:08 +00:00
Allan Sandfeld Jensen 839f38bcfa Remove support for some very old compilers
Remove code supporting gcc 4.0 and earlier, and MSVC 2005 and earlier.

Change-Id: I3304e11bb38c101f113c124e8e533c5578badf34
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-02-15 12:39:29 +00:00
Jani Heikkinen 2b75c156b6 Updated BSD licensed file headers
Change-Id: I6441ff931dbd33b698d762e6f6784898f3f60fe7
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-02-15 07:41:17 +00:00
Sergio Ahumada eff7a6473c qdoc: Replace qt-project.org/doc with doc.qt.io
also update some broken links while we are at it ...

Change-Id: I9707a01b01be82e229c8f135c9ae093d73fd1204
Reviewed-by: Martin Smith <martin.smith@digia.com>
2015-02-14 06:54:33 +00:00
Konstantin Ritt 9b67d89c24 Pass params of shareable type by const-ref rather than by value
...where passing them by value was not intentional.

Change-Id: Ifd5036d57b41fddeeacfbd3f5890881605b80647
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-02-13 16:29:16 +00:00
Sune Vuorela c030540f37 Make qdbusxml2cpp output reproducible
There doesn't seem to be a need for a timestamp in the include guard
anyway. The class name and similar stays the same, so it seems to just
add randomness to the build because it is possible.

Change-Id: I186d281d7ec4a3db08a128ca170e455132930cba
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-02-12 18:34:17 +00:00
Jani Heikkinen 83a5694dc2 Update copyright headers
Qt copyrights are now in The Qt Company, so we could update the source
code headers accordingly. In the same go we should also fix the links to
point to qt.io.

Outdated header.LGPL removed (use header.LGPL21 instead)

Old header.LGPL3 renamed to header.LGPL3-COMM to match actual licensing
combination. New header.LGPL-COMM taken in the use file which were
using old header.LGPL3 (src/plugins/platforms/android/extract.cpp)

Added new header.LGPL3 containing Commercial + LGPLv3 + GPLv2 license
combination

Change-Id: I6f49b819a8a20cc4f88b794a8f6726d975e8ffbe
Reviewed-by: Matti Paaso <matti.paaso@theqtcompany.com>
2015-02-11 06:49:51 +00:00
Frederik Gladhorn fc35f71434 Merge remote-tracking branch 'origin/5.4' into dev
Conflicts:
	src/3rdparty/harfbuzz-ng/harfbuzz-ng.pro
	src/gui/image/qimage_conversions.cpp
	src/gui/opengl/qopenglextensions_p.h
	src/gui/text/qtextengine.cpp
	src/network/ssl/qsslsocket_openssl.cpp
	src/plugins/platforms/eglfs/qeglfshooks_stub.cpp
	src/plugins/platforms/eglfs/qeglfsscreen.cpp
	src/plugins/platforms/eglfs/qeglfswindow.cpp
	src/plugins/platforms/windows/qwindowsfontdatabase.cpp
	src/plugins/platforms/windows/qwindowsfontdatabase_ft.cpp
	src/plugins/platforms/windows/qwindowsnativeinterface.cpp
	src/plugins/platforms/windows/qwindowsscreen.cpp
	src/plugins/platforms/windows/qwindowswindow.cpp
	src/plugins/platforms/windows/qwindowswindow.h
	src/plugins/platforms/xcb/qxcbdrag.h
	src/widgets/itemviews/qabstractitemview.cpp
	src/widgets/kernel/qwidget.cpp
	src/widgets/util/qsystemtrayicon_p.h
	tests/auto/corelib/itemmodels/qsortfilterproxymodel/tst_qsortfilterproxymodel.cpp

Thanks to Friedemann Kleint for resolving the qwindowsfontdatabase.cpp
conflicts.

Change-Id: I937232c30523d5121c195d947d92aec6f129b03e
2015-02-10 09:42:25 +01:00
Tor Arne Vestbø 5432f2c7a1 Remove traces of the Maemo platform
Change-Id: I6b551de331aa0386ea53d8e96f50b669777d2d69
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-02-04 17:14:35 +00:00
Sérgio Martins ad2ea16550 Fix 1700 override warnings [-Winconsistent-missing-override]
Classes should either use or not use override, otherwise it hurts
code readability.

Some inline keywords were removed because of an error with MSVC2010:
error C2216: 'override' cannot be used with 'inline'

Change-Id: I7276d5525a92281bd0d743beb11d0dc73441443b
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2015-02-03 22:52:14 +00:00
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 7708c4b854 qdoc: Change uses of module and qmlModule
The uses of moduleName and qmlModuleName are changed to
physicalModuleName and logicalModuleName respectively. A
few other names are also changed in the same way. These
changes are being done both to support documentation of
javascript but also to emphasize that moduleName is
really the name of the physical library module the entity
is part of, and qmlModuleName is really the name of a
collection of logical entities that is versionable and
that may contain entities located in different physical
modules.

Change-Id: If49392aabf5950dc7b97c84f8134e9369e76dd1b
Task-number: QTBUG-43715
Reviewed-by: Martin Smith <martin.smith@digia.com>
2015-02-03 11:52:06 +00:00
Tor Arne Vestbø c5db8fc74a Make it more obvious that Q_WS_ is dead code, and should perhaps be ported
We still have a bunch of Q_WS_ ifdefs in our code, which are easy to
mistake for Q_OS_ ifdefs when quickly scanning the code. By renaming
the ifdefs we make it clear that the code in question is dead.

In incremental follow-ups, we can then selectively either remove, or
port, the pieces that are dead code.

Change-Id: Ib5ef3e9e0662d321f179f3e25122cacafff0f41f
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2015-02-03 11:49:14 +00:00
Marc Mutz a776e4cf78 uic: don't use QStringLiteral in comparisons
(this is committing the new output of generate_ui from qttools)

For QLatin1String, operator== is overloaded, even for QStringRef,
so comparing to a latin-1 (C) string literal is efficient,
since strlen() is comparatively fast.

OTOH, QStringLiteral, when not using RVO, litters the code with
QString dtor calls, which are not inline. Worse, absent lambdas,
it even allocates memory.

So, just compare using QLatin1String instead.

Change-Id: I5035d259085c21689ab0f62fd49819ab5223ffe8
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-02-02 16:43:07 +00:00
Marc Mutz ee973083cf uic: update sources from current generate_ui
Change-Id: I3b64fa94bd5904feeed753d34e80f4fc0611725e
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-02-02 16:43:01 +00:00
Oswald Buddenhagen 44fca87241 complete reversal of adding QLibraryInfo to the bootstrap library
amends 684028a64.

Change-Id: I8dcc4b74c4c0328c07711cd7253ff19a74ea2fbf
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-02 11:14:25 +00:00
Frederik Gladhorn 55162dae7e Merge remote-tracking branch 'origin/5.4.1' into 5.4
Change-Id: Idadb5639da6e55e7ac8cc30eedf76d147d8d5d23
2015-01-29 10:05:01 +01:00
Topi Reinio 3c37066062 qdoc: Ensure .qhp file is generated for all modules
When run in single-exec mode, QDoc constructs only one instance
of HelpProjectWriter, even though it generates documentation for
multiple modules in one go.

This change adds a reset() function for the help project writer,
allowing new parameters to be passed to the existing writer
instance, thus ensuring that all .qhp files are correctly
generated.

Task-number: QTBUG-43815
Change-Id: I1d1c9f713eb5f574a6f8e56616cf5f61bb3e8ff8
Reviewed-by: Martin Smith <martin.smith@digia.com>
2015-01-22 12:48:05 +01: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
Aleix Pol bdbcf6704f Make it possible to generate rcc files from stdin
There's already some code to be able to generate the rcc files from stdin,
only problem being that the input sanity check was not allowing the code
path to proceed being left unreachable.
This patch fixes it by allowing "-" as an acceptable argument and the
process proceeds as expected.

Change-Id: Icd47c7a65373ff1ea3f98d9528736f8a1b21b707
Reviewed-by: Albert Astals Cid <albert.astals@canonical.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-01-21 13:46:25 +01:00
Martin Smith b45db5480d qdoc: Remove support for DITA XML
This update makes removes Qdoc's DITA XML generator.

Change-Id: Ibcfd013ace00e56a23268a2a5d850e6c9ea093d0
Task-number: QTBUG-43174
Reviewed-by: Martin Smith <martin.smith@digia.com>
2015-01-21 11:34:55 +01:00
Frederik Gladhorn b6191b16d4 Merge remote-tracking branch 'origin/5.4' into dev
Conflicts:
	src/corelib/global/global.pri
	src/corelib/global/qcompilerdetection.h
	src/corelib/global/qglobal.h
	src/corelib/tools/qdatetime.cpp
	src/plugins/platforms/xcb/qxcbscreen.h
	src/plugins/platforms/xcb/qxcbwindow.h
	src/widgets/dialogs/qcolordialog.cpp
	src/widgets/dialogs/qcolordialog_p.h
	tools/configure/configureapp.cpp

Change-Id: Ie9d6e9df13e570da0a90a67745a0d05f46c532af
2015-01-21 11:10:14 +01:00
Giuseppe D'Angelo 5ee8ed27e0 rcc: fix build failure on Windows XP / MinGW 4.9
The code makes usage of _fileno without including the appropriate
header, which is stdio.h according to Microsoft:

http://msdn.microsoft.com/en-us/library/zs6wbdhx%28v=vs.120%29.aspx

Task-number: QTBUG-43900
Change-Id: Ic9d407c66243d64823353a1c7e79cf0825c735db
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
2015-01-19 13:17:56 +01:00
Sze Howe Koh c49641a117 Doc: Fix typos
Change-Id: I29d5576902a5d1ea25558e980081952d9157f7f0
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2015-01-19 10:48:03 +01:00
Martin Smith 1bbcad9e5e qdoc: Fixed broken links for abstract QML types
When a QML base type is abstract, the documentation for its properties
is supposed to appear on the reference page for each QML type that
inherits the abstract type. And then links to those properties from
within the property documentation must refer to the documentation for
that property on the reference page for the particular inheriting QML
type. These links were dead, but this fix corrects the problem.

Change-Id: Icaf01d67edf44567099f5a6a59fd6348de8df380
Task-number: QTBUG-43200
Reviewed-by: Nico Vertriest <nico.vertriest@digia.com>
Reviewed-by: Tero Kojo <tero.kojo@digia.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2015-01-17 11:04:40 +01:00
Kai Koehne ecd74bcc94 Bump copyright year to 2015
Bump copyright year in tool output and user visible strings to 2015.

Change-Id: I9b29907fe3f555e78005cb296a49d92f601fb7ec
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Martin Smith <martin.smith@digia.com>
2015-01-15 09:24:51 +01:00
Olivier Goffart 14583137ae Introduce Q_ENUM and Q_FLAG macros
In replacement for Q_ENUMS and Q_FLAGS.

Q_ENUM(Foo) has to be put after the declaration of Foo in an object.
It will tell moc to include the enum in the meta object (just like
Q_ENUMS) and will allow templated code to get the metaobject for
that enum.

Will be used by QDebug and QMetaType

Change-Id: Iefaf8ae07dc0359828102bf384809346629b3e23
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
2015-01-13 17:52:14 +01:00
Gabriel de Dietrich e18f4bca28 moc: Don't link to inexistent parent staticMetaObject
Contrarily to Q_OBJECTs, Q_GADGETs are not guaranteed to
descend from a Q_GADGET. Here, we ensure that if the first
superclass is a Q_GADGET, then the derived class will be
treated as one. This allows gaps in the Q_GADGET hierarchy
while preventing from trying to link to the inexistent
staticMetaObject if there's no such ancestor.

Change-Id: If10fb952e23655102a425bb18fe8babaf447a47f
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
2015-01-13 11:25:53 +01:00
Martin Smith df6d2290e6 qdoc: qdoc's 'square bracket' parameters were evaluated too early
qdoc's link command (\l) allows an optional first argument enclosed in
square brackets. This argument is used for narrowing and focusing the
search for the link target. The argument should not be evaluated until
the generate phase, but it was being evaluated in the prepare
phase. This was also a problem when running qdoc in the single-exec
mode. This update prevents qdoc from evaluating the argument until it
is used in the generate phase.

Change-Id: I82785e97077053fb5f5c11f0592155675334aaeb
Task-number: QTBUG-42880
Reviewed-by: Martin Smith <martin.smith@digia.com>
2015-01-12 13:12:05 +01:00
Kai Koehne 8836a4d5f0 moc: Work around 'unused variable' MSVC warning
MSVC prints warnings if all slots are actually static methods:

moc_xxx.cpp:71: warning: C4189: '_t' : local variable is initialized but not referenced

This can be easily avoided by using Q_UNUSED.

Change-Id: Ice134a8a8d3e6aef1df1e7a89e9a2867281580fd
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2015-01-09 13:27:58 +01:00
Sérgio Martins ebd7df6e57 qdoc: Use qgetenv instead of getenv
Fixes warning with MSVC:
config.cpp(973) : warning C4996: 'getenv': This function or variable may be unsafe

Change-Id: I32d2a521ff82ee9779fbcba76e80ef36a8e02094
Reviewed-by: Martin Smith <martin.smith@digia.com>
2015-01-06 12:44:08 +01:00
David Edmundson 54079de9f9 Add annotation to rename methods created by qdbusxml2cpp
Under DBus it is possible to have methods and signals with the same name
or have methods which are reserved c++ keywords.

For example the logind session interface has a signal and method both
called Lock.

This patch allows generated methods to use a different method name
specified in the annotation that the original DBus name in the DBus
interface in a similar manner to how one can rename accessors.

[ChangeLog][QtDBus] Add annotation org.qtproject.QtDBus.MethodName to allow
autogenerating C++ methods with different names to the original DBus method

Change-Id: I08bbe77554fbdd348e93f82d45bab0d75d360c27
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-01-05 12:29:14 +01:00
Martin Smith cb3f520047 qdoc: Update qdoc manual
This update explains how to use the optional 'square bracket' argument
for the link command (\l), the new single execution mode for qdoc, and
how to generate and use the QA pages.

Change-Id: I7232e05677c6ea97636cdb4fb20bd9708c83f311
Task-number: QTBUG-35495
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2015-01-02 10:55:46 +01:00
Frederik Gladhorn aaff94c2df Merge remote-tracking branch 'origin/5.4' into dev
Conflicts:
	src/corelib/tools/qbytearray.cpp
	src/gui/kernel/qplatformsystemtrayicon.cpp
	src/gui/kernel/qplatformsystemtrayicon.h
	src/plugins/platforms/xcb/xcb-plugin.pro

Change-Id: I00355d3908b678af8a61c38f9e814a63df808c79
2014-12-29 16:37:38 +01:00
Martin Smith 7869ee5b9d qdoc: Fixed broken TOC links to Reimplemented sections
This update fixes some links in the table of contents on class
reference pages. Links to sections of reimplemented functions did not
work because the word 'reimplemented' was not included in the anchor.
This update fixes that bug.

Change-Id: Ifae972c45ebf6c81e865cfb36f645ea42d74cf55
Task-number: QTBUG-42237
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2014-12-19 08:07:55 +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
Simon Hausmann 015002fec9 Merge remote-tracking branch 'origin/5.4' into dev
Conflicts:
	doc/global/template/style/online.css
	mkspecs/android-g++/qmake.conf

Change-Id: Ib39ea7bd42f5ae12e82a3bc59a66787a16bdfc61
2014-12-10 07:58:06 +01:00
Alejandro Exojo 1d61e3267d doc: Clarify \inqmlmodule usage
The \inqmlmodule command only accepts one parameter: the name of the module.
This was producing some confusion, since in qtdeclarative there were some wrong
import statements and it wasn't obvious which command was producing them.

Change-Id: Idb41f12f20f05757942b0957c512d195ec8500b3
Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
2014-12-08 11:38:44 +01:00
Jędrzej Nowacki ac79a25aae Fix maximal literal string limitation in moc.
C++ standard advise to place 64k char limit for string literals, this
patch improves moc output so it is not affected anymore.

Task-number: QTBUG-36500
Change-Id: Iece630faaef45baebe8c7afe4fc51e0362c713de
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2014-12-07 12:39:07 +01:00
Olivier Goffart 5180f32c5a Add Q_DECL_OVERRIDE in the src subdirectory
Done automatically with clang-modernize on linux

(But does not add Q_DECL_OVERRIDE to the function that are marked
 as inline because it a compilation error with MSVC2010)

Change-Id: I2196ee26e3e6fe20816834ecea5ea389eeab3171
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-12-03 09:57:11 +01:00
Frederik Gladhorn 34aba4724f Merge remote-tracking branch 'origin/5.4' into dev
Conflicts:
	src/corelib/io/qiodevice.cpp
	src/plugins/bearer/linux_common/qofonoservice_linux.cpp
	src/plugins/bearer/linux_common/qofonoservice_linux_p.h
	src/plugins/platforms/android/qandroidplatformtheme.cpp
	src/tools/bootstrap/bootstrap.pro
	src/widgets/styles/qmacstyle_mac.mm

Change-Id: Ia02aab6c4598ce74e9c30bb4666d5e2ef000f99b
2014-11-24 13:39:13 +01:00
Samuel Gaist 5f6284a98b Implement Download folder path retrieval on OS X
The current implementation returns the DocumentLocation folder.
Since now only cocoa is supported, we can use NSFileManager to get the
correct path.

[ChangeLog][QtCore][OS X] Now QStandardPaths returns the correct path
for the DownloadLocation.

Change-Id: Ic0ea3ebf8585a1e34a7b43c734df78fd3949d4d4
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-11-24 00:33:20 +01:00
Jędrzej Nowacki e64188966c Fix a typo in code comment in moc
Change-Id: I772ba33660fd368bfab5d3aaf4c645dc0949ce73
Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
2014-11-19 12:10:00 +01:00
Martin Smith e86f1ceaed qdoc: Missing break in qdoc switch statement
There was a missing break statement in the function that generates the
.index file, which caused qdoc to output extra attributes in the
<module> element.

Change-Id: I110c15c67a228249bfe0c7da138f2ca0b4921371
Task-number: QTBUG-42625
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2014-11-18 11:26:07 +01:00
Topi Reinio 2f1d22c8b4 qdoc: Removed text formatting from requisites table
Removed the teletype (code) formatting used in the requisite table:
include, qmake (qtvariable) and import statement (for QML types).

This makes the table look more uniform as it doesn't mix font
styles anymore.

Also, remove the closing </b> tag that caused incorrect html to
be generated.

Change-Id: I180a90c22d4b0066aade8ce38d13343076285ff0
Reviewed-by: Martin Smith <martin.smith@digia.com>
2014-11-15 08:47:41 +01:00
Martin Smith 302b6235eb qdoc: Include source file and line number of links
Each entry in the link-to-link tables and in the
broken-links table now includes the source file
path of the file where the link or broken link
appears and the line number in that file. The
line number often refers to where the comment
that contains the link begins, so sometimes
the link or broken link appears further down in
that comment.

Change-Id: I692bfc173c8711bf26c9c59ad9771930c27e24a8
Task-number: QTBUG-41850
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2014-11-12 10:53:45 +01:00
Martin Smith ad2cdb2c94 qdoc: Remove CR from command parameters
Although it is not recommended, it is allowed to have a carriage
return in a qdoc command parameter that is enclosed in curly
braces. qdoc is supposed to use QString::simplified() to sanitize the
string so that all whitespace is replaced by a single ' '. But in at
least one case, this didn't work, and the carriage return was left in
the string, which caused qdoc to report that it couldn't find links
that have the carriage return in them. The problem has been fixed by
replacing the carriage return with a ' ' right when and where it is
detected.

Change-Id: I31c31f19a1e4150b2e27613ecbac260c46a7109b
Task-number: QTBUG-42449
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2014-11-12 10:53:30 +01:00
Martin Smith 98e77dab75 qdoc: Generate the links-to-broken-links page
The cross-module link report now contains an entry
for the links to broken links subpage. It is the
last entry in the links-to-links table on the QA
page.

Change-Id: I9e0b3ba5f2efe76055902467348db878dbed9991
Task-number: QTBUG-41850
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2014-11-12 08:12:03 +01:00
Martin Smith 623891acd6 qdoc: no longer autolinks symbols that begin with "__"
qdoc no longer tries to autolink symbols that begin
with two underscores. There may be other cases where
qdoc should not try to autolink. They should be
handled in this same place.

Change-Id: I5a39ea2bb0edec2289b8a4b1a9af1f33534093a1
Task-number: QTBUG-42441
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2014-11-12 08:11:15 +01:00
Martin Smith 1936e4973f qdoc: Generate \keyword anchors at the top of the page
Currently, qdoc processes \keyword and \target the same way. The
negative effect of this is that when either command appears at the top
of a qdoc comment, the anchor it generates in the html file is just
above the details section on the html page. This is usually wrong,
especially for \keyword commands, where the anchor generated should
always be at the top of the page/text where the \keyword appears. This
update implements that. \target anchors are meant to be used when the
anchor should appear somewhere in the middle of the page/text, exactly
where the \target command appears.

Change-Id: Ibbbf1087562a977ff74ccd98febfe9310ecba8f0
Task-number: QTBUG-42290
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2014-11-12 08:11:04 +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
Martin Smith 17472a2ba3 qdoc: Generate cross-module links-to-links pages
The cross-module link report is modified so that each module
listed in the table is a link to a subpage on which all the
links from the current module to that module are listed. To
check that these links go to the correct place, click on one
to be taken to the actual link. The actual link is marked
with red asterisks. Click on that link to check that the link
goes to the correct page. Repeat this process for all the
links in the table.

Change-Id: Ifddf7108ed7ef090c4063909fdbd10dac1f2566b
Task-number: QTBUG-41850
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2014-11-11 15:35:33 +01:00
Martin Smith 894b579e34 qdoc: Fixed a link generation regression
This update fixes a bug introduced in the original update for this
task. The bug caused some links to be generated incorrectly. If the
name of the file containing the target began with the module name,
then a test that asks if the link already begins with the module name
fails, and the link is generated incorrectly. The test now checks for
the module name followed by a slash, which it should have done in the
first place.

Change-Id: Iebac228ac969cef875678b15a248a2a1198ace05
Task-number: QTBUG-41705
Reviewed-by: Martin Smith <martin.smith@digia.com>
2014-11-11 14:22:41 +01:00
Jędrzej Nowacki 0c9d1f99da Fix moc preprocessor
When tokenizing, after macro expansion, moc needs to concatenate
subsequent string literals, because parser do not check for such
expressions.

Change-Id: Icc4f01395a5a7b67368eb8341a45ee74ade7d7f5
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2014-11-11 14:11:40 +01:00
Jani Heikkinen 9d38dbde76 Merge "Merge remote-tracking branch 'origin/5.4' into 5.4.0" into refs/staging/5.4.0 2014-11-11 12:51:23 +01:00
hjk 9b7bdd455f rcc: Replace all occurrences of the marker in two-pass mode
The marker can occur legitimately twice e.g. on iOS
with universal binaries.

Change-Id: Ie334bcd104d45140ff969f44230e6de2212e8e25
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@theqtcompany.com>
2014-11-11 12:32:48 +01:00
Axel Rasmussen 0b54de41bc moc: use Q_NULLPTR instead of 0 in generated code.
This commit changes several instances where moc was generating code that
used 0 as a null pointer constant. The Q_NULLPTR define is the more
idiomatic way to do this, and additionally this silences warnings
generated by e.g. GCC's -Wzero-as-null-pointer-constant.

[ChangeLog][Tools][moc] Fixed "zero as null pointer constant" warnings
in moc's generated code.

Change-Id: Ibe382b7bdbdddaf20cb4bdfd075fcdd1f363f9d3
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2014-11-06 02:58:56 +01:00
Simon Hausmann 7a8bb824ff Update the copy of the Qml parser
The files here are a copy of the parser from the qtdeclarative repository.
This patch combines commit cfff375afcfe63d25b3c1904ff58a90bcd1edb43 and
f876562de8eb978cea39fe72e76c49ae51ff2f97 from the qtdeclarative repository to
fix the license and allow for read-only object property syntax.

Change-Id: Idb58948cede2cd47858e3831785009f8b7ea2169
Reviewed-by: Martin Smith <martin.smith@digia.com>
2014-11-05 16:14:52 +01:00
Alessandro Portale 82e266a83b New Qt logo
This patch replaces the old Qt logo with the new, flatter one.

The PNGs were optimized via: optipng  -o7 -strip "all"

Task-number: QTBUG-41685
Change-Id: I51983a45144373bf7aee31a32990ecbb2582f488
Reviewed-by: Robert Loehning <robert.loehning@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-11-05 08:10:42 +01:00
hjk cf30a3d9b2 Rcc: ensure enough space for the embedded
The two-pass feature depends on the QRC_DATA signature that needs
to be stored in the array later overwritten by the embedded data.

Task-number: QTBUG-42359
Change-Id: Ida1ccff40dda28f92a4267f86f48ee96d62bd214
Reviewed-by: aavit <eirik.aavitsland@theqtcompany.com>
2014-11-05 08:04:27 +01:00
Venu 293207b503 qdoc: Delayed the examples manifest file creation
This avoids the creation of demos-manifest.xml if there
are no demos in the repo.

Change-Id: I4d3bbe4540f4b1532c0d51f62b8d1494864a7b1c
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2014-11-04 13:20:13 +01:00
Robert Griebl f08ddefac7 Check the Q_SCRIPTABLE tag of signals and slots as early as possible.
This makes is possible to generate a valid D-Bus XML from a class that has
e.g.  internal slots with pointer parameters by explicitly marking all D-Bus
exports with Q_SCRIPTABLE and running qdbuscpp2xml with the '-a' switch.

Change-Id: Iab32a0a7f46f2516f6385808bbf35b26c7708b1a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-11-04 10:32:23 +01:00
Jędrzej Nowacki 053e8c41d7 Use file mapping in moc.
The change reduces heap allocations by using file mapping instead of
reading a whole file into memory just to create a slightly modified
copy of it.

For this small test case:

 moc <<EOF
  class X : public QObject { Q_OBJECT Q_PROPERTY(int x) };
 EOF

massif shows improvement from:
peak cost: "26,8 KB"  heap "2,1 KB"  heap extra "0 B"  stacks
to:
peak cost: "11,3 KB"  heap "2,2 KB"  heap extra "0 B"  stacks

In general, depending on source file high peak memory usage is reduced
from few to few hundreds KB, especially that the allocation used to
happen for each include file too.

Change-Id: I9c1c848be848444156af25a991b67161fb9d8b29
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2014-10-30 16:41:39 +01:00
Olivier Goffart 27d79ce91b moc: do not error if the last token of a define is #
We do not need to emit a diagnostic at definition time.
The diagnostic will be emit at expansion time.

Fix error when parsing boost header:
/usr/include/boost/fusion/container/vector/vector.hpp:25: Error: '#' is not followed by a macro parameter

Task-number: QTBUG-42233
Change-Id: I27deab362341f17ca3b0160615bb1b0934c3d5c3
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
2014-10-28 19:37:10 +01:00
Olivier Goffart 4ed39bed4e moc: Move the property access code to the qt_static_metacall
That way we will be able to access property of objects that are not QObject
(Q_GADGET)

Change-Id: Ib8ef6e52fc621e0b0d6530f82b1aa205f1ed5fd9
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-10-28 16:16:35 +01:00
Olivier Goffart d49e7acc2b moc: Have a staticMetaCall in the Q_GADGET metaobject
This provides a way to invoke Q_INVOKABLE method

Change-Id: I301cec2a21c2889fb9dde0b1eb6e92d0bd561bd7
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2014-10-28 10:12:52 +01:00
Frederik Gladhorn 2eb26c1709 Merge remote-tracking branch 'origin/5.4' into dev
Conflicts:
	src/gui/text/qfontdatabase.cpp

Change-Id: I6ac1f55faa22b8e7b591386fb67f0333d0ea443d
2014-10-27 13:00:36 +01:00
hjk e859de3fb5 Add extra declarations to make rcc output pass -Wmissing-declarations
The previously produced code was valid C++.  Add the declaration
nevertheless to help people who want to use the switch in their
own code.

Task-number: QTBUG-42119
Change-Id: Ia47cf3930684474ff65e5cf37335d7d7f57a1d31
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2014-10-25 11:48:43 +02:00
Frederik Gladhorn 3361fcbc28 Merge remote-tracking branch 'origin/5.4' into dev
Change-Id: If7e51514ed6832750e3ad967e4d322ccf920d2bb
2014-10-20 19:12:25 +02:00
Martin Smith 4f1de1432c qdoc: Generate QA pages
qdoc has a new command line option, -write-qa-pages. Using this
flag on the command line will tell qdoc to generate a QA html page
in each module's output directory. The QA page contains information
that is useful for Quality Assurance checking of the module's docs.
The QA file name begins with "aaa" so it will always be listed at
the top of the output directory. The file name for the QA file for
QtCore, for example, is aaa-qtcore-qa-page.html.

Currently, the QA page only contains a report listing the intermodule
link count for each module that is the target of links from the
documented module.

The link report can be used to optimize the search order qdoc uses
when resolving inter-module links. By default, the search order
is the same as the ordering of the modules in the depends list
in the .qdocconf file. Using the report, the user can reorder
that list according to the number of links found in each module.
i.e. in descending order of link count.

The modules are listed in descending order of link count.
Additionally, an actual depends variable is printed. It can
be cut and pasted into the module's qdocconf file.

Change-Id: I442596aeb54dcdd5db4a0821096a5273c15627e6
Task-number: QTBUG-41850
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2014-10-17 10:43:05 +02:00
Martin Smith 77165553af qdoc: qdoc was too slow
The hard-coded search order is now removed. The search order
is now constructed from the depends variable in the qdocconf
file.

The basic idea is that qdoc is run once. It gets a list of all the
qdocconf files for the modules in Qt5.
First, qdoc runs in -prepare mode for each qdocconf file in the list. It
generates the index file for each module, but these index files are
never used. At the end of the -prepare phase for each module, qdoc keeps
the tree structure for the module in a collection of trees.
Second, qdoc runs in -generate mode for each qdocconf file in the list.
But now it uses the existing tree for that module, so it doesn't have to
read the sources files again, and it doesn't have to read any index
files. Now it generates the docs for each module.

The runtime for qdoc has been reduced
by 90% when running qdoc for all of Qt5 on a not so new iMac.
Before this update, qdoc took about 10 minutes to generate
docs for Qt5. Now it takes a little over 1 minute. The new
way to run qdoc is described in the Qt bug report referenced
here.

Note that running qdoc this new (old) way also generates
fewer qdoc errors than when running qdoc the old way. This
indicates that the index files qdoc uses when running the
old way are incomplete.

Note also that the old way of running qdoc is not affected
by this update. The old way is still required for running
qdoc in the current qmake/make system. That process must be
changed to be able to use the faster qdoc. The details are
provided in the Qt bug report.

Change-Id: Ibec41d6fbaa9fc8cd070a05d04357bd02c4478f0
Task-number: QTBUG-41705
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2014-10-17 10:42:56 +02:00
Topi Reinio 65b563fe57 qdoc: Fixed recursion of \sincelist command handling
QDoc uses a recursive method of resolving all the classes, QML types,
properties, functions etc. added since a specified Qt version.

The code entered the next level of recursion only if its parent had
set a \since version, which was not always the case.

Task-number: QTBUG-41862
Change-Id: I3803ed9ffa472165754358f3906955430a893de1
Reviewed-by: Martin Smith <martin.smith@digia.com>
2014-10-15 14:47:27 +02:00
Andy Shaw 7c90778487 Account for the country/language settings when checking for duplicates
When a file has the same alias but a different country or language setting
then it should not warn about it being a potential duplicate.

Task-number: QTBUG-19286
Change-Id: I60a9c422ff02214399bdea3791374a65c9f6c604
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-10-10 16:45:50 +02:00
Frederik Gladhorn 881ceeff42 Merge remote-tracking branch 'origin/5.4' into dev
Change-Id: I05fcd8dc66d9ad0dc76bb7f5bae05c9876bfba14
2014-10-09 17:56:52 +02:00
Alessandro Portale 106487387d Removing a few unneeded "? true : false"
Change-Id: Ib13f0ddd65fe78f5559f343f2fc30756b1d3ef76
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2014-10-09 09:43:26 +02:00
Marc Mutz 1a5c0b26d0 Don't use QStringLiteral in comparisons
For QLatin1String, operator== is overloaded, so comparing to a latin-1
(C) string literal is efficient, since strlen() is comparatively fast.

OTOH, QStringLiteral, when not using RVO, litters the code with
QString dtor calls, which are not inline. Worse, absent lambdas,
it even allocates memory.

So, just compare using QLatin1String instead.

Change-Id: I7af3bf3a67c55dae33ffaf9922d004fa168a3f9c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-10-09 09:42:00 +02:00
Marc Mutz 05663e29d0 moc: don't use QByteArrayLiteral
The byte array literals are only used to append them to another
QByteArray, so they offer only the static size calculation as a
benefit.

However, there are several drawbacks:
- QByteArrayLiteral data cannot be shared the way string literals
  can be, not even within a single TU, and they add a few ints
  for the QByteArrayData header which cannot reside in BSS, but
  need to be stored in DATA.
- QByteArrayLiteral *does* allocate when the compiler doesn't
  support C++11 lambdas.
- QByteArrayLiteral, when not using RVO, litters the code with
  QByteArray dtor calls, which are not inline, and thus can't
  be optimized away.

In particular, when used like this, they do not prevent any
memory allocation (in fact, they might add some, absent lambdas).

So, just append (C) string literals.

Change-Id: Iee5dba8dd970c5cc6df116afc1f8709a62356b06
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2014-10-09 09:41:40 +02:00
Topi Reinio a366b2bb54 qdoc: Fix generation of qhp sections for unsorted pages
If you had the following lines in .qdocconf:

    qhp.QtFoo.subprojects.examples.title      = Examples
    qhp.QtFoo.subprojects.examples.indexTitle = Qt Foo Examples
    qhp.QtFoo.subprojects.examples.selectors  = fake:example

The expected outcome is to see an unsorted list of examples. This
didn't work however, because QDoc assumed to find a chain of
\nextpage links for the indexTitle, and these are rarely used
in Qt documentation nowadays.

This commit ensures that all pages matching the defined selectors
will be listed under the section title, even when the sortPages flag
is not set.

Task-number: QTBUG-41737
Change-Id: I1e7e2a2953de949c9b52763165c406a64d1d46f7
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2014-10-08 12:47:19 +02:00
Gabriel de Dietrich 8ee9774e67 Merge "Merge remote-tracking branch 'origin/5.3' into 5.4" into refs/staging/5.4 2014-10-01 16:21:12 +02:00
Topi Reinio 4b128309a3 qdoc: Restore navigation bar titles for QML, QML basic types
Re-add the name of a QML type/QML basic type to the navigation
bar.

Change-Id: Ia0ced775099f1ed4071ae9a922d808b9114c10ea
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2014-09-30 14:08:24 +02:00
Nico Vertriest 54853c5f66 Doc: Use title case in section1 titles
Using Python script title-cased.py

Task-number: QTBUG-41250
Change-Id: I00d3d7a0b30db7304a7904efd6d63abd9a7b493b
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2014-09-30 13:52:51 +02:00
Friedemann Kleint 5d36c74cb6 uic: Add QOpenGLWidget.
Change-Id: I02cb6bd4a038b865fa414fa557b12e369685248f
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-09-29 20:53:26 +02:00
Oswald Buddenhagen 189dc655bb Merge remote-tracking branch 'origin/5.4' into dev
Conflicts:
	src/corelib/tools/qbytearray.cpp
	src/gui/image/qimage.cpp
	src/gui/image/qppmhandler.cpp
	src/gui/kernel/qguiapplication.cpp
	src/gui/painting/qpaintengine_raster.cpp

Change-Id: I7c1a8e7ebdfd7f7ae767fdb932823498a7660765
2014-09-29 14:08:49 +02:00
Gabriel de Dietrich 8ab25620d3 Merge remote-tracking branch 'origin/5.3' into 5.4
Conflicts:
	src/network/socket/qnativesocketengine_unix.cpp
	src/widgets/kernel/qwidget_qpa.cpp

Change-Id: I6f1aa320d5ca66cd92d601a95885aeaab0abb191
2014-09-29 13:38:11 +02:00
Giuseppe D'Angelo 5222abfdf5 Uic: fix a leak
There are a couple of code paths in which we return from a function
without freeing the memory pointed by a local pointer.

For the sake of not over-modifying the code, I chose not to turn
"ui" into a scoped pointer.

Change-Id: I0b23944f7526d250c1ebeca0bae9bdc36dceceed
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-09-26 21:14:49 +02:00
Kai Koehne 568c26227d Silence moc warnings about 'argument mismatch'
The moc preprocessor is not necessarily fully compatible with the native
compiler preprocessor, which can lead to annoying warnings.

This fixes a problem particularly with the boost headers that rely on
MSVC only preprocessor features (to work around other MSVC preprocessor
deficiencies).

Task-number: QTBUG-29331
Change-Id: If884452969b512a746c81e235d31636b39c45b27
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2014-09-25 15:42:40 +02: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
Frederik Gladhorn c5a3e5edd9 Merge remote-tracking branch 'origin/5.3' into 5.4
The isAlwaysAskOption was removed in 3862171315
so manually removed code in
src/plugins/bearer/connman/qconnmanengine.cpp

Conflicts:
	src/corelib/global/qglobal.h
	src/corelib/tools/qcollator_macx.cpp
	src/corelib/tools/qstring.cpp
	src/gui/kernel/qwindow.cpp
	src/gui/kernel/qwindow_p.h
	src/gui/text/qtextengine.cpp
	src/platformsupport/fontdatabases/fontconfig/qfontenginemultifontconfig_p.h
	src/plugins/platforms/android/qandroidinputcontext.cpp
	src/plugins/platforms/xcb/qglxintegration.cpp
	src/plugins/platforms/xcb/qglxintegration.h
	src/plugins/platforms/xcb/qxcbconnection_xi2.cpp
	src/testlib/qtestcase.cpp
	src/testlib/qtestlog.cpp
	src/widgets/dialogs/qfiledialog.cpp
	src/widgets/kernel/qwindowcontainer.cpp
	tests/auto/corelib/tools/qcollator/tst_qcollator.cpp
	tests/auto/gui/text/qtextscriptengine/tst_qtextscriptengine.cpp
	tests/auto/widgets/kernel/qwidget_window/tst_qwidget_window.cpp
	tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp

Change-Id: Ic5d4187f682257a17509f6cd28d2836c6cfe2fc8
2014-09-23 11:23:36 +02:00
Jake Petroules 4e8720d413 Use new, supported APIs in OS X 10.10 and iOS 8.0 to get the OS version.
Gestalt is deprecated so we can't use it long term. At the same time,
the new API is cross platform, so we'll no longer have to parse strings
in -[UIDevice systemVersion] either.

Change-Id: Ic81797174c1a3d50b47b9b209205a6a506cc75ef
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2014-09-12 22:01:58 +02:00
Oswald Buddenhagen d572ab1bb4 Merge remote-tracking branch 'origin/5.4' into dev
Change-Id: Id4997327cc01bd4bb397a463bdffbd15e80398ef
2014-09-10 11:42:50 +02:00
Topi Reinio 162010441f qdoc: Resolve .qhp table of contents sections correctly
With the recent changes in QDoc, we can no longer assume that
pages listed in the TOC are of type DocNode. For example, all
Qt modules want to list C++/QML type index pages in the TOC,
and those are now of type CollectionNode.

This change fixes the issue by using a more generic search
function when generating the .qhp TOC, one that doesn't
restrict the results to any specific node type. As an
exception, the main index page for a project must still be a
DocNode, i.e. a page declared using the \page command.

However, we do want to restrict the search to the pages in
this documentation module only - for that purpose, a function
for setting a local search order is introduced.

Task-number: QTBUG-40241
Change-Id: Ibaa5af9c5de6436f34b7ae67e56733817fc090b9
Reviewed-by: Martin Smith <martin.smith@digia.com>
2014-09-10 10:53:42 +02:00
Topi Reinio 2e667c9171 qdoc: Highlight selected section / entry in the documentation
This commit adds id tags with the anchor reference as the value
to html entities for documentation section titles and function
signatures, properties etc. for both C++ and QML documentation
pages.

Together with new CSS rules, we can dynamically highlight the
title that the user clicked on. This helps to locate the item
of interest on a crowded page or when the page cannot be
scrolled down enough to place the selected item on top.

Change-Id: I7d1db2ed4e12779e1a9e571996ee65c3befa4e7a
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
2014-09-05 14:17:29 +02:00
Samuel Gaist 8206a263ab Add missing private headers warning
Change-Id: I7a4dd22ea3bcebf4c3ec3ad731628fd8f3c247e0
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-09-04 22:58:57 +02:00
Tobias Hunger 627657217e Uic: Fix memory leaks
Fix some memory leaks in uic. These break the Qt build with clangs
address sanitizer feature enabled as Clang will cause uic to fail when
it detects these leaks. This in turn will stop the Qt build.

Change-Id: I6794b29f5a36fc8a2d59cf36f6d7459f3f50d56d
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-09-04 13:44:48 +02:00