Commit Graph

21617 Commits

Author SHA1 Message Date
Thiago Macieira
2302d386c7 Include qobjectdefs.h for Q_GADGET
Change-Id: Ie1bf2393757978775596a542732c62e3f3014f82
Reviewed-by: Richard J. Moore <rich@kde.org>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2014-12-29 09:08:00 +01:00
Thiago Macieira
1196f69112 tst_QUdpSocket: Fix inverted logic in getting a non-"any" address
We want to use "localhost" if the server's address is "any", as some OS
can't send datagrams to "any" (e.g., OS X and FreeBSD).

Change-Id: I1004bc2282e7f930cdb7ed394aa9f4b5a1cfcf82
Reviewed-by: Richard J. Moore <rich@kde.org>
2014-12-28 15:58:54 +01:00
Thiago Macieira
9a70b67b5a Don't hardcode port numbers in tst_QUdpSocket wherever possible
On my Mac Mini, port 5000 is in use, which means the broadcasting test
fails.

Change-Id: Ifb0883263e277f388342430349ea7315d42f324a
Reviewed-by: Richard J. Moore <rich@kde.org>
2014-12-28 15:58:10 +01:00
Thiago Macieira
c290ee69f2 Fix silly QSKIP for IPv6 in tst_QUdpSocket::multicast
It was unconditional. Someone forgot to check for IPv6 support before
skipping IPv6 tests.

Change-Id: I7b11528ad02560f0db9defde3c64f76f48a6c1f8
Reviewed-by: Richard J. Moore <rich@kde.org>
2014-12-28 15:57:52 +01:00
Thiago Macieira
62e7518421 Report QHostAddress::Any explicitly in qDebug()
With toString(), it was printing "0.0.0.0", which is the same as
QHostAddress::AnyIPv4, making it difficult to tell the two apart.

Change-Id: I4668ec3337c25ddfdc2fa3bbacc83b9d34316b1f
Reviewed-by: Richard J. Moore <rich@kde.org>
2014-12-28 15:56:24 +01:00
Marc Mutz
574e073b08 tst_QSizePolicy: non-functional fixes
Fix indention, add empty line as separator, undef a local macro.

Change-Id: Ie0d8529322f87ca2bdedb9a7f2f4cf9f463a6e12
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2014-12-26 20:23:20 +01:00
Marc Mutz
933c06e3f7 tst_QSizePolicy: split a test function
Split off default-value check from getSetCheck().

This is in preparation of extracting getSetCheck_data().

Change-Id: I869c34014a92e29a07dc08584a93a4cbba372518
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2014-12-26 20:22:41 +01:00
Marc Mutz
4bf8613df1 tst_QSizePolicy: minor cleanup
Fix indention, remove unused functions, slots->Q_SLOTS.

Change-Id: I30ced40dcde2650977424864399b721bbe17013c
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2014-12-26 20:22:29 +01:00
Marc Mutz
646612e0f9 QSizePolicy: add Q_FLAGS(ControlTypes)
There's no reason not to have it, and it allows better debug output.

[ChangeLog][QtWidgets][QSizePolicy] QSizePolicy::ControlTypes is now
introspectable through QSizePolicy's meta object.

Change-Id: Ia274c708f31e735e4605bd4769aa65a9b78d690f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-12-26 20:22:06 +01:00
Marc Mutz
d8c0ba8d41 qtest.h: actually include qtest_widgets.h
Was including qtest_gui.h instead, for QT_WIDGETS_LIB.

Not a problem in practice, since qtest_widgets.h doesn't
currently add anything on top of qtest_gui.h. But that will
change soon.

Change-Id: I942870cddc7b1ccfda262e2fe26834594336dd0b
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2014-12-26 20:21:51 +01:00
Sérgio Martins
9a0c4fc479 Fix win32-g++ build due to -Werror
qwindowsprintdevice.cpp:182:85: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
         && DeviceCapabilities((LPWSTR)m_id.utf16(), NULL, DC_PAPERSIZE, NULL, NULL) == paperCount

MinGW DeviceCapabilities is returning an int, although microsoft documents it as returning DWORD.

Change-Id: I3acd76dde0b8b83f8a785ec84e3413115c847cb2
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-12-26 01:50:57 +01:00
Giuseppe D'Angelo
59d8310b05 QWidget: use a static assert for a compile-time check
Change-Id: I48ec9afc7e5b01e833f66b7e893237d3c68ad048
Reviewed-by: David Faure <david.faure@kdab.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2014-12-25 15:08:01 +01:00
Thiago Macieira
98a7497d74 Silence warning in tst_QUdpSocket::multicast for Any+IPv4
QUdpSocket doesn't support binding to QHostAddress::Any and then joining
an IPv4 multicat group since QHostAddress::Any is really an IPv6 socket
with v6only = false. The test did check this case, but failed to ignore
the warning.

Change-Id: I62d782408319a6e566e0ff1a6081b706ac1f669c
Reviewed-by: Richard J. Moore <rich@kde.org>
2014-12-24 22:49:26 +01:00
Thiago Macieira
14c5f149cd Fix tst_QUdpSocket::multicastLeaveAfterClose
With IPv6, you cannot bind to a multicast address. You need to bind to a
local address only. The previous tests either checked this or didn't
check the result of bind().

Change-Id: Ief70887d8988fc1bc4394cf6ff34b5d560e5748e
Reviewed-by: Richard J. Moore <rich@kde.org>
2014-12-24 22:49:20 +01:00
Giuseppe D'Angelo
11b282d581 Glib config test: fix compiler warnings
Remove warnings: "assigned but not used" and "uninitialized usage".

Change-Id: I247e1de020e78c35787b8e1e30421174ac232fd5
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-12-24 22:33:24 +01:00
Roger Maclean
dec81ad2da QNX: Revert the change to give higher precision timers.
The previous change (SHA 82c2118c) to provide better
than 1ms accuracy for timers on QNX is not safe.

According to the docs, ClockCycles is not guaranteed to
return consistent information if called from different
CPUs.  While this can be addressed by locking the thread
to a single CPU, you wouldn't want to do that here.

On some systems (e.g. BB10) the behavior  is extremely bad
since ClockCycles only has 32 bits of precision.  This
results in overflows in the calculations making short
timers run very slowly (16ms timers were around 1s).  Also
ClockCycles wraps in under three minutes causing even
more problems.

I've talked to the kernel developers and there is currently
nothing that will give you better than 1ms accuracy.  An
individual program could use ClockCycles to calculate more
accurate times if they want.

It's not clear to me what benefit one would get with
increased accuracy.  Unless I've missed something, these
times are only used to calculate timeouts for calls such as
select.  These timeouts will themselves have the same
resolution as clock_gettime provides so the increased
accuracy would appear to be for naught.

Change-Id: Ia38b154ca41949becbd0b8558a9ff4ddd5e01a43
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Bernd Weimer <bweimer@blackberry.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2014-12-24 20:35:09 +01:00
Konstantin Ritt
462be988b6 [QFont] Don't build datastream helpers with QT_NO_DATASTREAM
Change-Id: Id70491c07f5cf13d5f78ec0fc94ffd2b3134ff20
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2014-12-24 19:57:12 +01:00
Konstantin Ritt
e9dbaa328e Fix potential memory access violation issues
LOGFONT docs clearly states `lfFaceName` member is a null-terminated
string of length not longer than LF_FACESIZE, including trailing null.

This patch covers two cases at once:
1. If family name is longer than LF_FACESIZE - 1, it would be truncated
   and terminated with null, to prevent memory access beyond
   the LOGFONT instance.
2. If family name is a fromRawData QString, we don't assume it is
   null-terminated either and guarantee trailing null ourselves.

Change-Id: I8f607efc7d0901537a4179e36cc51df94203f08d
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
2014-12-24 15:05:24 +01:00
Nick Shaforostoff
5b11e43e9f QThreadPool::cancel() to remove individual jobs from the job queue.
[ChangeLog][QtCore][QThreadPool] Added QThreadPool::cancel() which allows
removing from the job queue a job that hasn't been started yet.

Change-Id: Ib8f1c1f32a34f5eec8338c641d820b928e470164
Reviewed-by: Nick Shaforostoff <shafff@ukr.net>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2014-12-24 15:01:36 +01:00
Thiago Macieira
23ba824b7d Fix silly mistake: 0 is a valid file descriptor
Change-Id: I60baa01f0ef9419a73535c761c4722c5abd6f26e
Reviewed-by: Richard J. Moore <rich@kde.org>
2014-12-24 14:42:51 +01:00
Thiago Macieira
e38631b5e9 Stabilize tst_QUdpSocket::broadcasting
Sending 100*8 packets of each type of message is WAY overkill. That's a
stress test without limiting. My Linux system starts reporting EAGAIN on
the socket, so reduce the amount of data sent.

Change-Id: I153f44cf3b91d37526dac580b400114cc80b1769
Reviewed-by: Richard J. Moore <rich@kde.org>
2014-12-24 14:42:27 +01:00
Thiago Macieira
68d8d27fad Don't try to send broadcasts over IPv6
IPv6 has no such thing, so don't try to bind to an IPv6 address to send
broadcasts (even though that works) and it's a poor idea to bind to IPv6
to receive broadcasts. Moreover, skip any IPv6 network addresses
(broadcast() is invalid).

Change-Id: I2829b042c000158565adfd92db682f37d67dacae
Reviewed-by: Richard J. Moore <rich@kde.org>
2014-12-24 14:42:05 +01:00
Thiago Macieira
7a303ff55f Suppress silly shell warning during qmake of qtcpsocket.pro
If you don't have /etc/lsb-release, you'd get
  sh: line 0: [: =: unary operator expected

Change-Id: Idb5c79f799879e4d32cd640ef74fb388227f831e
Reviewed-by: Richard J. Moore <rich@kde.org>
2014-12-24 14:41:55 +01:00
Thiago Macieira
a0cec54220 Autotest: Disable multicast testing with proxies
It doesn't make sense because there is no command to ask the proxy
server to join a multicast group. At best, we could write a datagram via
proxy without joining, but we definitely can't receive.

Change-Id: Icc6b54572a053fb7821dfca1f4111f2046ff8686
Reviewed-by: Richard J. Moore <rich@kde.org>
2014-12-24 14:40:21 +01:00
Giuseppe D'Angelo
8815a75ef0 Remove a memory leak in the custom sort filter model example
Change-Id: Ie14f07bc2ee2215da2a81a75d816d4763fac085f
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2014-12-23 16:39:03 +01:00
Giuseppe D'Angelo
ceeb032de6 QRawFont: improve the thread-safety checks
384388f2 introduced some checks, and used an assignment in an assert;
that sets off compiler warnings about expressions with side effects
into an assertion. Hence, that code needs to be reworked a bit.

Unfortunately, there's no single define we can use to know if
assertions are enabled or not in Qt, so simply use QT_NO_DEBUG
to enable/disable those checks. The actual "thread" data member
is kept around to avoid break ABI depending on debugging flags.

Change-Id: I8b07e7ff6f81359d6b0653a1d9cc2b720541d1b9
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
2014-12-23 16:38:56 +01:00
Sérgio Martins
6475462c6f QColorDialog: Move string into retranslateStrings()
Change-Id: I802b3e3463f77777cb0f25b60fc069da32d1c467
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2014-12-23 16:05:45 +01:00
Konstantin Ritt
560cd95298 Make it obvious we never expect QFontDatabase::Any to be supported
This also unbreaks matching for scripts not covered
by qt_script_for_writing_system().

Change-Id: Iddf015281a57a9dbae2e09f0408359441b020df8
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
2014-12-23 14:57:39 +01:00
Konstantin Ritt
a0742ad6ce Re-use cached font engines when request only differs in script
When looking for engine of non-Common script and lookup in
the font cache failed, first check if we have already loaded that engine
for the same request but different script.

In general, this gives an arbitrary font engine a chance to be re-used
multiple times when request only differs in script, which saves a LOT
of memory (~10MB on my win7, after scrolling the QFontComboBox'es list).

Change-Id: I9c752ce65c27142237a0ed74b33742b6a8d90a24
Reviewed-by: Pierre Rossi <pierre.rossi@theqtcompany.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
2014-12-23 14:57:37 +01:00
Konstantin Ritt
a45da5d207 [QFontDatabasePrivate] Drop unused fallbackFamilies member
It is probably a refactoring left-over.

Change-Id: Ic6f1e1a87c8603f600cd1736cf12c03ef0188074
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
2014-12-23 14:57:33 +01:00
Shawn Rutledge
32422885fc emit lastWindowClosed even if quitOnLastWindowClosed is false
Behavior will agree with the docs.

[ChangeLog][QtGui][QWindow] lastWindowClosed will be emitted even if
quitOnLastWindowClosed is not set

Task-number: QTBUG-32956
Change-Id: I7bb269d53894859fee27e171eea7ad472ea86af0
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
2014-12-23 14:12:25 +01:00
Giulio Camuffo
7aadf03fea Fix build when using -egl and -no-xcb-xlib
Change-Id: I533f1d989b5f4b427ce572620e27c3870a64c2ae
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
2014-12-23 14:04:10 +01:00
Giulio Camuffo
9b4fbe85d2 Add a function for QPA plugins to explicitly destroy QScreens
Previously QPlatformScreen was automatically deleting its QScreen
in ~QPlatformScreen(). That means that we cannot use QScreen's
methods when the screen is being removed, because doing so would
call virtual methods of QPlatformScreen. By that point the
QPlatformScreen subclass object does not exist anymore, and we
call the default implementation instead of the subclassed one, or
get a crash for the pure virtual methods. This happens for example
when removing a screen which contains a QWindow with some QML item
using QQuickScreenAttached.

This patch adds a QPlatformIntegration::destroyScreen() function,
which deletes the QScreen and later the QPlatformScreen.

~QPlatformScreen will still delete the QScreen if it was not deleted
with destroyScreen(), so code not ported to the new approach
will continue to work as before, with only a warning added.

Task-number: QTBUG-41141
Change-Id: Ie4a03dee08ceb4c3e94a81875411f6f723273fe1
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2014-12-23 14:04:02 +01:00
Thiago Macieira
c013104b04 Temporarily disable the QtDBus tests if the session bus isn't available
This is a temporary measure while the Qt CI system is updated to have
the correct D-Bus configuration. Once it is fixed, this commit should be
reverted, so that we don't run into the situation in which the tests
aren't getting run on some configurations and we never know about it.

Change-Id: I7192d4d95a60dcb63acfa6cc90bfdc58592b0664
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
2014-12-23 12:22:56 +01:00
Thiago Macieira
7f34bee849 Fix include headers for qsslcertificate_qt.cpp
The order is:
 1) own header
 2) own private header, if any
 3) other headers

Commit f17d7a124f broke the order.

Change-Id: I7225024691db91fd936a057accdad65bacb3f979
Reviewed-by: Richard J. Moore <rich@kde.org>
2014-12-23 12:20:19 +01:00
Nico Vertriest
a8714548d1 Doc: corrected broken links qtbase
Task-number: QTBUG-43115
Change-Id: Ib441326083294a6d59d75510142b1481f7b0bc35
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Reviewed-by: Martin Smith <martin.smith@digia.com>
2014-12-23 10:55:45 +01:00
Joni Poikelin
0920e00932 Check screen before changing cursor
Task-number: QTBUG-43508
Change-Id: I6b525cab2a3958f4e3528ed8102d07984f152e60
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2014-12-23 10:11:23 +01:00
Jason Haslam
033318f7a7 Check for valid receiver before sending gesture events.
Gesture events sent to a disappearing tooltip can crash. This can most
easily be seen by scrolling over a tooltip on OSX with a magic mouse
middle scroll gesture.

Task-number: QTBUG-42826
Change-Id: Id5510895f63297ca157e3d24a3f4e3a6034586e8
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
2014-12-23 10:11:08 +01:00
Dmitry Shachnev
13972476ad qstorageinfo_unix.cpp: Fix build on BSD and other unices
* Include statvfs.h on all non-Linux and non-Solaris systems.
* Fix type of stat_buf structure on BSD.

Change-Id: I6336503082fafd7f6108cf95c079bdd329d2ea0f
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
Reviewed-by: Lisandro Damián Nicanor Pérez Meyer <perezmeyer@gmail.com>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2014-12-23 09:12:01 +01:00
Konstantin Ritt
3cda2ab03a [QFontDatabase] Don't look for best foundry twice
In case the foundry name was empty and foundry lookup has failed, don't
look for *any* foundry since it does exactly the same as previous call.

Change-Id: I2a81949df06c31e1ae6999a6bbbe973408d4b814
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Pierre Rossi <pierre.rossi@theqtcompany.com>
2014-12-23 05:37:57 +01:00
Aleix Pol
c63bb90ac7 Fix typo in Qt5CoreMacros.cmake
According to the documentation, the argument is called COPYONLY instead
of COPY_ONLY.
Fixes warning and ensures it works properly.

Change-Id: I643f5ea808aaaf94c3ee666ec39485e84ed38df1
Reviewed-by: Vishesh Handa <vhanda@kde.org>
Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
2014-12-23 01:14:11 +01:00
Alexander Volkov
2b7204c0a9 Doc: Describe the enum item QStyle::PE_FrameStatusBar as obsolete
Change-Id: Ibda864d2b037bd8b2484b8642423ae1bca218021
Reviewed-by: Martin Smith <martin.smith@digia.com>
2014-12-22 23:47:14 +01:00
Sérgio Martins
cd96a34d6d QColorDialog: Add missing accelerator key
Change-Id: Ibafe9f1bf36a8c19fb7f3f66e425db2e7d9f84ca
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2014-12-22 21:39:16 +01:00
Jørgen Lind
f9f54bc0e4 Add some missing nativeResourceForIntegration imlementations
The EglDisplay and the Display is normally a PlatformIntegration wide
resource

Change-Id: Ie5382a2a0b34fbe1c506b5134bf581afbd7f5d99
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
2014-12-22 21:38:35 +01:00
Sérgio Martins
66a8be2681 QColorDialog: Fix a few layouting issues.
Fixes combo-boxes being too big and some alignment issues
that were not present in Qt4.

See screenshot in JIRA task.
Tested with QT_SMALL_COLORDIALOG too.

Task-number: QTBUG-43501
Change-Id: I2aefb64be1c5f3c4894149d85e1a12c9c0cc3d62
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2014-12-22 15:46:47 +01:00
Timur Pocheptsov
c085382555 Revert "OS X: rename special menu items instead of duplicating"
This reverts commit 8c538d10da.
This patch, unfortunately, do not combine well with another
problematic code producing, as a result, a serious regression.
While the proper/better fix in Cocoa menu not found, I'm reverting
this patch.

Change-Id: I1ff03dbe12805da447cb3cfe3e2f231528bf1a16
Task-number: QTBUG-43471
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
2014-12-22 14:27:51 +01:00
Eskil Abrahamsen Blomfeldt
244da85d3b Android: Fix QTemporaryDir/File::nonWritableCurrentDir() tests
The /home path doesn't exist on Android, so it doesn't work as
a non-writable current dir. Instead we use /data on Android.

Change-Id: Ib779f60822da1bef421a16a00c1030245a8c5b90
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2014-12-22 09:28:05 +01:00
Eskil Abrahamsen Blomfeldt
4bee095069 Android: Fix QLoggingRegistry test
The qtlogging.ini file needs to be detectable by QFINDTESTDATA,
so we put it in a qrc file on Android.

Change-Id: I5fb0217098c56f2b2e99ab8d1642c4a7904b18d1
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2014-12-22 09:27:55 +01:00
Eskil Abrahamsen Blomfeldt
4fec0dca87 Android: Disable QLockFile test
This test requires building a console application first, deploying
this as part of the APK and then being able to execute the
bundled file from the main application. Since IPC is a limited
use case on Android, we just skip this test instead.

Change-Id: Ie68e495ff64b69e7027924291a411b5de0e2da76
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2014-12-22 09:27:49 +01:00
Eskil Abrahamsen Blomfeldt
ae55d3ea27 Android: Fix QIODevice tests
Test requires that tst_qiodevice.cpp is available on file system,
but since we're not able to deploy directly to the file system
on Android and since we want to actually test file system access,
we bundle it in qrc and copy it out during initialization.

Change-Id: Ida2b5bf6f1dcd43bc740a2b9380352bab5eb6c62
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2014-12-22 09:27:44 +01:00