Change the code so that it doesn't force application windows to full
screen when the no-fullscreen parameter is used in the QT_QPA_PLATFORM
environment variable.
Task-number: QTBUG-37456
Change-Id: If9612cc2ca69f829d45e7fd4b83338c3a41cf986
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
Use QPointer to make sure that we are not trying to destroy already
deleted object.
Task-number: QTBUG-35702
Change-Id: Ib746996787488e636f25e6ea5be0571607ee2ded
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
QXcbDrag inherits QBasicDrag which takes care of calling
updateAction() when needed, we don't need to call it explicitly.
Task-number: QTBUG-33057
Change-Id: I754408f74f56de36ace8ffa40a61bd7c64619899
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Changed clip rectangle handling from bounding rect to region. Now also
sub region rectangles are taken in to account.
Task-number: QTBUG-37199
Change-Id: I9e09376e2c6d3fee8f85db753295a6138a03096f
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Janne Koskinen <janne.p.koskinen@digia.com>
Reviewed-by: Louai Al-Khanji <louai.al-khanji@digia.com>
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
Add a screenChanged handler slot to QWidgetWindow,
which calls markDirty() on the backing store with
the BufferInvalid and UpdateNow flags set.
Update CocoaBackingStore to create a new buffer on
window devicePixelRatio change. Use the
QCocoaWindow::devicePixelRatio() implementation instead
of a duplicate implementation in the backing store.
The plan is to replace this implementation with one
based on QUpdateWindowRequestEvent for Qt 5.4
Change-Id: I8e521c53df4ac90815613e730fe821996334721f
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
xcb_randr_get_screen_resources() and xcb_randr_get_screen_resources_current()
do basically the same, but for one case: if nothing has queried these
information ever before. So if an application is the very first client ever
to connect to an X server it may just return nothing. A call to
xcb_randr_get_screen_info_reply() will then cause the X server to allocate the
needed information and send an update notification, resulting in a second
QXcbScreen being created, but the other one is still around and probably used.
The behavior I observed with a simple test application was that the application
was not visible on the screen when it was the first client ever on the X
server. Killing the application and starting it again made it work just fine.
Change-Id: Id64f267e8ebcfa5b39d21d98307170a09e5169df
Reviewed-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
As was done in Qt 4, where QFileDialog sets NameFilterDisables() to true
for Q_WS_MAC only.
Task-number: QTBUG-37302
Change-Id: I162f9e79762aa4fa68aba02d1bdfc6322d472a9d
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
... and make it independent of QProcess, because we want to use it
from QtNetwork as well.
In addition, move select_msecs() to qcore_unix_p.h as well and rename
it to qt_select_msecs().
Task-number: QTBUG-36144
Change-Id: Ief681b6f6c80e85aa5091a5a04bcedb60f353217
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Being a part of QtGui, HarfBuzz-NG breaks build with -Werror.
Instead of disabling a particular warnings-as-errors,
build a prefixed static library and make it a link-time dependency.
Change-Id: Id0be1f0e0034092d50f83cd364d5c65940fee869
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
The correct function is setOptions().
Change-Id: Ife9ff75c409c843b4871804fcfd06b9d2a7733d3
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
When painting to QPixmap with QBlitterPaintEngine and dfb
PaintEngine have PaintDevice (pdev) as QImage. Painter code
uses PaintDevice::paintEngine() to refer to paintEngine.
This will became dangling pointer since QDirectFbBlitter::doLock()
will delete QImage. Instead return QPixmap as PaintDevice.
Change-Id: Idfac919b6438a82b412020e441e0a102e4a2a052
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
Some mouse event may result in the window being deleted
so we need to take extra precaution when calling the super
class' 'sendEvent:' method.
Task-number: QTBUG-37287
Change-Id: Idf89ea177c78053bcdef52c54a197409e20bf38e
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
This comes from QPlatformTheme::defaultThemeHint().
Change-Id: I12a9add3af65e819a06b66d958acb8f21cfe0e13
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Updated BlackBerry specific documentation around QSettings to make the
differences more obvious for developers.
Change-Id: Ib9acc2409379a836713f1a7e9d6189585a35aa61
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Erin Rahnenfuehrer <erahnenfuehrer@blackberry.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
If the GL context cannot be made current in the backing store's
constructor, the framebuffer resources won't be allocated. Fix this
by creating an initialization routine that can be called again if it
fails.
The issue was revealed by the GUI Analog Clock demo, which creates the
backing store before the window has a native handle.
Task-number: QTBUG-36008
Change-Id: I875f8183eff60908fc2b46f441bb553b42ff500d
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
Change-Id: I613a737600f85ef90155e3b8647197b4fd092998
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
Change-Id: I7afedbf679ae1c8467eea749e79eb10f2516d039
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
Correct the tense of send vs sent in comments and documentation.
Change-Id: I1c5ce9a7b1e49b8b0e8dcfde7d732e4c69acf73a
Reviewed-by: Kurt Pattyn <pattyn.kurt@gmail.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Do not show the popup for unsupported evaluations on every launch of a
QWidget based application. This is causing problems e.g. for applications
that are run by Qt Creator in the background, like qmlpuppet.
Instead, we'll show a similar dialog on Qt Creator startup.
Change-Id: I6b44c24865ed6992a70f8a9dd0bcd08a4744cb28
Reviewed-by: Iikka Eklund <iikka.eklund@digia.com>
Reviewed-by: Sami Makkonen <sami.makkonen@digia.com>
Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
Task-number: QTBUG-37042
Change-Id: I7ddcbc315b4b720e7da7880fc00731c28beb4bb2
Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Same logic for locaton used as in other Windows variants.
Change-Id: I5f71710d28ea1338748c9bd41d48bba15e674baa
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
Until now android developer build was not usable due to missing files.
These files are only available after a make install.
This patch aims to add that copy phase when building.
Task-number: QTBUG-36901
Change-Id: If0a7e982899b8c18495c7cb6508184fa153b239d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Added a missing reference operator to make the code example
compile.
Task-number: QTBUG-37359
Change-Id: Ie52f65ab3b325daf1ee3b368131e54c8a17f92ef
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
This manifested itself for some continuous integration machine, all
regular macs have wireless. In case there is no wifi, we would never
emit updateCompleted().
Change-Id: I1c5b0da6e1d73fef2588beb1796207326d430e26
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Lorn Potter <lorn.potter@jollamobile.com>
The font database and QFont should have normalized font family names,
so using CTFontDescriptorCopyLocalizedAttribute is not a good idea.
If the feature of reporting the localized name of a font family or
style is needed in for example the font selection dropdown or dialog,
it should be exposed as an explicit property of the font.
Change-Id: Iaa15ad861043f4c78a38080608b6fe4d99efee18
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Change-Id: I494c4fdfa49139316efac0f68f8d463c02056372
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Make sure that the correct context is current when freeing GL resources.
Otherwise, on shutdown, QOpenGLVertexArrayObject would try to use the
previously current context, which mmay already have been deleted.
Task-number: QTBUG-37385
Change-Id: Ib2332f54636738a1a4b1041a7dcbffd0af00261d
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Make sure the alphamask in the backingstore is updated whenever the
geometry of a QQuickWidget/QOpenGLWidget child changes.
Task-number: QTBUG-37372
Change-Id: I70e94664bd7da774694645f604e1a7277fe563c7
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
Reviewed-by: Ulf Hermann <ulf.hermann@digia.com>
Check also for rules set in an environment variable QT_LOGGING_RULES.
This makes it even more convenient to set rules e.g. for just one run of an
application, without having to create a logging configuration file. It
is also more in place with the current way we enable/disable debugging
of parts of Qt via environment variables.
Change-Id: I4d05976f2b6c12bca472552ffa22345475cd01de
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Reviewed-by: Tomasz Olszak <olszak.tomasz@gmail.com>
Tell the user from where logging configurations are loaded from if
the QT_LOGGING_DEBUG environment variable is set. This allows 'debugging'
of the logging rules database, because it's very simple to e.g. silence
all debug messages by adding a logging configuration file somewhere, and
forget about it.
Change-Id: Iee34031d531462060b5603e2210e01fd40952c63
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Use QStringRef to speed up the parsing of the left side of logging rules.
Change-Id: Idd4d75496e3865d092f2802c45928a414c14c615
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Do not accept rules with wildcards in the middle.
Change-Id: If6fa71629c46bc4127aa8bd475643bc0e8a9f57c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
The documentation says that the left side of a logging rule has the syntax
<category>[.<type>]
with optional wildcard '*' as the first or the last character (or at
both positions.
However, so far we didn't allow
qt.*.debug
But what we did allow is implicit dropping of trailing '.', e.g.
qt.* matched also 'qt'
Fix these by splitting up the '.type' in advance, and then do string
matching only on the 'real' category names.
Change-Id: Iab50ad0fc673464e870f5ab8dfb3245d829b3107
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Use the QTextStream stream operator for formatting 64 bit numbers,
just like we do for other numbers, too. This ensures all numbers in
a QDebug stream e.g. respect the hex and showbase modifiers.
The original reason for formatting qin64, quint64 with QString::number
is unclear (pre-dates the original qt4 git import). Maybe QTextStream
did lack proper support for 64 bit numbers back then.
Task-number: QTBUG-36841
Change-Id: I049516c2a8394c9c1a708f86c3d950418a20a957
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Change-Id: I213ac1fb2733e675f3641441fe6c621bab06c1f0
Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
Reviewed-by: Richard J. Moore <rich@kde.org>
Populating the whole database takes a while, and it's very easy to trigger
the fallback family code path through eg. matching or getting the default
font family from QFont.
Instead of relying on populate to resolve family name to a PostScript name
(which was required when using CTFontCreateWithName), we instead use the
CTFontDescriptorCreateWithAttributes() function to create a descriptor
based on the family name, and then use CTFontCreateWithFontDescriptor().
The other way around, we use CTFontDescriptorCreateWithNameAndSize, and
then pull out the family name from the descriptor. The need for creating
a CTFont for private fonts (eg '.Apple Symbols Fallback') does not seem
necessary anymore, as tested on 10.7-10.9.
The disadvantage of creating font descriptors instead of re-using the
data computed by population is that we're doing the same work twice,
but the end result is making the font database more lazy, and the 80%
use-case is assumed to be that you're only interested in the fallback
of a small number of fonts, which means you don't want to populate all
of the fonts in the system (taking about 1100ms on the test system).
Looking up the fallback of a single family or style now takes about
15-25ms.
Task-number: QTBUG-37165
Change-Id: I6b904dbe796a3f236919d778d0168fdef9a20e69
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
During the QPA refactoring, the custom font substitution list support
was lost by ignoring the font request's fallbackFamilies member
when the multi font engine gets created/initialized.
If fallbackFamilies is not empty, it should be prepended to the
font database default fallback families list. Also respect the
custom fallback families list in the cache key to avoid picking
a multi font engine with wrong fallbacks list.
Task-number: QTBUG-36628
Change-Id: Ie2b84b3a397bee4816f421cddf76a5375829f13a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
After QPA refactoring, QWindowsFontDatabase::fontEngine() was returning
a multi font engine w/o any particular reason.
This makes the code more obvious and opens the road to further improvements.
Change-Id: I4858026ddf774d3159c89357b1c905f5112b1c51
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
[ChangeLog] GLES3 and desktop OpenGL are now fully supported with EGL
Task-number: QTBUG-37332
Change-Id: Ic695db573d90b3a204941d105a370f5c63182b63
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
Passing OpenGLES and majorVersion 3 in a QSurfaceFormat selects GLES3 in case
it is supported. This works fine already now, but is not safe since the config
choosing logic does not request a GLES3-capable configuration and so it may
end up with a non-GLES3 compatible one.
This is now corrected by passing the EGL_OPENGL_ES3_BIT_KHR bit when
EGL_KHR_create_context is available.
Change-Id: Iacee1e1819b944c0f7c1062666106abddf59272b
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
The GLX and WGL support code does this already. Do it for EGL too since
requesting OpenGLES with majorVersion 3 results in GLES3 (where supported)
and in this case the expected majorVersion in QOpenGLContext::format() is 3.
Change-Id: I73d61d7569e6ebaa91aef57fb1b0051a77a73355
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>