The purpose of PE_Frame is to draw the frame, not the background. The
old code tried to check whether a custom base brush was set, and
otherwise let the theme draw the background. That didn't work together
with CSS background images. This change removes the background drawing
from PE_Frame, and let's PE_Widget to draw the background using the
base brush that defaults to a color fetched from the theme.
Task-number: QTBUG-24783
Change-Id: Iaddfcbd613122a9aed39e77ba05a26f94995f7d2
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
Check for QAccessible::StaticText role in addition to EditableText, to
get correct frame for non-editable text widgets, such as QTextBrowser.
Task-number: QTBUG-24783
Change-Id: I2c3e4f4fa06c8122485b1bc6c1da04c7565c7223
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
In reset() if SqlExecDirect returns SQL_NO_DATA the column metadata
is ignored.
Change-Id: I0501fa47c42754bba42b3531da59e66c696eac53
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
The QODBCResult::exec() returns false when query is an delete
with no data do delete caused by SQLExecute function returning
SQL_NO_DATA, but the false return means error on execution.
Task-number: QTBUG-10569
Change-Id: I6c7ebadcf62ab404b60c7bcccdab6a10bf16a923
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
This way find_package(Qt5Svg 5.1.0) will require Qt5Core 5.1.0 or later, for
example.
Additionally, forward the EXACT keyword to find_package dependencies
so that find_package(Qt5Svg 5.1.0 EXACT) will reject Qt5Core 5.2.0, for
example.
Change-Id: I302f5a3a683e6c36ef42f1e81c5f7e6258cf5624
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Alexander Neundorf <neundorf@kde.org>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Change-Id: I957d662d677766732f324e48a6bc42f23f1a444c
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Change-Id: If454627be464e388cb8f529a6041d3ec804f22ce
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
otherwise we assume that the user is trying to build a random example
which just happens to live inside a qt module's repository.
Task-number: QTBUG-29756
Change-Id: I17f217b4235fbe04f2c49d1d92ce08b86bb259b9
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
this is cleaner than having it parse qmake project files.
the only remaining built-in version extraction is the fallback to
qglobal.h needed for bootstrapping.
as a "side effect", this fixes the build of modules with mismatched
versions centralized in .qmake.conf, as this was simply not handled so
far.
the -mkspecsdir syncqt option goes away, as there is no use case for it
any more.
Task-number: QTBUG-29838
Change-Id: I6912a38f0e93a26bc267a9e3d738506fd3ad431b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
The connection to qt-project.org seems to be the one that causes this
particular test case to fail.
Task-number: QTBUG-29941
Change-Id: Ie5e430646997e86e3acb04132cd90a1773a091da
Reviewed-by: Richard J. Moore <rich@kde.org>
Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
There is some code duplication between QMacStyle anf the Cocoa QPA
plugin regarding painting and bridging with Cocoa.
Task-number: QTBUG-29725
Change-Id: I347407a9bca47b6fccd77fb924688bd35135d96b
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
(cherry picked from commit 5f948eb62d)
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Added new environment parameters QT_QPA_EVDEV_KEYBOARD_PARAMETERS,
QT_QPA_EVDEV_MOUSE_PARAMETERS and QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS to the
evdevkeyboard, evdevmouse and evdevtouch input plugins. In order to get
evdevkeyboard support for keyboard layout, explicit device file and more.
Change-Id: I0d9139cd0d4b682ab2df7c16ebd16d4d9c0c0ab0
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
The test has been recently failing in CI. The problem was easy to
reproduce in a virtual machine by resizing the window of the virtual
machine small enough. This change makes sure that the requested size
hint is significantly smaller than the desktop size, to avoid the
window manager stepping in and limiting the window size.
Change-Id: Id8ce63b2b88cbed964e0330633c5d2e1dc33598c
Reviewed-by: Caroline Chao <caroline.chao@digia.com>
(cherry picked from commit 36e6632fa3)
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Skip the test on X11 where it's consistently failing in CI but not when
trying to reproduce locally. Also attempt to make test slightly more
robust on other platforms (it's already #ifndef'd for Q_OS_MAC).
Task-number: QTBUG-30271
Change-Id: I6743eb99549abbd945e380a3a54ce8620000298a
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Added code to check to see if the menu item already exists in the
application menu before adding it.
Change-Id: Ie0a5eab3c61d5a3413a834d2e57bab40660f6802
Task-number: QTBUG-27202
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
1. when there were some engines with ref > 1 in the cache, prior to calling
QFontDatabase::{add,remove}ApplicationFont()/removeAllApplicationFonts()
(QFontCache::clear() has never decreased engine's cache_count);
2. when the QFontEngineData's engine is not in cache i.e. the Box or Test font engine
(~QFontEngineData() didn't free engines it keeps).
Instead of using the font engine's (external) "cache_count" counter,
QFontCache now references a given font engine every time it is inserted to
the cache and dereferences exactly that number of times in clear().
Change-Id: I87677ebd24c1f4a81a53526f2e726e596b043c61
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
... when the compiler do not support variadic template
Change-Id: Iec84cad8ece2fc28b0c224872fdd90d30ae60fc9
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
When variadic templates and decltype are supported, detect the best
overload of operator() to call.
Currently, the code takes the type of the operator(), which requires that
the functor only has one, and that it has no template parameter.
This feature is required if we want to connect to c++1y generic lambda
(N3418)
Change-Id: Ifa957da6955ea39ab804b58f320da9f98ff47d63
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
Else, the operator,(T, ApplyReturnType<void>) is sometimes chosen if a
pointer is passed, and that is breaking some decltype expressions.
(such as the one in ComputeFunctorArgumentCount in the next patch)
Change-Id: Ic203bbb1a8f5abbebb3b11786454807aa20be5fd
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Add window minimization capability on the plugin.
Change-Id: I4539d29b8ebbef935213edde634f0a85b6a21766
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
As of now, we'll have everything related to the additional formats handling
just in a single place. Make specialData private to prevent accessing it
from outside. This helped in tracking-down several related issues:
- in format(const QScriptItem *), the resolvedFormatIndices can not be empty
at that point, so the code path is dead;
- in resolveAdditionalFormats(), testing if formats has not been indexed yet
is not needed since they are indexed just in the setter;
- in useRawFont mode, hasFormats() didn't check if QTextEngine really
has some formats, which potentially leads to formatting artifacts.
Change-Id: Id4b912888fd5a1fa83f01007170134b6386e2879
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Change-Id: Ic93054d8fc68497fb0bcc2c5491924b9c57b78ad
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Padding was correctly added between glyphs but it was missing at the
texture edges.
Change-Id: I6d5e1206194f6aecefcfc45ead22d54c1207de4f
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
qdoc was using the method signature (beginning
with the return type) to sort methods for listing
in the HTML output. Now qdoc sorts on the method
name, which makes the list easier to read.
Task-number: QTBUG-29708
Change-Id: If3785ccd5849df53b01043c2dada0b6bf3c00614
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Instead of first finding it and then testing that we can find it.
Change-Id: I1a1090693520b1d6adadef93839f25d277947e76
Reviewed-by: Alexander Neundorf <neundorf@kde.org>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Ignoring the mouse means you don't get window enter/exit events for
that window either.
Task-number: QTBUG-30122
Change-Id: I979be9f72f7d225d7b960fc5db4c3956d2749982
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
UIApplicationDelegate's willFinishLaunchingWithOptions message was
introduced in 6.0. For now we don't need to distinguish the two, so
no need to use willFinishLaunchingWithOptions on iOS >= 6.0.
Change-Id: Ic6c2c9d2901def5a5500b186ed57fbe8b8c556d1
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
QOPENGLF_APIENTRY masks over GL vs ES, as we need GL_APIENTRY on iOS,
where APIENTRY is not defined.
Change-Id: I60c097d67e0844c30913c913cf88a9b9e181813b
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
It is needed for implementing the shortcut functionality in the xcb platform
plugin and for the compose key input context plugin.
As announced on the wayland-devel mailing list - the libxkbcommon 0.2.0 is
the first grown-up release of the library (Tue Oct 23, 2012). [1]
[1] http://lists.freedesktop.org/archives/wayland-devel/2012-October/005976.html
Change-Id: Id5d45e1a5afe49cf9ec5312318bd173f5a067f62
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Short-lived benchmarks (benchmarks that complete in a very short period
of measured time) are often more affected by jitter and warm-up effects
than longer running benchmarks. Since QBENCHMARK stores the median
result of all accepted benchmark runs, a larger number of aggregation
runs is preferable for short-lived tests, but not necessarily for longer
running ones. The minimumtotal option, specified in units of the
selected measurement, will make the benchmark repeat a benchmark until
the total measured cost exceeds the specified threshold. The displayed
median result will then tend to be more accurate. This is especially
useful for data-driven benchmarks in case the data tags scale the
benchmarked operation from little to large cost.
Change-Id: Ib857de64aaffc77715a0000d36f0245f31d86b9a
Reviewed-by: Jason McDonald <macadder1@gmail.com>
From reading the code it can be ENOSPC or EMFILE
Change-Id: I2eecbf8afe0228d330210c25f299af12fab9cb64
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
This has been broken forever, just like generic signal
disconnection. It didn't use to show up before because in Qt 4,
QObject's destructor would not call disconnectNotify().
Just like in the previous commit, we need to verify whether the signal
was disconnected from the last receiver. A wildcard disconnect might
be disconnecting only from a specific receiver.
Task-number: QTBUG-29498
Change-Id: I0790128ea878fdf3ac563c99d96c6aa7d270e9a3
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
There has been a latent bug forever in QtDBus that would make a signal
disconnect actually disconnect too much. The reason is that
disconnectNotify() is called every time a signal is disconnected from
a receiver, but that doesn't mean it was the last connection.
This test checks whether disconnecting from voidSignal() to our test
receiver will also disconnect from exitLoop(). If it does, we'll get a
timeout. I could have implemented it with two receivers, but in the
buggy case, it would always fail first in the timeout verification.
Change-Id: I5766d8a38594eb25e65b304913251303660fad41
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
This is mandatory in public headers (qiodevice.h, qopengl*, etc.), but
it's a good idea even in private headers, in case someone includes
that header first somewhere. In particular, all platformsupport API is
private.
Change-Id: If287baa5d9ed14e93c1666efa0e6332c4c1cd9a4
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
OpenProcess + WaitForSingleObject is supposed to fail after the process exits,
but this seems to take some time until Windows notices.
Change-Id: I942a9b4a458c23fc4ac33b28386e28821128e991
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Being able to calculate advances for series of glyphs include kerning
is important to be able get kerning on QGlyphRun.
Note this kerning is only truetype kerning, since opentype kerning is performed
during shaping.
Change-Id: I8d7458066431cbdce699647056fd0d7a76b20aa2
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
For large fonts, we would get invalid metrics due to the metrics
being too large to fit in the signed chars of the cache struct.
This in turn would lead to the bounding box reported by the
font engine being wrong, and subsequently, the algorithm which
decides whether any part of the glyph is visible in the raster
engine would make the wrong decision, hiding glyphs that should
not be hidden.
Task-number: QTBUG-30026
Change-Id: I59b613ce889fcac0bd50ffec9d369728068d0263
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
The test has been recently failing in CI. The problem was easy to
reproduce in a virtual machine by resizing the window of the virtual
machine small enough. This change makes sure that the requested size
hint is significantly smaller than the desktop size, to avoid the
window manager stepping in and limiting the window size.
Change-Id: Ie319892747bee60ea6f11e27b6c1bfb4731ef587
Reviewed-by: Caroline Chao <caroline.chao@digia.com>