summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforminputcontexts/compose/generator/qtablegenerator.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Be less verbose about invalid keysymsGatis Paeglis2014-04-031-0/+2
| | | | | | | | | | | | | | | | | | | | | | | Report invalid keysyms only when DEBUG_GENERATOR is defined. It is not unusal that Qt applications are used on old linux distributions where Compose files might be far behind the current development, therefore we should be less verbose when encountering invalid keysyms. On Red Hat 5 compose key plugin reports ~3200 lines of warning messages: "Qt Warning - invalid keysym: U1001D1BC" "Qt Warning - invalid keysym: U1001D16F" "Qt Warning - invalid keysym: U1001D1BA" "Qt Warning - invalid keysym: U1001D165" "Qt Warning - invalid keysym: U1001D16F" ... Task-number: QTBUG-34483 Change-Id: If0c51d300508ef164ad7fc59b0a76a838cd5a3b9 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com> Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
* Update bundled libxkbcommon version to 0.4.0Gatis Paeglis2014-03-191-20/+0
| | | | | | | | | | | | | This release comes with important bug fixes. Also we can now remove the workaround code which was needed for libxkbcommon 0.2.0. Task-number: QTBUG-31712 Task-number: QTBUG-33732 Task-number: QTBUG-34056 Change-Id: I57caf7f803b9a01a15541a5ad82e464de3b8abbb Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Append additional compose file search pathsGatis Paeglis2014-03-061-7/+13
| | | | | | | | On FreeBSD Compose files are stored in different place than on Linux distributions, this patch adds new search paths. Change-Id: Ic1e745801a2f9a53d1af058be8a1dfaced5032a7 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2014-02-121-1/+1
|\ | | | | | | | | | | | | | | | | | | Conflicts: src/gui/image/qimage.cpp src/gui/text/qtextengine.cpp src/plugins/platforms/linuxfb/qlinuxfbscreen.cpp src/printsupport/kernel/qprintengine_win.cpp Change-Id: I09ce991a57f39bc7b1ad6978d0e0d858df0cd444
| * Compose: Fix assert for non-UTF8 locales in table generatorGabriel de Dietrich2014-02-071-1/+1
| | | | | | | | | | | | Task-number: QTBUG-35770 Change-Id: I8aaea66e8d70edf7ab401f2c6dfb849d309ff6af Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
* | Use pkg-config to find the prefix for X11 installGabriel de Dietrich2014-01-201-7/+3
| | | | | | | | | | | | | | | | | | | | | | Needed to run the XKB extension where we used to expect X11 to be installed in /usr. In FreeBSD, for instance, X11 is installed in /usr/local like all the other not out-of-the-box packages. Same thing goes for the compose platform input context plugin. Change-Id: Ib7ace3117eaacc6e150394450d1330cba654ba8a Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
* | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2014-01-101-4/+2
|\| | | | | | | Change-Id: I99af0bef7f1c931533a324ebcfb27c40ee871a5e
| * Don't check if a file exists before opening itThiago Macieira2014-01-101-4/+2
| | | | | | | | | | | | | | | | | | If the file doesn't exist, open() will fail. But open() might fail even if the file exists(), which would lead to bad follow-up code. In any case, this saves one unnecessary stat(2). Change-Id: Ic99507c9dc07a4387ee6a4fe9c24830fca54e095 Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
* | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-11-261-10/+54
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For the conflicts in msvc_nmake.cpp the ifdefs are extended since we need to support windows phone in the target branch while it is not there in the current stable branch (as of Qt 5.2). Conflicts: configure qmake/generators/win32/msvc_nmake.cpp src/3rdparty/angle/src/libEGL/Surface.cpp src/angle/src/common/common.pri src/corelib/global/qglobal.h src/corelib/io/qstandardpaths.cpp src/plugins/platforms/qnx/qqnxintegration.cpp src/plugins/platforms/qnx/qqnxscreeneventhandler.h src/plugins/platforms/xcb/qglxintegration.h src/widgets/kernel/win.pri tests/auto/corelib/thread/qreadwritelock/tst_qreadwritelock.cpp tests/auto/corelib/tools/qdatetime/tst_qdatetime.cpp tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp tools/configure/configureapp.cpp Change-Id: I00b579eefebaf61d26ab9b00046d2b5bd5958812
| * Look at locale aliases if initial search in compose.dir failsGatis Paeglis2013-11-211-10/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The file "locale.alias" (located in the same directory as "compose.dir"), contains following text: "This file contains alias name of locale. Each alias name is described within one line. The first word is the alias name (simplified locale name) the second word is full locale name." Therefore, if initial search in the compose.dir fails to find a match we make sure that a 'full locale name' was used in the initial search, if not, we try again. Task-number: QTBUG-32461 Change-Id: Ie7766658f22433524bd6e4bc829e32c6e3a0cbd0 Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-10-241-0/+1
|\| | | | | | | Change-Id: Ie56539b2e0be611a363b5f15ae5412a78d6945a2
| * Fix compilation with Clang and libc++ under LinuxMarcel Krems2013-10-161-0/+1
| | | | | | | | | | | | | | | | | | | | src/plugins/platforms/xcb/qxcbsessionmanager.cpp:205:80: error: use of undeclared identifier 'ERANGE' while (getpwuid_r(geteuid(), &entry, buf.data(), buf.size(), &entryPtr) == ERANGE) { src/plugins/platforminputcontexts/compose/generator/qtablegenerator.cpp:173:28: error: use of undeclared identifier 'LC_CTYPE' char *name = setlocale(LC_CTYPE, (char *)0); Change-Id: Ide6f3072e9158eef412973ce0a72babb41b695f0 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Fix clang build for libc++Donald Carr2013-10-021-0/+1
|/ | | | | | | | | | | | | | Successfully builds Qt 5.2 with: QMAKE_CXXFLAGS_CXX11 += -std=c++11 -stdlib=libc++ QMAKE_LFLAGS_CXX11 += -stdlib=libc++ -lc++abi against: clang version 3.3 (tags/RELEASE_33/final) Change-Id: I778f9410c6563e78bc77ae4c20097fa561503ba1 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Remove deprecated QtAlgorithms calls from the compose inputcontextGiuseppe D'Angelo2013-09-051-1/+3
| | | | | | | | QtAlgorithms is getting deprecated, see http://www.mail-archive.com/development@qt-project.org/msg01603.html Change-Id: I75ecfb84befd5dcc44f2ffcbef2cb6f1cc39cfd8 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Cut away 2/3 of the startup time on LinuxLars Knoll2013-08-151-76/+119
| | | | | | | | | Optimize the parser of the X11 compose tables. Parsing these was responsible for over 90% of the startup time in Qt 5.1. Change-Id: Ifddc3f30828791e51a755f92791c26ffe43a9cd3 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Make access to xkbcommon_workaround.h more genericGatis Paeglis2013-05-071-0/+7
| | | | | | | | | | It makes more sense to keep this workaround header together with the other libxkbcommon files for a better access point since it's used by several *.pro files. Change-Id: I63d4eb58f6e7f3852834e41c4b6e058a2c962233 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* Fix memory access violationKonstantin Ritt2013-04-231-2/+1
| | | | | | | | The pointer returned by unicode() was deleted right afterwards. Change-Id: I7cef72386d02c7be42e71134f616926506d37ea6 Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com> Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* Fix typo in qWarning()Sergio Martins2013-04-171-1/+1
| | | | | Change-Id: I17aa0a1985c2da889bc602fd76dc07c890ed6f6b Reviewed-by: David Faure (KDE) <faure@kde.org>
* s/uint32_t/quint32/Tobias Hunger2013-04-121-4/+4
| | | | | | | | | uint32_t is in C++11, which we can not rely on being present. It is also in C99, but some compilers do not support that in C++ mode. Change-Id: I29bada724f5646a0a0562b3ab133cb49cf928d6d Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com> Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
* Fix access to invalid memoryKai Koehne2013-04-101-1/+2
| | | | | | | | | QString::toLatin1() creates a temporary QByteArray. Task-number: QTBUG-30578 Change-Id: I17c60bbade1486399f745c7e9878c6467971e6cc Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Remove unused header file.Gatis Paeglis2013-03-301-2/+0
| | | | | | | | As Thomas Senyk found out, the compose input context plugin had a redundant include for the X11 keysym header file. Change-Id: Iad603b545803867d02d915acffe27991bb0b7ee4 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Introducing QComposeInputContextGatis Paeglis2013-03-211-0/+402
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>