This patch allows to open submenus also on left mouse button press.
Previously submenus could be opened only on right mouse button press
as ContextMenu event which was inconvenient especially for long submenu
popup timeout.
Task-number: QTBUG-53054
Change-Id: I1bd78ed4436f738c8838f7f4687ffebb94b66725
Reviewed-by: Félix Bourbonnais <thor400.75@gmail.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Don't set transient parent property when Qt::Window flag is set.
Delete transient parent property if a window doesn't have a transient parent.
Force setting standard window flags for Qt::Window only if there are no other
flags.
Amends 98c10a02c5
Task-number: QTBUG-52550
Change-Id: I68ee715b632487e9dd0e7ffbbfc0c2cdd0f0e151
Reviewed-by: Dmitry Shachnev <mitya57@gmail.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
When using a 8 bit encoding to write a file, a test discovers if the
encoding is really ASCII compatible by examining a letter and one of the
XML reserved characters. EBCDIC, in the current base, was not well
handled.
[ChangeLog][QtCore][QXmlStreamWriter] Fixed a bug that prevented the
generation of valid XML files when using encoding with 8 bit per
character but not ASCII compatible. QXMLStreamWriter generated XML
markup using always ASCII in this case.
Change-Id: I9c86a122dd91b2290d50c358638442f99777d4ae
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Commit 9ef3ff30 introduced a new function, putUcs4(), to
output QChar, char16_t, char32_t as a, possibly escaped,
character literal, but got the order of stream modifiers
wrong. Instead of applying the field width to the 'ucs'
streaming, it applied it to the prefix '\u'. The same
problem exists for the pad char, leading to the result
'00\ue4'
for a QChar containing
ä (LATIN SMALL LETTER A WITH DIAERESIS)
Fix by reordering the elements streamed so that the
prefixes come last.
Added a test.
Change-Id: I6eaa0586501b9e780aaa3bb5dcec0e5c2f86a219
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
OpenBSD made the switch from a.out to ELF with release 3.4, published
2003, see http://www.openbsd.org/34.html. In preparation to cleaning
up the mkspecs for OpenBSD, remove the a.out defines as only recent
versions of OpenBSD (5.8 onward) will be supported.
NetBSD switched from a.out to ELF file format with release 1.5, see
https://www.netbsd.org/releases/formal-1.5/NetBSD-1.5.html in the year
2000.
Remove the defines for older a.out systems now as we are at release 7.0
and only 6.0 onwards releases are currently supported anyway.
While cleaning up, remove the old comments for QT_SOCKLEN_T values of
outdated OpenBSD and NetBSD releases as well.
Change-Id: I8519eab7bcd4af19c0e9f628657878f32b2bd602
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
QSslSocket was not transmitting existing data after finishing its
handshake if it had to download a certificate on Windows.
Task-number: QTBUG-48816
Change-Id: Ie35b5f4ca0f6c3c40fe2394166eb31f9f72dac55
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Richard J. Moore <rich@kde.org>
The old code iterated through one QJsonObject and looked up the key
in the other, comparing the values. It had linearithmic complexity,
and created one QString 'key' per element.
Since the entries in a QJsonObject are lexicographically ordered,
we can, however, just walk through the two objects in lock-step and
compare corresponding entries (at the same index) with each other.
Doing so saves O(N) QString creations and QJsonObject::value()
calls, and makes operator== linear in the number of elements.
Change-Id: Ib46ee0c1008b7f114454e282b6bd2bfcdbe59e2a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Since 5.0, this class is not abstract. Only the documentation of
updateCurrentValue was updated at that time. Fix the class reference and
the mentions of the class being abstract in the Animation Framework
overview.
Change-Id: I8ef9accb0b870dc8eb75bfc74361c7f2ad8d1d8b
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
The qplatformdefs.h for OpenBSD included an undefine of
_POSIX_THREAD_SAFE_FUNCTIONS because of (at the time) missing
implementations of the required _r() functions. After checking these
functions http://www.unix.org/whitepapers/reentrant.html
against the OpenBSD man pages http://man.openbsd.org/OpenBSD-4.4/cat3/getpwuid_r.0
they are all complete with OpenBSD 4.4 released in 2008. As
OpenBSD only supports the current and the last release before (5.8 and
5.9 now), it is safe to assume that this undefine can go away now
for sure.
Change-Id: I341bcae77d1bd7249ac3fdeaefce9c5eb595eca7
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
The freebsd-g++46 mkspec was intended to specifically use gcc 4.6 from
FreeBSD ports collection. However, the ports collection moves its
"standard" gcc version and uses symlinks to the standard commands
(e.g. gcc -> gcc48) on installing gcc. The current gcc in ports is
4.8.5, so the mkspec is not useful at all.
Change-Id: I041325d05c7dc3f47f4a774d6f46ba24a601bf3e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
The use of clock_gettime() is limited to systems having _POSIX_TIMERS
defined, however OpenBSD implements clock_gettime() but does not have the
posix define. Enable using clock_gettime() on OpenBSD as well.
Change-Id: I785954fe61b42b15755ca625a766c9a95179ae8d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
On FreeBSD, the gcc manpages until Release 5.1 mentioned using
the -D_THREAD_SAFE define when using -pthread. This has been obsoleted
and the gcc manpages from Release 5.2 onwards have this removed.
Now we finally remove this historic relic here, too.
Change-Id: I00a5b688c56f46b938c0806fb44b72d5afe5079e
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
By using commmon/gcc-base-unix.conf and common/g++-unix.conf most of
the contents of the qmake.conf for OpenBSD can go. The QMAKE_LFLAGS_UNDEF
are reset because the linker can't handle environ in libraries, which is
only added to libc in OpenBSD 6 (http://www.openbsd.org/faq/current.html)
even when explicitly adding -lc to QMAKE_LIBS.
See
http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20151102/309783.html
for similar questions on using -Wl,-z,defs instead.
Change-Id: I6c725fb3bc7ae63270912b07f230a480c9157dfd
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
By using common/gcc-base-unix.conf and common/g++-unix.conf most of the
mkspec details can go, leaving us with a minimized qmake.conf.
Change the default X11 location to point to /usr/X11R7 after NetBSD
switched to X.org in Release 5.0 by default.
Also change the default location for addon software on NetBSD, it uses
pkgsrc as its ports system which installs to /usr/pkg by default (the
default value for $LOCALBASE of pkgsrc on NetBSD), see
https://www.netbsd.org/docs/pkgsrc/using.html chapter 4.1.
These default values mirror the current state of NetBSD usage to get
the prerequisites to compile Qt with a minimum amount of configure
parameters.
Tested with NetBSD 7.0 using gcc 4.8.4-nb2 (system compiler)
Change-Id: Ic50757af9f070c0383c7356302e7e7686f031740
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Modern SSD drives no longer have short file names enabled, causing
the test to fail.
Task-number: QTBUG-29403
Change-Id: I2e9866d8f8a6ed3df9d2dc6630b8cfa47ade0728
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Limit the macro #ifdefery and allow for more test cases.
Task-number: QTBUG-53712
Change-Id: I2c185efc7c3b8fcd0217d2021bd98ab6044b5aee
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
The code dealing with shortcut overrides omitted this value from the
checks. If the user had a shortcut installed with a key sequence matching
MoveToStartOfLine, then that would result in the line edit not moving
the cursor at the beginning of the line (unlike other similar sequences).
Change-Id: If2e780068b3139390c79285d2205cc89285ba8b5
Task-number: QTBUG-52796
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
This gets included by Qt Wayland and will cause warnings there.
Change-Id: I3bb470d42ace4e6195d33019f81fa72f3006fc7f
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
The test sent a message and hoped that the "delete server" would cause
the server object in the QDBusConnectionManager thread be deleted before
it could receive and process the message. That's racy, because on some
CI machines, it did and then sent back an error reply indicating the
object sought was not found.
Instead, let's use a child process that we can kill to make it exit at
the right time.
I've chosen to use dbus-daemon itself, because that lets us test the
actual conditions that triggered the original bug: the daemon getting
killed during a desktop session shutdown on Linux.
Change-Id: I87e17314d8b24ae983b1fffd1454483aea87c921
Reviewed-by: Tony Sarajärvi <tony.sarajarvi@qt.io>
Do not override the requested font-weight. This was a wrong rewrite of
a now redundant if-statement.
Change-Id: I20a745cac02d896fdeaa853f20c6b6647084fceb
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Output the class hierarchy until a base class within QtWidgets is found.
Change-Id: I0ecee22e2ead1dea8b39cce8ca2f0739290aac22
Reviewed-by: Alexandru Croitor <alexandru.croitor@theqtcompany.com>
The test leaks a file (named qt_...xxx) in QDir::tempPath(). Moreover,
when tests fail, it can happen that more files are leaked and subsequent
runs do not recover since the check for non-existence of those files fails.
Change-Id: Iaea6d09ee7c271903a1b9c63e263c19f9e90bba9
Reviewed-by: David Faure <david.faure@kdab.com>
It tested whether a paint event was received when calling QWidget::repaint()
right after QWidget::show() without waiting for the window to be exposed.
This caused a QEvent::UpdateRequest to be sent, which ended up in
QWidgetBackingStore::sync() which returns after checking
QWidgetBackingStore::discardSyncRequest(), since Qt::WA_Mapped is not set
on the non-exposed widget.
The test passed on Windows since it contains one call to
QCoreApplication::processEvents() which causes the the initial WM_PAINT
message to be processed in QWindowsWindow::handleWmPaint() which calls
QWindowSystemInterface::flushWindowSystemEvents() and causes Qt::WA_Mapped
to be set. This seems counter to the intention of the test.
Remove the test since it won't pass anymore in Qt 5 unless Qt::WA_Mapped is set.
Task-number: QTBUG-26424
Task-number: QTBUG-38327
Task-number: QTBUG-39842
Change-Id: Iede026d52825dcf1f2e9014a316d26d260309214
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
While probably valid, these warnings are beyond the
user's control, and more likely a sign of Qt's own
expectations or misbehavior. So, we should not annoy
the users with them.
This change introduces the same logging category as
3ee01f7403 in 5.7 as is a partial backport to
simplify a subsequent 5.6 to 5.7 merge.
Change-Id: Ica2e3b1c5bc372923fd823b5d7d537d319835685
Task-number: QTBUG-42846
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
Passes locally (on 10.10), but seems to have become
unstable on the CI system.
Task-number: QTBUG-53790
Change-Id: I0432fca4121b97bcdd6cec529fc4e148dfb8c1ab
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
The two functions are merged and also renamed.
handleConnectionEstablished indicates that the
operation succeeded, but that is not necessarily
the case.
Change-Id: I66a4181a5693353fc9507785a6e6bbb8d5300a4b
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
Qt does not support libressl which reports itself as openssl but uses
a high version number. This means that we expect it to have features
that it doesn't and will fail to build. Instead detect this situation
at configure time and disable the ssl support.
Change-Id: I73cca4d1544df2aaca0723c38ba63758c287ec41
Reviewed-by: Ralf Nolden <nolden@kde.org>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Add the necessary defines for HAVE_PIPE2 for NetBSD and OpenBSD depending
on OS version when pipe2(2) was added. This also fixes the compile error
on NetBSD if -Werror=unused-function for ignore_sigpipe() as the
HAVE_PIPE2 tree is prior to O_NOSIGPIPE in create_pipe().
Change-Id: Ic8f875e34ef826a7bf046c77588afecaa097deca
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
The current implementation of drag and drop requires Redstone 2 Update
(SDK version 14322) to be fully functional. The API is limited for
previous versions.
However, this mostly affects passing allowed operations between sender
and receiver, the rest is mostly functional still.
Once RedStone 2 is out (estimated July 2016) we can bump the minimum SDK
version to 14322.
Task-number: QTBUG-50827
Change-Id: I5bab9d36a228d68c1809c241a64168d48c353335
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Liang Qi <liang.qi@qt.io>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
The example directory name for Qt Test module is qtestlib.
Without this change, Qt Creator cannot find the tutorial
files and tags them "broken" in the Welcome mode.
Change-Id: Ib2de0cd2263aa1651abb697f9f03ecd8eb871ca2
Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
Touch does this correctly for some time already. Keyboard and mouse do not, leading
to flooding the console with the Could not read from ... warning for ever when using
the 'static' device discovery (no libudev) and unplugging a mouse or keyboard.
Change-Id: I6bef44fbed4bc21cc2736b28d1166bf2b7d90edc
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
These plugins can't be used on Android, but they are built, installed
and also bundled into every .apk file.
Change-Id: I3326c913282af5bd43e1c732de9ae2f255711414
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
This merge also blacklists a flaky tst_QGL::clipTest test on
OpenSUSE 13.1.
Conflicts:
src/network/socket/qnativesocketengine_winrt.cpp
tests/auto/opengl/qgl/BLACKLIST
Task-number: QTBUG-53133
Change-Id: I14b431aa5a189b7dd1d3e2dfff767d15df20fde3
The assignment operator of a String QJsonValue that holds
the only remaining reference to the QString::Data block
was freeing the block before obtaining its own reference,
leading to a use-after-free in the case where *this was
passed as 'other' (self-assignment).
Fixed by reformulating the assignment operator in terms
of the copy ctor, using the copy-swap idiom, with the
twist that QJsonValue doesn't, yet, have a swap member
function, so we use three per-member qSwap()s.
Change-Id: I3c5ccc4d9f32c7593af3fc6a0edbf12b7feb1391
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
It fails randomly on Windows, possibly due to timing issues.
Change-Id: I0ef74f203455eb4ea8aeee4c8fc9bf1fbf6fb8ff
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Add the /etc/ssl default path to the list of certificate directories for OpenBSD.
Change-Id: I13dff6a219e2c848501ec9bf191160a48f919515
Reviewed-by: Richard J. Moore <rich@kde.org>
Fix compiling under OpenBSD by using Q_OS_OPENBSD define for missing
include file and adding required typedef. Obtained from OpenBSD ports
patches for qt-5.5.1 at
http://cvsweb.openbsd.org/cgi-bin/cvsweb/ports/x11/qt5/patches/
Change-Id: Ide223bffb6b116e8341d0eb39329af4d7a0be6a0
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
On OpenBSD, ffsll needs to be defined to compile. This is the
same change as in commit 725a9c2702
for NetBSD.
Change-Id: I3060caa10950a9419084a12de8c88a2f98b34d07
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Until now, several solutions for the implementations of
processNameByPid() on BSD systems existed:
- one for FreeBSD using libutil through kinfo_getproc()
using sysctl() implicitly
- one for GNU/kFreeBSD using sysctl() explicitly added in commit
a8f4fa217d
OpenBSD and NetBSD also had different approaches in their ports patches
using kvm() and sysctl(). The code unifies this for all BSDs using
sysctl().
Change-Id: Iced9ef01e5966d8688f464f51024a7ed562e26a3
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Dmitry Shachnev <mitya57@gmail.com>
When ShowLineAndParagraphSeparators was set, we would replace the
separator character in the user's string in some cases, since we never
detached from the input string and just const_cast the pointer to the
shared buffer.
[ChangeLog][QtGui][Text] Fixed bug where a QTextLayout with
ShowLineAndParagraphSeparators would modify the layout's input
string.
Task-number: QTBUG-42033
Change-Id: I92f9100b750f16e52b38b718245c13e5c4a0ebb9
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
This created a false dependency from the cocoa platform
plugin to QtDBus, which caused macdeployqt to deploy
it.
This change is for libplatformsupport only, and has
no effect on QtDBus usage in general.
Change-Id: I35f342574a6497ff88a785e93eef1acdea8b1452
Task-number: QTBUG-48015
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
This fixes a problem where the configure test may produce a false
positive on iOS if a copy of libmysql for OS X is located, due to the
fact that linking to a dynamic library of a different architecture than
expected is not (yet) an error.
Change-Id: Id41765f49e31d9c9c3becc3436ff5a69b160b8e0
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>