Using an iterator is not a good idea since the generateInnerNode can
end up adding new items to the childrenNode list and thus the iterator becomes invalid
Without this patch i was getting this trace in valgrind
==19251== Invalid read of size 8
==19251== at 0x474350: Generator::generateInnerNode(InnerNode*) (generator.cpp:1018)
==19251== by 0x4A422D: HtmlGenerator::generateTree() (htmlgenerator.cpp:276)
==19251== by 0x4AC369: processQdocconfFile(QString const&) (main.cpp:515)
==19251== by 0x40B894: main (main.cpp:669)
==19251== Address 0x943c1c0 is 0 bytes after a block of size 32 free'd
==19251== at 0x4C2C72E: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==19251== by 0x51676F2: QListData::realloc(int) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.2.0)
==19251== by 0x51677EE: QListData::append(int) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.2.0)
==19251== by 0x439BAB: QList<Node*>::append(Node* const&) (qlist.h:533)
==19251== by 0x4B46B3: InnerNode::addChild(Node*) (node.cpp:1262)
==19251== by 0x4B48DC: Node::Node(Node::Type, InnerNode*, QString const&) (node.cpp:179)
==19251== by 0x4B539F: InnerNode::InnerNode(Node::Type, InnerNode*, QString const&) (node.cpp:1193)
==19251== by 0x4B54EB: DocNode::DocNode(InnerNode*, QString const&, Node::SubType, Node::PageType) (node.cpp:1608)
==19251== by 0x4C0C5E: QDocDatabase::findQmlModule(QString const&) (node.h:535)
==19251== by 0x497EEA: HtmlGenerator::generateQmlRequisites(QmlClassNode*, CodeMarker*) (htmlgenerator.cpp:2005)
==19251== by 0x4995B9: HtmlGenerator::generateDocNode(DocNode*, CodeMarker*) (htmlgenerator.cpp:1533)
==19251== by 0x474508: Generator::generateInnerNode(InnerNode*) (generator.cpp:1010)
==19251== by 0x474372: Generator::generateInnerNode(InnerNode*) (generator.cpp:1019)
==19251== by 0x4A422D: HtmlGenerator::generateTree() (htmlgenerator.cpp:276)
==19251== by 0x4AC369: processQdocconfFile(QString const&) (main.cpp:515)
==19251== by 0x40B894: main (main.cpp:669)
Change-Id: I7a6ae0a689ea5edddacf7f27f9dce95b26a441df
Reviewed-by: Martin Smith <martin.smith@digia.com>
Unfortunate consequence from inheriting from Common style instead of
Windows style.
Also, a font entry missing in QCocoaTheme.
Task-number: QTBUG-36224
Change-Id: I560494b1727734671478f70ee1ba800d21c916ca
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
clang is the default compiler on FreeBSD 10 (if not earlier).
Let's keep it unsupported for now. Can be promoted later.
Change-Id: I909953c986a3da09ce19d8f9f9ee2cc22c417abd
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Allows us to sanity check the iOS build in the CI.
Change-Id: I16f9bfafef3988dcab6efd3155503ca0d0b4d1d8
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
This tests
* default spacing
* explicit positive spacing
* negative spacings
Negative spacings that causes the layout to shrink down to 0 or
a negative spacing are not supported.
(But make sure they don't crash the whole engine)
This is a partial cherry picked from
qtquickcontrols.git/bc973dcf2163b25f2db74d974b252384bbee8d80)
Only the Q_ASSERT had to be cherry-picked. This is because of that the
qgridlayoutengine* is moved to qtbase.
Therefore, any changes to qgridlayoutengine* won't be merged properly to
dev (they will be lost).
Task-number: QTBUG-35741
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
Change-Id: I834f1efc11aca59a93c8d870f1a776f2f8810485
Reviewed-by: Caroline Chao <caroline.chao@digia.com>
Introduce logging categories and change most debug statements
to qCDebug().
Retrieve the filter rules from the environment variable
QT_QPA_VERBOSE (should be removed once the logging framework
offers a more convenient way of configuring).
Replace the old per-category variables controlling verboseness
of the output by a single variable which can be set on the command
line.
Change-Id: Iae55ecdb0e150efd165b7d3e90b371f72853f194
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
The gutter position was hardcoded to 28 which fits when drawing
on the QMenu with a left margin of 3. It became offset when drawing
on a custom widget with no margin. Calculate position relative
to margin for left to right.
[ChangeLog][QtWidgets][QMenu][Windows] Fixed position of menu gutter when using a custom widget action.
Task-number: QTBUG-36218
Change-Id: Ibb34a9fba2bab7257482b80d2e51e76a9755345c
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Moc should check full scope of any related objects or
gadget when it constructs extra data.
Change-Id: Ibd1b607a389cd4e788c0916984464cd9103d9c59
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
d040681b6f added support for aligning the
test results for easier side-by-side comparison of the actual and
expected values. However, it didn't take into account multibyte strings.
That is, we would see:
FAIL! tst_testcase::testcase: Compared values are not the same
Actual (QString("é")): F0O
Expected (expected) : FOO
We use mbstowcs (multibyte string to wide char string) that calculates
the length in wide chars of the output string. That's roughly equivalent
to QString::fromLocal8Bit(string).toUcs4().size().
Change-Id: Ic2649951c50e05143da32a7fbef00a01e385c542
Reviewed-by: Jason McDonald <macadder1@gmail.com>
toHexRepresentation is used in QTest::toString(), whose results are
deallocated with free(). So we shouldn't allocate with new[].
Change-Id: I3e9d35b3f28a1b9bfe740a13b5daa414b67853c6
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
When one window loses focus because another window got it, the reason
should not be Qt::OtherFocusReason. If it is ActiveWindowFocusReason
or PopupFocusReason, any QtQuick text elements that were in the
window which lost focus will not deselect any selected text.
Task-number: QTBUG-36292
Change-Id: I4630f74e6aacd928284cedab6ed711c95b24bff7
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Warning C4786 has been removed from MSVC2013.
Warning C4231 has been removed since MSVC2003 .net.
Added #ifdef statements to only suppress these warnings when the
compiler versions supports them.
Change-Id: I47d6116bc02cdeef6b2172be0b09d105af9d0059
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This makes sure that we don't think a mouse area at position 0, 0
contains the mouse on startup.
Task-number: QTBUG-36191
Change-Id: I68a8aed195531f506372ef465734661069b60f57
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Dwarf-2 is treated as deprecated (at best) by llvm, and does not support
a lot of C++ language features. Most notably, it does not support
namespaces and template parameters. By not specifying the dwarf version,
the compiler can decide which version to use.
Change-Id: Ic32f9101c4db0f06a8ace8f5e04af9236d01598e
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Add support for using qCDebug and friends in the 'printf style' way.
This allows an almost mechanical conversion of existing qDebug, qWarning,
qCritical macros, and allows avoiding the size overhead the streaming
style incurs (mostly due to inlined QDebug code).
To handle this gracefully we require variadic macros (part of
C++11/C99). For compilers not supporting variadic macros we fall back
to checking the category in QMessageLogger.
[ChangeLog][QtCore][Logging] Allow qCDebug macros to be used in a printf
style.
Change-Id: I5a8fb135dca504e1d621bb67bf4b2a50c73d41b9
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
[ChangeLog][QtWidgets][QMenu][Windows] Correctly use text color set by style sheet for menu items.
Task-number: QTBUG-36142
Change-Id: I142f2fd82164771b45bf599a6afa1121fcfd2187
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
Some debug info and a #warning had somehow made it through :)
Change-Id: I420a7637bfd5d1a79a342eacefcc35430994feff
Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
If XPThemeData::noContent is set to true, the SpinBox from
QtQuickControls renders with transparent background, which is being
workarounded by simply adding white rectangle inside the QQC SpinBox,
which in turn breaks other themes.
This works in normal widget's QStyle because the spinbox there
is drawn with a frameless QLineEdit, which fills the background.
Setting XPThemeData::noContent to false for QtQuick items only makes the
QQC SpinBox render correctly with Windows Vista style.
Change-Id: I3229a2582dd1cad95c77e0961aaef502a8c6159a
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Some comparison operators comparing to const char *
where not implemented correctly.
Task-number: QTBUG-34024
Change-Id: Idbdc64c8ed93e88d9f2b2f55213bc785b33cb543
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
Symptom of the error is garbled text in Qt Quick 2, and the
fix has been confirmed to be enabling the texture resize workaround.
Task-number: QTBUG-34984
Change-Id: If6f621b43120c7913cbd33ab326c52ad6e2599bc
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Do not rely on sprintf_s being declared/defined. This also fixes
deployment to Windows XP.
See https://chromium-review.googlesource.com/#/c/182975/ for a similar
commit proposed upstream.
Task-number: QTBUG-36242
Change-Id: I520e2f61aeab34963e7a57baafd413c7db93f110
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Added push and pop pragma warning statements. Suppression of warnings
should not propagate to user code. Therefore, suppression of warnings
is restricted to the file where it is used.
Change-Id: Ib7973cbc0205ebbe75e002d035e44fd9b447460f
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
Added a define to suppress MSVC warning “C4996:
This function or variable may be unsafe.”
If the code is really "unsafe" then it is unsafe on
other platforms as well; so fixing these warnings just
for MSVC builds, would clutter the code and wouldn't help
in fixing issues that might exist on other platforms.
Using the same functions across all supported platforms
keeps the code clean and helps in writing code that is
safe across all platforms.
Change-Id: I470072eda4f8174bb911567ef3f061a3582ba449
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
It need to be copied.
Task-number: QTBUG-35887
Change-Id: Ia165e6a8f9dc23733e53e11f9e1e98bf54e7dd20
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Task-number: QTBUG-35743
[ChangeLog][QtTest][Windows] Use correct UTF-8 encoding for XML test results on platforms with different console encoding.
Change-Id: Ice9d03192098f931e5dac358928e0c4421ab715e
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
Any cipher that is < 128 bits is excluded from the default SSL
configuration. These ciphers are still included in the list
of availableCiphers() and can be used by applications if required.
Calling QSslSocket::setDefaultCiphers(QSslSocket::availableCiphers())
will restore the old behavior.
Note that in doing so I spotted that calling defaultCiphers() before
doing other actions with SSL had an existing bug that I've addressed
as part of the change.
[ChangeLog][Important Behavior Changes] The default set of
ciphers used by QSslSocket has been changed to exclude ciphers that are
using key lengths smaller than 128 bits. These ciphers are still available
and can be enabled by applications if required.
Change-Id: If2241dda67b624e5febf788efa1369f38c6b1dba
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Instead of merely intercepting logging output from stdout/stderr from the
journal side of started processes, this has the advantage of meaning that the
origin process name will be correct.
fprintf won't work, because if a process starts children (like e.g. a
homescreen does), then their stdout/stderr are merged into their parent, and
journal has no way of differentiating the origin.
We are also able to store information about the context of logging, which might
be useful in post-mortem cases.
[ChangeLog][Platform Specific Changes][Linux] Systems with systemd may now pass
-journald to configure to send logging output to journald. Logging will still be
sent to stderr for interactive applications (run from a tty) or with
QT_NO_JOURNALD_LOG set to a non-empty value.
Change-Id: Ib260cec1ea87390bf44f267d217d795583407d00
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
timezone is defined differently in FreeBSD compared to other
(more or less) POSIX-compliant Unices.
Task-number: QTBUG-36080
Change-Id: I4ad1a5ccd0b9ddbadb9fdd90edc26cf0c7252dfb
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
The event must be freed in all cases, also when a motion or configure
notify is skipped.
Change-Id: Ie55e62d0c3ab25bd9b20cc85098ea337d0b1ac5d
Reviewed-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
For some reason the Raspberry Pi hook includes qeglfscursor.h even
though it is not necessary. Remove this because the file got moved to
eglconvenience.
Change-Id: Ia65f5a8366d750f93eacee49004219e664b52af2
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
Needed to run the XKB extension where we used to expect X11 to be
installed in /usr. In FreeBSD, for instance, X11 is installed in
/usr/local like all the other not out-of-the-box packages.
Same thing goes for the compose platform input context plugin.
Change-Id: Ib7ace3117eaacc6e150394450d1330cba654ba8a
Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
That way we can avoid name conflict with a namespace defined in
a different moc test
Change-Id: Id631d7c5556c9d6940e16dc53eb438dbcd0095eb
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
The qRemovePostRoutine() function has been added as publicly exported
function in Qt 2.2.0 with behavior equivalent to that of today. It has
never been documented for unknown reasons, possibly simply forgotten.
This function provides needed symmetry for the already documented
qAddPostRoutine() function and is used in some real world applications.
Change-Id: Ied4709505d8335c883e9791ea634df8fb406d995
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Reviewed-by: Nico Vertriest <nico.vertriest@digia.com>
There is no point in saving \0 twice. Any code that could relay on it
is broken anyway, because moc saves \0\0 for an empty string.
Change-Id: I28fa4f78aae8c883c088df43ec89d608a99b3bdd
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Values from different enums were compared.
Change-Id: I2faf73976e4b24abbdc915e8445256fe7a5be5bd
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
the newly added mac examples use it, so it needs to be grounded.
a more generic solution would be clearing out QMAKE_EXTRA_COMPILERS, but
many prf files will be loaded after us, possibly nullifying our effort.
Task-number: QTBUG-35680
Change-Id: I3aba7595898baac14bd41e9fae2ff24507187c6a
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Local references are valid until the original native method
returns (if it's a Java thread), or until the current thread
is detached from the VM. This means that we have to manually
manage local references and delete them when they are no longer
in use, otherwise we will leak memory and flood JNI's local
reference array.
[ChangeLog][Android] Fixed crash on populating large combo boxes
or menus.
Task-number: QTBUG-36074
Change-Id: I7095bd1472f759be98183737a8d3912fa9763f30
Reviewed-by: Christian Stromme <christian.stromme@digia.com>