Distributions like Fedora would like to disable logging globally, without
having to patch Qt. Fedora right now therefore adds a
/etc/xdg/qtlogging.ini file, which unfortunately though also messes with
Qt versions compiled by the user.
This patch lets QLoggingRegistry look up logging configurations also
in QLibraryInfo::DataPath, which would allow to tweak the values per
Qt installation.
See also https://bugzilla.redhat.com/show_bug.cgi?id=1227295
Change-Id: I0fca304a47f45739d0c08a9e4e715673bf10aa80
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
These need to occur on the XAML thread.
Change-Id: Id42a37df95b09e6d3c0a1b6e593bbf8cbfe5a129
Reviewed-by: Samuel Nevala <samuel.nevala@intopalo.com>
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
We weren't using qt_sockaddr_storage, so it's not a problem. But since
we're not using it anyway, we don't really need it. The storage is only
needed if we needed to get a bigger socket address and that only happens
with Unix sockets (paths).
sockaddr_in6, however, was just wrong. Some systems derived from BSD,
like OS X, have a sXX_len field containing the length of the socket
address structure and our qt_sockaddr_in6 was missing sin6_len. As a
result, setting sin6_family was just plain wrong on little-endian
systems. Like all modern systems running BSDs and OS X...
Change-Id: I7de033f80b0e4431b7f1ffff13f900f004c55443
Reviewed-by: Richard J. Moore <rich@kde.org>
The IPv4+IPv6 dual stack code that has been in Qt since 5.0 has been
giving test failures for tst_qudpsocket: some binds that shouldn't
succeed do succeed. Instead, copy the core code from the Unix version so
the two OSes will behave the same way.
The one difference in behavior between Windows and Unix is that on Unix
you can bind an IPv4 address to a multicast IP and on Windows you can't.
So I left the "correction" that was in the original code, but I'm unsure
if it is the right thing to do. Are people expecting to join the
multicast group this way?
Change-Id: Iee8cbc07c4434ce9b560ffff13caa1c3d5a7e8fd
Reviewed-by: Richard J. Moore <rich@kde.org>
We have qt_sockaddr, which has enough storage for our needs and is a
union of all the types. We don't need them to be separate like that.
Change-Id: Iee8cbc07c4434ce9b560ffff13ca9cb960ccf1d7
Reviewed-by: Richard J. Moore <rich@kde.org>
Change-Id: Iee8cbc07c4434ce9b560ffff13ca466263abcb1b
Reviewed-by: Richard J. Moore <rich@kde.org>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Andrew Knight <andrew.knight@intopalo.com>
We'll need to use these functions instead of the ones we're currently
using in order to access the ancillary data.
Note that on Windows the two functions aren't globals, but must be
obtained via ioctl, which means they can fail. If they do, we fall back
to using WSARecvFrom/WSASendTo
Change-Id: Iee8cbc07c4434ce9b560ffff13ca4284acd24132
Reviewed-by: Richard J. Moore <rich@kde.org>
This commit changes the readDatagram() and writeDatagram() virtual
functions to take a QIpPacketHeader as meta data, instead of a
QHostAddress/quint16 pair. As previously, the header is an "out"
parameter for readDatagram() and an "in" parameter for writeDatagram().
The header pointer in readDatagram() is allowed to be null if the
PacketHeaderOptions indicates WantNone. Otherwise, it must not be null.
The extra options parameter is introduced because we may not always want
all the metadata upon reception. For sending, we know what to include or
not based on what's set in the incoming header parameter.
QIpPacketHeader splits sender and destination because we'll be able to
return both on datagram reception.
Change-Id: Iee8cbc07c4434ce9b560ffff13ca4213255008c7
Reviewed-by: Richard J. Moore <rich@kde.org>
Prevent the actions from being shuffled around in OS X
menus since the default is QAction::TextHeuristicRole.
Task-number: QTBUG-47739
Change-Id: Ib68bb7c51eb9278a99d277473f9d4cfcf740431c
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
ICC doesn't like it
qdbusintrospection_p.h(162): error: explicit specialization of class "QTypeInfo<QDBusIntrospection::Argument>" must precede its first use
It's used by the QVector in the same class
Change-Id: I7de033f80b0e4431b7f1ffff13f958971617b657
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
It supports the same feature that GCC does
Change-Id: Ib306f8f647014b399b87ffff13f1f3159898741b
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Prevent generating 2 character long 'text' strings with some garbage as
second char.
This matches how xcb works.
Change-Id: I88a248a89c80b0e100c1c4871cfab4f2c287535e
Reviewed-by: Shawn Rutledge <shawn.rutledge@theqtcompany.com>
The initial configure fails to build the pointer size test correctly
due to the missing --sysroot argument. This breaks 64-bit targets
as the pointer size is set to 4. A subsequent configure correctly
builds and picks 8 up, but we expect the first attempt to work as well.
Task-number: QTBUG-47840
Change-Id: Iaf9450635f1bbc12e18062fa0a51f35cf690ce08
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
- Remove unneeded member variables.
- Use member initialization in the constructor.
- Use new connection syntax in createActions()
to assemble the menu there, removing the createMenus()
function.
- Fix coding style issue (braces)
- Avoid empty label showing up by setting the scroll
area invisible until an image is loaded.
- Set a new image only if image read succeeds.
- Add status bar with information message.
Task-number: QTBUG-46848
Change-Id: I32d5af70d8eb71ec16dd58a0b98c32eb2bd988d7
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
The _q_readyRead can also be called from readMoreLater() because we implemented
it so that bandwidth limited reading can be implemented.
This can lead to a race condition if the socket is closing at the specific moment
and then deadlock the channel: It will stay unusable with a zombie request.
The fix in QHttpProtocolaHandler checks if there is actually bytes available to read
from the socket and only then continue.
The fix in the HTTP channel needs to be done to properly finish the reply in
cases of a server replying with HTTP/1.0 or "Connection: close".
The delayed incovation of _q_receiveReply will properly finish up the reply.
Change-Id: I19ce2ae595f91d56386cc7406ccacc9935672b6b
Reviewed-by: Richard J. Moore <rich@kde.org>
For BITFIELDS compressed images, the image data may be preceded by
bitmask fields. The file positioning code that should make sure those
were read correctly was erroneously included in the block of code that
was moved in 6f1b82fccd.
Task-number: QTBUG-45559
Task-number: QTBUG-40890
Done-with: Eirik Aavitsland
Change-Id: Id2b3ce078f67ac6ebf75ab0cc463dc719af83393
Reviewed-by: aavit <eirik.aavitsland@theqtcompany.com>
QDateTime::addSecs needs to do something similar, but not identical
because it needs the number of days too. And then there are daylight
savings transitions...
Task-number: QTBUG-47717
Change-Id: I7de033f80b0e4431b7f1ffff13f976f4f5e5a059
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
Found by Clang 3.7:
qcommandlineoption.cpp:287:12: error: moving a local object in a return statement prevents copy elision [-Werror,-Wpessimizing-move]
Change-Id: I7de033f80b0e4431b7f1ffff13f97fb480001d36
Reviewed-by: David Faure <david.faure@kdab.com>
It was a regression: drawing applications which can handle both mouse
and tablet events should not need to wait to see whether a mouse event
will be followed by a corresponding tablet event. The tablet event is
preferred because it has all the tablet parameters (pressure etc.)
Also, show the timestamp of each mouse event in the log message,
which helps to verify the correspondence.
Task-number: QTBUG-47702
Change-Id: I9e832c19de935ec1243138eb4c1484284f61cbfc
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
A function cannot be both a member and a non-member of the same class.
Change-Id: I07d1e04c09fea2ba1171b3692e716660044cd37a
Reviewed-by: Martin Smith <martin.smith@digia.com>
There are instances in the documentation where a member function
tries to set itself also a related non-member of its parent. This
should be treated as invalid behavior, as it likely causes also
problems during deletion of the node tree.
QDoc now checks for and warns about these instances.
Change-Id: I951e0de6be4d48618c60b8a0382e2c70700cc402
Task-number: QTBUG-47751
Reviewed-by: Martin Smith <martin.smith@digia.com>
There were several problems related to resolving related non-member
(RNM) functions for classes. This commit does the following changes:
- Overload numbers for RNMs are now calculated at the time the
\relates command is processed, instead of a separate step.
- If a \relates refers to an entity outside the module boundary,
write the argument passed to it as-is into the index file.
- Delay the destruction of QDocIndexFiles singleton, to resolve
the RNMs read from the index files prior to generating docs.
- Remove the redundant call to normalizeOverloads() for single-
exec mode as unnecessary.
These changes ensure that all RNMs are listed in the documentation
for the node that they belong to.
A remaining issue is that if a function relates to a class outside
the module boundary, that function documentation will be empty
because the doc content is not stored into the index file (for
obvious reasons). Single-exec mode does not have this problem.
Change-Id: I33f038120728932cd9fd70da28d9090023068bd6
Task-number: QTBUG-47589
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Mostly related to IPv6, because Q_IPV6ADDR is an array of char, so the
compilers were generating byte access to each value. Instead, force
access as 32- and 64-bit in most places that make sense (64-bit access
decays to 32-bit on 32-bit machines). In one isLoopback(), this is now a
128-bit access for best improvement.
Some smaller improvements relating to SpecialAddress by combining the
three IPv4 special addresses.
Change-Id: I7de033f80b0e4431b7f1ffff13f932b1cd7b5d21
Reviewed-by: Richard J. Moore <rich@kde.org>
Currently this is only implemented on Linux and Windows. But it's an
improvement nevertheless when debugging Qt unit tests :)
Change-Id: Iea307dad0e12c24f305c16f0a1805e7c246ee372
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
thread\qthread_win.cpp(121): warning C4312: 'reinterpret_cast': conversion from 'DWORD' to 'Qt::HANDLE' of greater size
thread\qthread_win.cpp(343): warning C4312: 'reinterpret_cast': conversion from 'DWORD' to 'Qt::HANDLE' of greater size
thread\qthread_win.cpp(416): warning C4312: 'reinterpret_cast': conversion from 'DWORD' to 'Qt::HANDLE' of greater size
Change-Id: I5e60e4bb91a32491562748755d34a2c5a1e264b4
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Add missing options for QFileDialog, QFontDialog.
Resize and position depending on screen size in order
to look correct on high resolution screens.
Change-Id: I1d9af481270d6a3e49878aaf32b59aea8fa543b4
Reviewed-by: hjk <hjk@theqtcompany.com>
Playing with the offset argument of pcre_exec is not equivalent to
adjusting the pointer to the subject string. In particular, PCRE
can go behind the offset to check for lookbehinds or "transition"
metacharacters (\b, \B, etc.).
This made the code that deals with QStringRefs not matching in behavior
with the corresponding code dealing with QStrings. For instance,
QString subject("Miss");
QRegularExpression re("(?<=M)iss");
re.match(subject.mid(1)); // doesn't match
re.match(subject.midRef(1)); // matches!!!
Instead, actually adjust the pointer to the subject string so that
the behavior is identical. A broken test that relied on the
equivalence is also removed.
Change-Id: If96333241ef59621d7f5a6a170ebd0a186844874
Reviewed-by: Volker Krause <volker.krause@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Valid characters are (A-Z,a-z,0-9,-,.).
It is unlikely that we will see anything more exotic
than '_' in bundle/library names, go ahead and replace
that character only.
Task-number: QTBUG-46824
Change-Id: Ia97b7cd6247f40a970b4919363ffb66fb347186c
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
unlike everywhere else in this file, destdir is not pre-quoted here.
Task-number: QTBUG-47775
Change-Id: Ia5b0c56bbdd3eb095f81b0f615d68a338ffa52c5
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Ensure QAction::setVisible() is
handled and reposition if visibility changes.
Task-number: QTBUG-39660
Change-Id: I14f0659aedc8dc89ddef3159d3a500b40b1563ff
Reviewed-by: David Faure <david.faure@kdab.com>
Can be overridden by setting QT_QPA_FB_NO_LIBINPUT.
On systems where libinput is present it is usually a better choice
to rely on it instead of evdev*.
Change-Id: I8532c923bacd605434cfca1c7e314cb95d41b372
Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
Can be overridden by setting QT_QPA_EGLFS_NO_LIBINPUT.
On systems where libinput is present it is usually a better choice
to rely on it instead of evdev*.
Change-Id: I78857ff91c837f58fdc7d1e119260bd6819fbf4e
Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
Anything linking to platformsupport may use the same name so use
something less generic.
Change-Id: I657dd5dfcad9cf22585fcb17eda62deaf26ea6c4
Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
The way of searching a shortcut match for a key without the keypad
modifier introduced in 547a1bea49 is
not correct. QKeyEvent::setModifiers() doesn't change native scan code
so we get the incorrect QKeyEvent object which is eventually passed to
the implementation of QPlatformIntegration::possibleKeys().
And then QPlatformIntegration::possibleKeys() returns the same result
as for the original QKeyEvent object.
So to fix it we have to remove Qt::KeypadModifier from keys after
calling the implementation of QPlatformIntegration::possibleKeys(),
as it was before 547a1bea49.
Task-number: QTBUG-33093
Task-number: QTBUG-44577
Change-Id: I5b33c9b6cf2c06b133166a31eba9aff9181c9483
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
Older VMware virtual machines do not like the #line statements. These
were introduced in 5.5.0, meaning that when upgrading from 5.4 in such
a VM, shader compilation via QOpenGLShaderProgram stops working. This
should be avoided.
Task-number: QTBUG-47598
Change-Id: I8cccd76119350e7ce40da96d24a7a6e9eb399052
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
We don't replay mouse events after closing popups on X11.
This leads to the bug when the menu doesn't show after
clicking three times on the menu bar. It can be fixed by
reverting 78d7192338, but
then we need an alternative fix for QTBUG-32807 on Windows.
So don't replay mouse events for the menu bar on all
platforms.
Change-Id: I3db8e24a6de6f35b0a17dffac6a131f1cad42e6d
Reviewed-by: Shawn Rutledge <shawn.rutledge@theqtcompany.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
Give setStandardOutputFile2 a sensible name, move it to where it
belongs and remove bogus Q_OS_WINCE ifdef.
Change-Id: I5c843e8b6cb626979966f3e61f7a7c720173bb28
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Do not call bytesAvailableInChannel if the source pipe end is
invalid. This is the case when redirecting channels on Windows.
The assertions in bytesAvailableInChannel were triggered whenever
an output process or output file was set and waitForBytesWritten
was called.
Task-number: QTBUG-45548
Change-Id: I225dfea2c5e27e122f75008a3a06d425554e00fe
Reviewed-by: Alex Trotsenko <alex1973tr@gmail.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>