px16 and py16 might be <0 in the first iteration of the loop. In order
to avoid accessing an invalid index the values have to be corrected
before px and py are accessed.
Change-Id: I790faeacc2b77ae8af52bf5e69a2d801c9fe973d
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
Re-use a private helper API from QWindowsFontDatabase.
This also helped in consolidating the behavior between these two.
Change-Id: I93ba0a486a2c11fdefd328af090497dde5b0fbdb
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
A convenient way to obtain the block format ranges that should be
applied to the block text.
Change-Id: I220429b7c9c592c4880357c0d7b1b21f6c1c11f3
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
In UTF-16, SMP code point is encoded with a pair of surrogates,
thus making SMP code point twice wider than BMP code point.
Change-Id: Ifb0e78cff50cca7231d07097a730188bd98c54cb
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
...and thus consume 4 bytes less per glyph and increase the performance a bit.
It seems, the only CTFontGetAdvancesForGlyphs() returns both x and y
advances, though y advances are always equal to 0 for horizontal
orientation and x advances are always equal to 0 for vertical orientation.
Also, rename `advances_x` to `advances` for consistency
and declare QGlyphLayout's data size in a single place.
Change-Id: I56b20f893f8a6feb7aa870e3edbca99dd93ba2e2
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Just like eglfs does. This will result in dialogs, like file dialogs,
showing up properly centered on the screen.
Change-Id: I2682c7792e4bc66773e31f602a4bee4cf525a6a1
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
A few more HTTP status codes from the 4xx and 5xx series have been
added to QNetworkReply::NetworkError.
For content errors, the following codes have been added:
1. 409 - Resource Conflict
2. 410 - Resource Gone
For server related errors, the following codes have been added:
1. 500 - Internal Server Error
2. 501 - Operation Not Implemented
3. 503 - Service Unavailable
Few of the above codes are quite possible when communicating with REST
based services.
NOTE:
=====
* HTTP error status 400 is interpreted as
QNetworkReply::ProtocolInvalidOperationError.
* QNetworkReply::UnknownServerError is returned for all server related
errors (5xx) not listed above.
[ChangeLog][QtNetwork][QNetworkReply] Added more (specific) HTTP status
codes to NetworkError enum.
Task-number: QTBUG-30880
Change-Id: I9d2a133f6b3869f26710c6eb930dd8b08df31108
Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
This aimed to disctinct joining types "L", "T", and "U" from just "U".
Unicode 6.3.0 has introduced a character with joining type "L" and
Unicode 7.0 will add a few more characters of joining type "L", so
we'll have to deal with it anyways.
[ChangeLog][QtCore][QChar] Added JoiningType enum and joiningType()
method that deprecates the old QChar::Joining enum and joining() method.
Change-Id: I4be3a3f745d944e689feb9b62d4ca86d1cf371b0
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Change a4ff400e25 exposed a bug in
the font matching in the FontConfig engine. FcFontMatch is
documented to not work unless you call FcConfigSubstitute()
and FcDefaultSubstitute() on the pattern first. We were neglecting
to do this, but hiding the bug before since we were doing our own
font matching and never reading back the file name from FC's match.
When we started doing this, suddenly DejaVu Sans (for instance)
would match its bold variant instead.
Change-Id: Ie6b7026de24cfb0353dc892fa862d6ee79604f38
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Currently QImage::pixel() returns the raw underlying pixel values for
RGB32. For all other pixel formats the returned value is either valid
ARGB32 or ARGB32PM.
This patch masks the undefined alpha field in RGB32 so that the return
value is well defined QRgb. It also fixes one test that relied on the
previous behavior.
Change-Id: If37463528268b7419733499d1f7bfd0d1097d21e
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Currently INV_PREMUL rounds strictly down. While PREMUL rounds evenly.
This patch adds 0x8000 to the intermediate results in INV_PREMUL before
right shifting, thereby achieving even rounding.
The rounding also makes PREMUL(INV_PREMUL()) into an identify operation,
which means we can safely convert ARGB32PM to ARGB32 and back without
ever losing color details. A test is added to verify this.
Change-Id: I1267e109caddcff0c01d726cb5c1c1e9fa5f7996
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
q_func() which is declared in Q_DECLARE_PUBLIC is usually private.
We should use q_ptr directly in QObjectPrivate::connect, otherwise
it does not compile when trying to access the private q_func
Change-Id: I235165a0994327102dbb31c390c2cafdffe806dc
Reviewed-by: Kurt Pattyn <pattyn.kurt@gmail.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
this hasn't happened yet at this point of processing, so we'd pass bogus
paths when shadow-building.
Change-Id: I9f9633c0dbc2aadeff1eb555a8e598ddb0837e37
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
The Qt::ImageConversionFlag Qt::NoFormatConversion is necessary to
generate QPixmaps not in ARGB32PM which can be useful when not used
as a paint device.
Task-number: QTBUG-36031
Change-Id: Ic2d3ccd59285dd18890f07f3205a2a219ce3aa40
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
This allows manually transferring focus from one window to another, if the
application has focus.
Change-Id: If73ddca6ffbb735eaf4ee9fd322d978f9366fb4c
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
This patch adds tests for the consistent handling of transparent
drawing results on opaque formats that was introduced with commit
6f7d370ade
Change-Id: If5d11d0f2e111ef88490a4dc20a64b0858ad5426
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
The recent split of qimage.cpp meant mirror_horizonal_bitmap had
to access the bitflip array using a function call. The function call
was placed in the inner loop, but should have been moved out of the loop
as it can not be inlined.
Change-Id: Id771b2fb7e6c2bfa59670ee96a857a529da13c0b
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
* Avoided crash, if root window is reparented
* Corrected video window name
* Made parent window member private again
Change-Id: Icef9fad5495413e0de87c4366f25dad6c4fd5775
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
When dragging by touch driven by synthesized mouse events, the cursor
is suppressed. Use a popup window to show the drag cursor instead.
[ChangeLog][QDrag][Windows] Fixed Drag and Drop driven by touch-synthesized mouse events.
Change-Id: Id8c1aab79a091c89986ee7ee62ded44a3267fd3f
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
This patch adds a new function which does the error handling for libscreen calls.
The patch introduces following changes:
- Libscreen errors will not crash (qFatal)the application any more but rather post a
warning message.
-With the "flush-screen-context" option the screen_context is always
flushed when a screen function is called. This enables better correlation between the
time an error happens and the time it is logged.
Change-Id: Ie2456e5b746dcf917d786f3b832847d2ebbe5f1e
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Roger Maclean <rmaclean@qnx.com>
Reviewed-by: Bernd Weimer <bweimer@blackberry.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
This patch fixes an issue when a font that was added with QFontDatabase::addApplicationFont
can not be removed any more.
The reason for that is that QFontconfigDatabase::addApplicationFont adds the font to the FontConfig
application set from where it cannot be removed any more and is picked up every time the font database is
repopulated (e.g. after a call to QFontDatabase::removeApplicationFont).
This also fixes the QFontDatabase autotest which unfortunately does not fail on linux, because it tries
to add "FreeMono" (which in most cases is already there as a system font). So this patch removes FreeMono and adds
LED_REAL as test font.
Change-Id: I2fa5f4df0ad2099ac28673760ea25234c725dfc6
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Detect the 'suppressed' state new in Windows 8.
Change-Id: I0faa994aa7b91869cedba36b777b1784818efcce
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Introduce a struct CursorEntry for the cursor map which also contains
pixmap and hotspot required for follow-up changes. Streamline code
in createCursors(). Fix cacheKey checks in GiveFeedback() to trigger
for non-zero keys only.
Change-Id: Iafcbfd9ec9e8c6ae8bbaced21667887b10b47f23
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Most of the test is executed in RTL mode since it is never restored.
Task-number: QTBUG-36395
Change-Id: I110966085a5a265f093fc4479eebc1f1bf0614c1
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Otherwise the compiler may choose libc++ based on the deployment target,
and we'll end up with broken builds due to the mismatch between the two
libraries, eg:
Undefined symbols for architecture x86_64:
"std::ios_base::Init::Init()", referenced from:
__GLOBAL__I_a in libQt5Qml.a(qv4object.o)
...
"std::ios_base::Init::~Init()", referenced from:
__GLOBAL__I_a in libQt5Qml.a(qv4object.o)
...
"std::__throw_length_error(char const*)", referenced from:
...
This problem is not iOS specific, which is why the logic is moved
to the more generic mac/default_post.prf.
Change-Id: I28b94e614f9167fc0db84bbf1c88dd97d5629938
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
QWidgetWIndow: In Qt4, when Qt created a MouseButtonDblClick
event, Qt would consume the causing MouseButtonPress.
It would send only the derived dblclick event to widget
windows and their children.
This change makes Qt5.3 and higher emulate Qt4 delivery
of double click-related events to widget windows and
their children. QML objects (e.g. mousearea) continue to
receive the second MouseButtonPress.
[ChangeLog][QtGui][QWidget] MouseButtonDblClick: Do not send
the 2nd MouseButtonPress event to Widgets. Restore Qt4
behavior in sequence of mouse events delivered to
widget windows and their children.
Task-number: QTBUG-25831
Change-Id: Iff0f9c592bceacb2ca844d30f8180081e136a889
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
The tests then have a predictable, stable environment and do not depend
on file system operations.
Task-number: QTBUG-23697
Change-Id: Ibbd356f8bd7419ec4a3a88d2c0b5cd0830049790
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
Implemented that way in src/widgets/widgets/qmdisubwindow.cpp:2081.
Change-Id: I82fdf0c04f1655a130c5e6a6f1e23d325d546ab3
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Make it easier to diagnose quoting errors in scripts.
Change-Id: I17894a426faa5cdf50f5ace4ed422ab2bd202558
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Add a per-window swap chain to a QPlatformWindow subclass instead of tying
it to the backing store. This is needed to support native widgets (as
opposed to alien widgets).
Change the backing store to draw to an intermediate pixmap and flush to
the requested window by using the per-window swap chain. This also opens
the door for faster window presentation later on by using the swap chain
more intelligently.
Also add a changelog entry for the direct2d plugin, which was omitted
earlier.
[ChangeLog][QtGui][Windows]
Introduce experimental direct2d platform plugin for Windows. This plugin
shares most code with the current windows plugin, but substitutes a
direct2d-based paint engine for window backing stores and pixmaps.
Change-Id: I5f54e7e4c1fb15b1639bd26b712fb40ac141e4ac
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
The support for QArrayData variadic arguments without C++11 for GCC
has been removed in commit 69478da0f0 . Change the autotest to reflect
that, too.
Change-Id: I40468f5d67cb2db553fd7a7d5b604f46403ac538
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
As CTFontManagerCreateFontDescriptorsFromURL is not available on iOS < 7.0
we unfortunately need to fall back to the old behavior of only adding a
single font on older iOS versions.
Task-number: QTBUG-34490
Change-Id: I9c37a5cada067a4ebfaa9f04e7a30d41b8945990
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
The ATS code path already did this, by enumerating all the fonts in the
resolved collection. The CoreText code path assumed that registering a
font URL would only add a single font.
We now use CTFontManagerRegisterFontsForURL to enumerate all fonts
that were added. This functionality is not available for fonts based
on a data provider.
As part of implementing the patch the code was simplified to re-use
logic between the different ways of resolving font descriptors from
a file or byte array.
Change-Id: I6eb15df939d03dc588a87e46f39bd54e56b50643
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Instead of three separate lists depending on the font type. This
makes enables sharing more code between the different implementations.
Change-Id: If090d1b4a32f035b6344cbadd4c5ba66e0cb99f7
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Instead of sprinkling '!ios' all around the various modules. This is
a bit more fine grained than the CFG_NOBUILD_PARTS += "tests" that we
had in configure.
Change-Id: I6ca2e5df118dfc0bb5d7b8495a3543f51dc0fa30
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>