Commit Graph

17928 Commits

Author SHA1 Message Date
Mitch Curtis
4f50be8d18 Properly serialize QFont.
Some data was never serialized (styleName, hintingPreference) and
some was incorrectly serialized (styleStrategy). This change also adds
auto tests for every applicable QDataStream version.

[ChangeLog][QtGui][QFont] QFont now serializes its data properly,
without any data loss.

Task-number: QTBUG-22814
Task-number: QTBUG-22946

Change-Id: I34e61b10662b7ad6c57054dacc7e1f522f5b5c5d
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
2014-03-31 17:45:47 +02:00
Mitch Curtis
bd822bedfe Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev 2014-03-31 17:45:37 +02:00
Marc Mutz
84c10500b1 QVector: add removeOne(), removeAll() for QList compatibility
Eases migration from QList to QVector.

[ChangeLog][QtCore][QVector] Added removeOne(), removeAll() for
QList compatibility.

Change-Id: I4211afb2e077c187d0a39f0ac4528f0c66721fb3
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2014-03-26 00:21:22 +01:00
Marc Mutz
9157a1f97a QVector: add more insert() tests
Add more insert() tests, since the existing ones only covered
the index-based insert() variant and only movable types.

Change-Id: Ifce7a67be0bef45f926f13521873a1d77430e1e3
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2014-03-26 00:21:15 +01:00
Marc Mutz
c18db50658 QFbScreen: replace a use of an inefficent QList with QVector
A QPair<QRect,int> is larger than a void*, so better use
a vector to hold them.

Change-Id: I8f0e65836008803b7f619a22ab3a0db1bd493471
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-03-26 00:21:15 +01:00
Marc Mutz
9f830c3975 QFbScreen: fix foreach loops to declare QRect loop variables as const-&
Change-Id: Ieb388b8e1db848bac50ce17488fef04958450689
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-03-26 00:21:15 +01:00
Marc Mutz
4a35b05b85 QImageReader/Writer: replace dubious use of QSet<QByteArray> with QList
The code populated QSets with some strings and went
on to copy the values to QLists. Since QSet is unordered_set, those
lists were not sorted, so the code did that manually.

Since QSet is a node-based container and not even an ordered one,
the code pays a hefty price just for ensuring uniqueness of values
prior to sorting.

The new code just crams everything into lists, duplicates and all,
then sorts the lists and only then removes duplicates using
std::unique.

Saves 3376B in text size on Linux AMD64 GCC 4.9-trunk release
stripped QtGui.

Change-Id: Ifee931102c01b7505c712cebf4effc37e94165b0
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-03-26 00:20:53 +01:00
Laszlo Agocs
a480cd8147 Do not pull in egl for QtGui and QtOpenGL
This must be some leftover: there are no winsys interface dependencies
outside the platform plugins.

Change-Id: Idde64699a5335155bdda745e78d6edbc68a8711b
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
2014-03-25 17:11:54 +01:00
Andrew Gatt
1d4a1be1af Add: absolute touch screen handling in evdevmouse
Some touch screen drivers present themselves as mice with absolute
coordinates. Setting QT_QPA_EVDEV_MOUSE_PARAMETERS=abs will force
qevdevmousehandler to use absolute coordinates, mapped to the screen
from the hardware maximums. These maximum values are read from the
driver using ioctls.
This feature can be safely used with mice, as the features checks will
fail and qevdevmouse will revert back to using relative coordinates.
This way touch screens and mice can work together.

Change-Id: Ic27bda02aa2199f008bac26db75c1f896696f9f5
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-03-24 20:25:45 +01:00
Frederik Gladhorn
3b5c0bc078 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	src/gui/image/qjpeghandler.cpp

Change-Id: I9db3acea7d5c82f5da679c8eaeb29431136665f0
2014-03-24 16:10:15 +01:00
Fabian Bumberger
21f1738a94 QNX: Fix sending of expose events
When the window geometry is changed an expose event should only be sent
if the window is visible.

Change-Id: I540ea7e7e07d896495547f3f8bf81738fad3ddee
Reviewed-by: Bernd Weimer <bweimer@blackberry.com>
Reviewed-by: Sergio Ahumada <sahumada@blackberry.com>
2014-03-23 17:02:42 +01:00
Jorgen Lind
c79918733a Fixup compilation of the manual tests
Change-Id: I871b0e7c1c4336b45e880023e7374f579e018cd6
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-03-22 19:54:27 +01:00
Allan Sandfeld Jensen
c2c136306d Apply fontconfig settings to custom fonts
Currently QtWebKits custom fonts does not follow the system settings
on Linux. This is because they are only handled by the basic
fontdatabase.

This patch adds handling of custom fonts to QFontconfigDatabase.

Change-Id: I676fc97840766b58cd937bb8e2c9f166f30c8a6e
Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
2014-03-22 12:56:06 +01:00
J-P Nurmi
ecf6aa2dca configure: Disable XCB auto-detection on Mac
Users might have (old) libxcb installed on OS X, for instance as
a dependency for another package installed via MacPorts. It's still
very unlikely that any Mac user would want to use the XCB platform
plugin. Thus, disable the auto-detection to avoid a dubious XCB
configuration error on Mac.

Change-Id: I11d21aad255925883d6841444baa13a29f1a26b0
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
2014-03-22 12:56:06 +01:00
BogDan Vatra
a30676f201 Fix crash: make sure functions pointer is initialized.
Change-Id: I42fd3933f33370612290e8ba252349acfae72381
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-03-22 10:55:56 +01:00
Andrew Knight
0afe3c7ee3 Windows Phone: Remove QT_NO_CURSOR
This define causes source incompatibilities in QML applications, as it
results in removal of properties from e.g. MouseArea. The default (null)
cursor implementation which will now be active should cause negligible
overhead with this define removed.

Change-Id: I8ee78e084cb95b4c73782a3a831f0672ba230b19
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2014-03-21 23:13:23 +01:00
Andrew Knight
2c26f9a39f Windows Phone: Remove ws2_32.lib dependency
We no longer require this library, so remove it from the linker list.

Change-Id: Ic211f8f6d954eddce8818807619962ad009be117
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@digia.com>
2014-03-21 23:13:23 +01:00
Shawn Rutledge
efcfa0b252 QGuiApplication: send TouchCancel when touch is interrupted by popup
QQuickWindow depends on maintaining state of known touch points
between events, so it needs to be notified when it will not be
receiving the corresponding release event for one or more.
This temporary fix needs to be reverted when we have a proper
event forwarding solution.

Task-number: QTBUG-37371

Change-Id: I5dc40af6feac425be8103c1586f8ebe3a6aad20d
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2014-03-21 21:08:27 +01:00
Michael Brüning
584088f200 Initialize the picpainter State in the QAlphaPaintEngine.
Patch by John Layt.

Analog to how the print preview problems on windows were fixed, this
is needed to correctly print e.g. web view contents.

Task-number: QTBUG-36308
Task-number: QTBUG-37240
Change-Id: If4ecffde969ed221bbbeea80232f29f095fd71cd
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: John Layt <jlayt@kde.org>
2014-03-21 21:08:27 +01:00
Eskil Abrahamsen Blomfeldt
523d1c54e4 REG: Fix compilation with old AndroidManifest.xml
For apps created with Qt 5.2.1, the AndroidManifest.xml will
contain a reference to android.app.splash_screen, which was
removed from the application template when the splash screen
functionality was fixed by 4d08d80be6.

To make sure existing apps still compile, we put back a dummy
splash.xml so that the reference in existing manifests still
work. If this splash screen was actually used for something,
it will no longer show up, so we also need to document that people
should update their AndroidManifest.xml to the new system, but
we can't inform people via mysterious compilation failures :)

Task-number: QTBUG-37493
Change-Id: I6289f9b5e2c315fa6db502cbde27bd18e15f1f8d
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
2014-03-21 18:49:06 +01:00
Friedemann Kleint
374d0a0b8c Remove manual test qpainfo, which is superseded by the qtdiag tool.
Change-Id: Ibd6e8fc05495f6eb2adca22072df19530766858a
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-03-21 18:34:43 +01:00
Friedemann Kleint
045e20b32f Fix qdoc warnings in QMargins, QRect.
Change-Id: Iae2486e1f335679c288e05f45e2d283a7cf971c0
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
2014-03-21 18:33:43 +01:00
Gabriel de Dietrich
e7816e987e QPA: Fix QPlatformTheme::Palette enum value spelling
We keep the old value for source compatibility, but it should
probably be removed at some point as the QPA API is semi-public
only.

Change-Id: I06e4c9ca1d8bb878411ad79ef409d60ce2d29f4a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-03-21 18:02:20 +01:00
Gabriel de Dietrich
9637b5f7f0 Mac theming: Remove obsolete private color conversion functions
Change-Id: I165eea19c8e50f981a9fa48c14f0d63c40951747
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2014-03-21 18:02:15 +01:00
Gabriel de Dietrich
b145c1db00 Mac theming: Set background brush for menu palette
We also remove overriding the background when polishing the palette
in QMacStyle. This is a leftover from pre-10.5 styling.

Change-Id: Icaa6d9c864ab01783d83cc02192981136c417d24
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2014-03-21 18:02:10 +01:00
Fabian Bumberger
9379dd9410 QNX: Fix crash in bb_select
Change-Id: Ic1a414c9d89b790ed9fb9f5c989b6018de78b465
Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
Reviewed-by: Bernd Weimer <bweimer@blackberry.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-03-21 17:56:02 +01:00
Fabian Bumberger
70624ed9d6 QNX: Fix QGraphicsItem autotest
Change-Id: I85b0938e6ebeb9f24e24b51a594c01b74167a177
Reviewed-by: Sergio Ahumada <sahumada@blackberry.com>
Reviewed-by: Bernd Weimer <bweimer@blackberry.com>
2014-03-21 17:55:55 +01:00
Allan Sandfeld Jensen
3cf7b31c4a Cleanup and refactor QFontconfigDatabase::fontEngine
Refactors the logic to parse the font configuration from fontconfig, so
that it maybe reused for custom fonts in a later patch.

Also fixes a minor mistake that meant we defaulted to medium hinting,
where we tried to default full hinting.

Change-Id: I1e135b8b1e3faeb213aa370ea59ebde3a671273d
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
2014-03-21 17:52:37 +01:00
Robin Burchell
a82291aea1 QNativeSocketEngine(UNIX): Report the native socket error, not the Qt-derived error
This prevents error reporting from being useless in case an errno value isn't
one we anticipate.

Change-Id: I65f8c2570d07971a06ba3687d75e9df91a0e7611
Reviewed-by: Richard J. Moore <rich@kde.org>
2014-03-21 16:52:00 +01:00
Laszlo Agocs
aecc14fff8 Remove non-existent function from header
This is a leftover from the QGL->QOpenGL migration, the function
never existed in the QOpenGL variant of the class.

Change-Id: I47bdfb7f65ffc6cdd39b353e3a69900ccf10e4fc
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
2014-03-21 15:43:17 +01:00
Lars Knoll
9b378143a8 Setting QT_NO_DEBUG should not remove symbols
Removing symbols when defining QT_NO_DEBUG is a bad idea.
In this case it means that you can't compile corelib as a
release build and widgets as debug without getting an
undefined symbol.

Instead leave the method in the release build, but simply don't
call it.

Change-Id: I50426aefd62e82bccd933323aa0f67c6e5294961
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-03-21 08:42:29 +01:00
Richard Moe Gustavsen
68c8016394 iOS: send a Qt::Key_Return when the user hits done/enter
We need to send key events when the user hits enter, otherwise
there is no way to know when the user has 'confirmed' the
text he wrote. This is on par with how it's done for the
Android port.

Change-Id: I585d4198de24b0d251e5e0dd2956ce81b6483f82
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2014-03-21 08:41:23 +01:00
Richard Moe Gustavsen
37ba38b334 iOS: implement 'close keyboard' gesture
Before this patch there were no way for the user to hide
the keyboard on iPhone for multi-line edit fields unless
the app had a separate button added for it. And even that
would be problematic since we scroll the screen (and
perhaps the button) to track the cursor.

This patch implements a gesture that resembles the 'hide
keyboard' gesture that UIScrollView implements on iOS 7.

Note that if you start the gesture inside the edit field,
you will start selecting text as well. This will also cause
the cursor to move and the screen to scroll. After some
testing and failing, it seems like we need to live with such
artifacts until we do get around to do the only sensible thing;
fix up how we do text selection on touch platforms. Working
around it becomes just to messy.

Change-Id: I1c0d9c88ff1f5430587a49591f165b9708e5dc60
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2014-03-21 08:41:23 +01:00
Eskil Abrahamsen Blomfeldt
3d5234eb9a REG: Android: Fix freeze when accessing assets
Change 287fa94fe2 created a freeze
in the assets file engine because it will try locking the mutex
twice. Since prepopulateCache() is only called from create(),
we don't need to lock it recursively.

Task-number: QTBUG-37661
Change-Id: I00d0fed132a86c1be5603484eb6ee05454da9ef0
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2014-03-21 06:31:27 +01:00
Morten Johan Sørvig
b76612979c Cocoa: Fix geometry for embedded QWindows.
Report for correct geometry for QMacNativeWidget
and other QWindows that are embedded in a NSView
hierarchy. This also makes mapFrom/ToGlobal work.

The implementation is different than for the other
cases: Add a QCoocaWindow::geometry() overload and
query the geometry there, instead of using a geometry
change notification which sets the geometry on the
QWindow.

Task-number: QTBUG-36322
Change-Id: Iab5f0c96b89610c8a4b4a7de49887b0683d551dd
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2014-03-20 22:13:07 +01:00
Morten Johan Sørvig
3b8b47db6a Set unified toolbar height accurately.
Add registerContentBorderArea() to the Cocoa native
interface which allows registering multiple "unified
toolbar" areas for each window.

Use this function in QToolBarLayout::setGeometry()
to register the area for each TopToolBarArea toolbar.

Task-number: QTBUG-36700
Change-Id: I52efcc5662556bb94f25f504be3710d0491f79b9
Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Reviewed-by: Denis Dzyubenko <denis@ddenis.info>
2014-03-20 22:12:47 +01:00
Lorn Potter
e368866d68 make sure connman bearer service is autconnect before connecting
Change-Id: I4c9a93d69f7fe990bf9d7f2e939abbe2c82ba449
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
2014-03-20 21:07:48 +01:00
Tor Arne Vestbø
2bc7a40048 Teach font database to populate families lazily
Instead of requiring that QPlatformFontDatabase::populateFontDatabase()
populates every single font in the system by calling registerFont(), we
now allow the platform database to call registerFontFamily() instead, and
then keep track of which families we've yet to fully populate in the font
database.

Once a property of a family is requested (such as its writing system,
style, etc), the family is lazily populated by calling back to the
platform database through QPlatformFontDatabase::populateFamily(),
which in turn does the final call to registerFont() as before.

This cuts application startup on OS X and iOS (of which the font population
used to be a major limiting factor) from roughly one second to about 350ms.

Task-number: QTBUG-37165
Change-Id: Ic2fc3447beb818ffe23635a5b7816ed7e70c93a7
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2014-03-20 19:01:53 +01:00
Konstantin Ritt
7a08f714a5 Fix bundled HarfBuzz-NG build on Mac
Change-Id: I2229c77b4951c2ba9b445286cb94a2a86e345c34
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2014-03-20 19:01:53 +01:00
Jens Bache-Wiig
23595107cd Respect scrollbar position setting on Mac
This was a regression from Qt 4.7.

[ChangeLog][Widgets][QScrollArea] Respect scrollbar setting for
click-position on Mac.

Task-number: QTBUG-36314
Change-Id: I8bdb1aec9b308b0907f5db29d3519998bc843c18
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
2014-03-20 19:01:53 +01:00
BogDan Vatra
80151389d6 Android: Try to hide the sw keyboard on finishComposingText.
finishComposingText is called when the composing text is finished also
when the sw keyboard is hidden.

Task-number: QTBUG-37631
Change-Id: I4f4e90e60ac3f89784755b591f578e07fdbfdd2a
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2014-03-20 19:01:53 +01:00
Peter Hartmann
d9f5200fb8 network: add support for NTLM Session Security
tested manually with internal proxy.

Patch-by: Jonathan Lauvernier <Jonathan.Lauvernier@gmail.com>

Change-Id: Ief5b4579b3444ce70eb99637edf771d37d3971fb
Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
2014-03-20 19:01:53 +01:00
Peter Hartmann
53f81ac946 BlackBerry networking: call special select() method
... so that the socket notifiers are enabled after selecting and thus
emit signals even after selecting (select() is called e.g. by the
waitFor* methods).

Task-number: QTBUG-36144
Change-Id: I385f288e8c42f92a9c84e53bce843e52f8094ada
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Fanda Vacek <fvacek@blackberry.com>
Reviewed-by: Bernd Weimer <bweimer@blackberry.com>
Reviewed-by: Richard J. Moore <rich@kde.org>
2014-03-20 19:01:53 +01:00
Kai Koehne
ba4d154737 Logging: Remove PatternFlag::Invalid from QLoggingRule
The flag is not orthogonal to the rest, and e.g. checking with

   flags & Invalid

will fail. Rather make it explicit by comparing with 0.

Change-Id: I428d5e71f5ecd05f61d543aaa78532548ef93d5a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-03-20 19:01:53 +01:00
J-P Nurmi
07fef5f3ff QFusionStyle: support transient scrollbars
QFusionStyle doesn't make scrollbars transient by default,
but the feature can be enabled with a proxy style:

class MyProxyStyle : public QProxyStyle
{
public:
    int styleHint(StyleHint sh, const QStyleOption *opt = 0,
                  const QWidget *w = 0, QStyleHintReturn *ret = 0) const
    {
        if (sh == QStyle::SH_ScrollBar_Transient)
            return 1;
        return QProxyStyle::styleHint(sh, opt, w, ret);
    }
};

Change-Id: Ibf169e219ad920cbe7edb06e128e09ed4d8faf96
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2014-03-20 16:55:23 +01:00
Mitch Curtis
9ad768fd19 QPushButton: draw label using the stylesheet's font.
The RenderRule for the stylesheet has the correct font information, it
just wasn't being set on the painter that draws the label.

Task-number: QTBUG-8990

Change-Id: I7cbaffc570421db04ebf3254cb6a21a68f7b868b
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2014-03-20 16:47:22 +01:00
Mitch Curtis
ff0e7df477 Stop omitted enum value from showing up in Qt namespace doc.
The following omitted enum description can be seen at [1]:

"Ensures that the longest variant is always used when computing the
size of a multi-variant string. (Internal)"

This is because \omitvalue does not allow a description (whereas
\value does).

The description was moved to the qnamespace.h as a code comment.

[1] http://qt-project.org/doc/qt-5/qt.html#TextFlag-enum

Change-Id: I7983613bffa90f3071a4e2d678696391048c8757
Reviewed-by: Martin Smith <martin.smith@digia.com>
2014-03-20 14:13:29 +01:00
J-P Nurmi
5bcb87babf QApplication: fix scroll phase handling for wheel events
Set scroll phase correctly for propagated wheel events, and do not
let Qt::ScrollBegin/End steal focus when using Qt::WheelFocus policy.

Change-Id: Ia38b64059d96a228c3b83c9b455db6e30dfb9a46
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2014-03-20 14:12:51 +01:00
Laszlo Agocs
3e3d06d705 Docs: Correct OpenGL ES naming
Not sure where "OpenGL/ES" is coming from but there is no such thing.
The correct name is OpenGL ES.

Change-Id: If071ee5bd928fea1a2f1aebc11155344df1efe2d
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
2014-03-20 14:11:38 +01:00
Laszlo Agocs
8adca56674 Resurrect advanced bindTexture() features in QtOpenGL
During the Qt 4 -> 5 migration the setting of the extension flags
in QOpenGLFunctions/Extensions suffered a regression: flags like
GenerateMipmap were never set. This led to the unfortunate sitation
that features that were tied to these flags, like compressed texture
support or mipmap generation, got disabled.

This is now corrected by checking for the extensions like Qt 4 did.

Task-number: QTBUG-37588
Change-Id: I4a7beb1b435af11e05f5304aa04df2ec63b34c18
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
2014-03-20 14:11:33 +01:00