Commit Graph

15175 Commits

Author SHA1 Message Date
Lars Knoll
bd4a19963e Respect contents margins when calculating the size hint
Without this part of the calendar widget get cut off when put
in a layout and the contentsMargins are non zero.

Task-number: QTBUG-40352
Change-Id: I9ce90476c59c270d92e876a5dc81ea8ce325848c
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@theqtcompany.com>
2014-10-22 07:23:37 +02:00
Paul Olav Tvete
c5bc66df2f Respect minimum size of heightForWidth layouts
Since we cannot support heightForWidth constraints on toplevel
windows, it is impossible to solve this perfectly: if the
window is resizable at all, the user will be able to resize it
too small. Our old solution was just to give up and allow
completely free resizing, even down to 0x0. This makes
very little sense. It is clearly better to use the minimum
size that we have already computed, even though it is not
perfect.

This reverts a behavior change introduced in commit
36e9516f85fbb9c9a236f5ca034d5a0126d86c12 (September 9th, 2002)

[ChangeLog][QtWidgets][QLayout] Widgets and dialogs containing
layouts with heightForWidth (such as a label with word wrap)
will no longer get a minimum size of 0x0.

Task-number: QTBUG-37673
Change-Id: If26b7ef9c80edbf9d54c6519b36646df408b7652
Reviewed-by: Jan Arve Sæther <jan-arve.saether@theqtcompany.com>
2014-10-22 07:23:28 +02:00
Timur Pocheptsov
2fcc88d021 OS X: drag and drop and auto-scrolling
Cocoa sens periodic drag updated events even if there is no
actuall mouse movement (or any other updates).
This breaks animations in different
views/widgets supporting our own auto-scroll (done with timers).
This patch kindly asks Cocoa _not_ to send us these events.

Task-number: QTBUG-32761
Change-Id: I5dad4ceb0a490e2f3cb34a806a5bdb1045b4dac3
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-10-22 06:59:57 +02:00
Friedemann Kleint
963037d86b Fix helper function call in QWindowsVistaStyle::pixelMetric().
Task-number: QTBUG-41944
Task-number: QTBUG-40277
Change-Id: I1da9ffddce8edfcaa87d27058ed73ac7ec63d081
Reviewed-by: Adam Light <aclight@gmail.com>
Reviewed-by: Alessandro Portale <alessandro.portale@digia.com>
2014-10-22 06:23:47 +02:00
Friedemann Kleint
7614d734c4 Windows: Implement Qt::WA_ShowWithoutActivating.
Set dynamic property for all platforms and query it
in QWindowsWindow::show_sys().

Task-number: QTBUG-19194
Task-number: QTBUG-34504
Change-Id: I4199a2ed835d3de928405d470a81c54da93cc768
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-10-22 06:22:36 +02:00
Friedemann Kleint
ab556d6b32 Fix height of combo popup when the list view has non-zero spacing.
QListView::spacing() is the space around the item (layout margin),
so the effective spacing is twice as big.
This differs conceptionally from QTableView, which has a spacing of 1
and a line on top/bottom. Split up QComboBoxPrivateContainer::spacing()
into functions return spacing and top/bottom margins to reflect this.

Task-number: QTBUG-37865
Change-Id: I1ff812e7856e00a53f1119ef3304956cbb7cbfca
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
2014-10-22 06:21:54 +02:00
Laszlo Agocs
1a097dc139 eglfs: Do not flush input events when updating the cursor
Task-number: QTBUG-42079
Change-Id: Ica806a090db74b4a1c34421334a28d7efd002b35
Reviewed-by: Jonathan Liu <net147@gmail.com>
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
2014-10-22 05:53:54 +02:00
Morten Johan Sørvig
dafd1ffa2c QPA: Flush window system events with flags.
Add a QEventLoop::ProcessEventsFlags argument to
flushWindowSystemEvents(). This gives the platform
plugins more control over which events to flush.

Task-number: QTBUG-39842
Change-Id: Id9c01948b22e297b22503d38ec4e726f9f880fd5
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Reviewed-by: Jonathan Liu <net147@gmail.com>
2014-10-22 05:53:15 +02:00
Lars Knoll
42bdbed7ce Correctly apply miter limits when stroking lines
The PDF generator was in many cases not correctly
applying miter limits to the generated strokes leading
to drawing artifacts for very sharp edges.

Task-number: QTBUG-37903
Change-Id: Ie93b0f4a56775729105a375ba3bcdb5b58993433
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-10-21 08:42:23 +02:00
Lars Knoll
90a4c69b25 Produce more correct clip path for QGraphicsShapeItem
If no pen is set on the item, we can completely ignore the
pen for the creation of the items shape. This both speeds
up the creation of the shape and applying it as a clip mask
as well as creating more correct results.

Task-number: QTBUG-32846
Change-Id: I5f6f690256c71309713d8f746e67599af3088dd7
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-10-21 08:42:12 +02:00
Timur Pocheptsov
dc267036e3 OS X: Retina displays and blurry QToolButton
Checkable QToolButton has a special pixmap in the background,
painted with a 'smooth pixmaps' hint. This hint also affects
how an icon on a toolbutton itself is painted later. The difference
can be quite visible on a Retina display, so this patch makes the toolbutton's
image always look the same in checked/unchecked state.

Task-number: QTBUG-35162
Change-Id: I2adc8006371fa10d89d4b77da6b3aa168aa5abc8
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-10-21 07:36:57 +02:00
Timur Pocheptsov
ae5f3df59b OS X - unified toolbar and AA_NativeWindows
In some cases QToolBar creates a child window (a child borderless NSWindow)
placed on top of the toolbar's  main window. As a result it's not possible
to drag this main window using its toolbar - the window "jumps" on the screen.
The reason is quite subtle - QNSView -handleMouseEvent: uses
[NSEvent mouseLocation] and this location is invalid:

- we have an NSWindow (parent)
- we have a child NSWindow ([parent addChildWindow:child ....]
- we handle drag event in a child window
- we move a parent window as a result of drag event
- Cocoa also moves a child window for us
- when handling the  next drag event, location [NSEvent mouseLocation]
  differs from the real event's location.

Task-number: QTBUG-40106
Change-Id: Ic68cb92ab4233a1e0746b478820c1e33fd37a462
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-10-21 07:36:34 +02:00
Timur Pocheptsov
a6ebc9b34a OS X - maximize app's window from the Dock or using cmd-tab
On OS X it's possible to maximize app's window by clicking on an app's
icon in the Dock.
Another trick is to use cmd-tab to select an app +,
while still holding the 'cmd' key, press the 'option' key -
this should also maximize a window.
None of these works at the moment, and to enable these features app
delegate should return YES from the

-applicationShouldHandleRepopen:hasVisibleWindows:.

method.

Task-number: QTBUG-40084
Change-Id: I33ba9e74d55d41d23deb429612519b746d461d9e
Reviewed-by: Timur Pocheptsov <Timur.Pocheptsov@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-10-21 07:34:56 +02:00
Friedemann Kleint
6c7a348cf8 Set correct transient parent in q_createNativeChildrenAndSetParent().
Fix warning:
void QWindow::setTransientParent(QWindow*) ... must be a top level window.
which occurred for example when parenting a QMenu onto a native child
widget.

Task-number: QTBUG-41898
Change-Id: Icc25fb2108bd68b2d9c0e551949b90fc7a82d358
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-10-21 06:30:15 +02:00
Lorn Potter
520b10be4c Add better mobile connections to QtBearer NetworkManager backend.
Task-number: QTBUG-41807

Change-Id: Ifb5904d4887111416b4bb1a32d6d056029186f5c
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
2014-10-21 01:01:12 +02:00
Lorn Potter
151061ad4a update QtBearer NetworkManager backend API
Task-number: QTBUG-41747

Change-Id: Idb4afea0215b94957a11895c7db97a72ae680804
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
2014-10-21 01:01:06 +02:00
Josh Faust
929d6d6b9b Fix ShortcutOverride for QtQuick on OSX
tryShortcutOverride on OSX gets called via
QWindowSystemInterface::tryHandleShortcutEvent. This change
fixes that to use the QWindow's focus object.

Task-number: QTBUG-32928
Change-Id: I51beb774e1fb91e0d8e2c12d087176d917357311
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
2014-10-20 14:23:25 +02:00
Tor Arne Vestbø
ae89aa330f logging: Fix qCleanupFuncinfo to not mangle Objective-C message names
Change-Id: I823566ba72668c611d225aa92c4d09a53cabe8fc
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2014-10-20 13:34:37 +02:00
hjk
0c71cbea54 Add a hint on application window positioning with QProcess::start
Task-number: QTBUG-30999
Change-Id: I65c80917c9bad067bb7d8e69e2431dd1c4886b08
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
2014-10-20 12:47:25 +02:00
Leena Miettinen
2679c5f7e0 Doc: add info about letter spacing type to function desc
Task-number: QTBUG-41222
Change-Id: I18168dfa503feac07ee1b7bc349b9f14b7351518
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2014-10-20 11:59:31 +02:00
Leena Miettinen
9dc246c5cc Doc: removed unnecessary text
Added some commas.

Task-number: QTBUG-41928
Change-Id: I52ad75f895f41b109f0496863930ffaa1650447c
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Nico Vertriest <nico.vertriest@digia.com>
2014-10-20 11:45:12 +02:00
Tor Arne Vestbø
e260e1bcae Always report focusObjectChanged on QWidget::clearFocus()
The focusObject() of a QWidgetWindow is based on the focusWidget() of the
top level widget of the window, which is resolved through the focus_child
chain of the widget. This is not the same thing as the focusWidget of the
application. The hasFocus() function of a QWidget queries the latter, so
we can't put the focusObjectChanged signal inside hasFocus() when we
unconditionally clear the focus_child chain (and hence the focusObject)
earlier in the function.

Change-Id: Iae39da5d6031d22b21e9dc9f18e5fe6e6fd11a5c
Reviewed-by: Jan Arve Sæther <jan-arve.saether@theqtcompany.com>
2014-10-20 11:42:59 +02:00
Tor Arne Vestbø
0f98d36ff6 Clear specific QWindow::focusObject() on QWindowPrivate::clearFocusObject()
The focusObject of a QWidgetWindow is the focusWidget() of the top level
widget, so when clearing the focus object of the window we should clear
focus of the same focusWidget, not the application-wide focus widget,
which may live in another window.

Change-Id: Ib9162418865c225e23aac7987e119b3b651983eb
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2014-10-20 11:42:48 +02:00
Tor Arne Vestbø
3ab4e869e2 iOS: Don't auto-activate popup windows unless they are standalone
We try to emulate a traditional window manager by activating windows
on touch press (before delivering the event), and on showing/hiding
windows, but this logic should not apply to popup windows (including
tooltips and tool windows), as they are in most cases already active
through their parent or transient parent, and should not steal keyboard
focus and bring the virtual keyboard down.

Change-Id: If10082bd48cdf1a9e1c41d8809066e86dafd7ffc
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2014-10-20 11:42:30 +02:00
Tor Arne Vestbø
31e987f8f0 iOS: Remove unused and duplicated functions from QIOSWindow
Change-Id: I29a2345bddc9ec9577bdc398e4df9914406e5367
QIOSWindow::windowType() is the same as window()->type()
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2014-10-20 11:42:20 +02:00
Tor Arne Vestbø
e7239e1ce3 iOS: Fade out statusbar when scrolling view due to VKB
Change-Id: I86923a2b2aa2d17d79ba3a11cabf37e615eaf4cc
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2014-10-20 11:42:10 +02:00
Tor Arne Vestbø
cc1058a278 iOS: Move UIView helpers to once place
Change-Id: I9e20d23ad813503ea5c6bef3303ebc0f6b9e99cd
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2014-10-20 11:42:01 +02:00
Alex Blasche
cc73cc9a4c Remove old Trolltech feature string from QXmlSimpleReader docs
This makes it even more unlikely that anybody uses them.

Change-Id: I6b3a3902687a7fcde2d771617837f738001eeb0a
Task-number: QTBUG-25023
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-10-20 11:24:59 +02:00
Paul Olav Tvete
1fe8a708cb Android: deadlock avoidance
This change adds deadlock protection to all places where we lock
one thread while waiting for the other to do something. If we
detect that the other thread is going to block, we abort the
operation. This could cause unexpected problems, such as painting
errors, text input errors, or even crashes, but the alternative is
a guaranteed deadlock.

Task-number: QTBUG-41369
Change-Id: I2627a955cfafc4bce54eb9d0d38e19b768b06956
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
2014-10-20 10:23:47 +02:00
Paul Olav Tvete
1faba97683 Delay showing keyboard until application is active
Android starts asking lots of questions when the software keyboard
pops up, so let's wait until the application is initialized. This
works around a deadlock on startup.

Task-number: QTBUG-41369
Change-Id: I1c79e32d08c7cc11748ec55efbff3bc25e40f4b2
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
2014-10-20 10:23:41 +02:00
Mitch Curtis
096d0ef02b Correct QPainter::clipPath() documentation.
Change-Id: Ie8ea01eee23e28378eadca0e87dc89fd62aec14f
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
2014-10-20 10:13:43 +02:00
Jocelyn Turcotte
c762c8accc Remove QOpenGLContextPrivate::globalShareContext
This has previously been replaced with qt_gl_global_share_context
and all using code has been ported to the new name at this point.

Change-Id: I13832f583456891dd057a7b414f45ec3e83f5698
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-10-20 10:11:31 +02:00
Jørgen Lind
c231694949 Fix QOpenGLWindow tests when devicePixelRatio != 1
Change-Id: I83d71de8b9d735cd649a6c514e41a9ff23625005
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-10-20 10:11:25 +02:00
Marc Mutz
9dcc38b566 QEasingCurve: fix mem leak in operator>>
The code ignored that the QEasingCurve passed in to op>>
might already have a QEasingCurveFunction set, overwriting
it with a new pointer without deleting the old.

Change-Id: Ic14cf7e4b97c7c8c7edb64cde08fbf22c07ac8f3
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2014-10-19 13:18:18 +02:00
Marc Mutz
ef1027b824 qdatetime.h: include correct header
QExplicitlySharedDataPointer is defined in qshareddata.h, not qsharedpointer.h.

Change-Id: If81f6615681068a8e8c38817044ea3a0433c42ab
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-10-19 13:17:24 +02:00
BogDan Vatra
c5b0308dc5 Android: Update Ministro's requirements.
Task-number: QTBUG-41968
Change-Id: Ia0c204dd87b9de3cbb7bb388099c435b855ad4d5
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2014-10-19 11:38:33 +02:00
Richard Moe Gustavsen
e5f48c63d2 Widgets: only update IM if the widget is the current focus object
QInputMethod works on focusObject, not focusWidget. These two
are not always the same, and sometimes the focusObject is also
NULL. In either case, we should not tell QInputMethod to
commit, reset or otherwise emit signals based on the internal
state of widgets that are not the focus object.

This led to a crash on iOS, since we got a call to
cursorRectangleChanged when focus object was NULL, which
the code didn't (and shouldn't need to) take into account.

Change-Id: I54e40d7ec35210ba6599a78c5a8c7f982a1c3dbb
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2014-10-19 09:57:45 +02:00
Marc Mutz
32dfbd6dbf Add qHash(QSslError) overload
qsslsocket_winrt.cpp defined it locally, which runs the risk of
clashes with a potential user-defined qHash(QSslError), so
make it public.

Also included both .error() and .certificate() in the hash, as
both of these are used to determine equality (the WinRT version
only used .error()).

[ChangeLog][QtNetwork][QSslError] Can now be used in QSet/QHash.

Change-Id: Ieb7995bed491ff011d4be9dad544248b56fd4f73
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
2014-10-19 07:32:41 +02:00
Marc Mutz
e8bdc949fc Add qHash(QSslCertificate) overload
qsslsocket_winrt.cpp defined it locally, which runs the risk of
clashes with a potential user-defined qHash(QSslCertificate), so
make it public.

Also, the implementation in qsslsocket_winrt.cpp simply hashed
the handle(), which violates the principle that equal instances
must hash to the same value. Also, for some platforms, the
implementation returns nullptr unconditionally, which, while not
violating the above-mentioned principle, will make all users of
the hash have worst-case complexity.

To calculate a meaningful hash, therefore, the certificate needs
to be inspected deeper than just the handle.

For OpenSSL, we use X509::sha1_hash, which also X509_cmp uses
internally to determine inequality (it checks more stuff, but
if X059::sha1_hash is different, X509_cmp() returns non-zero,
which is sufficient for the purposes of qHash()). sha1_hash may
not be up-to-date, though, so we call X509_cmp to make it valid.
Ugh.

For WinRT/Qt, we use the DER encoding, as that is the native
storage format used in QSslCertificate. This is not equivalent
to the implementation used in qsslsocket_winrt.cpp before, but
since handle() == handle() => toDer() == toDer(), it should not
be a problem.

[ChangeLog][QtNetwork][QSslCertificate] Can now be used as a key in QSet/QHash.

Change-Id: I10858fe648c70fc9535af6913dd3b7f3b2cf0eba
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
2014-10-19 07:32:37 +02:00
Marc Mutz
adadb5e870 QSizePolicy: remind to mark as Q_PRIMITIVE_TYPE in Qt 6
Change-Id: I1f18b4cd99f37aadf199e70d3acade9c8f5f9799
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-10-19 07:32:21 +02:00
Richard Moe Gustavsen
e57153b082 iOS: ensure we have a valid focusObject before sending it IM events
Should not really happen, but since we don't store the focus
object given to us, we should do a check.

A crash was seen from this when running the "Application"
example for widgets.

Change-Id: I9c4121766d7028a4eceede7d7b15c8c53d34e16e
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2014-10-19 00:57:29 +02:00
Richard Moe Gustavsen
0ed65a6513 iOS: ignore sender of actions for edit menu
The reason is that the sender is sometimes 'NULL', so
we cannot rely on it. But the current test with our
prefix should suffice.

Change-Id: Ie58bf062cbade08feda622bda753d63e1d811a8d
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2014-10-19 00:56:18 +02:00
Richard Moe Gustavsen
3797ee7747 CoreText font database: Use dynamic type on iOS to resolve theme fonts
Use Dynamic Type to resolve theme fonts, so that we get the
correct font sizes and styling based on user preferences
in Settings app.

Change-Id: I2222199a5ba21badb2e3696993eee503e720c476
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2014-10-19 00:56:04 +02:00
Richard Moe Gustavsen
fc567acefb iOS: ensure edit menu works on iOS6
Method "- (id)targetForAction:(SEL)action withSender:(id)sender" is
only available from iOS7. So change implementation to use
whats available on iOS 6.

Change-Id: I4e21495073364e83ef396dfab47a7ea2a23bbead
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2014-10-19 00:55:49 +02:00
Dyami Caliri
1cfd457826 OS X: Emit QClipboard::dataChanged when activating application
The QClipboard documentation states that on OS X it will emit
dataChanged() when activating the application, if the system clipboard
had changed. It wasn't doing this in Qt5.

Task-number: QTBUG-34941
Change-Id: I7f34e757876757691f0a6c94dd2ae76a60146291
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2014-10-18 18:35:49 +02:00
Gabriel de Dietrich
59ebcdc540 Merge "Merge remote-tracking branch 'origin/5.3' into 5.4" into refs/staging/5.4 2014-10-18 13:24:33 +02:00
Gabriel de Dietrich
cb2e65eea2 QMacStyle: Fix QSlider appearance on Yosemite
First, we adjust the min and max positions, which HITheme has been
unable to render properly for years. This involves separating the
knob and track rendering. Also, on Yosemite, the tickmarks-less
slider shows a blue progress fill in the track, on the knob's left
side. Finaly, and this is valid for all versions, the tickmarks are
being drawn before the knob (or the whole slider for OS X versions
before 10.10)

Change-Id: I6fce2e298a80858a18fd9fe1e799b65265a8aefd
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-10-18 13:24:21 +02:00
Gabriel de Dietrich
8dd15fd955 QMacStyle: Add optional block parameter to drawNSViewInRect()
In some cases we want to do something different than just calling
- [NSView drawRect:].

Change-Id: I7db704daa39611f33f270b0192c4301de62ec1bf
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-10-18 13:24:13 +02:00
Alexander Volkov
4de382f4a2 Make font hinting and antialiasing size dependent when using FontConfig
Add the pixel size of the font to the search pattern to get size dependent
font settings. This patch allows to take into account KDE settings for
font sizes which should be excluded from antialiasing.

Change-Id: I8bd8b7b3d585009d0a39db631cd02b7970537f5c
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
2014-10-17 22:48:37 +02:00
Mitch Curtis
06e706bdbb Fix QAbstractListModel's detailed description.
Change-Id: I3f3e6b9d4e021620505c03458e78856326dcd859
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2014-10-17 22:14:00 +02:00
Christian Strømme
3d94a564f4 Android: Improve cache logic in findClass()
This change adds guards to ensure that we only do a class
look-up once when calling QJNIEnvironmentPrivate::findClass().
IF someone calls findClass() with an environment that does not contain
a "valid" class loader, we should fallback to loadClass(),
but only once.

Change-Id: If5fc82956db889f3269bb33c98a16c49cae55def
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
2014-10-17 14:58:23 +02:00
Topi Reinio
cf8f369f85 Move Qt Core examples under a common subdirectory
Qt Core examples were scattered into several subdirectories under
qtbase/examples. This caused an issue with the example manifest
file generated by QDoc; it expects to find all examples under a
common directory in order to produde correct paths to the example
.pro files. Qt Creator will not find the examples without a valid
manifest file.

This change moves the examples and edits the documentation files
accordingly.

Task-number: QTBUG-41963
Change-Id: I51d86782e0ba21c5c9bae5f15401ec774abe5cf8
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
2014-10-17 14:57:13 +02:00
Marc Mutz
45485d9eb4 Fix undefined behavior in QLoggingRegistry::defaultCategoryFilter()
Report by asan:

  READ of size 2 at 0x00000041dd40 thread T0
    #0 0x2af097b84da6 in QLoggingRegistry::defaultCategoryFilter(QLoggingCategory*) (lib/libQt5Core.so.5+0x566da6)
    #1 0x2af097b8387b in QLoggingRegistry::registerCategory(QLoggingCategory*, QtMsgType) (lib/libQt5Core.so.5+0x56587b)
    #2 0x4067f7 in tst_QLogging::QLoggingCategory_categoryName() tests/auto/corelib/io/qloggingcategory/tst_qloggingcategory.cpp:238
    <snip>

  0x00000041dd41 is located 0 bytes to the right of global variable '*.LC115' defined in 'tests/auto/corelib/io/qloggingcategory/tst_qloggingcategory.cpp' (0x41dd40) of size 1
    '*.LC115' is ascii string ''

At face value, memcmp("", "qt", 2) should not return 0, but since
the code invokes undefined behavior, the compiler can do whatever
it wants, including returning 0 here, further proving the fact
that there are *no* benign cases of undefined behavior.

Change-Id: I0c38622c47d1dcea450ea549370be1673b47b18d
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2014-10-17 14:56:07 +02:00
Friedemann Kleint
db069e7f30 XCB: Always set X window attributes in QXcbWindow::setWindowFlags().
QDockWidget and QToolBar set the Qt::BypassWindowManagerHint window flag
when unplugging and clear it in the endDrag() methods. This does not have
any effect since the attribute is not taken into account in
QXcbWindow::setWindowFlags(). Change the method to always set the attributes,
which should also make it possible to set/clear Qt::WindowTransparentForInput.

Task-number: QTBUG-41189
Task-number: QTBUG-38964
Change-Id: Id9eddc642489d18f44c7597f8fc1a1df71971306
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
2014-10-17 14:56:05 +02:00
Kai Koehne
16df1ad322 Export QFSFileEngine symbols
Although it's private API the symbols are used e.g. in the
Qt Installer Framework.

Change-Id: I557d3b86dbf87cb1b712bae09c3e8fecf6f15e67
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-10-17 14:55:59 +02:00
Friedemann Kleint
0368b24a7f QSettings: Prevent assert when passing empty keys.
[ChangeLog][Important behavior changes][QSettings]
QSettings::value() now returns an invalid QVariant
when passing an empty key. The code path ran into
an assert, which was only noticeable in debug
builds.

Task-number: QTBUG-41812
Change-Id: I5cc32be3aa267a132e9d6639ecd6cb0bbafc15b0
Reviewed-by: Stéphane Fabry, Cutesoft <stephane.fabry@gmail.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-10-17 14:55:45 +02:00
Alexander Volkov
1b8c5f450b xcb: Fix a type of variables for xkb modifiers masks
Change-Id: I05c7c6a649a55fc0648b1cb84e1c402160c9d998
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
2014-10-16 21:51:31 +02:00
Alexander Volkov
50398708cd Accessibility Linux: Make a full copy of a key event
Otherwise native values (scan code, modifiers, virtual key) of the key event
will be lost if an event listener is registered.

Change-Id: I5eebb1f91ad7de6801f7efb0bf0891c4430f9cf5
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
2014-10-16 21:51:05 +02:00
Alexander Volkov
e8e1616cf2 Reduce code duplication in QFontconfigDatabase
Extract common part from fontEngine() methods to setupFontEngine().

Change-Id: Id4aee43b2a477f9fd40dc564d96a2335bfde9e22
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
2014-10-16 21:49:21 +02:00
Alexander Volkov
d904533acb xcb: Don't return 0 as a possible key for a shortcut
QXcbKeyboard::keysymToQtKey() may return a value of 0 for keysyms
that are not supported by Qt (e.g. for XK_ISO_Next_Group).
It is then translated to an empty QKeySequence which in turn is
detected as a partial match for any shortcut.
The behavior of QShortcutMap::nextState() becomes broken because
it sets current state to QKeySequence::PartialMatch while there is
no match at all.

Task-number: QTCREATORBUG-9589
Change-Id: I1e2a4511a876dfa418db9906d10382255a2e4d62
Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
Reviewed-by: Sergey Belyashov <Sergey.Belyashov@gmail.com>
2014-10-16 21:49:02 +02:00
Laszlo Agocs
6d1c4c8862 Avoid breaking BC with new virtuals in QOpenGLPaintDevice
Task-number: QTBUG-41046
Change-Id: Iab628d2d6811d528e2cc513b6f8a74baa628541d
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
2014-10-16 21:47:29 +02:00
Friedemann Kleint
a4ac4b3263 QWindowsGuiEventDispatcher: Register timers in constructor.
Port change 3716a76704273fdbe5ad4ec978438daeda606c26 (Qt 4)
to Qt 5. Enforce the creation of the internal window
and registering of timers in the event dispatcher constructor
for GUI applications instead of delaying it to processEvents()
is called. Move the call to virtual wakeUp() out of
createInternalHwnd().

Task-number: QTBUG-40881
Change-Id: I82a4748897da140a39feff882c75ad5ac6155148
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-10-15 15:16:38 +02:00
Friedemann Kleint
7095cdabc9 QTestLib: Remove valgrind version check.
Version 3.3 is now assumed to be widely available.

Task-number: QTBUG-41453
Change-Id: I453ce26d170b2bbb8179ddf4b91155ddd3e6379a
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
Reviewed-by: Jason McDonald <macadder1@gmail.com>
2014-10-15 15:16:29 +02:00
Topi Reinio
65b563fe57 qdoc: Fixed recursion of \sincelist command handling
QDoc uses a recursive method of resolving all the classes, QML types,
properties, functions etc. added since a specified Qt version.

The code entered the next level of recursion only if its parent had
set a \since version, which was not always the case.

Task-number: QTBUG-41862
Change-Id: I3803ed9ffa472165754358f3906955430a893de1
Reviewed-by: Martin Smith <martin.smith@digia.com>
2014-10-15 14:47:27 +02:00
Jan Arve Saether
648623ff23 Consolidate how contentDescription is calculated.
Previously, the behavior was different depending on if the
contentDescription was calculated as a result of an event, or if it was
calculated as a result of hierarchy traversal.
Refactor the functionality into one single function that will be used in
both scenarios.

'contentDescription' will now receive its value from one of the following
sources, listed in prioritised order (QAI == QAccessibleInterface):
1. QAI::text(QAccessible::Name)
2. QAI::text(QAccessible::Description)
3. QAI::text(QAccessible::Value)
4. QAI::valueInterface()->currentValue()

Change-Id: I2e4958a1e95b5f20d01da37c23ecbc09842360bc
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
2014-10-15 14:24:46 +02:00
Oswald Buddenhagen
29ad07d0a4 Avoid sleeping 100ms in QProcessPrivate::drainOutputPipes()
There is no point in waiting 100 milliseconds after each iteration, as
all data that we may possibly read will be already in the pipe. We only
need to give the notifier thread a chance to inform us, which is best
achieved with a yield.

Task-number: QTBUG-41282
Change-Id: Id654b688246508494a5549c11900f9ad2957f192
Reviewed-by: Alessandro Portale <alessandro.portale@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2014-10-15 13:44:17 +02:00
Tor Arne Vestbø
3edce263fb Prevent 'recursive' update events when calling QToolButton::setMenu()
Commit bb3d2ca9f1 (QToolButton: properly reset the size hint when a
menu is set on it) didn't take the case of re-setting the same menu
into account, and the result was that we would unconditionally cause
an update, resulting in the following backtrace again and again, as
each posted update event was processed by the event loop:

    frame #0: QToolButton::setMenu(this=0x7af59500, menu=0x00000000)
    frame #1: QToolBarLayout::setUsePopupMenu(this=0x7ae65a30, set=false)
    frame #2: QToolBarLayout::checkUsePopupMenu(this=0x7ae65a30)
    frame #3: QToolBarAreaLayoutLine::fitLayout(this=0x78e5f870)
    frame #4: QToolBarAreaLayoutInfo::fitLayout(this=0x790be278)
    ...

Besides consuming needless CPU time this also uncovered a case on iOS
where Qt would starve native events and animations from being processed,
preventing eg. rotation animations from running.

Change-Id: Ib6bd4ba21d8e84ca73fb0a75b598016dbd9ae0fd
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2014-10-15 13:34:30 +02:00
Morten Johan Sørvig
f5cf06f4af Cocoa: Send obscure events on OcclusionStateHidden
This disables animations for windows that are
completely obscured by other windows.

On examples/quick/animation, obscured CPU usage goes
from 10% to 1%.

Change-Id: I9945431e6387e406e2064c08d5aa01d5d96ef602
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
2014-10-14 18:15:04 +02:00
Laszlo Agocs
ebc835c2aa Fix QOpenGLWidget on Cocoa when used as viewport
Having a QOpenGLWidget as a graphics view viewport was not functioning
on OS X: it was showing incomplete content due to accessing the texture
attached to the framebuffer object before the rendering is complete.

On the normal path, when rendering is done via paintGL(), the flush was
there. When used as a viewport however, this path is not used. The missing
flush is now added for the other case too. For performance reasons, we will
not flush on every paint engine end(). Instead, the flush is deferred until
composition starts.

QGLWidget also featured a weird on-by-default autoFillBackground concept. To
maintain compatibility with apps that used QGLWidget as the viewport for
QGraphicsView, we will now do the same for QOpenGLWidget, but only when it
is used as a viewport. For regular QOpenGLWidgets autoFillBackground defaults
to false, like for any other widget. The docs are extended with a small section
about differences between QGLWidget and QOpenGLWidget.

Task-number: QTBUG-41046
Change-Id: I42c2033fdd2ef5815783fd640fe11373761061e0
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
2014-10-14 18:14:52 +02:00
Frederik Gladhorn
b55a688b61 Merge remote-tracking branch 'origin/5.3' into 5.4
Change-Id: Ic01820f2390e419a5b286643e7351e85ae032473
2014-10-14 13:54:50 +02:00
Eskil Abrahamsen Blomfeldt
4bf0660ae4 Make QStringRef::right() consistent with QString::right()
The implementation was inconsistent with QString::right(),
and did not return the N rightmost characters but actually did
the same as QString::mid(N) (returning the rightmost size - N
characters.)

Since this function is fairly recent (Qt 5.2), is documented to
behave the same as QString::right(), and since these APIs are
meant to be interchangeable, this needs to be fixed, even though
it changes behavior.

[ChangeLog][Important Behavior Changes] Changed QStringRef::right()
to be consistent with QString::right(). The function now returns
the N right-most characters, like the documentation already claimed.

Change-Id: I2d1cd6d958dfa9354aa09f16bd27b1ed209c2d11
Task-number: QTBUG-41858
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
2014-10-14 11:32:55 +02:00
Richard Moe Gustavsen
5d9dcac0f2 qplatformmenu: remove unused and deprecated function
Now that all platforms use the popup function that
takes a target rect, lets remove the deprecated one.

This is sort of important, since QtQuick controls now
uses the new version. So if a (new) platform ends up only
implementing the old version, that can end up not
working correctly.

Change-Id: I34814b3de5ea4954cf21b161e8a834e39e5534c8
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-10-13 22:13:18 +02:00
Richard Moe Gustavsen
afefc89d0f osx: let qcombobox specify target rect when showing popup
Let qcombobox use the new API for showing a native
popup menu (introduced with 1a47595).

Change-Id: Id08ef9e59fdd47b2c1df84fa72e3a2c69fe187b0
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-10-13 22:12:57 +02:00
Laszlo Agocs
d92a9ca2d3 Update QOffscreenSurface docs regarding threads
Change-Id: Ic2e3230835aa7fc1b1c3ac0530a65cd478e1ec5f
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
2014-10-13 14:00:21 +02:00
Lorn Potter
d0a6fcd925 Fix QtBearer connman backend report correctly on lte network
Task-number: QTBUG-41813
Change-Id: I977facc2ee59571d24e60ac9d5d41e957403b344
Reviewed-by: Richard J. Moore <rich@kde.org>
2014-10-13 13:53:39 +02:00
Gabriel de Dietrich
b380bcc7e2 QMacStyle: Fix QPushButton with menu appearance on 10.10
As usual, this includes small and mini control sizes.
Flat and oversized buttons will fall back to the HITheme
rendering for now.

Task-number: QTBUG-40833
Change-Id: I08d67c48b2e72681af4dc4a37ea498f7aac1dca0
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-10-13 13:53:34 +02:00
Maximilian Hrabowski
4cbb99c5e2 QAbstractItemView: fix CTRL+A select all behavior
The check for Qt::Key_A to handle selectAll was changed to directly
compare to QKeySequence::SelectAll as this will only match Ctrl. The
former implementation also triggered when e.g. Shift was pressed.
Added a check that selectAll is only called when selection is not
disabled, i.e. selectionMode=NoSelection.

Added a unit test for selectAll().

Task-number: QTBUG-26687
Change-Id: I721e7ab590b55d7d754b3b74ef01756fa5aa1315
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2014-10-13 13:53:28 +02:00
Dyami Caliri
2b4cda3852 QMacStyle: save context state before changing to avoid crash
qt_drawFocusRingOnPath was saving the graphics state after setting
a new context. This leads to zombie NSBitmapGraphicsContext access
with QFileDialog.

Task-number: QTBUG-41879
Change-Id: I7fc7d959d2b0f01cb3491d639023083f1b46d175
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-10-13 13:53:24 +02:00
Giuseppe D'Angelo
26fbeecfa5 Initialize QFileSystemMetaData::size_ data member
There's a code path which reads that member before it got anything
assigned to it, triggering undefined behavior.

The code path goes as follows:

1. an instance is created in QFSFileEngineIterator::advance
2. the instance is passed to QFileSystemIterator::advance, which fills in
   only some members (not size_)
3. the instance is passed to QFileInfoPrivate which does a deep copy,
   reading an uninitialized size_

Change-Id: I6835ee701a83b63ca4bad6235feeb6a23566fcd3
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-10-13 13:53:17 +02:00
Marc Mutz
df2afcad2f QTableGenerator: replace a call to a member function with direct element access
Saves one copy of a vector.

Change-Id: I3a14c46e306c3d44a64c6e0d8cd2f120b2c208d7
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-10-13 13:50:04 +02:00
Topi Reinio
8304c8087d Doc: Update description of QKeyEvent class
Update the description on how to use the QKeyEvent pointer
passed to key event handlers, and remove an outdated note about
multimedia key events.

Change-Id: I67a3f0054e28b84d5a0e367c02a329f4670221c7
Task-number: QTBUG-35155
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2014-10-13 09:33:22 +02:00
Gabriel de Dietrich
e3bfd9bea6 QMacStyle: Use NSRect instead of CGRect in drawNSViewInRect()
Change-Id: I90fd62dea377dfa9569d1730a67136c7a5dc6f82
Reviewed-by: Timur Pocheptsov <Timur.Pocheptsov@digia.com>
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2014-10-13 02:41:42 +02:00
Tom Hirst
1910454fe0 prevent if_nametoindex being called with empty string
Calling if_nametoindex with an empty string will always return 0, but
on ARM linux platforms this call seems to be very expensive (~30ms),
adding a large overhead to calls such as QUdpSocket::writeDatagram()

Task-number: QTBUG-37092
Change-Id: Iad00867585d9534af1ddaee936dd4e4dc5e03611
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-10-12 10:45:50 +02:00
David Faure
955c9562bd QSettings: undo unintentional change of config dir on non-XDG platforms.
c99dfd8f63 only meant to be able to switch to the test mode of
QStandardPaths, not to move the default dir on OS X, iOS, BB10 and Android.
So this commit restores it to the previous behavior, to avoid migration issues.
The use of XDG_CONFIG_HOME, defaulting to ~/.config, on OS X, is even documented
in the current QSettings documentation, even though these paths are non-standard
on OS X (granted, the use of ini-style config files isn't either).

Task-number: QTBUG-41461
Change-Id: I5eb610ff7ccbdaf6f955ef7f8f7c2658cbecbb86
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-10-12 10:37:45 +02:00
Richard Moe Gustavsen
65c542bc87 qiosclipboard: take ownership over mime data
QClipboard is documented to take ownership over
the mime data set with "setMimeData" and the value
returned by "mimeData". So we need to implement
this to avoid memory leaks.

Change-Id: Ieb3a17368ed3a698c29a7f92c8ee87a0cca86b46
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
2014-10-10 16:50:35 +02:00
Andy Shaw
7c90778487 Account for the country/language settings when checking for duplicates
When a file has the same alias but a different country or language setting
then it should not warn about it being a potential duplicate.

Task-number: QTBUG-19286
Change-Id: I60a9c422ff02214399bdea3791374a65c9f6c604
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-10-10 16:45:50 +02:00
Timur Pocheptsov
8c538d10da OS X: rename special menu items instead of duplicating
Two-part fix: QCocoaMenu::syncMenuItem, when selecting the "old" menu,
if an item was merged, 'applicationMenu' was always selected, but this
is wrong for any item with a role >= CutRole (such an item still can
be "merged", but it's not in the application menu).

QCocoaMenuItem::sync - item can be merged with itself: after item's
role detected, the search for an item to merge with can find exactly
the same item we've just detected the role for (since a data-member is
modified) - try to avoid this.

Task-number: QTBUG-39934
Change-Id: Ibe1df9e92973380652101143067e14922afdfb9e
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2014-10-10 16:04:07 +02:00
Eskil Abrahamsen Blomfeldt
9bbf08fcf3 Android: Make memory handling in QClipboard consistent with iOS
On iOS we do deleteLater() on the mime data instead of deleting
it directly, in case the application should happen to use the
pointer again directly after setting it on the clipboard.
Technically it would be a bug in the application, but using
deleteLater() is safer and it's better to be consistent with
iOS so that a buggy application crashes in the same places in
both.

Change-Id: I2996d6c7816a2f83615a43609f5be207aaa72c86
Task-number: QTBUG-41853
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2014-10-10 14:54:27 +02:00
Oswald Buddenhagen
e4493c41b6 DPI-scale PM_SubMenuOverlap after all
This actually isn't a magic value and needs to be scaled.

This partially reverts commit be1635e2d6.

Task-number: QTBUG-41864
Change-Id: Ie03c96c8b5343386f55c3ae9b988e79f943f334e
Reviewed-by: Alessandro Portale <alessandro.portale@digia.com>
2014-10-10 14:31:28 +02:00
Kai Koehne
01f5ba006e Fix patching of installation date
Marking qt_eval_expiry_date alone as volatile apparently didn't stop
the compiler from optimizing away the calculation of the expiry date.

Task-number: QTBUG-41612
Change-Id: Ia51fb83f03250346952a76c8a1a641096b4ff9e7
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Kalle Viironen <kalle.viironen@digia.com>
Reviewed-by: Iikka Eklund <iikka.eklund@digia.com>
2014-10-10 14:29:52 +02:00
Shawn Rutledge
0647f24c7d QMenu: ensure that a menu item's icon can be removed dynamically
Task-number: QTBUG-41348
Change-Id: Iad3b7f000ebce51530f5e196868aefffad2e1eab
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2014-10-10 13:52:40 +02:00
Eskil Abrahamsen Blomfeldt
74a20b77a6 Fix memory leak in QClipboard::setMimeData()
The setMimeData() function is documented to take ownership of
the object passed in, but in the case where the platform
plugin did not support the requested mode, we would simply
return without deleting the object nor telling the application,
so it would cause a potential memory leak. We need to honor the
contract, even when we fail to set the mime data.

Test was updated to avoid verifying the leak in cases where
the platform does not support all modes.

[ChangeLog][QtGui][Clipboard] Fixed a memory leak in setMimeData()
when the platform plugin did not support the requested mode.

Task-number: QTBUG-41852
Change-Id: I2112da1613199fe1b56724e7ccf097b9e912c117
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2014-10-10 13:37:59 +02:00
Eskil Abrahamsen Blomfeldt
9685c72e37 Android: Return empty mime data instead of 0 from empty clipboard
This is consistent with other platforms such as iOS and
XCB, which return a QMimeData with an empty text when the clipboard
is empty.

[ChangeLog][Android] QClipboard::mimeData() now returns an empty
object instead of null pointer from QClipboard when clipboard is
empty for consistency with other platforms.

Change-Id: I17068f0afcb63690cf11048ffa60e19dc9b08691
Task-number: QTBUG-41817
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2014-10-10 13:37:51 +02:00
Eskil Abrahamsen Blomfeldt
aa00020578 Android: Support QSysInfo::productVersion()
Gets the user-readable string for the current running Android
version.

Task-number: QTBUG-41764
Change-Id: Iefea4a4f5291bfddc99bbf901676ccd33fbc23d6
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
2014-10-10 13:37:44 +02:00
Tomasz Olszak
8ddaf5c741 Gcc 4.5.* build fix.
Q_COMPILER_DEFAULT_MEMBERS and Q_COMPILER_DELETE_MEMBERS are now set
starting from gcc 4.6. Pre-4.6 compilers implement a non-final snapshot
of N2346, hence default and delete functions are supported only if they
are public. Starting from 4.6, GCC handles final version - the access
modifier is not relevant. Compiler error:

  qsharedpointer_impl.h:717:31: error:
  'QEnableSharedFromThis<T>::QEnableSharedFromThis()' declared with non-public access cannot be defaulted in the class body

Change-Id: If1d3d4696f91912a09ca72bd4aa1fb07f491a0cb
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-10-10 13:20:30 +02:00
Gatis Paeglis
f813a3e8ad Print warning when unable to query physical screen size
This warning was removed when re-factoring code in:
328f2f9c35

Change-Id: I5a9d7fbbf2b78e6e80a79478f4e9fb08ccaec431
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-10-10 12:48:30 +02:00
Laszlo Agocs
26c104d120 Add a warning when using QOpenGLWidget as a native child
Just like it is done for QQuickWidget.

Task-number: QTBUG-41779
Change-Id: I1b27c2ed34ecb2520edf82843b675dbf6b0eab8e
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2014-10-10 12:48:27 +02:00
Mikołaj Siedlarek
8fc34e42a8 Add information about unsupported SSL protocol when creating context.
When creating SSL context failed due to unsupported protocol being
demanded, no explanation was given. It's because
QSslContext::fromConfiguration() extracted explanation for error message
from OpenSSL, which at that point hasn't even been called yet. This
patch adds explicit message informing that an unsupported protocol was
chosen.

Task-number: QTBUG-41775
Change-Id: I9d2710da4ba314a16837a90afcdc5d9256179bef
Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
2014-10-10 10:17:12 +02:00
Mikołaj Siedlarek
9ddf2fb376 Prevent parsing of SSL certificates from 0-size buffers.
When QSslCertificatePrivate::certificatesFromDer() was passed count ==
-1 to extract unlimied number of certificates from buffer, it also tried
to parse the 0-sized fragment after the last certificate.  This has
caused d2i_X509() to report an error on latest OpenSSL.

Task-number: QTBUG-41774
Change-Id: Ifa36b7ac5b4236bd2fb53b9d7fe53c5db3cb078c
Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
2014-10-10 10:17:07 +02:00
Eskil Abrahamsen Blomfeldt
5f1f955524 Android: Fix memory leak in QClipboard::setMimeData()
The ownership of the object passed into QClipboard::setMimeData()
is documented to be transferred to the clipboard, but we never
deleted it, thus all these objects would leak.

[ChangeLog][Android] Fixed memory leak in QClipboard::setMimeData()

Change-Id: I43e6bad1071be5f56c219cb9341584edba54d2bd
Task-number: QTBUG-41852
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2014-10-10 10:13:53 +02:00
Eskil Abrahamsen Blomfeldt
e31a7e46ea Android: Support QClipboard::clear()
QClipboard::clear() is implemented by calling
QPlatformClipboard::setMimeData() with a null pointer. Since we
would do nothing in this case on Android, then the clear()
function would have no effect.

[ChangeLog][Android] Added support for QClipboard::clear()

Task-number: QTBUG-41854
Change-Id: Id569b102f2e561e46967b52f89d9b54031d92456
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2014-10-10 10:13:45 +02:00
Paul Olav Tvete
c712ec4543 Android: Thread fix/optimization
Do the cheap test before sending an expensive query that might
use a mutex.

Task-number: QTBUG-41369
Change-Id: I78f03c84e5bbf0492f1b7ea18d1baa752a1beff2
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
2014-10-10 10:04:42 +02:00
Paul Olav Tvete
7755b4af41 Android: null pointer check
Task-number: QTBUG-41680
Change-Id: I740fb2a6df5613a8ee724b59dab08674a3337236
Reviewed-by: Kai Uwe Broulik <kde@privat.broulik.de>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
2014-10-10 10:04:34 +02:00
Christian Strømme
8d8000b5fe Android: Don't call requestLayout() when changing the geometry.
requestLayout() is already called when setLayoutParams() is called, so
calling it again is extremely wasteful.

Change-Id: Iddfb488830a6b7277a653a84ffacabf966baf0b5
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2014-10-09 22:57:19 +02:00
Alessandro Portale
106487387d Removing a few unneeded "? true : false"
Change-Id: Ib13f0ddd65fe78f5559f343f2fc30756b1d3ef76
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2014-10-09 09:43:26 +02:00
Marc Mutz
e5f528fb0e Don't stream QStringLiterals into QDebug
Normal (C) string literals do just as well and use more than twice
less space in the DATA section.

Change-Id: Iafb0682a362c41dfd5b4d8b9137d88014d7992a2
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-10-09 09:42:27 +02:00
Marc Mutz
a5b647804b QFactoryLoader: de-duplicate two QStringLiterals
When seemingly identical QStringLiterals are used in different
functions, due to the use of lambdas and scoping, they produce
different lambda types and thus duplicated QStringLiteral data.

Fix by moving the QStringLiterals into inline functions and
calling those instead.

Change-Id: Ifaa124ec74e201ccc63fd9afce042f8b2ff22b9e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-10-09 09:42:17 +02:00
Marc Mutz
1cc06b2e94 Don't use QStringLiteral in startsWith/endsWidth
For QLatin1String, startsWith/endsWith is overloaded, so comparing to
a latin-1 (C) string literal is efficient, since strlen() is
comparatively fast.

OTOH, QStringLiteral, when not using RVO, litters the code with
QString dtor calls, which are not inline. Worse, absent lambdas,
it even allocates memory.

So, just use QLatin1String instead.

Change-Id: I7eaf464c67b55116f970fe7f58a85f19ce4d254e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-10-09 09:42:11 +02:00
Marc Mutz
1a5c0b26d0 Don't use QStringLiteral in comparisons
For QLatin1String, operator== is overloaded, so comparing to a latin-1
(C) string literal is efficient, since strlen() is comparatively fast.

OTOH, QStringLiteral, when not using RVO, litters the code with
QString dtor calls, which are not inline. Worse, absent lambdas,
it even allocates memory.

So, just compare using QLatin1String instead.

Change-Id: I7af3bf3a67c55dae33ffaf9922d004fa168a3f9c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-10-09 09:42:00 +02:00
Marc Mutz
bf1df55846 Don't use QByteArrayLiteral in comparisons
For const char*s, operator== is overloaded, so comparing to a (C) string
literal is efficient, since qstrcmp doesn't require the length of the
strings to compare.

OTOH, QByteArrayLiteral, when not using RVO, litters the code with
QByteArray dtor calls, which are not inline. Worse, absent lambdas,
it even allocates memory.

So, just compare with a (C) string literal instead.

Change-Id: Id3bfdc89558ba51911f6317a7a73c287f96e6f24
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-10-09 09:41:51 +02:00
Marc Mutz
05663e29d0 moc: don't use QByteArrayLiteral
The byte array literals are only used to append them to another
QByteArray, so they offer only the static size calculation as a
benefit.

However, there are several drawbacks:
- QByteArrayLiteral data cannot be shared the way string literals
  can be, not even within a single TU, and they add a few ints
  for the QByteArrayData header which cannot reside in BSS, but
  need to be stored in DATA.
- QByteArrayLiteral *does* allocate when the compiler doesn't
  support C++11 lambdas.
- QByteArrayLiteral, when not using RVO, litters the code with
  QByteArray dtor calls, which are not inline, and thus can't
  be optimized away.

In particular, when used like this, they do not prevent any
memory allocation (in fact, they might add some, absent lambdas).

So, just append (C) string literals.

Change-Id: Iee5dba8dd970c5cc6df116afc1f8709a62356b06
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2014-10-09 09:41:40 +02:00
Friedemann Kleint
4a2cf9ca41 Fix license text and URLs in QMessageBox::aboutQt().
Point to new qt.io site, adapt licensing text.

Task-number: QTBUG-41798
Change-Id: I492df6a842c2b31e44653fb4388408c209f24f1e
Reviewed-by: Sami Makkonen <sami.makkonen@digia.com>
Reviewed-by: Jani Heikkinen <jani.heikkinen@digia.com>
2014-10-09 09:32:18 +02:00
Marc Mutz
9b80ed9d56 QCss: mark many classes as movable
Most of these are held in QVectors, so let QVector use the
optimized reallocation strategy.

Change-Id: I6c2182465c283705bd5ec761e3d2d3d072bc6207
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-10-08 13:58:40 +02:00
Marc Mutz
9a5e4ada9c QCss: Move declaration of ValueExtractor
Move it to the end of the header, since it was sitting right
in the middle of AST struct definitions without being one
itself.

Change-Id: I017d6187324e91f2745629dbed4271064d4e59a8
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-10-08 13:58:33 +02:00
Marc Mutz
3be9d6d116 QCss: unexport some classes
and export only the non-inline functions inside them.

Inline functions don't need exporting, and some compilers
are known to have problems inlining inline functions of
exported classes.

Change-Id: I843adc0ab493817e71f48ab87bfefb03d4ca918d
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-10-08 13:58:27 +02:00
Richard Moe Gustavsen
707eb8d28d iOS: add system palette
Return a system palette that sets the correct
highligh (text selection) colors.

Change-Id: Ic0a18f931913f28bdc73d9ec4ae347fe38839f17
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2014-10-08 13:43:57 +02:00
Eskil Abrahamsen Blomfeldt
183d04de90 Add text ranges to QGlyphRunPrivate
This is an enabler for using the QGlyphRun in the selection
code of the scene graph node. In this case, we need to
know exactly which of the characters in the text are represented
by the glyph run, as a single range of text may result in
several glyph runs.

Change-Id: Ie8ec942693dceea45ab548f6cefc4f78e4c6d524
Task-number: QTBUG-41808
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2014-10-08 13:07:58 +02:00
Topi Reinio
a366b2bb54 qdoc: Fix generation of qhp sections for unsorted pages
If you had the following lines in .qdocconf:

    qhp.QtFoo.subprojects.examples.title      = Examples
    qhp.QtFoo.subprojects.examples.indexTitle = Qt Foo Examples
    qhp.QtFoo.subprojects.examples.selectors  = fake:example

The expected outcome is to see an unsorted list of examples. This
didn't work however, because QDoc assumed to find a chain of
\nextpage links for the indexTitle, and these are rarely used
in Qt documentation nowadays.

This commit ensures that all pages matching the defined selectors
will be listed under the section title, even when the sortPages flag
is not set.

Task-number: QTBUG-41737
Change-Id: I1e7e2a2953de949c9b52763165c406a64d1d46f7
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2014-10-08 12:47:19 +02:00
Jake Petroules
3b1de67fde Utilize Q_FORWARD_DECLARE_OBJC_CLASS in QCocoaFileDialogHelper.
Change-Id: I94ae91ac8fb625de4a328c6628ce0ab45919708f
Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2014-10-08 02:29:54 +02:00
Thiago Macieira
50430a8392 Fix compilation of MIPS with Clang
Clang always sets __mips to 1, unlike GCC. To detect a higher MIPS arch,
we need to rely on the _MIPS_ARCH_MIPSxxx macros being defined -- or, in
this case, _MIPS_ARCH_MIPS1 not being defined.

Change-Id: Ib6846a6892a4c1e17e595a69305b7e46a5303ee7
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Adrian Perez de Castro <aperez@igalia.com>
2014-10-07 22:30:21 +02:00
Dmitry Shachnev
3a25799413 Add Cinnamon to the list of Gtk+-based DEs
Change-Id: I6c2a374026fde30858f1a51f34fa195ef8f8fe37
Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
2014-10-07 15:35:23 +02:00
Friedemann Kleint
a4aea7b578 MSVC: Restore 'public' accessibility of QVariant member functions.
The were made 'protected' as a side effect of a change enabling
support of template friends for MSVC. However, accessibility
is part of the MSVC's name mangling and thus BC was broken.

Task-number: QTBUG-41810
Change-Id: I5ce4c7010673c06d5b75219c89c7ebd337bac6c0
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-10-07 14:33:40 +02:00
Andy Shaw
9884ec73dd Clean up the CFTypes used in popuplateFamily
Change-Id: Iabe127486c77ebb2afe7fe13ecccd70252a79031
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2014-10-07 14:23:57 +02:00
Morten Johan Sørvig
a7f1eb4ab3 Correct devicePixelRatio for software OpenGL
[NSView setWantsBestResulutionOpenGLSurface] is a
hint and the driver may ignore it, for example when
using software OpenGL on a virtual machine.

In these cases devicePixelRatio() must return a value
corresponding to the actual OpenGL surface size. Use
[NSView convertSizeToBacking] which is one of the
recommended methods.

Task-number: QTBUG-41767
Change-Id: Ia79242219908a2454a83b44b6eb7463372764162
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2014-10-07 13:31:59 +02:00
Oswald Buddenhagen
a1d66c9aee Merge "Merge remote-tracking branch 'origin/5.3' into 5.4" into refs/staging/5.4 2014-10-07 13:31:20 +02:00
Nico Vertriest
ded6514de8 Doc: deletion plugin-howtos.qdoc
Document is moved to qtdoc/doc/src/howtos
Including snippet files.

Task-number: QTBUG-38412
Change-Id: Iba15689ad63e17c370c21c9ee5a1fff40c79fcec
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Reviewed-by: Martin Smith <martin.smith@digia.com>
2014-10-07 13:26:28 +02:00
J-P Nurmi
6cd1257757 Fix native GTK2 dialogs to receive focus
Task-number: QTBUG-41406
Change-Id: I00f317e5ef62f63c37e9610e1f8ea00af2740b99
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2014-10-06 23:17:11 +02:00
Giuseppe D'Angelo
ec68f67ee5 XCB: silence warnings about possibly undefined shifts
The code shifts "1" by a uint32 number. If that number is >= 32,
we're triggering undefined behavior, and Coverity rightfully complains
about that. Add some asserts to silence those warnings.

Change-Id: Ib91085a279b0a2b7ad37afad05ec1d764c0496b1
Reviewed-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2014-10-06 18:18:30 +02:00
Shawn Rutledge
bf28e2fc13 Do not re-create windows during application shutdown
Change 9c3a58a913 causes any window to
be re-created when the screen it is shown on is destroyed.  This
is for the use case of detaching one monitor while another remains.
In QWindow::setScreen(), if the screen is null, it will be set to
the primary screen.  However during application shutdown, it may be
that the primary screen has been destroyed before all the windows
are destroyed; so trying to set it anyway will cause a crash.
qtdeclarative/tests/auto/quick/qquickwindow was segfaulting,
especially when running testWindowVisibilityOrder by itself.

Change-Id: Ice6b30320ac563f0c70264aa5c57de21d2e4d56e
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-10-06 16:01:11 +02:00
Eskil Abrahamsen Blomfeldt
d5db8dbfec Windows DirectWrite: Fix off-by-one in font descent
In cb8445f032 we removed the historical
+1 in font heights and the corresponding -1 in the descent measurement
for all font engines. But the change to the direct write font engine
was lost at some point during the transition to QPA, where we seem
to have integrated an older version of the source file.

[ChangeLog][Windows][Fonts] Fix off-by-one in font descent when using
the DirectWrite font engine.

Task-number: QTBUG-41783
Change-Id: Iffa24b5f2b4f6cc3a1f0034fdff63a1ee62ea9f7
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-10-06 14:27:51 +02:00
Oswald Buddenhagen
f49d5b578c Merge remote-tracking branch 'origin/5.3' into 5.4
Change-Id: I132bb6cce68e9f8413200f7ee75586bd1cada38c
2014-10-06 11:59:47 +02:00
Laszlo Agocs
848e950252 Rename internal enum value to avoid clashing with Xlib
Change-Id: I4926d1f75ece220d28abf9f2e7081e41f0aaf339
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
Reviewed-by: Martin Jansa <Martin.Jansa@gmail.com>
2014-10-05 22:51:43 +02:00
Alex Blasche
014ed987ac Fix QTextInlineObject class documentation
Change-Id: I10ac533c1ba7a8003b59b1617af98afbdd4ed17f
Task-number: QTBUG-39784
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
2014-10-05 11:22:25 +02:00
Marc Mutz
100455d4c1 QSizePolicy: remove an outdated comment
The change asked for by the comment is apparently done.

Change-Id: I7ef2b58eb8c38192904e83b1c2386d3c762e0bed
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2014-10-04 14:10:54 +02:00
Marc Mutz
1adc586abd QBrush: be more robust in detach()
If detach() was called with a newStyle corresponding to a gradient,
but with d->style not a gradient, it would execute an invalid cast
and read invalid memory.

The reason this has not been seen in practice is that a non-gradient
brush instance can currently never become a gradient one. But that
may change when someone adds an operator=(QGradient), so in the
interest of robust code, add a check to verify the old style was a
gradient before accessing the corresponding member.

Change-Id: I216a144d31a9ed7145bcd829f3ae5f44a41672db
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
2014-10-03 20:45:09 +02:00
Tor Arne Vestbø
613c2f92b8 iOS: Properly scope window deactivation on resignFirstResponder
We were missing brackets, but luckily the only result was that we
unconditionally flushed events through flushWindowSystemEvents.

Change-Id: If10bcc6a07501b9fb0db891e01b8ecc9d794ab30
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2014-10-03 14:20:59 +02:00
Eskil Abrahamsen Blomfeldt
2e365245c1 Android: Hide vkb when IM disabled for focus object
When the focus object changes to an object that does not have
IM enabled, we should hide the keyboard instead of resetting it.
This happens, for instance, if you change to a different tab in
an application while a text input in the previous tab had focus.
Previously the input panel would stay open and overlap part of the
new tab.

[ChangeLog][Android] Hide input panel when focus changes to an
object that does not accept input.

Change-Id: I4009d203559582fa02c15fdc1a3f009396af2531
Task-number: QTBUG-32399
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2014-10-03 14:00:30 +02:00
BogDan Vatra
27f5efb895 Fix the text field alignment.
All Android styled controls must use AndroidControl methods.

Task-number: QTBUG-41722
Change-Id: I594829bfed8468888738b39450fe94af35f14d7a
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
2014-10-03 13:55:57 +02:00
Topi Reinio
0edf68120b Doc: Clarify QBitArray::fill() documentation
Fix a minor mistake in the the function parameter documentation,
and add a code snippet.

Task-number: QTBUG-39782
Change-Id: Ia5d88a983ad683ae5bde9f332d51adc4afda77a8
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
2014-10-03 13:32:58 +02:00
Laszlo Agocs
1a801e0eef Pass a sized format when creating multisampled renderbuffers on ES
Task-number: QTBUG-40921
Change-Id: I96b05442dd5928992dab06553b3d41feca89084d
Reviewed-by: BogDan Vatra <bogdan@kde.org>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2014-10-03 12:07:11 +02:00
Marc Mutz
0f9148ac9b QRegion: fix a valgrind warning
When:
 - i == 0 (at end of current POINTBLOCK),
 - numFullPtBlocks == 1 (only one more POINTBLOCK left) and
 - iCurPtBlock == 0 (last block contains no points),
Valgrind rightfully complained about an invalid read:

 Conditional jump or move depends on uninitialised value(s)
    at 0x517B08B: PolygonRegion(QPoint const*, int, int) (qregion.cpp:3480)

Fixed by setting 'next' to nullptr when !numFullPtBlocks OR !iCurPtBlock.

Change-Id: If5225fdfa66f2910a8aafb675cd02b40c0a81ad9
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2014-10-02 20:57:19 +02:00
Timur Pocheptsov
11c1fe13b8 QMacStyle: Fix QToolButton appearance on Yosemite
On Yosemite checkable toolbuttons look differently
when highlighted - this modification tries to imitate such look
without pixmaps we used on OS X >= 10.5 && < 10.10.

Change-Id: I0fcdff42a67fa6d5188c9dc64401f0f27ae60b5d
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2014-10-02 18:58:02 +02:00
Allan Sandfeld Jensen
9af1d11fcf Remove wrong unneeded definition in qopenglextensions_p.h
The types are already defined by qopengl.h, and the GLchar could be
incorrectly defined in the Qt namespace for GLES2 namespaced builds.

Change-Id: Ia2052599538af51fdadc434935d51bbfe8437453
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-10-02 14:05:46 +02:00
Tor Arne Vestbø
231a4a1101 iOS: Move statusbar visibility handling to QIOSViewController
It doesn't belong in QIOScreen, and simplifies the flow when changing
the focus window or the window state of the focus window. Both will
result in calling updateProperties on the view-controller, which will
re-configure the statusbar visibility and hide/show it as appropriate,
before triggering a re-layout of its own view, which will in turn
trigger an update of the screen properties based on the new statusbar
state, before re-layouting of QWindow based on the new screen state.

Change-Id: I89077a3fb5f843949ce833e4e727d2c753ea2eb6
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2014-10-02 13:58:01 +02:00
Venu
c027175021 Revert "Don't generate documentation for classes which are not available"
This reverts commit dbbb4d1654.

This change should enable QDoc to generate documentation for the
Mac-specific widgets, QMacCocoaViewContainer and QMacNativeWidget.

Change-Id: If0dd6530906e3e13921384372badc73ba4727b9d
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2014-10-02 13:57:34 +02:00
Venu
e453de98f6 Doc: Removed a few references to the outdated features
OpenVG support and the -graphicssystem command-line option
is not available since Qt 5.0.

Change-Id: I19c89cd3bb2c4a2215cdfae9fd783dece637b30f
Task-number: QTBUG-41265
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2014-10-02 13:56:56 +02:00
Alex Blasche
9c464c3bf4 Update the signal and slots docs
This lifts the documentation into a more recent context. One might
argue that Qt is a little bit older too.

Change-Id: I3e85f21bbad1179136629c2025e3499481fc8334
Task-number: QTBUG-16809
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2014-10-02 12:03:26 +02:00
Friedemann Kleint
24edd8afdc Windows: Transform regions of window masks correctly.
Add missing transformation for first rectangle of a region
consisting of multiple rectangles.

Task-number: QTBUG-41300
Change-Id: I1a25c422c93ceade79de79d5c49891e0a7211943
Reviewed-by: MihailNaydenov <garfieldhq@yahoo.com>
Reviewed-by: Alessandro Portale <alessandro.portale@digia.com>
2014-10-02 10:00:58 +02:00
Kai Koehne
97a65e1980 Warn when loading opengl32sw.dll fails
Print a warning when the developer/user has explicitly
requested the software backend, but loading openglsw.dll fails.

Change-Id: I8b1f079538ac70ceacbf1a397a276659c760a4cc
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-10-02 09:16:44 +02:00
Eskil Abrahamsen Blomfeldt
538248d930 Android: Don't include Apache code under LGPLv2 license
The code which extracts style assets for the Android style
is licensed under the Apache license, which is not compatible
with LGPLv2.1. It is, however, compatible with LGPLv3. This
means that the Android platform plugin cannot be LGPLv2.1
as long as this code is included.

To minimize licensing confusion, we default to only providing
LGPLv3 for Android. If you want to build a LGPLv2.1-compatible
library, you can add -no-android-style-assets to the
configuration. This will in turn enable the LGPLv2.1 in
the configure output, and it will disable the extraction
code in the platform plugin.

Running the Android style with an LGPLv2.1-compatible platform
plugin will work, but it will look horrible.

[ChangeLog][Android] Default open-source license for
Qt for Android is now LGPLv3. For compatibility with the LGPLv2.1
license, add "-no-android-style-assets" to your configuration.

Change-Id: I6c7b52140f38138520871fa7c69debbb4ee90e6c
Task-number: QTBUG-41365
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
2014-10-02 05:59:17 +02:00
BogDan Vatra
3b577dfe79 Use PopupMenu when possible.
On API-11+ we are going to use PopupMenu instead of ContextMenu to show
context menus. A PopupMenu displays a Menu in a modal popup window
anchored to a View. The popup will appear below the anchor view if there
is room, or above it if there is not.

Task-number: QTBUG-39736
Change-Id: Ie412ab0935b868348ce5c8bb0bf53571ffefd582
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2014-10-01 20:10:58 +02:00
Kai Koehne
7ca54ce5d9 Avoid naming clashes with QStringLiteral local variable
MSVC 2013 complains about the use of 's' if a variable 's' is already
defined in the context:

error C2373: 's' : redefinition; different type modifiers
error C3493: 's' cannot be implicitly captured because no default capture
mode has been specified

This looks like a compiler bug. Anyhow, it's easy to avoid the clash in
most cases by using a more distinctive name ...

Task-number: QTBUG-41706
Change-Id: Iaff1b6d37897fa8cf9e4913effa0498f9fd7bb07
Reviewed-by: hjk <hjk121@nokiamail.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-10-01 17:06:02 +02:00
Gabriel de Dietrich
8ee9774e67 Merge "Merge remote-tracking branch 'origin/5.3' into 5.4" into refs/staging/5.4 2014-10-01 16:21:12 +02:00
Kai Koehne
d78fb442d7 Logging: Disable tracking of debug source info for release builds
Tracking the file, line, function means the information has to be stored
in the binaries, enlarging the size. It also might be a surprise to some
commercial customers that their internal file & function names are
'leaked'. Therefore we enable it for debug builds only.

[ChangeLog][QtCore][Logging] File, line, function information are not
recorded anymore for logging statements in release builds. Set
QT_MESSAGELOGCONTEXT explicitly to enable recording in all configurations.

Change-Id: I454bdb42bcf5b5a8de6507f29f2a61109dca9b91
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
2014-10-01 16:06:27 +02:00
Joerg Bornemann
377ef06aef Doc: fix misleading documentation of QProcess::set[Process]Environment
The example suggested that QProcess searches the PATH variable to find
the executable for the child process. That's not true. The environment
that's passed with setProcessEnvironment is just passed to the child
process. Removed the misleading example and fixed the function's
description.

Task-number: QTBUG-7321
Change-Id: I8ac4b6b02002eb0a99686f09bcf45f9bc677c8e2
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
2014-10-01 15:31:45 +02:00
Allan Sandfeld Jensen
0175ad4d3f Fix regression in metric calculation of text with mnemonics
Even when we do not intend to display the text, we still need to go
through the processing of mnemonics to remove them from the text.

Instead of capping the max underlines to 0, the TextDontPrint option now
just saves adding the underline formats.

Task-number: QTBUG-41593
Change-Id: I67790650dbed0092de2c63e5d5a9349dc02d5846
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Robert Loehning <robert.loehning@digia.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2014-10-01 15:30:43 +02:00
Leonard Lee
f5f300ba82 Fix hangs on QFileSystemWatcher.
QFileSystemWatcher hangs at a mutex or semaphore when adding network
paths on OS X system.

There is an else block that does not increment the 'it' iterator
with ++it; inside the QFseventsFileSystemWatcherEngine::checkDir() call.

Change-Id: I6c250c7f3d25399c3a0a58ce864e9466320b166b
Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
2014-09-30 21:55:18 +02:00
Jerome Pasion
7696d20f75 Doc: Adding API reference section in Qt Platform Headers page.
-better visibility to the page.

Change-Id: Ibc1a9991fa7a8fda04827607edfd258e4595ad7e
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-09-30 21:00:50 +02:00
Allan Sandfeld Jensen
56f3eb299c Extend QOpenGLVertexArrayObjectHelper to support glIsVertexArrays
This is needed for dynamicgl support in QtWebKit.

Change-Id: I4d1769394ccdeaf449cac4f002c03ca8013f62f6
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-09-30 19:59:23 +02:00
Oswald Buddenhagen
be1635e2d6 Don't dpi-scale -1 pixel metrics
It may be rounded down to 0, thus losing its magic value.

Task-number: QTBUG-41324
Change-Id: I5a5b98bb24bd0478c10940a90a7dc691e2663f4d
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2014-09-30 18:33:16 +02:00
Laszlo Agocs
684990d148 kms: Support QOpenGLWidget and QQuickWidget
Also fixes the handling of shareContext() for contexts and format() for windows
and makes QOffscreenSurface working.

Change-Id: I3c3374a9de14a5b8428de3e11d9d7e1285c5b9c7
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2014-09-30 18:23:08 +02:00
Laszlo Agocs
3a2fdc48ad kms: Support non-64x64 cursors
Task-number: QTBUG-41477
Change-Id: I10a519d8560c909e87ba2f673d2da4106ce93b71
Reviewed-by: Louai Al-Khanji <louai.al-khanji@digia.com>
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
2014-09-30 18:23:04 +02:00
Dyami Caliri
138e14d7bb Accessibility: Fix crash with invalid QAccessibleInterface
Windows accessibility can crash if it handles an event with an invalid
QAccessibleInterface pointer (one whose object has been deleted).

Task-number: QTBUG-41597
Change-Id: Iba099f7cb732fd00f18f04bd951c6cdd94785871
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2014-09-30 16:17:10 +02:00
Topi Reinio
4b128309a3 qdoc: Restore navigation bar titles for QML, QML basic types
Re-add the name of a QML type/QML basic type to the navigation
bar.

Change-Id: Ia0ced775099f1ed4071ae9a922d808b9114c10ea
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2014-09-30 14:08:24 +02:00
Nico Vertriest
54853c5f66 Doc: Use title case in section1 titles
Using Python script title-cased.py

Task-number: QTBUG-41250
Change-Id: I00d3d7a0b30db7304a7904efd6d63abd9a7b493b
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2014-09-30 13:52:51 +02:00
hjk
eda8af2a69 Make QAccessible compile with -Werror
GCC was bailing out when attempting to merge this into the dev
branch due to the use of "potentially uninitialized values".

Change-Id: Id2fc4a123a4b180b9ab439429a0d20245c7ee41b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-09-30 10:33:07 +02:00
Friedemann Kleint
289b4ed705 QMdiArea: Fix positioning of cascaded sub windows.
Take PM_FocusFrameVMargin into account.

Task-number: QTBUG-35146
Change-Id: I1499790537ddf9fbb912ab764b7d049ee11af95d
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2014-09-30 10:32:52 +02:00
MihailNaydenov
c55324aee0 Additional support for devicePixelRatio in CE_MenuItem’s icon painting
FusionStyle and MacStyle have this already, the change just brings it to the others.

Task-number: QTBUG-40277
Change-Id: I08dc80771b9cd0ab47179e1994ab6510b022eade
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Alessandro Portale <alessandro.portale@digia.com>
2014-09-30 10:32:34 +02:00
Eskil Abrahamsen Blomfeldt
27bc4c4ce5 QPlainTextEdit: Fix crash on complex undo w/full width selection
Say you have a document of two blocks of text.

When you select a block of text in the document and then replace this
with a new empty block (by pressing enter) and then subsequently
undo this action, the following three steps are performed as a
chain of undo commands:

1. Remove the empty block at the beginning of the document
2. Insert a new empty block at the beginning of the document
3. Insert the text back into the first block

Since a block is removed and inserted in the same go, both blocks
require a relayout, since the accumulated change spans both blocks.
However, in QPlainTextDocumentLayout we would only look at the max
of either removed chars or added chars. This would match the text
length of the first block at this point, so we would only relayout
that block. However, since we are also removing characters, the
actual accumulated change to the document is larger. We should
relayout any block touched by the sum of the added and removed
character counts.

Missing this, the paint event would later query
block.layout()->lineForTextPosition(0) which would give an invalid
line despite the fact that the block.length() > 0. This caused
a crash in the paint event when the full width selection was
turned on.

Note that the logic here was only recently updated to include the
removed characters at all in the logic, by the SHA1:
2983cb9531.

[ChangeLog][QPlainTextEdit] Fixed a crash when using full width
selections and issuing a complex undo command chain which removes
and inserts an empty block in one go.

Task-number: QTBUG-36415
Change-Id: Iafe8a69e455e0c713a48714f10f0cace69c84f51
Reviewed-by: Axel Rasmussen <axel.rasmussen1@gmail.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2014-09-30 10:21:39 +02:00
Ulf Hermann
38c4ccbfe6 Handle PPK_CustomBase in QWin32PrintEngine::property
If we leave out the default so that the compiler catches missing enum
values we should actually handle them all ...

Change-Id: Ieb4992dec84ce847e48ab3c4a94bd8825a148706
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2014-09-30 09:45:07 +02:00
Laszlo Agocs
90ce9701d0 Fix losing dirty state when calling update() from paintGL()
When the paint for the QOpenGLWidget was in invoked on the
fast path, where only that widget was dirty, the resetWidget
call after sending the paint event removed the widget from the
dirty list, making it impossible to schedule an update during the
event handling. The correct way is to clean the list and then send
the paint events.

Change-Id: Icdad5686ded7944fd1c8af56496f725e163a60e6
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
2014-09-30 09:38:38 +02:00
Friedemann Kleint
5d36c74cb6 uic: Add QOpenGLWidget.
Change-Id: I02cb6bd4a038b865fa414fa557b12e369685248f
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-09-29 20:53:26 +02:00
Marc Mutz
d93e4eff50 Make QRegion::shared_empty const
Continuing the trend of QString, QVector, etc.

Change-Id: I8f53d4abfa0dd941bfdfd3c1a9049a42dbf92691
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-09-29 20:13:18 +02:00
Alexander Volkov
2045a657da xcb: Fix detecting the fullscreen state from _NET_WM_STATE flags
A fullscreen window can have maximized flags being set so first check
the NetWmStateFullScreen flag.

Change-Id: Ia802abf3cfa4c784baa2d55088e3f53310f0362e
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2014-09-29 20:05:11 +02:00
Sérgio Martins
e297d72fa6 Fix build when using -Werror
"accessible/qaccessible.cpp:2154:43: error: 'type' may be used uninitialized in this function [-Werror=maybe-uninitialized]"
Compiler doesn't seem very smart, all enumerators are handled in the switch already.

Observed on android's gcc and gcc-4.7 on GNU/Linux

Change-Id: I30b4660c18992158457cada01b5916aa4feae4ff
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2014-09-29 18:24:01 +02:00
Thiago Macieira
cc50651cce Update the detection of when to log to stderr
On Windows, the detection changes only by inserting the use of the
environment variable before the existing tests and removing the check on
stderr.

This commit adds logic similar to Windows's: if the application has a
controlling TTY, we'll use stderr. Otherwise, we'll use the system log.
This is technically a change in behavior: previously, we would always
use the system log, unless the environment variable told us not to.

In practice, the behavior doesn't really change: Android and BlackBerry
and systemd-spawned applications are launched with no controlling TTY,
so logging will go to their logging systems.

[ChangeLog][Important behavior changes][Logging (including qDebug and
qWarning)] Log output will now go to the system log (if support for it
was compiled into Qt) if the application has no controlling terminal or
console window. Set QT_LOGGING_TO_CONSOLE to 1 to force logging to go to
stderr.

Task-number: QTCREATORBUG-12564
Change-Id: I043c5c4f47c15f26d4f4a5cf43df466ea38cdbc7
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-09-29 17:42:25 +02:00
Andrew Knight
85062a3028 Revert "winrt: Remove depth/stencil from the default window format"
This reverts commit 636d2e3402.

The issue was caused by a bug in ANGLE, not a lack of hardware support.

Change-Id: If2a66cd023dc7f2329dc2812169042487eecd428
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@digia.com>
2014-09-29 16:09:35 +02:00
Andrew Knight
311157c3c6 ANGLE: Upgrade to 2.1~abce76206141
Upgrade to address issues discovered since the last upgrade.

Patch notes:
0000-General-fixes-for-ANGLE-2.1.patch
  added removal of the unused third-party tracing functions

0003-Fix-compilation-with-MinGW-gcc-64-bit.patch
  removed as it is no longer needed

0011-ANGLE-Fix-compilation-error-on-MinGW-caused-by-trace.patch
  removed as it is no longer needed

0016-ANGLE-Fix-compilation-with-MinGW-D3D11.patch
  now supports MinGW 64-bit

[ChangeLog][Third-party libraries] ANGLE updated to 2.1~f8602ad91e4f

Task-number: QTBUG-40649
Task-number: QTBUG-40658
Task-number: QTBUG-41031
Task-number: QTBUG-41081
Task-number: QTBUG-41308
Task-number: QTBUG-41563
Change-Id: I9f776c8d5cb94ddb12d608a8d5630bfc54437bea
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-09-29 16:09:29 +02:00
Richard Moe Gustavsen
9af7104359 cocoa: override new QPlatformMenu::popup() function
Having two versions of popup, one that takes a point and one that
takes a target rect, causes problems for client code if they use
the 'target rect' version since not all platforms override that
function.

So this patch will change the remaining platform that override
QPlatformmenu into using the new 'target rect' version.
Calling the old version that takes a point will still work, since
the base version will then convert the point into a zero-sized rect, and
forward the call to the 'target rect' version instead.

Change-Id: Icc8531d79270a4f24ec08b8ed95b18ed3db1ad4d
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2014-09-29 16:01:06 +02:00
hjk
1e1f5833b1 Do not use Q_COMPILER_CLASS_ENUM for gcc 4.4
It breaks the compiler self-test:

tst_compiler.cpp:754: error: no matching function for call to ‘qCompare(tst_Compiler::cxx11_class_enum()::X&, tst_Compiler::cxx11_class_enum()::X, const char [2], const char [13], const char [17], int)’

We not should assume it is safe to use, see
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=38064 and
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=37946.

Change-Id: I72c9c56e3e4f62bdfdfa133b6b0a2e610b5331c8
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2014-09-29 15:14:04 +02:00
Alexander Volkov
382b7afbe2 xcb: Fix logic for minimized state
_NET_WM_STATE message can be received by a window in the minimized state.
Don't change the window state in this case.

Task-number: QTBUG-31117
Task-number: QTBUG-39376
Task-number: QTBUG-34430
Change-Id: Ic77a345e442891972b692803fab1e2f6aef30433
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2014-09-29 14:26:26 +02:00
Gabriel de Dietrich
ee6e9cbf36 QMacStyle: Generalize Cocoa control rendering
So far, we were restricted by the values of ThemeButtonKind, which
consist mostly of buttons. We want to generalize to other kind of
controls when the time arrives. Already, QPushButton with pull-
down menu is not possible to get from that enum, while its easy to
get from NSPopupButton.

Task-number: QTBUG-40833
Change-Id: I244c42c42ab595f4790050eb15ade70443e155b2
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-09-29 13:39:06 +02:00
Gabriel de Dietrich
996054f5e6 QCocoaMenu: Keep a reference to the containing menu item
This allows the menu to tell its containing item the menu got
deleted. This removes the need to reset the COCOA_MENU_ANCESTOR
property value, which would crash since QCocoaMenuItem::m_menu
would be a dangling pointer.

Task-number: QTBUG-41587
Change-Id: Ia3408ef85cf823bfddbc2c41d6534e43bf14ed29
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-09-29 13:38:57 +02:00
Gabriel de Dietrich
8ab25620d3 Merge remote-tracking branch 'origin/5.3' into 5.4
Conflicts:
	src/network/socket/qnativesocketengine_unix.cpp
	src/widgets/kernel/qwidget_qpa.cpp

Change-Id: I6f1aa320d5ca66cd92d601a95885aeaab0abb191
2014-09-29 13:38:11 +02:00
Oliver Wolff
dfe853bff9 Windows: Fix call of ToUnicode
ToUnicode sometimes gives wrong results if it is used with a
keyboard buffer containing the ctrl modifier. Special cases
containing alt and control might trigger the third assignment
of a key, but if no alt modifier is used for the key event,
we temporarily disable the control modifier in order to obtain
the character with ToUnicode.

Task-number: QTBUG-35734
Change-Id: Ifd88c640541b42fa65ee1dc9b55af3386714b0b8
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-09-29 07:26:46 +02:00
Vladimir
8456adf0ee Fix font enumeration, with the same family name, on Windows.
Function EnumFontFamiliesEx with parameters (lfCharSet = DEFAULT_CHARSET, lfFaceName = '\0') enumerates only first installed font from many with same family name.
This patch calls EnumFontFamiliesEx twice:
 1. Without family name to enumerate families;
 2. With family name to enumerate fonts with same family.

Task-number: QTBUG-40828
Change-Id: Ic36a24a9e70f735a7324c05fe4b70f7c7e5710d0
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
2014-09-28 16:41:05 +02:00
Marc Mutz
15fc84c48b QSslCertificate: fold a string literal correctly
Change-Id: I8f812002302d3b74af252fa66e9e13154bbf80e1
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
2014-09-28 16:32:09 +02:00
Thiago Macieira
fa91bb9a02 Don't check for EINTR after calling QT_READ / QT_WRITE
On Unix, those functions are already #define'd to qt_safe_read and
qt_safe_write, which do the necessary EINTR handling. On Windows, EINTR
cannot happen.

Change-Id: I50c46472c04bd90a0bac51c725cc86311ae905c8
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2014-09-28 01:28:52 +02:00
Thiago Macieira
0c32af08a6 Fix handling of IPv6 addresses in QUrl::fromUserInput
IPv6 addresses can start with ":", for which QDir::isAbsolute() would
always return true (QResourceFileEngine::isRelativePath() returns
constant false) and would trip the calculation for local files.

Similarly, IPv6 addresses can start with strings that look like Windows
drives: "a:", "b:", "c:", "d:", "e:" and "f:" (though not today, as
those address blocks are unassigned). Since a valid IPv6 address will
definitely require at least one more colon and Windows file names cannot
contain ':', there's no ambiguity: a valid IPv6 address is never a valid
file on Windows.

This resolves the ambiguity in favor of IPv6 for Unix filenames (which
can contain a colon) and in case of an URL containing scheme, relative
path and no authority ("dead:beef::" for example could have been parsed
as scheme() == "dead" and path() == "beef::").

Task-number: QTBUG-41089
Change-Id: Id9119af1acf8a75a786519af3b48b4ca3dbf3719
Reviewed-by: David Faure <david.faure@kdab.com>
2014-09-28 01:28:29 +02:00
Christian Strømme
10a0f93c86 Android: Add function to change the stacking order in the layout.
This change enables us to reorder the stacking order used by the
layout. This is necessary if we want to influence the drawing order.

Lowering or raising views are done separately for native views and
Qt surface views, that is, the two different view "types" are moved
relative to other views of the same type and Native views are always
placed on top.

Change-Id: I01cbb88f8efee08877b5972cf330fd25266a2aa9
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2014-09-26 23:45:13 +02:00
Christian Strømme
afece6e496 Android: Add findClass() function to the QJNIEnvironmentPrivate class.
The static QJNIEnvironmentPrivate::findClass() function exposes the
cache and the class finding code in qjni.

Change-Id: I42043dc993cf9cace042faf763f2a647ba79d97f
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2014-09-26 23:45:00 +02:00
Christian Strømme
8b0d9a16db Android: Improve the foreign-window implementation
Adds:
- Improved geometry calculations (e.g, inside a parent)
- Change visibility
- proper stacking order. Native views now reserve the top of the stack
  to ensure that they stay visible.
- React to application state changes.

Change-Id: I35de0396937fff37ffcd272c9a7d8e9873a91dfb
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2014-09-26 23:44:42 +02:00
Giuseppe D'Angelo
5222abfdf5 Uic: fix a leak
There are a couple of code paths in which we return from a function
without freeing the memory pointed by a local pointer.

For the sake of not over-modifying the code, I chose not to turn
"ui" into a scoped pointer.

Change-Id: I0b23944f7526d250c1ebeca0bae9bdc36dceceed
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-09-26 21:14:49 +02:00
Andrew Knight
a1dea3a62c direct2d: Optimize dashed line drawing
This introduces a combined brush/dash pattern which can be used to
perform faster dashed straight-line drawing. The dash pattern is
prerendered to a tiled bitmap brush, resulting in a significant speedup
for lines with many elements.

As the result of non-rectilinear lines may lose quality compared to the
native dashed renderer, the slow/high quality codepath can be activated
by setting the QPainter::HighQualityAntialiasing render hint.

Task-number: QTBUG-40604
Change-Id: I771e9a81c042b4d8b6891dc9280932696e5a0694
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
Reviewed-by: Louai Al-Khanji <louai.al-khanji@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-09-26 07:32:33 +02:00
Louai Al-Khanji
3bcbff57e1 direct2d: Fix composition mode support
When the composition mode changes to a mode which is not supported by
Direct2D's primitive blending, the rendering follows the emulated (slow)
code path using rasterFill(). This allows the direct2d paint engine to
handle all composition modes supported by QImage.

Task-number: QTBUG-40602
Change-Id: I0ac0b5c89aab2483cb2ef7768d6dec8e16913249
Done-with: Andrew Knight <andrew.knight@digia.com>
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
2014-09-26 07:32:29 +02:00
Mark Brand
095f760463 update bundled sqlite to 3.8.6.0
The "Fixed CE build of sqlite3" patch is *updated* in this change.
Since sqlite 3.8.6, SQLITE_OS_WINCE isn't defined early enough so we
have to check _WIN32_WCE directly.
(ea70ec8711)

Change-Id: I63ee5163fb915274c9780c169e1f8673755bba47
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2014-09-26 07:22:52 +02:00
Marc Mutz
55fbf1db19 Widgets: remove references to QStyleOptionFrameV<n>
They're gone since Qt 5.0 and only exist as typedefs for QStyleOptionFrame.

Change-Id: Icff45cbd3a47db8618a7f7a80f7252651969237c
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-09-26 00:39:48 +02:00
Allan Sandfeld Jensen
8165a9c74b Clean up QImage::Format switches
Changes some switches on QImage::Format that needed to be updated
whenever a new image format was added. Two were changed to matching
formats supported by BMP and PPM instead of what they don't support,
and two were changed to now use QPixelFormat values.

Change-Id: I5a14f1d7b7cc0451c68e4d6ab2361a5bd8dc8915
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
2014-09-25 18:34:30 +02:00
Alex Blasche
342533864b Fix smooth scaling of large QImages
Task-number: QTBUG-13448
Change-Id: Ie76f5b5deefabeae93ab17eb866aea303692f5ac
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-09-25 17:20:12 +02:00
Markus Goetz
097b641c3e QNAM: Fix previous HTTP upload CPU fix
My previous fix for CPU load issues between HTTP thread
and user thread  was fragile if the upload QIODevice
emitted readyRead() multiple times.

[ChangeLog][QtNetwork][QNetworkAccessManager] Fix behavior of upload QIODevice
that generate data on readyRead() for HTTP PUT/POST

Change-Id: Idb1c2d5a382a704d8cc08fe03c55c883bfc95aa7
Reviewed-by: Christian Kamm <kamm@incasoftware.de>
Reviewed-by: Richard J. Moore <rich@kde.org>
2014-09-25 17:10:54 +02:00
Sze Howe Koh
a72d585f9b Doc: Restructure "Signal & Slots" article
Put sections with similar content together:
- Put "A Small Example" next to "A Real Example".
- Put "Signals and Slots", "Signals", and "Slots" together. Altogether,
  these 3 sections contain lots of repeated content and should be
  consolidated in a future commit.

This patch only moves content around without adding, removing, or
modifying content.

Change-Id: Ic6bf6a8b51f4785a8bbe6d230c2934f2c952104d
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2014-09-25 16:50:45 +02:00
Sze Howe Koh
f5d58c0442 Doc: Remove irrelevant sections from "Signals & Slots"
- This article is not the right place to describe the low-level
  mechanisms of moc and qmake, or to discuss QMetaObject features that
  are unrelated to signals and slots.
- Most users never need to run moc directly.
- The current content only mentions qmake for moc automation, but CMake,
  QBS, and the Visual Studio Add-In can also do that.

In light of the above 3 points, let's simply link to the "Meta-Object
System" article for those who are interested in the behind-the-scenes
details.

Most of the content deleted by this patch are already discussed in
detail in the articles "The Meta-Object System" and "Using the Meta-
Object Compiler (moc)" (the former links to the latter). The exception
is Snippet 5 -- this is deleted without replacement because
qobject_cast() is a much safer alternative to QMetaObject::inherits()
with static_cast(), so we should encourage the former.

Change-Id: I638c888cedfcdfb818747edeb806213ebd54dfb6
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2014-09-25 16:50:41 +02:00
Richard Moe Gustavsen
4c08e3dfd5 QIOSInputContext: animate screen from current transformation
Since we assign a fromValue to the scroll animation directly, the
UIViewAnimationOptionBeginFromCurrentState flag does not have
any effect. So we need to set the fromValue based on the current
presentation state explicit.

The reason why we need to ensure that we scroll from the current
state is to avoid screen 'jumping' as a result of the scroll function
being called many times during the same event loop cycle during after a
focus change (focus object/window change, cursor rect change etc).

Change-Id: Id98f43d60ec5d028b113361dab953569accf9b3f
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2014-09-25 16:30:52 +02:00
Richard Moe Gustavsen
956e88f23e QIOSInputContext: change keyboard rect when focus window changes
Since keyboard rect should be in window coordinates, it needs to
change when focus window changes.

Change-Id: I052aa5cadf182841d7c4eb114ebd1ea5317ff39c
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2014-09-25 16:30:29 +02:00
Richard Moe Gustavsen
bd1e52db33 QIOSInputContext: report keyboard rect relative to focus window
After changes to how we scroll the screen, we need to change
the implementation for calculating the keyboard rect as well.

Change-Id: I7f468d55f6e29604b9c276deccd9926e071552a9
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2014-09-25 16:29:51 +02:00
Oliver Wolff
eedefa28bd Refactored qt_normalizePathSegments
There were several use cases that did not work with the old
implementation and it was not really readable.

Task-number: QTBUG-3472
Task-number: QTBUG-40067
Task-number: QTBUG-23892
Change-Id: I1e038792dc54cdc6f8d9bb59d80b11dd3c56fac6
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-09-25 16:16:59 +02:00
Allan Sandfeld Jensen
cc3875c2e4 Balloon tip must follow systemtray icon
If the a message notification is created at the same time as the system
tray icon is embedded it may start at a wrong location, since the icon
location it bases its own location is not yet final.

This patch adds code to update the balloon tip location when the system
tray icon is moved or resized.

The bug and fix can be tested by the systray example by disabling the
icon and letting show message trigger both showing it and the message.

Change-Id: Ie1dc10489ad420e581e32afeb757c236fb5129ab
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2014-09-25 16:12:55 +02:00
Kai Koehne
568c26227d Silence moc warnings about 'argument mismatch'
The moc preprocessor is not necessarily fully compatible with the native
compiler preprocessor, which can lead to annoying warnings.

This fixes a problem particularly with the boost headers that rely on
MSVC only preprocessor features (to work around other MSVC preprocessor
deficiencies).

Task-number: QTBUG-29331
Change-Id: If884452969b512a746c81e235d31636b39c45b27
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2014-09-25 15:42:40 +02:00
Richard Moe Gustavsen
ee31bc59be iOS: don't show popup on call to setVisible
It turns out that setting visibility means whether or not the
menu should appear visible in a parent menu, and not to
actually show or hide the popup. This means that the only way
to show a popup is to call showPopup, which also makes
it simpler since we then always get a parent window as
argument that we can activate and get a focus object from.

Change-Id: Ie3866b5664294f9aa4d694fa422e8116e9c75ced
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2014-09-25 15:35:56 +02:00
Richard Moe Gustavsen
4dffab4c39 iOS: add support for submenus
Change-Id: I3816f2518125ad9c013ab578853295bf2c6bd02e
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2014-09-25 15:35:52 +02:00
Richard Moe Gustavsen
28b5038d1b iOS: don't show separator in native menus
There might be menu types later that should show them, but
for now we just hide them.

Change-Id: Iac31e3204d8dcfd5beb5a2d5a372478ca811776c
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2014-09-25 15:35:48 +02:00
Nico Vertriest
f1a8d7dc9b Doc: 2 minor corrections in corelib/plugin
Task-number: QTBUG-40362
Change-Id: I4fa4a69c13a60f8c7915b6c9659a4daaae4ecc1a
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2014-09-25 11:52:38 +02:00
Giuseppe D'Angelo
5c2d7b1635 XCB: fix a memory leak
An early return didn't deallocate a xkb_state struct.

Change-Id: I158ffc67030403636aceab985cc605888a31804b
Reviewed-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2014-09-25 10:52:11 +02:00
Jochen Seemann
faefd37db6 Fix MSVC2013-compiler warnings with QT_NO_FILESYSTEMWATCHER
dialogs\qfilesystemmodel.cpp(203,1667,1680): C4189: 'd': local variable is initialized but not referenced
dialogs\qfilesystemmodel.cpp(1547,1720,1847): C4100: 'variable': unreferenced formal parameter

Change-Id: Ic3cef264dcd0b939748bec914eb9c29f86f6ed0e
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2014-09-25 06:50:09 +02:00
Friedemann Kleint
4b03b18548 Generate Show/Hide events for widgets when minimized state changes.
Fixes a regression against Qt 4, where Show/Hide events were received
when the minimized state changed.

It is restricted to QWidget so as not to introduce additional events
to QWindow (which already has signal visibilityChanged()) and cause
unexpected side effects in QQuickWindow.

Task-number: QTBUG-41312
Change-Id: Ib165a5daf7a7e5d8231ef8a94b70e8a2a3253057
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2014-09-24 23:07:15 +02:00
Gabriel de Dietrich
b5ae9d8efe QMacStyle: Improvements to some buttons on Yosemite
Radio button, checkbox and non-editable combobox, in normal,
small and mini sizes, and only in the inactive state.

This commit amends 982b9b7ec2.

Task-number: QTBUG-40833
Change-Id: If3f2bb215e9b8966cbf15f08fa252feb92483c7b
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-09-24 15:39:40 +02:00
Matt Broadstone
f84b00c6d2 Expose QSqlDriverPrivate dbmsType in public QSqlDriver api
dbmsType was previously kept as a private variable in QSqlDriverPrivate,
however it's particularly useful for QODBC users.

[ChangeLog][QtSql][QSqlDriver] Add support for determining DBMS type from SQL driver.

Change-Id: If1c221520da9ac4ccef85a02db078679d76eac92
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
2014-09-24 14:44:49 +02:00
Andy Shaw
eef1e51f97 Ensure a window with no stays on top flag is not staying on top
On Windows, if a window was previously staying on top then it needs to be
explicitly told to have HWND_NOTOPMOST set when it is recreated. If it was
not staying on top before the flag has no effect so it is safe to always
set it in this case.

Task-number: QTBUG-30359
Change-Id: I8be546886d6ae61032113c241f5903bcce04c163
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-09-24 14:39:04 +02:00
BogDan Vatra
1168ed8f6e Handle InsetDrawable.
Remove an unused function.

Change-Id: I79fda0fb56b0621e062a0ccb5bd68291d9ccdf50
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
2014-09-24 13:52:55 +02:00
Matti Paaso
974c210835 Update license headers and add new license files
- Renamed LICENSE.LGPL to LICENSE.LGPLv21
- Added LICENSE.LGPLv3
- Removed LICENSE.GPL

Change-Id: Iec3406e3eb3f133be549092015cefe33d259a3f2
Reviewed-by: Iikka Eklund <iikka.eklund@digia.com>
2014-09-24 12:26:19 +02:00
Tor Arne Vestbø
28a57799ce iOS: Don't update screen properties for statusbar frame while rotating
The rotation will already result in laying out of the root viewcontroller,
so we don't need to send explicit geometry changes for the statubar change.
The properties of the screen at that point are also not consistent, as the
screen is about to rotate.

Change-Id: I1b45bee1c1224ca56f9e37068d68c4ee1bfeb9b6
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2014-09-24 11:53:19 +02:00
Tor Arne Vestbø
f14d86c0f9 iOS: Reflect changes in statusbar height as QScreen availableGeometry
We detect changes to the statusbar height, eg. when the in-call 40px tall
statusbar is active, and ensure that the root viewcontroller view is laid
out again with new screen properties applied. To make the layout match
the animation of the statusbar height we apply the layout inside a
animation block.

Change-Id: I751d9d1273e833ef052a3a4f3d2777e1dffec7dd
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2014-09-24 11:53:14 +02:00
Tor Arne Vestbø
f1970c8916 iOS: Fix touch point translation when root view controller is offset
Instead of doing manual translation of the local touch point to global
screen (QScreen) coordinates we take advantage of the fact that QWindow
already has a position that's adjusted for all of the view-controller
offsets in its parent hierarchy.

Change-Id: Ib34173db5ac053c20712dfff469c4a1286f2a324
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2014-09-24 11:53:09 +02:00
Tor Arne Vestbø
0cd3416136 iOS: Simplify QWindow/UIView geometry mapping
As we now have a root viewcontroller that always has a geometry that matches
the containing UIWindow, we don't need to do any fancy calculations when
mapping between the two.

Change-Id: I08a7b9992be7b7238cbad2a2da20488bba1c0939
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2014-09-24 11:53:05 +02:00
Tor Arne Vestbø
e3a72a8aee iOS: Ensure root view controller always matches size of containing window
Change-Id: I249d847a1f4785b3e63e46759baed340b0d6362e
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2014-09-24 11:52:58 +02:00
Tor Arne Vestbø
df734769d3 iOS: Move top level window management out of QIOSScreen to QIOSDesktopManagerView
The logic of how to deal with top level windows in the presence of rotation
or status bar changes should be confined to our custom QIOSViewController
that acts as a desktop manager for regular Qt applications.

We no longer treat windows with full-screen or maximized geometry but without
the matching window state flag as being targeted for auto-resizing. In the
future we might detect this case and warn the user that windows should have
the appropriate flags to be able to auto-resize on orientation changes.

Change-Id: Ibab09de5cf37e77c356fbf51a54a2fcec4bb5c51
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2014-09-24 11:52:50 +02:00
Tor Arne Vestbø
4f0cd0693a iOS: Calculate screen (available) geometry using [UIView convertRect]
Instead of custom logic to detect portrait/landscape and the height of
the status bar. The latter would fail when the statusbar/orientation was
set explicitly through [UIApplication setStatusBarOrientation], as the
statusbar would not follow the normal behavior of covering the top part
of the screen. The new code also handles upside-down portrait mode, as
well as iOS8's behavior of reporting screen bounds and application
frame in interface orientation instead of device orientation.

Change-Id: I54e3b99246a32e17aaba13960f456fa823768fd8
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2014-09-24 11:52:40 +02:00
Tor Arne Vestbø
d2c925b977 iOS: Update screen properties more consistently
Instead of updating screen properties (and hence laying out top level
windows) in willAnimateRotationToInterfaceOrientation, we do it in
the more catch-all viewWillLayoutSubviews, which also handles changes
to the orientation while the application is in the background, as well
as changes to the statusbar frame/size, eg. while being in a call.

Change-Id: Ib4a08af2f3a56db426a10ff1ed819867895b5a5a
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2014-09-24 11:52:38 +02:00
Tor Arne Vestbø
d61d638721 iOS: Scroll root view when keyboard is visible using sublayerTransform
We opt to use sublayerTransform instead of changing the root view's
bounds, so that we can keep the root view at the same position and
size regardless of statusbar height and visibility.

Change-Id: I3f04a4587f1108084208aefa990f91a130fb47b8
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2014-09-24 11:52:28 +02:00
Tor Arne Vestbø
6742b250b5 Make QScreenPrivate constructor a bit clearer
Easier to read/understand that the screen properties are initialized
from the platformScreen.

Change-Id: I3084c3ac30a08cb4e154536f949475459212d2de
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2014-09-24 11:52:18 +02:00
Alessandro Portale
1fc8e089d8 Windows: devicePixelRatio aware QWindowsTheme::standardPixmap
QWindowsTheme::standardPixmap() takes a size parameter which is in user
space coordinates. This patch causes it to calculate the size in device
pixels, to get the image from the OS in the correct resolution and to
set the devicePixelratio of the returned pixmap accordingly.

Change-Id: Ifad5d0a26d5fd5945e37e432787d63ee79269295
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-09-24 11:34:23 +02:00
Nico Vertriest
0fe2c75273 Doc: Fixed autolink errors qtbase/kernel
Task-number: QTBUG-40362
Change-Id: I54a1111e39fb7e85d34ea97b937d2764d29b27a0
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2014-09-24 10:49:40 +02:00
Nico Vertriest
cf81bf2e2d Doc: corrected autolink errors qtbase/corelib/tools
Also corrected some minor language/spelling issues

Task-number: QTBUG-40362
Change-Id: I00d76521fc9beb4e7a4a83ff6dc3334a055a7148
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2014-09-24 10:49:09 +02:00
Eike Ziller
3ea0020d3b Abstract proxy model: Add missing delegation of supportedDragActions
Change-Id: I4d2519aaa46d3ca075330c6680dd3672249cbefe
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2014-09-24 10:37:59 +02:00
Laszlo Agocs
276a5f5acf Change fallback OpenGL library name
Change-Id: I7f07699f860d0300f221b980b7d2fbe0dacbf4a1
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-09-24 09:58:04 +02:00
Alex Blasche
b3bc6b9f7c Fix misleading documentation
Not every length parameter unit is accepted by Qt Style sheets.

Task-number: QTBUG-31907
Change-Id: I953c56caf68c1397ba24369f433d21c6f4772d0d
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2014-09-24 09:54:49 +02:00
Alex Blasche
d1fabb49a3 QXmlSimpleReader shall handle external entity reference file over 1k
This commit fixes a bug that causes QXmlSimpleReader to handle only
external reference files less than 1k. Instead of reading the
first 1k of the reference file, it reads all data from the file into
memory. The change is not optimal for memory management, but there does
not seem to be better solution without breaking the existing API.

A similar but incomplete patch was already applied to Qt 4.7 but never
made it into Qt 5. This patch is based on a Qt 4.7 patch and adds the
missing cases.

Task-number: QTBUG-26910
Change-Id: Ia4d055ded80a40ce76b79fc61ad585e8ebb719db
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Richard J. Moore <rich@kde.org>
2014-09-24 09:54:38 +02:00
Frederik Gladhorn
c96426f19f Merge "Merge remote-tracking branch 'origin/5.3' into 5.4" into refs/staging/5.4 2014-09-24 12:04:52 +02:00
Sergey Radionov
2137cb7dc5 Windows: fix obvious mistyping in getSysColor
Change-Id: I1f215cdf17d85119535df35bbff1ee653ecc0ad5
Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
2014-09-24 09:46:57 +02:00
Friedemann Kleint
2d685b8316 Vista style: Scale hardcoded values in menu drawing code.
Fix the position of the menu gutter.

Change-Id: Ia8e056f14315f314d1e7a8b95a1ac87f6843e466
Task-number: QTBUG-40277
Reviewed-by: Alessandro Portale <alessandro.portale@digia.com>
2014-09-24 09:46:48 +02:00
Allan Sandfeld Jensen
91b7d53154 Fix QPixelFormat values
The two mono formats are actually indexed and may have both color and
alpha values in the color-table, and Format_ARGB4444_Premultiplied and
Format_ARGB6666_Premultiplied both have the alpha value in the end.

Change-Id: I7f1efb2213710f5eb628d71356f9c8ed75b50f4d
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
2014-09-24 09:33:51 +02:00
Lars Knoll
44a381087e Add * as a valid token to our blacklisting
This helps to blacklist a test function on all platforms,
something that isn't easily possible currently. Adding

[testfunction]
*

to the BLACKLIST file will now blacklist the function
on all platforms.

Change-Id: I9e1a1daf94caa05408a6b3cd7ea7a3acdc962a43
Reviewed-by: Simo Fält <simo.falt@digia.com>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2014-09-24 08:58:42 +02:00
Nico Vertriest
2699d40b57 Doc: correction return statement QSqlDatabase QSqlTableModel::database()
Task-number: QTBUG-37358
Change-Id: I68a0110a01ac21871e8a369c7ab94d2dadf1d80b
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
2014-09-24 08:49:19 +02:00
Jake Petroules
4cb679d888 Fix doc typo with Q_FORWARD_DECLARE_MUTABLE_CF_TYPE.
Change-Id: I2e6b00513be87640dc20831aab4e972716445e63
Reviewed-by: Richard J. Moore <rich@kde.org>
2014-09-24 08:27:27 +02:00
Frederik Gladhorn
0c307f45fd Accessibility OS X: Fix image role
Change-Id: I0839a30041dbe558c420c944da49abe8ea26e0ab
Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
2014-09-23 22:33:29 +02:00
Louai Al-Khanji
4073a3dd77 direct2d: Fix font size when display scaling is in use
Since we already tell direct2d that we are using pixel sizes in the
QWindowsDirect2DDeviceContextPrivate constructor and thereby enable
scaling inside direct2d, there is no need to scale the font size again.

Change-Id: Id9c9ed4d2848bcd09f997e41fb87802a3fe2432b
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
2014-09-23 21:08:20 +02:00
Marc Mutz
1ce6e432b6 QVersionNumber: correctly fail for numerically very large segments
The result of qstrtoull() was unconditionally truncated to an int,
resulting in wrong values being appended to the segments vector
when the numerical segment value was above INT_MAX.

Prevent this by first checking the return value of qstrtoull
as a qulonglong for values larger than INT_MAX and stopping
processing in that case. That means that segments that
numerically overflow an int are now considered part of the
suffix.

Also added tests for the case where a segment value is larger
than ULLONG_MAX. That was already working correctly.

Change-Id: Ia4b89021dcfe6bfae27c8d89bb678ec5e0e3b847
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-09-23 20:42:01 +02:00
Marc Mutz
42d4e054a6 QCommonStyle: remove references to QStyleOptionFrameV<n>
They're gone since Qt 5.0 and only exist as typedefs for QStyleOptionFrame.

Change-Id: I55539305df28267d0671a54a5cb7fcc17d045b8b
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-09-23 20:21:14 +02:00
Marc Mutz
d488153fc2 QStyleSheetStyle: remove references to QStyleOptionFrameV<n>
They're gone since Qt 5.0 and only exist as typedefs for QStyleOptionFrame.

Change-Id: Ic165b524e8d86a0dd5355de338e87a33cd7429c7
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-09-23 20:20:43 +02:00
Jochen Seemann
fbc4bce710 winrt: fix compiler warning on Windows Phone
qwinrtscreen(1010): 'd': local variable is initialized but not referenced

Change-Id: Ic21a9bc087d8418ad9f01b263677438a4db8f493
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
2014-09-23 18:55:30 +02:00