Commit Graph

2044 Commits

Author SHA1 Message Date
Konstantin Ritt
06a65b053e Get rid of qt_determine_writing_systems_from_truetype_bits()
Move this code to QPlatformFontDatabase and get rid of all dups of it.

Change-Id: Idea6c84819039bf3b345b1305305951ade8d1ac4
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-03-12 16:01:35 +01:00
Sean Harmer
b80d130a51 Avoid crash in QVertexArrayObject destructor
Change-Id: If43c7b1cfdee504171a26b07db2ade9c20528299
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-03-12 16:01:20 +01:00
Sean Harmer
771286e01e Add QOpenGLTimerQuery and QOpenGLTimeMonitor classes
QOpenGLTimerQuery encapsulates a single OpenGL timer query object.

QOpenGLTimeMonitor is a convenience wrapper around a sequence of
OpenGL timer query objects that can be used to profile OpenGL
rendering code or to allow real-time adaptation of rendering
methods based upon run-time performance.

Change-Id: I873e591927080dea2b079b0e2a1eb9fed15c0372
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Reviewed-by: James Turner <james.turner@kdab.com>
2013-03-12 16:01:14 +01:00
Giuseppe D'Angelo
ec9c0faefd Update gl2ext.h with the latest version from Khronos
This adds (amongst other things) the support for the
GL_KHR_debug extension, which is required by QOpenGLDebug
classes.

Change-Id: Id8b80968807e4f3db7eebd8cc9d9beae23b5d7e2
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-03-12 09:16:42 +01:00
Friedemann Kleint
9c6239e0c1 Fix warning about unhandled enumeration value.
Change-Id: Ic22a9bddfa04c286f359bc29e1d5d1ec8ef98ecc
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-03-12 09:16:42 +01:00
Shawn Rutledge
268972999a Documentation and versioning for new Window properties
Task-number: QTBUG-29807
Change-Id: Id03ae17270832a7b5915e4324a508e591c0b6d98
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
Reviewed-by: Laszlo Papp <lpapp@kde.org>
2013-03-12 09:16:42 +01:00
Frederik Gladhorn
72e5124b85 Merge remote-tracking branch 'origin/release' into stable
Conflicts:
	tests/auto/opengl/qgl/tst_qgl.cpp

Change-Id: I3c601351c984c1f4b00478d3c47ac9eeb021e892
2013-03-08 16:11:33 +01:00
Samuel Rødal
a12f6ba302 Fixed dashes being rendered differently depending on system clip.
We need to clip lines to the unclipped device rect in the case of
dashing, since otherwise the dashes will be shifted and rendered
differently when partial repaints are done.

Task-number: QTBUG-24762
Change-Id: I3599b54baa552acc20bf8cc2e12f846b45f6019e
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-03-07 02:54:08 +01:00
Kevin Ottens
2d1f3d7c51 Add methods to convert lists of QKeySequence to/from strings
QKeySequence provides conversion to and from strings. But a similar
convenience was missing for QList<QKeySequence>. It would come in handy
when you want for instance to save/restore the shortcuts of a QAction.

Change-Id: I9e4f2001c58a595392a5019a57c564992c39bf88
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: David Faure (KDE) <faure@kde.org>
2013-03-06 21:50:28 +01:00
Alberto Mardegan
b5bdd31de4 Implement XEmbed protocol
Add a static QWindow::fromWinId(WId id) constructor which can be used to
create a QWindow object representing windows created by other processes.
Then, QWindow::setParent() can be used to embed a window into a foreign
window socket and QWindow::setTransientParent() to stick the current
window on top of a foreign window.

The changes in the QtWidgets module ensure that the focus chain (TAB
navigation) correctly works when a QtWidgets-based window is embedded
into another application.

As far as the platform implementation is concerned, this commit only
implements the embedding functionality in the XCB plugin. So, this is
roughly equivalent to the Qt4 QX11EmbedWidget functionality.

Change-Id: Iff8f7b9ee974d33fb30f36056f7838b433a413c7
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-03-06 18:59:07 +01:00
Dmitry Shachnev
2041f4eae8 QIcon: ensure that QIconLoader is initialized
Make sure that QIconLoader is initialized when QIcon::themeName()
is called. Otherwise, themeName() may return the wrong value.

Change-Id: I54621e31da24bdbe745e7d6ae6a1d58cb4190cd7
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2013-03-06 17:26:08 +01:00
Samuel Rødal
711773776e Fixed potential access violation in QPixmap::copy() for <32 bit pixmaps.
QImage is supposed to maintain the invariant that each scan-line begins
on a 4-byte boundary, so we need to verify that this is the case before
using the optimized path of short-cutting QImage::copy() by referencing
the source image's bits directly.

Task-number: QTBUG-14766
Change-Id: I0a178aeb2f34cc64f98deae9470b55b5c53fcb06
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-03-06 15:00:35 +01:00
Frederik Gladhorn
5e8ae03578 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	configure
	qmake/generators/mac/pbuilder_pbx.cpp
	src/corelib/kernel/qtimerinfo_unix.cpp
	src/plugins/platforms/cocoa/qcocoabackingstore.mm
	src/plugins/platforms/cocoa/qcocoawindow.mm
	src/plugins/platforms/windows/qwindowswindow.cpp
	src/plugins/platforms/xcb/qglxintegration.cpp

Change-Id: I8d125fe498f5304874e6976b53f588d3e98a66ac
2013-03-05 13:42:11 +01:00
Friedemann Kleint
7a5fea113e Fix crash in flushWindowSystemEvents() in QGuiApplication-cleanup.
Check for existence of QGuiApplication, discard events if it is 0.

Change-Id: I04b27679033fb13ef2fa38e39757d89465cba94b
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-03-05 08:31:23 +01:00
Friedemann Kleint
09fb084e3a Output window in warning about flush() for unexposed window.
Change-Id: I1dd975926c2bea7bcc10a702739836b16b656213
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-03-05 08:31:23 +01:00
Paul Olav Tvete
97fcf3bc98 Introducing the Qt Android port
Based on the Necessitas project by Bogdan Vatra.
Contributors to the Qt5 project:

BogDan Vatra <bogdan@kde.org>
Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
hjk <hjk121@nokiamail.com>
Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Paul Olav Tvete <paul.tvete@digia.com>
Robin Burchell <robin+qt@viroteck.net>
Samuel Rødal <samuel.rodal@digia.com>
Yoann Lopes <yoann.lopes@digia.com>

The full history of the Qt5 port can be found in refs/old-heads/android,
SHA-1 249ca9ca2c7d876b91b31df9434dde47f9065d0d

Change-Id: Iff1a7b2dbb707c986f2639e65e39ed8f22430120
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-03-05 08:31:23 +01:00
Thiago Macieira
6f8bc4de40 Make the new OpenGL function headers compile on their own
You can't use #ifndef QT_NO_OPENGL before including whatever is supposed
to define that. That's qconfig.h, included by qglobal.h.

Also, make sure that the desktop OpenGL code isn't activated when
compiling in OpenGL ES 2 mode -- QOpenGLFunctions_1_0_CoreBackend and
other classes aren't defined.

Change-Id: I127edf56d42257580579789d0566b7e11c21133b
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2013-03-05 02:43:00 +01:00
Konstantin Ritt
c63e7f5766 Fix selection of fonts that require OpenType features
HB_Face's supported_scripts[] expects HB_Script, so QChar::Script should
be remapped via script_to_hbscript().

Change-Id: Ib068c35ab76567fe9a61da7d8ab01133a6f58bc0
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-03-04 14:54:57 +01:00
Thiago Macieira
d93b2ef968 Mark all qtbase headers that aren't clean
QtCore has a few headers that, though public, aren't meant to be
included directly. Those are the atomic headers, the three _impl.h
headers and qt_windows.h.

QtGui includes two OpenGL headers that don't compile on their own.

Other libraries should not have headers like that (but they do,
something we need to fix eventually).

Change-Id: I55e4eb057748f47df927ee618f9409acbc189cc1
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-03-03 20:15:21 +01:00
Sean Harmer
8c4d02ef87 OpenGL: Add support for the Compute shader stage
Change-Id: Ibb1b79358758c2adf818af8c6fcd5c379efad8c3
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-03-02 12:58:18 +01:00
Richard Moe Gustavsen
8c8e9f59bc showIsFullscreen: only respect this hint for windows and dialogs
If the window or widget is a popup, ignore the hint. The
intention of the flag should be to show main windows etc in
fullscreen, and not all kinds of popups and tooltips. The user can always
call showFullscreen explicit when necessary.

This is a backport of 48c73540ad.

We need it in stable to fix menus on BlackBerry platform, they're
appearing fullscreen.

Task-number: QTBUG-29969

Change-Id: Id0d6cfc194916aa7f993cde54b5a0002f60399e1
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
2013-03-02 10:52:56 +01:00
Giuseppe D'Angelo
658616b44e QOpenGLShaderProgram: insert precision defines based on runtime detection
Given that we can create OpenGL/ES contexts even under a Desktop OpenGL
implementation, we must check the type of the surface we're renderering
on at runtime.

Change-Id: I55004ce918889b3fc094702976500fcfc675bd1a
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-03-01 22:10:25 +01:00
Sean Harmer
2ca46a5526 OpenGL: Add support for OpenGL 4 tessellation shader stages
This adds support for OpenGL 4 tessellation shader stages to
QOpenGLShaderProgram and QOpenGLShader.

Change-Id: Iefb2f411e00767990d54670c5d39413be694dd66
Reviewed-by: James Turner <james.turner@kdab.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-03-01 10:42:21 +01:00
Tor Arne Vestbø
0520631b2b Merge "Merge branch 'ios' into dev" into refs/staging/dev 2013-02-28 19:22:05 +01:00
Sean Harmer
40192d6814 OpenGL: Add QOpenGLVertexArrayObject class
This class makes it much simpler to manage OpenGL state relating to
vertex data (i.e. vertex buffer objects, vertex attribute divisors,
index buffer objects, vertex buffer formats).

Change-Id: I9fb932cc3f0691ec9ba065bf871e43cd2e369bad
Reviewed-by: James Turner <james.turner@kdab.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-02-28 17:11:40 +01:00
Sean Harmer
2c8c0cb33a OpenGL: Reinstate support for OpenGL geometry shaders
Unlike QGLShader, this requires the OpenGL 3.2 core implementation
of geometry shaders to keep the API simple.

Change-Id: Icb07f430c4c5b5d950bcf6f7119becec4cfaad8a
Reviewed-by: James Turner <james.turner@kdab.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-02-28 17:11:28 +01:00
Eskil Abrahamsen Blomfeldt
05a61de622 Allow flushing window system events from other thread
For platform plugins such as the Android plugin, we need to
make sure an event is delivered and handled before continuing
execution (e.g. when doing an expose event to report that the
EGL surface has been destroyed when the app goes into the
background.)

Change-Id: Ibd381baafa93f111dbc887d4cf9d9ca37429b186
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-02-28 17:11:02 +01:00
Frederik Gladhorn
be3fb9afe5 Merge remote-tracking branch 'origin/release' into stable
Change-Id: I6b49d5e1c31599b5aa4940b798533b17e58616bf
2013-02-28 16:49:06 +01:00
Morten Johan Sorvig
a593de41ed iOS: Retina display support.
Scale the OpenGL paint device size and physical dpi
by the device pixel ratio.

Change-Id: I8b576f23129aafc47371795151c548663e94ad52
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-02-27 23:55:55 +01:00
BogDan Vatra
d88ec35b11 Fix compile on Android
This is a workaround for a broken compiler

Change-Id: I10c8c750caf56036419807ec4a2439bf14cf64d6
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2013-02-27 18:02:10 +01:00
Mitch Curtis
6269c9a414 Fix some punctuation errors.
Change-Id: I6aa2ad2b506466fbef6a22380d151988930807c9
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-02-27 12:00:46 +01:00
Paul Olav Tvete
c65ecc50ae Enablers for input methods on Android
Adding QInputMethod::inputItemRectangle()/setInputItemRectangle().

Known bugs: inputItemRectangle() not implemented for graphics view
items; inputItemTransform() implementation was already missing.

Change-Id: I72b1d43350e93858a2b374de3f2199500a96dc79
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Reviewed-by: BogDan Vatra <bogdan@kde.org>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-02-27 11:24:24 +01:00
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
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
Frederik Gladhorn
f6af0dad5b Fix typo.
Change-Id: Ia3fd460e77d8da5dca634872e3f786d5ad30289d
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-02-26 13:31:45 +01:00
Richard Moe Gustavsen
5d6c57fcba iOS: fix build issue, dont link against cocoa
Make sure the libraries dont depend on Cocoa. This will be
picked up by libtool, and make all apps and examples link
against cocoa too (which will ofcourse fail)

Change-Id: I5654bb08c4ed376fc7ee74da422d903270a8af38
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-02-26 13:13:26 +01:00
Stephen Kelly
f136701bc5 Use the base implementation of QAbstractItemModel::sibling in QSIM.
QStandardItemModel doesn't really benefit from a reimplementation of
sibling, and the current implementation is buggy.

Task-number: 29540
Change-Id: Icf8dca29b6e1394a378db5bf6abd884f2d7fd9b9
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2013-02-26 00:03:26 +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
Shawn Rutledge
153d613353 Transient QWindows centered; default-constructed geometry
Default-constructed geometry does not mean put the window at 0,0,
and it does not mean center the window on the screen: it means
let the window manager position the window.  If the window is
explicitly positioned at 0,0 though, that is a higher priority
than the transient hint; without this change, the transientFor property
had no effect.  On X11, transient means use center "gravity" to
make the transient window exactly centered.  But the user can still
override the geometry of a transient window, as with any window.
On OSX and Windows, neither transient window functionality nor smart
initial positioning are provided, so a window with no position set
will be centered on the screen, and a transient window will be put
at the center of its transientParent.

Change-Id: I4f5e37480eef5d105e45ffd60362a57f13ec55f5
Task-number: QTBUG-26903
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-02-24 20:41:05 +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
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
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
Frederik Gladhorn
dcb710dd87 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	mkspecs/features/unix/separate_debug_info.prf
	src/gui/kernel/qwindow_p.h
	src/plugins/platforms/cocoa/qcocoacursor.mm
	tests/auto/tools/moc/tst_moc.cpp

Change-Id: Ieb57834c00f961a747ffe51e6eb9fc9612cebccf
2013-02-20 22:08:29 +01:00
Topi Reinio
c816a338f7 Doc: Update image in QPainter class reference docs
The code snippet demonstrating the use of drawText() was already
updated to use the text 'Qt Project' - update the image accordingly.

Task-number: QTBUG-29784
Change-Id: Iea5e729bd26df2d8ab6a02bb7ea804494e554a28
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-02-20 21:14:24 +01:00
Pavel Mogylevskiy
eff6dbb306 Fix path separators in archives created by QZipWriter
It was not possible to extract data from the archive on OSX
which was created on Windows platform because of wrong
separators. Archive was created on Windows via QZipWriter and
opened on OSX with QZipReader. It consisted of a lots directories
and subdirectories with files. The solution is to use '/' separator
for internal representation.

Change-Id: Ic0837ca184bb6188129d53b587a5df2ec61e4e05
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-02-20 16:11:52 +01:00
aavit
e28c03cb82 Fix reentrancy problem in image reading
There were race conditions when accessing the plugin factory and
the image reader plugins from different threads; ref QTBUG-29281.
Added a mutex lock to avoid.

Change-Id: Ic1a3b6cbaf5603f1bcf7025b58247a9a3f6d08a9
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-02-20 12:59:55 +01:00
Andy Shaw
7203e88084 Don't enable HIDPI when rendering directly to PDF on Mac
When rendering to PDF using the PDF paint engine on Mac it would
consider it to be rendering as HIDPI when ScreenResolution was used.
This would mean nothing was being rendered at all in the PDF as a
result.

Task-number: QTBUG-28709
Change-Id: Ieb97ca9d0b47f6b96debbcf5e05e96c39292e412
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-02-19 21:25:16 +01:00
Gunnar Sletta
3f99983e76 Fix focus handling of native child widgets in xcb.
Change-Id: If4d596195624011142bff6853849a23064e478df
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
(cherry picked from commit fc663b5f9a)
2013-02-19 21:21:27 +01:00
Shawn Rutledge
39b1bd8f45 undef B0 to build on PPC (conflict with definition in termios.h)
This is the same fix that was already done in qprinter.h
/usr/include/bits/termios.h:122:#define B0 0000000  /* hang up */
so the compiler sees B0 as a numeric constant

Task-number: QTBUG-29704
Change-Id: I2df5e1783f3142558cbc1606e0c61fcf636f2de8
Reviewed-by: David Faure (KDE) <faure@kde.org>
2013-02-19 17:05:43 +01:00
Kevin Ottens
fc6b214363 Let QPlatformTheme decide which engine QIcon::fromTheme uses
By default we still use QIconLoaderEngine but now platform theme plugins
have the opportunity to override that. It is in particular planned to be
used in a WIP platform theme plugin for KDE sessions.

Change-Id: I07a82dc91daea44709b3a790f3f6e2a7a090d108
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: David Faure (KDE) <faure@kde.org>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2013-02-19 10:35:06 +01:00
Frederik Gladhorn
3654a4a3c1 Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev 2013-02-18 20:03:20 +01:00
Shawn Rutledge
dfde72e436 Added QDebug support for QWindowSystemInterface::TouchPoint
Change-Id: Icfc606a49a7fd24fcd35b9c818642a03e044ed6c
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2013-02-18 16:26:49 +01:00
Frederik Gladhorn
f4900d340a Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	src/widgets/styles/qmacstyle_mac.mm

Change-Id: If8326db9e7da3cbf45dbf7475fdff9915c7723b1
2013-02-18 16:14:52 +01:00
Yoann Lopes
c7a51f1858 Added QOffscreenSurface class.
Inherits QSurface and allows to use OpenGL from an arbitrary thread.
Platform plugins can implement QPlatformOffscreenSurface, otherwise an
invisible QWindow is used by QOffscreenSurface.
This patch includes an implementation of QOffscreenSurface for XCB
and EglFS platform plugins using pbuffers.

Change-Id: I57b4fc1db417331f34826dcfa754b7698782fde4
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-02-18 13:42:22 +01:00
Giuseppe D'Angelo
e88011357e Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev 2013-02-17 20:31:38 +01:00
Tor Arne Vestbø
159f42222d Remove duplicated code for handling OpenGL extensions in QtOpenGL
We now re-use QOpenGLExtensions/Functions from QtGui in the same way
as QtGui uses these classes. There is still some duplicated logic
in qglfunctions.cpp, but this code now at least uses the shared
QOpenGLExtensionMatcher class.

Change-Id: Ie04008c43d430ae805e6ec1c45e7e363deeb3b8f
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-02-17 20:31:30 +01:00
Marcel Krems
abb8beb064 Doc: Fixed typo "pragraphs" -> "paragraphs"
Change-Id: I47e88dbedd3afee4bd53550ef1ce643829aecedb
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-02-15 22:46:59 +01:00
Samuel Rødal
783ad64b90 Fixed error in QGLFramebufferObject and QOpenGLFramebufferObject docs.
It's the format class that lets you control the number of samples.

Change-Id: Id01f107a15787f33b65429d3c882854f2dc8784e
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-02-15 09:02:16 +01:00
Frederik Gladhorn
e65cd6f379 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	src/concurrent/doc/qtconcurrent.qdocconf
	src/corelib/doc/qtcore.qdocconf
	src/corelib/global/qglobal.h
	src/dbus/doc/qtdbus.qdocconf
	src/dbus/qdbusmessage.h
	src/gui/doc/qtgui.qdocconf
	src/gui/image/qimagereader.cpp
	src/network/doc/qtnetwork.qdocconf
	src/opengl/doc/qtopengl.qdocconf
	src/opengl/qgl.h
	src/plugins/platforms/windows/qwindowswindow.cpp
	src/printsupport/doc/qtprintsupport.qdocconf
	src/sql/doc/qtsql.qdocconf
	src/testlib/doc/qttestlib.qdocconf
	src/tools/qdoc/doc/config/qt-cpp-ignore.qdocconf
	src/widgets/doc/qtwidgets.qdocconf
	src/xml/doc/qtxml.qdocconf

Change-Id: Ie9a1fa2cc44bec22a0b942e817a1095ca3414629
2013-02-14 14:24:57 +01:00
Samuel Rødal
733430636d Fixed crashes when using QImage in combination with QCoreApplication.
As long as fonts weren't used we supported using QImage in combination
with QCoreApplication in 4.x, and there's no reason we can't continue
doing so.

Task-number: QTBUG-29643
Change-Id: I2cf351d3c93f1c175bbf624e45024d39ab913111
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2013-02-14 10:55:33 +01:00
Samuel Rødal
ff86f6ba4c Fixed QOpenGLFramebufferObject docs to mention QOpenGLPaintDevice.
Task-number: QTBUG-29496
Change-Id: Id9ec5e2a070992f53bba58468e2472513d52cb8b
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-02-14 10:55:33 +01:00
Bjoern Breitmeyer
ad05af534d Fixed QT_NO_ACCESSIBILITY build.
Change-Id: I14229753fc2e3b54da8a285ae9d27201b73e24be
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-02-13 09:50:28 +01:00
Tor Arne Vestbø
d1ee718955 Add support for color glyphs (Emoji) on Mac OS X and iOS
A new glyph type is added to the glyph caches for ARGB bitmap glyphs,
and the raster and OpenGL paint engines have been modified to support
this glyph type for drawCachedGlyphs().

The CoreText font engine implements support for these glyphs through
the CTFontDrawGlyphs API, since CGContextShowGlyphsWithAdvances does
not handle color glyphs.

Change-Id: Idad9ce75a911cae130d65aebe59142772a16fc12
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2013-02-13 02:04:16 +01:00
Thiago Macieira
9253509f3e Mark public non-member non-static variables as Q_DECL_UNUSED
This avoids warnings in compilers that check for unused variables. They
can't tell that the the variable came from a header.

Change-Id: I1ea5e5bbc76d676fbb561bdc8ae6543e758de90e
Reviewed-by: Andreas Aardal Hanssen <andreas@hanssen.name>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-02-12 22:46:38 +01:00
Samuel Rødal
c76ec20e55 Fixed QSurfaceFormat documentation about DebugContext requiring GL3+.
GL_ARB_debug_output only requires OpenGL 1.1 and above.

Change-Id: Ib79d370fac36fa737817ea678f0dee25283dfa31
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2013-02-12 17:56:10 +01:00
Samuel Rødal
62d25e4d4f Fixed QPixmapCache associating path with wrong QPixmap.
QPixmap::load() would not detach, so multiple paths could get associated
with the same QPixmap, causing the wrong pixmap to be shown.

Task-number: QTBUG-29639
Change-Id: I064dd6a9611b5996853bec9fb20b6224a0adcf62
Reviewed-by: aavit <eirik.aavitsland@digia.com>
2013-02-12 15:21:57 +01:00
Samuel Rødal
23b11e792c Added QWindow::Visibility convenience API to QWindow.
This finally makes it possible to make windows fullscreen etc from
QML by doing "visibility: Window.FullScreen". I don't see any reason
from not having the API at the QWindow-level instead of at the
QQuickWindow-level since this way it can benefit other use cases too.

Change-Id: If27344306eb563bc2ccd83296a46b1f2862e2db1
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-02-12 15:02:53 +01:00
Morten Johan Sørvig
f5acd545a8 Mac: Remove broken platformPluginPath code.
The missing "/" in front of "../Plugins" prevents
this from working - platformPluginPath is never
set.

Deployed platform plugin loading works in spite of
this via qt.conf which adds the plugin path to
QCoreApplication::libraryPaths().

Change-Id: I7ae4d13c65a380ddad72bffd29b776c39ea91c8a
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-02-12 14:58:59 +01:00
Pasi Petäjäjärvi
8d2679673e Remove overlapping variable names defined in VxWorks headers
VxWorks has defined variables with same name as in Qt's headers.
Remove these undefines because that has already done in file
src/corelib/kernel/qfunctions_vxworks.h. See related change
f7bd8652ca.

Change-Id: I994ac9d00ca223b9fa955dfcba8ad6c8dcbd0549
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-02-12 09:40:48 +01:00
Samuel Rødal
1f5b10281f Document the QPainter::HighQualityAntialiasing render hint as obsolete.
It was only used in the now removed OpenGL 1.x paint engine.

Change-Id: I2237172de700bfd31ca25279fbed21d601785962
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-02-12 09:40:48 +01:00
Thiago Macieira
2d98bd48e5 Add Q_DECL_RESTRICT and Q_ALWAYS_INLINE for MSVC
Change-Id: I598463e5990e91a5a049d1f9f7a4aa80930c0904
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-02-11 23:33:00 +01:00
Thiago Macieira
f9f0f4aea5 Rename the Q_STATIC_INLINE_FUNCTION macro to Q_ALWAYS_INLINE
That's what the macro did anyway, except it had an extra "static"
keyword. This allows us now to use Q_ALWAYS_INLINE in non-static
contexts, if we wanted to (e.g., certain template cases).

Change-Id: I899d359f46234e93d1912ef9125080dc84e15c93
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-02-11 23:33:00 +01:00
Friedemann Kleint
d180560e14 Fix QWindow::setFramePosition() to keep the size.
Change-Id: I14551e0d0573c2e8d86d76eadab4df9f3c8ed5e4
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-02-11 15:17:07 +01:00
Tor Arne Vestbø
98a286cbde Fix segfault when setting a device-pixel-ratio on a null-QPixmap
Change-Id: If3680766a50d5cf78889822d740c9472123191a7
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-02-09 17:59:23 +01:00
Samuel Rødal
d1acaf2b1c Fixed QOpenGLFunctions feature/extension detection to check GL version
If the GL version is new enough the extension string won't contain
features that have been standardized. So far we only check for FBOs.

Change-Id: Ib29826f378b394894885717c062872581bd5c9f5
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2013-02-09 13:55:00 +01:00
José Dapena Paz
9b90ab9914 Add QWindowSystemInterface::handleFileOpen(const QUrl&)
In some cases, the call to handleFileOpen may receive a non local URL.
With previous API, there was no way to pass it to other layers. With
this change, any platform plugin creating this event can directly pass
a URL.

Change-Id: Ibd7299ad6c09527e1db979840bd67726882efb9b
Reviewed-by: Jose Dapena Paz <jdapena@igalia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2013-02-08 20:23:00 +01:00
Samuel Rødal
bfa1584162 Added version() and setVersion() convenience API to QSurfaceFormat.
This lets you write code like format.version() >= qMakePair(3, 2), and
format.setVersion(4, 2) instead of format.setMajorVersion(4);
format.setMinorVersion(2);

Change-Id: Ib052091cc12865ea0d5db52e468ed6cd28f14840
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-02-08 20:00:00 +01:00
Frederik Gladhorn
bc8727cbbc Add translator help for accessibility strings
There is also one string fix: cursor was twice,
the second one should have been text caret.

These roles follow IAccessible/MSAA as reference.

Change-Id: I39b64fd01376fec9e8d9b743c43a24611a1d9fbd
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2013-02-08 12:06:36 +01:00
Tor Arne Vestbø
155a20628b Use QPaintEngineEx to decide if font is too big for using the glyph cache
Instead of having separate logic in the OpenGL paint engine.

Change-Id: I9854328f784864e52ba1bbaafe5e1c5dda976231
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2013-02-07 19:03:33 +01:00
David Faure
ca19cba2ac Factorize code for formatting window titles into QPlatformWindow.
Change-Id: I0dcccd08916fc2ea1b795681e9b98a9550ef51b6
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-02-06 18:39:32 +01:00
Samuel Rødal
af84313c62 Fixed crash in image reader when reading certain BMP files.
If the high bit in a mask is set, for instance if the mask is
0xff000000, and we shift it to the right by 24 positions, since the mask
was not declared as unsigned we ended up with a mask value of
0xffffffff. We then add 1 to this value and divide by the result,
causing a division by zero crash.

The masks need to be declared unsigned to prevent sign bit extension
when shifting right.

Task-number: QTBUG-29194
Change-Id: I79260344cebfbdd3ea86416a9c734dca76517999
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-02-06 09:59:56 +01:00
Frederik Gladhorn
a1f4a821fc Nokia -> Qt Project
Change-Id: Iadd29ee918dc181d2a468f5198e66351c7cb3548
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2013-02-05 20:53:57 +01:00
Eskil Abrahamsen Blomfeldt
2f2107c1ba Add enablers for Android port in QPlatformMenu
We need a couple of functions here for the Android support.

Change-Id: I50e27277d7e838e277d616dbd3af9be817fb7197
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-02-05 15:03:34 +01:00
Julien Brianceau
85b2ba2a92 doc: Fix QPixmapCache size default value in doc
QPixmapCache size default value is always 10 Mb
since change I2ac33765

Change-Id: I28c99433948b07e9c84d0afda7aa5a8f49d2cd18
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-02-05 12:18:27 +01:00
Oswald Buddenhagen
e01343352e fix doc page urls
they are versioned nowadays

Change-Id: I839db633e9d7d63c9d445f8e914b529bd7ce60a2
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-02-04 14:28:24 +01:00
Thiago Macieira
4c5b503f33 Remove unused variables and functions from the source code
Change-Id: I5f37414ee4846b4fe774361f49367bc0d5874039
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2013-02-02 10:35:22 +01:00
Sergio Ahumada
256dc059ee Merge "Merge branch 'release' into stable" into refs/staging/stable 2013-02-01 12:31:16 +01:00
Oswald Buddenhagen
06a6d1da58 substitute fixed version numbers in qdocconf files with variables
Change-Id: Ie57765c10a8e90d6fc74ee5a8fd84bfc7cd8bcf2
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-02-01 10:23:26 +01:00
Sergio Ahumada
6239af6f0f Merge branch 'release' into stable
Change-Id: If3aa1b7ed75082eff6e9761ad82c83691135ed60
2013-01-31 18:55:53 +01:00
Morten Johan Sørvig
a9458a1755 Clean up logical dpi for QImage.
Revert to the pre highdpi-patch behaviour.

Before, both physical and logical DPI would be based
on the dpmx/dpmy variables, which could be changed
with setDotsPerMeter(). The highdpi patch introduced
separate ldpmx/ldpmy variables, which were not
changed by setDotsPerMeter().

This broke when loading images: setDotsPerMeter
would be called but the logical dpi would not change.

Remove ldpmx/ldpmy. Keep scaling the physical dpi
by the devicePixelRatio, which will be set to 1 by
default.

Task-number: QTBUG-29187
Change-Id: I0d6f5f3b8efae5fb1adc0a50b22a5da78324a282
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-01-31 10:39:38 +01:00
Frederik Gladhorn
3eb588078e Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev 2013-01-29 11:33:35 +01:00
Samuel Rødal
d78bd439dc Offscreen testing platform plugin
Useful for running auto-tests without popping up a bunch of windows in
the windowing system. Thus they can be run in the background and even in
parallel without focus issues.

Change-Id: I8b14c6de258b41225480a0af5a2a9553663bc2b7
Reviewed-by: Jason McDonald <macadder1@gmail.com>
2013-01-29 09:28:43 +01:00
Poul Sysolyatin
9d43288180 Exclude BMP from supported formats if it disabled by Qt build
If Qt build without BMP support, we need exclude this format
from output of QImageWriter::supportedImageFormats() and
QImageReader::supportedImageFormats() methods.

Task-number: QTBUG-27028

Change-Id: I44e8956247066c0836b1ff7bf9a1f356fe568af1
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-01-29 09:28:19 +01:00
Poul Sysolyatin
8995453263 Added 'jpeg' to QImageReader::supportedImageFormats()
When Qt build statically result of
QImageReader::supportedImageFormats() must contain 'jpeg' and
'jpg' if JPEG support enabled.

Task-number: QTBUG-29222

Change-Id: I94d731c2d1e2ede148e2e5261a310a840a1d5523
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-01-29 09:27:43 +01:00
Sergio Ahumada
07e3bcdc10 Remove QT_{BEGIN,END}_HEADER macro usage
The macro was made empty in ba3dc5f3b5
and is no longer necessary or used.

Discussed-on: http://lists.qt-project.org/pipermail/development/2013-January/009284.html
Change-Id: Id2bb2e2cabde059305d4af5f12593344ba30f001
Reviewed-by: Laszlo Papp <lpapp@kde.org>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-01-29 01:06:04 +01:00
Sze Howe Koh
7bb43454b8 Fix minor typos in docs, printed messages & comments
Missing apostrophes

Change-Id: I3ef5e9d494fb7a37f8e6075f24cd3a274e572c23
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-01-28 18:12:41 +01:00
Sergio Ahumada
f262815f2e Fix some more old references and links to Nokia
Task-number: QTBUG-28156
Change-Id: I9ba0d6f1e92103219bec1e61e716b6b2f269a8ad
Reviewed-by: Laszlo Papp <lpapp@kde.org>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-01-28 14:27:57 +01:00
Sze Howe Koh
e778042ed7 Doc, Qt GUI: Fix "no \inmodule command" warnings
Explicitly add "\inmodule QtGui" to Qt GUI classes

Change-Id: Id641c1dc98770fbd994cecc375ca46c01f083236
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-01-28 14:07:34 +01:00