Commit Graph

24386 Commits

Author SHA1 Message Date
Marc Mutz
b172e8e785 Mark QPixmapCache::Key as shared for Qt 6.
Change-Id: I37819cfd8a56d364336640146dbead2e1a454787
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-07-18 13:32:43 +00:00
Marc Mutz
648a496e5e QFileSystemModel: avoid sibling() calls
...by allowing to pass the column to the Private::index() overloads.

Because Private::index() always returns an index in column 0,
callers that needed a different column used QModelIndex::sibling()
to adjust the column of the returned index. But that calls
QAIM::sibling(), which calls both QFSM::index() and ::parent().

Simply allowing to pass the column number instead of hard-coding
0 avoids that heavy detour.

Change-Id: I8895b3d102d576ba291333cf61075b7263f96b9d
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: David Faure <david.faure@kdab.com>
2015-07-18 13:32:31 +00:00
Friedemann Kleint
ce7fb157f0 Tests: Do not rely on qCompare(bool, int,...).
The overload was added for NokiaX86 and RVCT and is bound for
removal.

Task-number: QTBUG-47260
Change-Id: Ic67cee8769847956e16cd0470ebcd663a9e98a40
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-07-18 10:36:17 +00:00
Alex Trotsenko
524ae251bb QIODevice: remove superfluous member
In current implementation, d->firstRead doesn't provide any
performance improvement.

Change-Id: I5d6e765a7d49cb546998b2c3e908e3c5600e70b1
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-07-18 09:05:55 +00:00
Marc Mutz
075769ca83 Introduce Q_DECLARE_SHARED_NOT_MOVABLE_UNTIL_QT6
... with classical semantics, meaning movable-come-Qt6,
and complex-until-then.

Whether or not we want a new flag for movable-except-
in-QList is an orthogonal question, and should not hold
back the slew of commits that introduce use of this
macro.

Change-Id: I3a6be08c314fcd7f3315af138625c38196debda5
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-07-18 06:20:34 +00:00
Marc Mutz
cdd2f8eb34 QtCore: Use Q_NULLPTR instead of 0 in smart pointer headers
This is in preparation of adding -Wzero-as-null-pointer-constant (or similar)
to the headers check.

Not caught by the headersclean check, because they are in template code.

Task-number: QTBUG-45291
Change-Id: I7294404225a19a1c58f91e6e47a9d650179ea83c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-07-18 06:20:23 +00:00
Marc Mutz
0aa5092576 QByteArray: document {const_,}{reverse_,}iterator
The reverse_ ones were missing, and the non-reverse ones
were marked \internal. But why should they not be documented?

Change-Id: I5ffbfc1def8dcac3f4a771883152ffbcca3d745d
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-07-18 06:20:17 +00:00
Marc Mutz
d660c4c8bf QDBusObjectPath: add ctor taking QString&&
The new constructor cannot be marked nothrow, because it calls
non-nothrow doCheck();

Change-Id: I4e5b33c58125091644573ed84e715c7fa946ae09
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-07-18 06:20:10 +00:00
Marc Mutz
1251273232 QDBusSignature: add ctor taking QString&&
The new constructor cannot be marked nothrow, because it calls
non-nothrow doCheck();

Change-Id: I732fac7a07d46a3ff3be0e4e56de72dd19090737
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-07-18 06:20:05 +00:00
Marc Mutz
3a961702f0 Mark some QCUPSSupport enums as primitive
They are held in QVariants. No need to allocate
them on the heap.

Change-Id: I7829acbed94fd5b37079df670b0aa2d09613c73c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-07-18 06:20:01 +00:00
Marc Mutz
98eef668e6 Mark QDBusSlotCache{,::Data} shared
The compiler-generated move operations are ok.

Change-Id: Iec0fed49d52ace5ca7dae2c7ee53d717a283f15a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-07-18 06:19:54 +00:00
Thiago Macieira
53ee7444d8 forkfd: use wait4 to get the process status instead of waitid
wait4 gives us the struct rusage contents for us, which may contain
interesting data for other users of forkfd (not Qt, though).

Change-Id: Iee8cbc07c4434ce9b560ffff13cb4aa28e18e790
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2015-07-18 02:25:23 +00:00
Thiago Macieira
10c529b08d Add a way for auxiliary threads to handle events without CoreApp
Long-lived threads started by Qt itself can now receive events even if
QCoreApplication hasn't been created. This is required in all threads we
start that will handle events, unless we're sure that the thread will
exit before the global application object begins destruction.

Otherwise, those threads will have race conditions dealing with the
event delivery system trying to call the QCoreApplication::notify()
virtual while the object is being destroyed.

Change-Id: I27eaacb532114dd188c4ffff13d4ad2a4bb443e6
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-07-18 02:24:59 +00:00
Thiago Macieira
9d98584a83 Make the event delivery go through some more static functions
This commit makes QCoreApplicationPrivate::checkReceiverThread,
notify_helper, and sendThroughObjectEventFilters be static functions,
since they only deal with global data or the parameters only.

Making notifyInternal would have been binary incompatible (it's called
from inline functions QCoreApplication::sendSpontaneousEvent and
QCoreApplication::sendEvent), so instead add a new static
notifyInternal2 and mark the older function deprecated and to be removed
in Qt 6.

Change-Id: I27eaacb532114dd188c4ffff13d59fe3b0661489
Reviewed-by: Albert Astals Cid <albert.astals@canonical.com>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-07-18 02:24:45 +00:00
Jake Petroules
01f800ae6f Add a macro to disable use of potentially dangerous QProcess APIs.
Change-Id: Id1ac19b1f4077ec2ea6f998883653e58ff77a8b6
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-07-17 21:14:28 +00:00
Marc Mutz
70d84f26bd QStyleSheetStyle: don't hold ButtonInfo in QList
ButtonInfo is larger than a void*, so holding them in a QList is needlessly
inefficient. Worse, the code could come to depend on the fragile property
of (inefficient) QLists that references to elements therein never are
invalidated.

Fix by holding it in QVector. Also reserve() the vector, even though we
can't tell the size exectly. It's a short-lived vector.

When appending, add an optimistic qMove().

I would have liked to use std::vector instead, but QRenderRule, thus
ButtonInfo, isn't nothrow-move-constructible, because of missing
move constructors on QBrush and QFont, among others.

Change-Id: I89164f4ed5745498093102f022a7ef32186e8045
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-07-17 18:22:16 +00:00
Giuseppe D'Angelo
7c46a96972 Remove a silly note from QFileDialog::getOpenFileNames documentation
I can't possibly understand the meaning of the note, especially
given the snippet. (However ,it has been there since Qt 3,
so perhaps it refers to some weird QValueList behavior?)

Change-Id: I952e9a7cb687b94cfccb927eb359b635804f4ade
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-07-17 18:22:09 +00:00
Thiago Macieira
ff44440651 Make CONFIG += c++11 by default not disable GNU extensions
Prefer -std=gnu++11 unless strict_c++11 is defined. You can enable
strict C++11/C++14 mode by using
   CONFIG += strict_c++

That is enabled for Qt's own code, so we we don't accidentally use GNU
extensions in portable code.

There's no support for strict C++98 mode (that is, the -ansi option).

[ChangeLog][qmake] By default, GNU extensions are now enabled with
Clang, GCC and ICC even in C++11 and C++14 modes. To disable the GNU
extensions, add to your .pro file: CONFIG += strict_c++.

Change-Id: Ib056b47dde3341ef9a52ffff13ef14de2169bef5
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-07-17 17:36:27 +00:00
Thiago Macieira
85ff351266 Revamp the CLOEXEC support in Qt
The pipe2/dup3/accept4 functions and SOCK_CLOEXEC are quite old nowadays
on Linux. They were introduced on Linux 2.6.28 and glibc 2.10, all from
2008. They were also picked up by uClibc in 2011 and FreeBSD as of
version 10.0. So we no longer need the runtime detection of whether the
feature is available.

Instead, if the libc has support for it, use it unconditionally and fail
at runtime if the syscall isn't implemented.

Change-Id: Ib056b47dde3341ef9a52ffff13efcc39ef8dff7d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-07-17 17:36:19 +00:00
Thiago Macieira
61e621def3 Remove unnecessary check from qt_safe_pipe: condition can never happen
FD_CLOEXEC is implicit for us, so no caller will need to set O_CLOEXEC.

Change-Id: Ib056b47dde3341ef9a52ffff13efcb635dea95f0
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-07-17 17:36:14 +00:00
Thiago Macieira
7331b15525 Add QTemporaryDir::errorString()
[ChangeLog][QtCore][QTemporaryDir] Added errorString() method that
returns the string explaining why creating the temporary directory
failed.

Change-Id: Ib306f8f647014b399b87ffff13f0a1f3c89e0a2c
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: David Faure <david.faure@kdab.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-07-17 17:36:07 +00:00
Thiago Macieira
5af7f7ec46 Make the -pkg-config and -force-pkg-config options be the same
There's really no difference between them, other than -force-pkg-config
skipping the check if the tool is even available and printing a warning.

Change-Id: I04cb83c6649ef73866a84032ea46093c4a00ce00
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-07-17 17:36:03 +00:00
Simon Hausmann
dcc301abfa Merge "Merge remote-tracking branch 'origin/5.5' into HEAD" into refs/staging/dev 2015-07-17 14:43:34 +00:00
Simon Hausmann
b2603b7665 Merge remote-tracking branch 'origin/5.5' into HEAD
Conflicts:
	src/plugins/platforms/windows/qwindowsopengltester.cpp

Change-Id: Ia7abeba9395ccf84e2fa81b91a5725a86dedb9fe
2015-07-17 16:35:42 +02:00
David Faure
5443da6c27 QFileDialog: add setSupportedSchemes and pass it along to the QPA.
This also finishes the implementation of the static methods which
were being passed a supportedSchemes argument but weren't using it.
Now they can pass it along to the QFileDialog instance, which then
passes it to the helper used by the QPA implementation of the file
dialog. The default implementation only supports local files and
can therefore ignore this, but other implementations can use this
argument to restrict the protocols allowed to the user.

[ChangeLog][Widgets][QFileDialog] Add supportedSchemes property.

Change-Id: I5235f70e785da1c06866a8355ef98f571890c4a2
Reviewed-by: Kevin Ottens <kevin.ottens@kdab.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-07-17 14:29:47 +00:00
David Faure
4e4b16dc17 Doc: fix punctuation and missing word in QFileDialog docu.
Change-Id: I7388eda21bcea755db07c8b9603ec4e5f521c2fd
Reviewed-by: Kevin Ottens <kevin.ottens@kdab.com>
2015-07-17 14:29:43 +00:00
David Faure
31a1b3df1d QtConcurrent example: remove unneeded explicit template type
I show this code during trainings and this explicit template type
just makes the line of code more complex than it has to be.

Change-Id: I294c65f48967e54c67d9c3b8e1de96c3c2495a5b
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-07-17 14:29:42 +00:00
Friedemann Kleint
4b8ba3c91a Fix sub test float of tests/auto/testlib/selftests/tst_selftests for MSVC 2015.
From MSVC 2015 onwards, MSVC formats floats using printf("%g") like
g++, so the fiddling of the expected output needs to restricted
accordingly.

Change-Id: I6e7f78e5e90f70886a8b2ef37c0fb9bf82b5e1a3
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
2015-07-17 14:15:19 +00:00
Friedemann Kleint
2fe56e37ed Polish the examples/widgets/mainwindows example.
- Introduce Qt 5 signals & slot syntax.
- Replace QSignalMapper used for the corner/area
  actions by a by a functor.
- Improve command line parsing.
- Reorder class declarations.
- Remove commented-out code.
- Use QDialogButtonBox in dialogs.
- Fix minor issues in code, use multi-argument version
  of QString::arg(), QDir::toNativeSeparators() to
  present file paths to the user, static method
  invocations.

Change-Id: I865c56639c74135b59740797e9a9dfbfca2e72b6
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-07-17 14:15:11 +00:00
Friedemann Kleint
7f77d4fcd5 tst_qprintdevice: Extend output.
Show the printer parameters using the new QDebug operator
for QPrintDevice for better error analysis in the CI.

Produces output:
Created printer *HP_Color_LaserJet_CM6030_MFP*:
QPrintDevice(id="HP_Color_LaserJet_CM6030_MFP", state=0, name="HP Color LaserJet CM6030 MFP", makeAndModel="HP Color LaserJet CM6030 MFP Postscript (recommended)", default, defaultPageSize=QPageSize("Letter", "Letter", 612x792pt, 2), supportsCustomPageSizes, physicalPageSize=(278, 396)..(907, 1296), defaultResolution=600, defaultDuplexMode=0, defaultColorMode=1, supportedMimeTypes=( "application/pdf" "application/postscript" "image/gif" "image/png" "image/jpeg" "image/tiff" "text/html" "text/plain"))

Task-number: QTBUG-47246
Change-Id: I5245d19ecf958a730a0288d5eff2d24fc3064a55
Reviewed-by: Andy Shaw <andy.shaw@theqtcompany.com>
2015-07-17 14:15:04 +00:00
Friedemann Kleint
fdb8ef6507 Polish the widgets/mainwindows/sdi example.
- Introduce Qt 5 signals & slot syntax.
- Use QCommandLineParser to obtain file arguments, factor
  out positioning into tile() function to be able to
  use it from command line and open/new slots.
- Merge MainWindow::createMenus()/createQToolBars()
  into MainWindow::createActions(), removing the need
  to store the actions as member variables.
  Use QMenu::addAction() for brevity.
- Use QIcon::fromTheme() to obtain system icons and use
  resource icons as fallback.
- Rewrite settings code to use
  QWidget::saveGeometry(), Widget::restoreGeometry() since
  saving size and position does not work well with multiple
  screens. Query the available size when determining
  the initial size instead of using hard-coded values
  for High-DPI screens.
- Fix minor issues in code, use multi-argument version
  of QString::arg(), QDir::toNativeSeparators() to
  present file paths to the user and and static method invocation.
- Fix snippet references accordingly.

Change-Id: I3ea0372bc7ff82247192f54620289352fb68d60f
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-07-17 14:14:56 +00:00
Friedemann Kleint
696ea2fff1 tst_qmimedatabase: Add some log output when running update-mime-database.
When running the test, one gets the impression that it hangs.
Add some debug output including time to show what happens.

Change-Id: Iac6b4f0518ecec62169bf2269a0a8ec9192da570
Reviewed-by: David Faure <david.faure@kdab.com>
2015-07-17 14:14:42 +00:00
Laszlo Agocs
756266d015 Map Shift+Tab to Shift+Backtab in evdevkeyboard
This mapping has to be done manually, like we do on Windows
for example.

libinput maps through xkbcommon, like xcb, so it is already correct.

Task-number: QTBUG-46845
Change-Id: I61f3f1160e2581aae2ef43cc260f191f6d344fec
Reviewed-by: Louai Al-Khanji <louai.al-khanji@theqtcompany.com>
2015-07-17 11:24:35 +00:00
Friedemann Kleint
26bcc0565f QDir::removeRecursively(): Retry file deletion with write permission set.
On Windows, having read-only files in a directory can cause removal
to fail. When file deletion fails, check on the permissions, set
write permissions and retry.

Split apart code paths by OS in tst_QDir::removeRecursivelyFailure();
deletion of the read-only directory on UNIX should still fail.

Change-Id: I36e54be5229a7b552e90fd5f42722b868fa0b6ee
Reviewed-by: David Faure <david.faure@kdab.com>
2015-07-17 11:06:28 +00:00
Friedemann Kleint
d6553d2cd8 Stabilize tst_QListView::batchedMode().
The test showed failures on OS X:

FAIL!  : tst_QListView::batchedMode() Compared values are not the same
    Actual   (ba.size()): 2
    Expected (3)        : 3
    Loc: [tst_qlistview.cpp(848)]

Use QTRY_COMPARE() to count the number of visible indexes with
a helper function instead of using hard-coded timeouts. Item 3
appears with a little delay on OS X.

Change-Id: I2fb2ff5ebdf9dbe85bdc79401375ad6f47b7b12b
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-07-17 10:30:39 +00:00
Kavindra Palaraja
99b94aadf8 Fixed typo in QObject docs.
The code samples seem to be using Qt::FindDirectChildOnly. Changed this
to Qt::FindDirectChildrenOnly.

Task-number: QTBUG-46383
Change-Id: I99b05e5e279bff8f799a09b0d7b02512fc73170b
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2015-07-17 04:27:14 +00:00
Thiago Macieira
2dbe90c248 forkfd: update the API to add a reading and closing function
Right now the two functions being added are just wrappers, but this will
allow us in the future to support FreeBSD and Linux's system calls that
do the equivalent of forkfd, but have slightly different semantics in
the actual getting of the information from the file descriptor.

See-Also: https://lkml.org/lkml/2015/3/12/1044
See-Also: http://www.freebsd.org/cgi/man.cgi?query=pdfork
Change-Id: Ia0aac2f09e9245339951ffff13c94acb5f4ff204
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-07-17 00:55:45 +00:00
Thiago Macieira
8485fe9af8 Don't complain about non-matching Qt versions in qwidget.cpp
Commit 5bf67f5f41 did it for qobject.cpp,
but I missed qwidget.cpp (I hadn't realized the test existed there too).

Change-Id: Ib056b47dde3341ef9a52ffff13eeceafcfc64893
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-07-17 00:55:35 +00:00
Thiago Macieira
0d9db5821c configure.bat: Search for icl.exe before cl.exe
The Intel compiler's compilervars.bat also puts the MSVC compiler in
PATH, so cl.exe was always being found first.

Change-Id: I72e524da10fb0e221c4530a3e5c1a4a347c3f878
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-07-17 00:52:57 +00:00
Thiago Macieira
78d8759b04 configure: Initialize variables for the EGLFS backends
Otherwise the information is missing from configure's output summary:

    EGLFS ................ no
      EGLFS i.MX6....... .
      EGLFS KMS .......... no
      EGLFS Mali .........
      EGLFS Raspberry Pi .
      EGLFS X11 .......... no

Change-Id: Iee8cbc07c4434ce9b560ffff13cb331778c70261
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-07-17 00:51:00 +00:00
Thiago Macieira
d0813bfa6a Update the list of compilers we are free of warnings with
I've tested with GCC 5, Clang 3.5 and 3.6 on Linux.

Change-Id: Ia0aac2f09e9245339951ffff13c87198f2e8aa35
Reviewed-by: Sérgio Martins <sergio.martins@kdab.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-07-17 00:50:04 +00:00
Thiago Macieira
769047fbc7 configure: properly quote the test name containing spaces
Such as "OpenGL ES 2.0"

Change-Id: Ib306f8f647014b399b87ffff13f15f58c84a12ae
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-07-17 00:49:09 +00:00
Friedemann Kleint
2a289d1947 Stabilize tst_QApplication::touchEventPropagation().
The test checks whether a child window receives
mouse events synthesizes from touch. Enlarge the child
window so that it fully covers the parent and move the
touch point a bit inside so that it is not affected
by window manager positioning issues.
Use QTRY_VERIFY.

FAIL!  : tst_QApplication::touchEventPropagation() 'widget.seenMouseEvent' returned FALSE. ()
     Loc: [/work/build/qt/qtbase/tests/auto/widgets/kernel/qapplication/tst_qapplication.cpp(2107)]

Change-Id: Ic08e68b1e547cc7148cd8994464fdc2a14ac507b
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-07-16 21:45:28 +00:00
Friedemann Kleint
a847c2cb61 Stabilize tst_QTouchEvent::touchBeginWithGraphicsWidget().
The test sends touch events to the root item at the top left
corner which fails if the views starts to scroll.
Make the view sufficiently large to prevent scrolling and align
at top left.

FAIL!  : tst_QTouchEvent::touchBeginWithGraphicsWidget() Compared values are not the same
     Actual   (((root->touchBeginCounter))): 0
     Expected (1)                          : 1
     Loc: [/work/build/qt/qtbase/tests/auto/gui/kernel/qtouchevent/tst_qtouchevent.cpp(1471)]

Change-Id: I357322ccc809ddb5cb587febf3c75cbe497e59d8
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-07-16 21:43:31 +00:00
Thiago Macieira
e9a7825cf7 Remove the ref-qualified versions of segments and normalized
They can't be ref-qualified if the QVersionNumber object doesn't actually
hold a QVector<int>, as the next commit will make it: for segments(),
there might not be a QVector to be moved; for normalized(), the common
case will be that there's no gain in ref-qualifying.

Change-Id: I4bfb8b8765a502c0de6aed693752217106e575a2
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2015-07-16 18:33:48 +00:00
Olivier Goffart
4e8adb4b7b QMainWindow: Remove dockwidgets from the floating tabs when plugging
Example on how to reproduce the bug with examples/widgets/mainwindows/mainwindow:

 - Select the option "Groupped Dragging" from the "Main window" menu
 - Drag and drop dock widget so there are at least three of them in
   the same group of tabs (for example red, black, and green)
 - Drag the tab bar of one of them outside to make it floating
   (for example black)
 - Drag away the group of two remaining tabs to make them floating
 - Drack back the floating-alone (black) dock widget somewhere
   back inside the main window.
 => The black dock widget is tabbed with the other instead of being
    where we put it

That's because it was still inactive (skipped) in the tab group.

Task-number: QTBUG-47209
Change-Id: I84ac33d4ca1df0381c6007486b41830bd7be99a8
Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
2015-07-16 15:06:02 +00:00
Friedemann Kleint
3e34484a3f tst_qaccessibility: Add message in case fuzzy comparison of QRect fails.
Change-Id: I815dc5e79c539b384793bf3573f6149240cf0390
Reviewed-by: Mitch Curtis <mitch.curtis@theqtcompany.com>
2015-07-16 13:29:41 +00:00
Marc Mutz
b31923c5e5 QStyleSheetStyle: mark QRenderRule and ButtonInfo movable
Because they are.

Change-Id: Iab029e4b120f10efc99d62960b88fbba7603cc1b
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-07-16 13:25:14 +00:00
Marc Mutz
a3f780b4a1 QCommandLineOption: prevent aggressive inlining
Even though we expect very few option names, GCC unrolls the
loop calling IsInvalidName::operator() four times. Together
with the lead-in/lead-out for size() % 4 != 0, that makes
for five inlined copies of the function call operator.

I don't know how to prevent the unrolling, but at least I can
stop the inlining.

Change-Id: Ib9d6c33e8193464a73927a92b8b54c3452cb26a3
Reviewed-by: David Faure <david.faure@kdab.com>
2015-07-16 13:24:23 +00:00
Marc Mutz
c3597c3fcf QCommandLineOption: never inline the warning function
We suppose that this function will never be called, yet the
compiler still inlines it in all four places.

Stop it.

Change-Id: If601bc3644cacb77aeab9d615578e4afb349a73e
Reviewed-by: David Faure <david.faure@kdab.com>
2015-07-16 13:24:16 +00:00