Commit Graph

12183 Commits

Author SHA1 Message Date
Samuel Rødal
b56caf5f4e Introduced QWindow::setMask() to expose existing platform functionality.
Task-number: QTBUG-28555
Change-Id: I2c649b6d9e9dc69be246cb7658b3edbe9682b1bf
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-02-27 09:11:18 +01:00
Thiago Macieira
7b2d98d906 Fix some warnings that have crept up since I last fixed warnings
qgtkstyle.cpp:3177:103: error: suggest parentheses around ‘&&’ within ‘||’ [-Werror=parentheses]
qcups.cpp:517:66: error: ‘QString::QString(const char*)’ is deprecated
itemviews.cpp:795:13: error: unused parameter ‘actionName’ [-Werror=unused-parameter]
qeglconvenience.cpp:268:9: error: ‘cfg’ may be used uninitialized in this function [-Werror=maybe-uninitialized]

Change-Id: I9b8a175ff1c2ddc443363e08b92e09cf7c2f91cf
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: John Layt <jlayt@kde.org>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2013-02-27 07:09:24 +01:00
Thiago Macieira
cafb02911a Make sure that the reference count for plugins is kept correctly
For systems where the Unix signature checker isn't enabled (read: Mac
and Windows), QPluginLoader must actually load the plugin to query for
the metadata. On Mac it even tried to keep the library loaded to avoid
unloading and reloading again when the user calls load().

However, that plus the fact that it was calling load_sys() (on Mac)
meant that it would bypass the reference count checking. And on all
Unix, if a library-that-wasnt-a-plugin was already loaded by way of a
QLibrary, it would have an effect of unloading said library.

So remove the "caching" of the library. We should instead invest time to
write a proper Mach-O binary decoder.

Task-number: QTBUG-29776
Change-Id: Iebbddabe60047aafedeced21f26a170f59656757
Reviewed-by: Liang Qi <liang.qi@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-02-27 07:09:18 +01:00
Thiago Macieira
790fe22c52 Autotest: check that the plugin was actually unloaded in QPluginLoader
Change-Id: I66d26da4e86add244d37ff670ad79ff2aff17ca1
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-02-27 07:09:13 +01:00
Thiago Macieira
2c51bc0289 Don't try to unload a library that isn't loaded
Both QPluginLoader::unload() and QLibrary::unload() protect against
that (they have a "did_load" member), but QFactoryLoaderPrivate's
destructor doesn't. In the past (Qt4) all plugins had to be loaded
anyway, so there was no mistake in the reference counting. With Qt 5,
we don't load plugins unless they're actually used (in
QFactoryLoader::instance).

Task-number: QTBUG-29773
Change-Id: I3278fa14bac7e26a9faaf999b4e42e950654ac9a
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-02-27 07:09:08 +01:00
Thiago Macieira
f92e844b2b Stop using function deprecated in D-Bus 1.2 (raise minimum version)
The dbus_watch_get_fd function was deprecated in D-Bus 1.2 (technically,
in 1.1.1, but that was a development release) because it had a bad name.
Sockets on Windows have file descriptors, but they are not shared from
the same pool as the CRT library's file descriptors.

This commit raises the minimum required version of D-Bus to 1.2. This is
the first requirement raise since this code was introduced in 2006. For
some reason, the D-Bus 1.2.0 release seems to be missing, but 1.2.1 was
released on 04-Apr-2008. That's ancient enough for all distributions
Qt 5 is supposed to run on.

Change-Id: Ia6bbc137fffbb27c77290ed3e32d3380f0ae3c54
Reviewed-by: Lorn Potter <lorn.potter@jollamobile.com>
2013-02-27 07:09:03 +01:00
Konstantin Ritt
996db96d5e Fix QString::toUcs4() returns incorrectly resized QVector
...when the string contains surrogate code points.

Task-number: QTBUG-25536

Change-Id: I07251fee641c14f33175678768ddbe551dbe2bb1
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-02-27 03:13:30 +01:00
Konstantin Ritt
7729d89e15 QWin32PrintEngine: Fix build on MinGW + avoid dummy allocations
Don't use wcscpy_s() which is not available on MinGW but determine the utf-16
string length and pass that value to QString::fromWCharArray() instead.

Change-Id: I45d1b1969fe03255fdb6353fa9f52417af530e40
Reviewed-by: Laszlo Papp <lpapp@kde.org>
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2013-02-26 22:01:27 +01:00
Thiago Macieira
1b76cf0174 EGLFS: Replace the global static 'hooks' variable with a function
Having a global static variable in a header is a poor choice to start
with. All .cpp including that header must use that variable or the
compiler will warn of an unused static.

Second, for the case of platform hooks, it's possible that it is reading
the value of a variable that isn't initialised yet.

Change-Id: Id823c2be9cfededb9c31fb76a9080d4122577ca4
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-02-26 22:01:27 +01:00
Israel Lins
bc5170f274 ODBC: improve detection of DBMS
Change-Id: Ia93c3adb54fd28e290ff6fc85cb98138514885f1
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
2013-02-26 22:01:27 +01:00
Mark Brand
4da840f230 make static function a class member
Change-Id: I8c18c746185f6b7530ed985f4d482a1c9073fb10
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2013-02-26 19:48:22 +01:00
Mark Brand
63b180d390 rename private driver to privDriver
This avoids confusion now with the actual driver and avoids a
name collision in later refactoring.

Change-Id: I83055213f3a7b7998640662d49ba33749fdadd18
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2013-02-26 19:48:18 +01:00
Mark Brand
ad211acae4 qpsql: simplify expression
Change-Id: I1cff816ca5e8f683015186a2b5815e564ad454e6
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2013-02-26 19:48:12 +01:00
Friedemann Kleint
176383f3ec tst_qfileinfo: Fix invalid preprocessor directive.
Introduced by 5ec342fefd .

Change-Id: I28f9e093567ef1abf3898146e7183a90888262ad
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-02-26 19:24:36 +01:00
Sean Harmer
a2ddf3dfe0 Add a new static lib and module for OpenGL extensions
The complete set of OpenGL extensions is large meaning that any attempt
to incorporate them into a shared library such as QtGui would bloat the
size of that library.

The typical usage pattern for OpenGL extensions is to use only a very
small number of extensions from the total available set. A static
library suits this situation very well as an application will only
compile in the executable code for the extensions actually used. Thus
makign all of the functionality available to those that need it but with
zero cost to those that do not.

Change-Id: I49fdac7e9d2e0b190b7ea04b776018dd63c3065f
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-02-26 16:27:39 +01:00
Sean Harmer
10aa64d74c OpenGL: Add a set of version and context specific OpenGL classes
This commit adds part of the output of utils/glgen and some simple
modifications to QOpenGLContext to allow easy access to classes
containing functions specific to a given OpenGL context and version.

This allows compile-time detection of mis-use of OpenGL features.
For example, trying to use glBegin(GL_TRIANGLES) with an OpenGL 3.2
Core Profile context will be detected by the compiler rather than at
runtime.

These capabilities make it much easier to add functionality to Qt and
applications that relies upon core features of OpenGL from specific
versions e.g. geometry shaders.

Change-Id: Ieb584a489792595f831bc77dee84935c03bb5a64
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-02-26 16:27:30 +01:00
Paul Olav Tvete
4b1332783e Compile fix when QT_NO_PRINTDIALOG is defined
...but QT_NO_PRINTER isn't.

Change-Id: I888c177cfdd2245eb55de766dfd93f6acd4293e9
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2013-02-26 13:31:45 +01:00
Frederik Gladhorn
f6af0dad5b Fix typo.
Change-Id: Ia3fd460e77d8da5dca634872e3f786d5ad30289d
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-02-26 13:31:45 +01:00
Thorbjørn Lund Martsum
717a0a9d04 QGraphicsView - emit signal when rubber band changes.
The rubberBandRect function is nice to have, but this patch
makes it easier to track the rubber band by emiting a signal
on change.

That makes it easier (and less clumsy/hacky) to show information
related to the rubber band.

Change-Id: If65eb85d743a1804be3fdb823a821423411e9745
Reviewed-by: Andreas Aardal Hanssen <andreas@hanssen.name>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-02-26 13:31:45 +01:00
Thorbjørn Lund Martsum
c56f73cc1e QGraphicsView - add function to get RubberBand rect
In many situations it is handy to know the rubberband rect.
There are many situations where we want to show something
related to the rubberband.

Regardless how that is done the rubberband area is needed.
(Not having this is a flaw that can force people to do make
a customized rubberband just to get this information)

Change-Id: Ia854db4c0022b6a97b150af2b4bb78fd5e974991
Reviewed-by: Andreas Aardal Hanssen <andreas@hanssen.name>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-02-26 13:31:45 +01:00
Thiago Macieira
932c50c015 Adapt the newly-renamed SQL driver headers to proper private headers
Add the "We mean it" text and remove the now-unnecessary syncqt macros
that used to prevent those headers from being added to the master
includes.

Change-Id: I03ac2a452bc6ac43ebba502bc0ecbf5ee1adf314
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
2013-02-26 11:20:11 +01:00
Thiago Macieira
1ee1147462 Rename the SQL driver header files to _p.h (make private)
The drivers were never public API. They were exposed by mistake in
public headers. What's more, they have #include'd a private header
(qsqlcachedresult_p.h) since at least Qt 4.5.1. That means no one used
those headers in Qt 4 (private headers weren't installed then) and
it's unlikely anyone did in 5.0.

Change-Id: Ie0a47bcf0260ee6bdd3d8494b78fd1eec28a2d6b
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
2013-02-26 11:20:06 +01:00
Friedemann Kleint
26149d057a Windows native dialogs: Handle libraries.
Task-number: QTBUG-29447

Change-Id: I4e68e546a4eb6b5f9c3dbe6d98905109e72e600a
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-02-25 19:38:55 +01:00
Konstantin Ritt
34b870e4b5 Fix HB incorrectly hides [narrow non-breaking space] character
U+202F is not of a Default_Ignorable property for a loooong time
(perhaps was treated like a control code by mistake)

Task-number: QTBUG-13280
Change-Id: I3c5ec5fa514039b7bca9ffa28ad6f5355e627855
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2013-02-25 17:30:44 +01:00
Sean Harmer
9eb9bd703b OpenGL: Add code generator for OpenGL enabler classes
This patch provides a code generator that can be executed offline
to generate a few classes for enhancing Qt's support for OpenGL.
The generated code effectively provides all the benefits of GLEW
in its multi-context form but for all platforms and even for ES2.

The code generator takes as input the official Khronos gl.spec
specification and gl.tm typemap files. These provide all of the
information required to create the OpenGL Desktop related classes.
The classes for ES2 are hand-crafted as no similar spec files have
been published.

The generated code supports all OpenGL extensions listed in the
Khronos registry for both Desktop OpenGL and ES 2.

There is a helper factory class generated which are used by
QOpenGLContext::versionFunctions().

This allows code like the following to be written:

QOpenGLFunctions_3_3_Core* m_funcs = 0;
m_funcs = m_context->versionFunctions<QOpenGLFunctions_3_3_Core>();
if (!m_funcs) {
    qWarning() << "Could not obtain required OpenGL context version";
    exit(1);
}

if (!m_funcs->initializeOpenGLFunctions()) {
    qWarning() << "Failed to resolve entry points";
    exit(2);
}

// Get an extension object
QOpenGLExtension_ARB_draw_buffers* ext = 0;
if (m_context->hasExtension("GL_ARB_draw_buffers")) {
    ext = new QOpenGLExtension_ARB_draw_buffers();
    ext->initializeOpenGLFunctions(m_context);
}

Such usage will allow much easier and rigorous use of features in
modern OpenGL and extensions both in Qt itself and by users of Qt.

Follow-up patches will import the generated files and then use
these to reinstate OpenGL geometry shaders, add tessellation
shaders, and other OpenGL constructs.

Change-Id: Id0172e8aa1fd57eb4e6979a96d10fb5a34826426
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Reviewed-by: James Turner <james.turner@kdab.com>
2013-02-25 17:22:28 +01:00
Alain Boyer
3fdc4ae0ed Fix primary screen selection.
When selecting the primary screen, the m_primaryScreen value obtained
from the xcb_connect() call should be respected. This ensures that the
proper primary screen is selected when specifying the DISPLAY
environment variable.

Task-number: QTBUG-27220
Change-Id: I60aa207f13d919087d4d2913141c804928684731
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-02-25 14:59:35 +01:00
Konstantin Ritt
7df995a9bd Harfbuzz: backporting fixes from upstream
81c8ef785b079980ad5b46be4fe7c7bf156dbf65 Fix crash!
81f2ecafa19b602f950df5a9e6e1b99c4b5ea55e Bug 30319
ff0612c2e7df1b86fc702c72e3015a6a5ae39b4c and
2dbd0fd11799c18bb6c66e337c3e31a1419823d4 Fix OOB access possibility
3bebe289aace6daa84b3d6983cebf5c58ddfad78 Fix problem with Indic shaper and control chars
90138e5a4d15c44f05456f90083ecacdc3196c8e Fix bad memory access in Myanmar shaper
b847f24ce855d24f6822bcd9c0006905e81b94d8 Fix Arabic cursive positioning
3ab7b37bdebf0f8773493a1fee910b151c4de30f Fix misc leaks

Change-Id: I6f3a6253782bff6abe4bf741d11c09fdd67542db
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-02-25 12:38:31 +01:00
Friedemann Kleint
a8fce5d6e2 ANGLE: Fix static build.
Introduce  QT_OPENGL_ES_2_ANGLE_STATIC define for static builds
and modify export accordingly. Provided static instances
of gl::Current and egl::Current for Qt's single threaded
use.

Task-number: QTBUG-28196

Change-Id: Ia75699d6da103fb8dd9d5fe97c1ee51e48a74406
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2013-02-25 10:34:11 +01:00
Giuseppe D'Angelo
7686b2386d Update qopenglext.h with the latest version from Khronos
Change-Id: I84b051b30623fda67c89d4d6b0b7756681cb9011
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-02-25 10:06:22 +01:00
Richard Moe Gustavsen
5c70e53722 QPA: fix memory leak in qwindowsysteminterface.h
Just removing the event from QList will not delete it...

Change-Id: I3c4bb69a2afaada7ad4d5695eba0b3f29e9463ec
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2013-02-24 21:40:14 +01:00
Marcel Krems
7ea6ac832e Deprecate QSqlError setters.
The constructor is sufficient, since it has a parameter for each member variable.
Even the drivers, which were mentioned in the class description don't use them.

Change-Id: Ie8ba0467c7dc1928c539b4b19db8cc2ea0f44ea0
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
2013-02-24 17:10:18 +01:00
Thiago Macieira
d38004bdb0 Disable the SHA-3 Hash function: QCryptographicHash doesn't need it
QCryptographicHash will do the full Init/Update/Final calls, so we
don't need the Hash function. Disable it from the compilation to avoid
a warning about a function defined but not used.

Change-Id: Ib48ae4a7be91089fdcffa00851b786816b798cd9
Reviewed-by: Richard J. Moore <rich@kde.org>
2013-02-24 08:00:37 +01:00
Thiago Macieira
44cb71d6fd Compile only the SHA-1 code into qdoc
There's no need to compile the other codecs if they never get
used. It's possible that a whole-program optimisation would remove the
dead code away, but it's not very likely.

Change-Id: I75d7618c174566beec2fab44f60a9f7120133775
Reviewed-by: Richard J. Moore <rich@kde.org>
2013-02-23 18:38:49 +01:00
Gunnar Sletta
bc616641a1 Make toplevel transparent windows work on Mac OS X
This patch includes a few different fixes to make transparent toplevels
work on cocoa.
 - When setting alpha on the toplevel, it also needs setOpaque:NO
 - The OpenGL context needs a separate flag for this to work.
 - Make sure setOpaque fighting between setMask, setFormat and
   setOpacity ends up correctly

Task-number: QTBUG-28214
Change-Id: Ic3a2d71193bb653e181c98787b4ebda002424092
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-02-23 15:31:33 +01:00
Giuseppe D'Angelo
0077b5f30d Pass the surface format to qglx_surfaceFormatFromGLXFBConfig
Instead of creating a default-constructed format and filling its field
in, pass a pointer to an instance. This way we won't lose the renderable
type set on the surface, but just fill in the other parameters.

Change-Id: I1fd403671f9c677cc74aaf3c116a05f213d5d556
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-02-23 12:56:05 +01:00
Giuseppe D'Angelo
7e3ee5400e Enforce OpenGL context creation under Windows
We don't support other context types, so fail in those cases.
Also, return OpenGL as the rendereable type of our surface.

Change-Id: I22792a913b78b837da3d27cef69145076579b949
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-02-23 01:34:28 +01:00
Giuseppe D'Angelo
f2b26af2b4 Enforce OpenGL context creation under XCB
We don't support other context types, so fail in those cases.
Also, return OpenGL as the rendereable type of our surface.

Change-Id: Ic7b5ed0ec5eaf5c0f88f50f5bceb697ea414c696
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-02-23 01:34:25 +01:00
Giuseppe D'Angelo
7e57501016 Enforce OpenGL context creation under Cocoa
We don't support other context types, so fail in those cases.
Also, return OpenGL as the rendereable type of our surface.

Change-Id: I3d5632eb8555d73ed14837b662c7450589a8681f
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-02-23 01:34:06 +01:00
Keith Gardner
3b5600f6ee QStringRef: Added toInt(), toUInt(), etc... functions to QStringRef.
Added the following functions to QStringRef: toShort, toUShort, toInt,
toUInt, toLong, toULong, toLongLong, toULongLong, toFloat, and toDouble.
These functions use the corresponding functions found in QLocale.
Updated tst_qstringref.cpp to exercise the new functionality.

Change-Id: I38668a0cc7da0c101a62613fd16cb5a98286617f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-02-22 21:23:33 +01:00
Tor Arne Vestbø
736e4258a1 Use sdk.prf to set macosx-version-min instead of static conf files
Allows us to dynamically generate the command line option for iOS later,
and allows the user to override QMAKE_MACOSX_DEPLOYMENT_TARGET with the
expected effect on the command line options.

We unset PERL5LIB to ensure we get the system Perl libraries, since the
Mac OS 10.6 CI machine seems to have a broken XML::Parser::Expat from
macports/CPAN.

Change-Id: I04430c7b1daf9452d72f9a04a6b7f8d0d6926884
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-02-22 19:23:26 +01:00
Giuseppe D'Angelo
cb8bfeafac Drop the unused qcgl_createGlContext function
Change-Id: I09286388e9af7ec472b394be87204746f8ae22b1
Reviewed-by: James Turner <james.turner@kdab.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-02-22 17:27:03 +01:00
Sean Harmer
06af277c59 Update qopenglext.h to latest glext.h from Khronos.org
This now includes support for OpenGL 4.3

Change-Id: I964284843dffe806280e7f67cde67f17e84dc6df
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2013-02-22 12:57:44 +01:00
Ray Donnelly
bb842bb0d5 Fix DEFAULT_LIBDIRS detection on Windows
Must use ; as the path delimiter instead of :

Change-Id: I549e1652ef5bbae09c8fddec3e83ac9f52cec3a4
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-02-22 09:26:05 +01:00
Milian Wolff
4f14b42f7d Add support for forced VSYNC using the EGLFS platform plugin.
Before a buffer swap the new QEglFSHooks::waitForVSync method is
called which looks at QT_QPA_EGLFS_FORCEVSYNC and - if that is set
and non-null - calls ioctl with the FBIO_WAITFORVSYNC request on
the framebuffer device.

This is required on some embedded platforms where the driver does not
support VSYNC yet the Kernel provides a generic implementation.

I tested this using QML_RENDER_TIMING=1 which proofs that the frame
rate for an example of mine drops from >125fps to a straight ~60fps
with a few frames that take ~33ms (i.e. 30fps) as expected for VSYNC.

To prevent excessive open/close calls on the frame buffer device
per frame, the file descriptor is now cached. To keep the QEglFSHooks
interface as clean as possible this is done via a global static in
qeglfshooks_stub.cpp and initialized and freed in platformInit and
platformDestroy.

Change-Id: I4d31b227c65ff22aa089db0fbc62c89a59cbb6c7
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-02-22 09:24:40 +01:00
Sean Harmer
25c9005097 OpenGL: Refactor some defines and typedefs to a common location
These will be needed by the upcoming OpenGL enablers so move them
out of qopenglfunctions.h to somewhere that any opengl related file can
access them.

Change-Id: I0c788559397d446ec7210e2ad940da862179710d
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-02-21 20:39:23 +01:00
Richard Moe Gustavsen
22077e1609 QPA: Add interface for setting the application state explicitly
The motivation for this patch is twofold:

1: we need a way (for iOS/Android) to tell the current window to remove
focus from the focus object when the user hides the input panel.
Otherwise, if the focus object is e.g a line edit, the cursor will
continue to blink inside it, which is wrong. As it stands, telling
the active window to deactivate
(by calling QWindowSystemInterface::handleWindowActivated(0)), will cause
the whole application to deactivate if no windows are active, which
is not what we want.

2: Qt currently understands just two application states, Activated and
Deactivated. On mobile platforms we can have other states
as well, like "suspended" on iOS. So controlling the application
state should not depend on window activation, but instead be controlled
through a separate API by the platform plugin.

This patch will add the following function:
QWindowSystemInterface::handleApplicationStateChanged(Qt::ApplicationState newState)
that lets us control the application state from the plugin. This also
means that we factor out application state handling from window
activation, which also gives us a way to remove focus from a window while
keeping the application active.

To not break existing desktop platforms that relies on application
activation being tied to window activation, we need to make this API
opt-in by using a platform integration capability hint. This is not optimal, but
found necessary after investigating several other solutions.

Which states (other that active/inactive) it makes sense
to add to Qt::ApplicationState will be a topic for later patches.

Change-Id: Ic6fdd3b66867abb67da43eba04ec86f06d82ff94
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-02-21 14:55:10 +01:00
Olivier Goffart
03b2512598 Fix QMetaType of const references
This fixes QMetaType detection of const reference arguments in signals
while connecting using the new syntax and Qt::QueuedConnection

const references should have the same QMetaType as non references.
That means we need to remove the const reference while getting the
QMetaType.

Change-Id: I9b2688da7fb9ae985aec0d8fa62a1165357ffe71
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
2013-02-21 14:54:00 +01:00
Giuseppe D'Angelo
8fd1330029 Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev 2013-02-21 10:37:21 +01:00
Oliver Wolff
f9fc180d50 Check for network module when building according examples
Change-Id: Id17ba13988e37fa583948f4861b44bb1f05bf375
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-02-21 07:27:25 +01:00
Tor Arne Vestbø
f73ddd4dfb Reintroduce use of CTFontCopyDefaultCascadeListForLanguages on Mac OS
Now that we always build against an SDK, we can be sure that the
function declaration for CTFontCopyDefaultCascadeListForLanguages
is available in the CoreText CTFont.h header.

Change-Id: I304a701548833e5c7774b4fd2e72eb8c541dd103
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2013-02-21 00:20:09 +01:00