Commit Graph

12897 Commits

Author SHA1 Message Date
Shawn Rutledge
5c6b2ede3b OSX: WindowTransparentForInput QNSView pass events to next responder
The default implementation (in the super class) passes the event
to the next responder.  This seems to be one valid way to handle
the Qt::WindowTransparentForInput flag.  So if a non-alien widget
for which a native NSView is created has the flag
WA_TransparentForMouseEvents, that means the window will have
Qt::WindowTransparentForInput, and the NSView which is created
on its behalf will pass on each event so that other NSViews have
a chance to handle it.  (It will also try to reject becoming
first responder, but that doesn't seem to be enough for the following
events to be passed on.)  This is a followup to
I979be9f72f7d225d7b960fc5db4c3956d2749982 which purported to
obey the WindowTransparentForInput flag, but actually doesn't.

Change-Id: Ia72a3573c2e3cbfa7ede70bee41ac36df6924598
Task-number: QTBUG-28816
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-03-24 18:00:44 +01:00
Peter Hartmann
795468bdc6 QHttpMultipart: reset read pointer when device is reset
... otherwise we would not read from the beginning when trying to
read again. The device is reset when we try to resend a request
(e.g. remote host closed etc.).

Change-Id: I21d3647dd0e00ae8bc2507f08166234f21f88861
Reviewed-by: Markus Goetz <markus@woboq.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2013-03-24 13:56:32 +01:00
Peter Hartmann
804a067846 QNonContiguousByteDevice: reset() instead of seek() if possible
... because e.g. QHttpMultiPartIODevice does not implement seek at all
(QTBUG-30295), which would make resetting such a device fail.

Change-Id: I0a9c0f21047baa72146690bfdf638cdffab0e25f
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2013-03-24 13:55:58 +01:00
Morten Johan Sørvig
7b5ad88489 Guard usage of [NSApp setDockMenu].
setDockMenu is not documented an may disappear.

Closest documented replacement seems to be
[NSApplicationDelegate applicationDockMenu:]. It can't
be used as a direct replacement since it's a "virtual"
getter that the application delegate implements.

Change-Id: Id161196018057b75cbe7d6f6d2610c0932345c5f
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-03-24 03:42:49 +01:00
Morten Johan Sørvig
5ad615ae8c Use [NSSavePanel directoryUrl].
[NSSavePanel directory] is deprecated.

Change-Id: I3515b565a25028dc5b7c966481707e001e44a077
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-03-24 03:41:45 +01:00
Morten Johan Sørvig
73d4fc6219 Call [m_qtView hasMask]
hasMask is a function on QNSView, m_contentView can
be any NSView subclass.

Change-Id: I88b5acbb8aad9aa4664e0f71f37add9dfa64f1b7
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-03-24 03:41:13 +01:00
Morten Johan Sørvig
4a1116af25 Remove unused variables in the Cocoa plugin
Change-Id: I7cdd369e2fbab02954da6ba3c05b31d93f1e7995
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-03-24 03:40:20 +01:00
Oswald Buddenhagen
fa62b6c73e match #ifdefs relating to arm compilation
use the same conditional around the #include as the actual code below
uses, otherwise we risk mismatches.

Change-Id: I8ca32c0178b1970928626a927948b06d4c6d31b9
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-03-24 03:24:52 +01:00
Venu
f226e7e631 Doc: Added the Q_REVISION macro to the ignore list
This should avoid QDoc warnings when the macro
is used with the signals and slots.

Task-number QTBUG-30105

Change-Id: I8d1b32854c15ff07e6ece7b326be38666ae29c3f
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Martin Smith <martin.smith@digia.com>
2013-03-24 03:21:09 +01:00
Frederik Gladhorn
206e8f67a0 Fix access to interface in QAccessibleEvent
Sometimes we get an invalid interface.
In that case the event should just return 0.
This avoids some potential crashes.

Change-Id: I9f166b5d5547dbe7f22c4756502aee811b0b80a6
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2013-03-23 16:47:28 +01:00
Shawn Rutledge
f217172d6d qWaitForWindow* default timeouts are 5 seconds
A widget window can be expected to show up faster, but on a busy CI
machine, OpenGL windows can take longer than 1 second.

Change-Id: I572cc86bf4d8beebcc565db8d6f2ff78e55c2ac0
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Reviewed-by: David Faure (KDE) <faure@kde.org>
2013-03-23 16:47:28 +01:00
Frederik Gladhorn
52cd53a03e Fusion Style: draw toolbar lines for non-widget apps.
Change-Id: If9415cfc05f80ba4e67d9ba6a8ebb1caaa738b84
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2013-03-23 14:42:45 +01:00
Frederik Gladhorn
5147b1d410 Accessibility: Fix crash when updating in dtor
This happens for example when running several tests.
Widgets in destructor should be treated as invalid
since their window pointer and other properties are
no longer valid.

When deleting a window containing only a table view
there would be a table model reset update comming from
the window being destroyed.

Change-Id: Ia387c814333ce373fe132b189fc180787e36cdd5
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2013-03-23 14:42:45 +01:00
Mitch Curtis
a3304489e8 Ensure QTemporaryFile can create files when an identical dir exists.
When QTemporaryFile attempts to create a new file in
createFileFromTemplate, it fails if the filename exists and is a
directory. Windows returns error code 5 (ERROR_ACCESS_DENIED) in this
case - rather than ERROR_FILE_EXISTS - which is not handled.

This patch handles ERROR_ACCESS_DENIED in addition to the already
handled ERROR_FILE_EXISTS, meaning that QTemporaryFile will continue
to look for unique names when a directory with the same name exists.

Task-number: QTBUG-30058

Change-Id: I42339887d7f5483e3dc6a03a9da15111c350da8f
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: David Faure <david.faure@kdab.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-03-23 14:42:45 +01:00
Montel Laurent
0450d81190 Fix leak when fd != -1
Change-Id: I07bcf4b678460c86642436d1a69071f765ef63ca
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-03-23 14:42:45 +01:00
Frederik Gladhorn
fe52d1853e Accessibility: Fix crash in windowHelper
When accessing the parent, we cannot be sure
that the parent interfaces are all valid.
Invalid parents can happen during destruction.
Another cause is unusual hierarchies, the
QAbstractItemView::columnDelegate test triggers
a situation where this used to crash.

In addition to the actual problem, add
checks for every parent() call.

Change-Id: I70b2bf7bc3c02b0f33e22b81023fd24519adeba9
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2013-03-23 11:48:33 +01:00
Frederik Gladhorn
6d9541ae96 Do not update accessibility for invalid interfaces
Change-Id: I8dc29ea51393406e529c76f25bf2f8cf426e26cf
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2013-03-23 11:43:39 +01:00
Morten Johan Sørvig
6ec9b34cbb Make QIcon generate high-dpi pixmaps.
QIcon::pixmap() can now return pixmaps that are larger
than the requested size, This is a behavior change
that may require updating existing application code,
and is enabled by setting Qt::AA_UseHighDPIIamges.

Add new pixmap() and actualSize() overloads that take
a window pointer. For 100% correctness you want to
target pixmap generation to a specific window, in
case the system has a mix of normal and high-dpi
displays. (The non-window versions uses QGuiApplication::
devicePixelRatio(), which returns the ratio for the
"best" display on the system.)

actualSize now returns the size in device-independent
pixels - not the pixmap pixel size. This matches
its intended use case which is layout calculations.

Change-Id: I2eefc4ed4aa48b036a7019446694e56213070efa
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-03-23 08:32:17 +01:00
Thiago Macieira
7067c3268a Suppress warning about xkbcommon unless we're building XCB
I don't need that warning on my Mac.

Change-Id: I18c06135ba88a037103fdda0982976f4a87c553e
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-03-23 04:33:11 +01:00
Thiago Macieira
93acff7883 Add support for the Clang compiler bundled with XCode
Since c45595d648, we use the toolchain
based on the XCode SDK, not the one in $PATH. Turns out that the Clang
that comes bundled with XCode 4.6 reports its version as

     Apple LLVM version 4.2 (clang-425.0.27) (based on LLVM 3.2svn)

Instead of "Apple clang". So we need to match for (clang|LLVM).

Extended regular expressions (with -E) were necessary because the sed
that comes with Mac OS X is apparently broken and will not work with
\(clang\|LLVM\). GNU sed accepts -E as an alias for -r, meaning
extended regexps.

Change-Id: I5a15de30721216b086c3d39a080cc6496c503985
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-03-23 04:33:11 +01:00
David Faure
d4adee7851 Fix race condition in QThread::setPriority
The value of priority was read without the mutex locked, from within
the thread.

Had to extract a QThreadPrivate::setPriority method so that it can be called
with the mutex already locked. So if the main thread calls setPriority
while the thread is starting, it will be either be before or after the
"re-set priority" code at thread startup, but at least not in the middle of it.

Change-Id: I7a054f68623f61482c749274da66f3b2dcd8bcee
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2013-03-23 02:06:47 +01:00
Thiago Macieira
c550a5d42c Remove unused private members
These members are in private classe, so we can safely remove them.

qpathclipper.cpp:762:9: error: private field 'm_point' is not used [-Werror,-Wunused-private-field]
qsimpledrag_p.h💯20: error: private field 'm_cursor_drop_action' is not used
etc.

Change-Id: I35ed486eb959c49bb971700500a66411308ee7bc
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-03-23 01:56:06 +01:00
Thiago Macieira
336eac0896 Remove unused private fields in a class used for anti-flicker workaround
qwizard.cpp:510:14: error: private field 'wizard' is not used [-Werror,-Wunused-private-field]
qwizard.cpp:511:21: error: private field 'wizardPrivate' is not used [-Werror,-Wunused-private-field]

Field "wizard" was really unused, in all platforms, so simply remove
it. The field "wizardPrivate" is used when the Windows Vista style is
enabled.

Change-Id: I1ce254f484b613655bff7f6c3ee8e04479960d7c
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2013-03-23 01:56:00 +01:00
Thiago Macieira
caffabc798 Mark Q_UNUSED the private members that aren't used
Apple Clang 4.2 has a new warning, letting you know when a private
member isn't used by any member function (and, I guess, if the class
has no friends):

  private field 'd' is not used [-Werror,-Wunused-private-field]

Qt has a few of those for future expansion. It's not an error for us.

Change-Id: Id2edb1159589572f97a07f93181c9c96c5dd983c
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: David Faure <david.faure@kdab.com>
2013-03-23 01:55:58 +01:00
Axel Waggershauser
1622dca213 Fix whitespace issues in *.prf
Replaced tabs with spaces to align with space-indented code
and removed some trailing whitespace.

Change-Id: I4930afc3df206ef8ee96de3e69f0d69fc4a1c77c
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-03-22 19:52:26 +01:00
Paul Olav Tvete
0c645f1345 Inform android input method when cursor is moved
Google Japanese Input Beta keeps track of the cursor position, and
bails out if the cursor is not where it thinks it should be. We
have to tell the IM every time we move the cursor, not only when
we are composing.

Change-Id: I9cdb28f81c76e76d3b0125d08bf0595616ca443f
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2013-03-22 19:52:26 +01:00
Peter Hartmann
1f180e9690 SSL code: store SSL parameters for debugging, guarded by define
... so SSL traffic can be decrypted with e.g. tcpdump / Wireshark.
For this to work, the define needs to be uncommented and QtNetwork
recompiled. This will create a file in /tmp/qt-ssl-keys which can
be fed into Wireshark.
A recent version of Wireshark is needed for this to work.

Change-Id: I4e41fd2e6122260cd96d443b1360edc71b08b5fd
Reviewed-by: Richard J. Moore <rich@kde.org>
2013-03-22 19:52:26 +01:00
Eskil Abrahamsen Blomfeldt
ab18bb84e4 Remove QtWidgets dependency from Android platform plugin
The setFullScreen() function was never called from anywhere, so
it was just removed. The update() loop for top level widgets has
been replaced by a loop sending expose events to top level
windows.

Task-number: QTBUG-29313
Change-Id: Ic31a05ad3a0693f1d3f61457cee9d78f6b334b4d
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2013-03-22 19:52:26 +01:00
Paul Olav Tvete
e85524096d Use qtproject instead of necessitas for default package name
Task-number: QTCREATORBUG-8779
Change-Id: Idf62e5efa4b8bc4b90d99b3883ae127a0cc7e92c
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2013-03-22 19:52:26 +01:00
Mitch Curtis
9181ee4d86 Fix missing parts of Ie511522d35b5658c20be43dd112eae18c205277f in merge
The merge of dev->stable branch somehow lost these bits of:
Make QCoreApplication::startingUp() return false when appropriate.
Which was Change-Id: Ie511522d35b5658c20be43dd112eae18c205277f

Change-Id: I2991b10e2774bf5a59fa37734d4a9fd39d51b472
Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
Reviewed-by: David Faure (KDE) <faure@kde.org>
Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
2013-03-22 19:52:26 +01:00
Friedemann Kleint
37842c2fdb Compile most manual tests with Qt 4.
Replace <QtWidgets> includes by class includes, remove tests
that do not compile.

Change-Id: I52837e8c567dc8ac365c7d43c37beb9a368f6f72
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-03-22 19:52:26 +01:00
Frederik Gladhorn
4e07286a30 Only instantiate QAccessibleWidget after trying inherited classes
The plugin should try each class name from the meta object
in succession instead of giving up right away and just using
QWidget.

This improves the handling of the itemviews and makes many sub-classes
of QWidget outside of Qt work.

Change-Id: Id81017c648fe229c3eb85d6d9ae6696d5f16a1ef
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2013-03-22 17:11:17 +01:00
David Faure
f4609b2022 QThread: fix race when setting the eventDispatcher
Use QAtomicPointer to make this thread-safe.

Change-Id: If71f204699fcefabdb59bd26342d777d1cc9e2a7
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2013-03-22 16:44:51 +01:00
David Faure
85b25fc221 Remove racy setting of eventDispatcher to 0.
This is inconsistent (e.g. the glib event dispatcher doesn't do this) and
unnecessary (already done by QThreadPrivate::finish before deleting the
event dispatcher, and by the QCoreApplication destructor).

Change-Id: Ib98147953a5e71ec87aab0ec7ef5063bb7d80134
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2013-03-22 16:44:47 +01:00
Eskil Abrahamsen Blomfeldt
9c6f27ce48 Fix installation of Android java files
The installation of the java files does not depend on Qt,
so it can be built before the rest of Qt, which means we need
to remove the default dependency in qmake, otherwise we can
get an error message:

Project ERROR: Unknown module(s) in QT: gui core

Change-Id: Ibb968acf6ec06c91ccfd5002e08c93c96a209934
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-03-22 16:34:07 +01:00
David Faure
ab340e89fd renameOverwrite: don't allow cross-partition copying
This matches the Unix behavior, and ensures atomicity (as required by QSaveFile)

Change-Id: I54ec98bcd7a0714ca968cad627a5e4d684fd7af6
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-03-22 13:29:13 +01:00
Janne Anttila
98e704a2da Update WEC7 ARM mkspec.
Added QT_NO_CLIPBOARD, QT_NO_ACCESSIBILITY and opengles2 libs.

Clipboard and accessibility are not supported in WEC7.
Opengl ES2 libs are required for building qtgui (and other opengl
dependent) modules.

Change-Id: Ie45612bd7bada00bfcb92a0885c4bd685b82bd02
Reviewed-by: Johannes Oikarinen <johannes.oikarinen@digia.com>
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-03-22 13:21:44 +01:00
J-P Nurmi
c2bdfc3884 QWindowsVistaStyle: fix checkbox animations for QtQuick Controls
Change-Id: I740dfab748fe9cc79a861c549030ff9e9e608df2
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2013-03-22 13:05:27 +01:00
Mirko Boehm (AWS)
4824c74b34 Fix error in XML and Xunit formatted benchmark output.
The number of iterations was not respected for XML output, unlike for
plain text output. With this fix, benchmarks report the same result
for plain text and XML formatted output.
Compare the change to qplaintextlogger.cpp:274.

Change-Id: Ieb3e5812e18d93c36847bef0417f779efd300f86
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Daniel Molkentin <daniel@molkentin.de>
Reviewed-by: Jason McDonald <macadder1@gmail.com>
2013-03-22 12:59:01 +01:00
Martin Smith
04770e5824 qdoc: List of all members subpage redesigned
The subpage listing all the members of a QML type,
including the inherited members, was trying to use
an old format that works ok for C++ classes but is
not optimal for QML types.

The redesigned format for QML types still lists all
the members but it lists the members for each base
type in a separate list.

The members for a QML type that has been marked as
abstract are listed with the members of the type
that inherits the abstract type.

This fix does not fix QTBUG-30111, which will be
fixed in a separate commit. This means that some
links on the subpage generated by this change
will be links to a page that doesn't actually
contain any documentation for the linked member.
But it will eventually.

Task-number: QTBUG-30114
Change-Id: I8ae4227d1eaecdbc24a4ac9b8119f0ced2cdee92
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-03-22 12:13:23 +01:00
David Faure
bf3a5ccef1 QThreadDataPrivate: fix data race on canWait boolean.
postEvent() accesses it with the postEventList mutex locked, but
processEvent() was checking it without any mutex locked.

Change-Id: I31bbb50f7a1c337067b8e3de16ee7cd11400b517
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-03-22 12:12:36 +01:00
David Faure
49d7e71f77 QEventDispatcherUNIX: turn interrupt bool into an atomic int.
It's read and written by different threads, so this was a race.

Change-Id: Ieffaa169eb67f40dc935291b3994f9ff1c7e05f0
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-03-22 12:12:22 +01:00
Montel Laurent
ef502d4fb9 Initialize gen_ variable
Change-Id: I87e0b2e11670ea71da8e4d2f718dc97dd32dd57d
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-03-22 12:11:43 +01:00
Morten Johan Sørvig
a8283fe4d9 Implement [QNSView isOpaque]
Re-use the QCocoaWindow implementation.

This gives a small performance boost since NSWindow
can skip drawing the background if it knows that the
content view will fill with opaque pixels.

Change-Id: I4a9a14135d890e9132dd1cb0af5a1c1a769d7e2f
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-03-22 07:16:25 +01:00
Friedemann Kleint
a87e8f7a10 Show warning about QBackingStore::flush() only for toplevel windows.
Task-number: QTBUG-30181

Change-Id: I8c9b515af022cb204649cb1e1f344f73a224c8b7
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-03-22 06:20:19 +01:00
Eskil Abrahamsen Blomfeldt
c2a8a8236f Recommit b7b858595e
This was accidentally removed as part of the merge from
dev.

Change-Id: I102ff0d67a136b0dbe467d83edccf02880536d7f
Reviewed-by: Liang Qi <liang.qi@digia.com>
2013-03-21 15:27:50 +01:00
Eskil Abrahamsen Blomfeldt
f8c9f960ad Fix crosscompiling for Android on Mac
There is no logic in configure to detect compiler capabilities
in the host- and cross-compilers separately, so if the
cross-compiler has more capabilities than the host compiler, the
compilation will break. This was the case for c++11 on Mac, which
is supported by the Android cross-compiler but not by default on
the host. There is a fix planned to enable c++11 on Mac, so
this is a temporary patch to work around the problem by disabling
c++11 explicitly until it has been fixed.

Change-Id: I2048dc7f63991c97b11b3980ac91292d2c9b7ce4
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-03-21 15:27:38 +01:00
Eskil Abrahamsen Blomfeldt
53b32a0b3f Android: Fix use_local_libs when running from launcher
Use persistent data to specify the alternative location
of Qt libraries instead of command line arguments, so that the
application can be run from the launcher and not just from
Qt Creator.

Task-number: QTCREATORBUG-8643
Change-Id: I72df2905f3f35a3b924edd47d3a5387e674c97ac
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2013-03-21 15:26:58 +01:00
Dmytro Tyshchenko
b5a388192c Add qMenuToNSMenu() and qMenuBarToNSMenu() to QCocoaNativeInterface.
Preparing the addition of toNSMenu() functions to QtMacExtras which
will expose the native handle of a QMenu or QMenuBar.

Task-number: QTBUG-28869
Change-Id: Ib07712f5da0758addbbf8a84d6881297420e7ac8
Reviewed-by: Harri Porten <porten@froglogic.com>
Reviewed-by: Laszlo Papp <lpapp@kde.org>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-03-21 15:26:47 +01:00
Gatis Paeglis
24c10b0b8d Introducing QComposeInputContext
When switching from Xlib to xcb platform plugin it was agreed that
XIM is deprecated. Users should be using QT_IM_MODULE to load input context
plugin for a more advance input method framework support.

The proposed solution is to parse the compose file directly from Qt. This
approach removes the overhead of communication protocols used in Xlib and/or IBUS.

TableGenerator class follows [1].

The compose file is searched for in the following order:

1) If the environment variable $XCOMPOSEFILE is set,
its value is used as the name of the Compose file.

2) If the user’s home directory has a file named
.XCompose, it is used as the Compose file.

3) The system provided compose file is used by mapping the
locale to a compose file from the list in
/usr/share/X11/locale/compose.dir.

Regarding step 3 - TableGenerator searches in hard-coded locations for
system-provided compose files. Here I have introcuded a new environment
variable QTCOMPOSE which can be used to prepend an extra location
to be searched.

[1] http://www.x.org/archive/X11R7.7/doc/man/man5/Compose.5.xhtml

Task-number: QTBUG-28183
Change-Id: I76dcfd454f3acc23db98192a3673c1ab2af4425f
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-03-21 15:26:24 +01:00