summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorRiley Trautman2015-12-31 01:12:02 -0600
committerRiley Trautman2015-12-31 01:12:02 -0600
commit3caee57a55a401e416c572ecce67221ed5f8e79c (patch)
tree28a716661bcdd4734e7c32bf46d2bc102e58913d
downloadaur-3caee57a55a401e416c572ecce67221ed5f8e79c.tar.gz
Initial import
-rw-r--r--.SRCINFO43
-rw-r--r--0001-Add-a-way-to-filter-window-system-events.patch117
-rw-r--r--PKGBUILD81
3 files changed, 241 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..bf0ed1e52b43
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,43 @@
+# Generated by mksrcinfo v8
+# Thu Dec 31 07:11:56 UTC 2015
+pkgbase = qt5-base-dev-git
+ pkgdesc = A cross-platform application and UI framework
+ pkgver = v5.5.1.106.gc8c4ad0
+ pkgrel = 1
+ url = https://qt-project.org/
+ arch = i686
+ arch = x86_64
+ license = GPL3
+ license = LGPL
+ makedepends = git
+ makedepends = postgresql-libs
+ depends = dbus
+ depends = xcb-util-keysyms
+ depends = xcb-util-wm
+ depends = xcb-util-image
+ depends = libxext
+ depends = inputproto
+ depends = libgl
+ depends = libxkbcommon
+ depends = systemd
+ depends = libpng
+ depends = sqlite
+ depends = fontconfig
+ depends = icu
+ depends = libxrender
+ depends = libinput
+ optdepends = qtchooser: set the default Qt toolkit
+ optdepends = postgresql-libs: PostgreSQL driver
+ optdepends = libmariadbclient: MariaDB driver
+ optdepends = unixodbc: ODBC driver
+ optdepends = libfbclient: Firebird/iBase driver
+ provides = qt5-base
+ conflicts = qt5-base
+ conflicts = qtchooser
+ source = qt5-base::git://code.qt.io/qt/qtbase.git#branch=5.5
+ source = 0001-Add-a-way-to-filter-window-system-events.patch
+ sha256sums = SKIP
+ sha256sums = 08eea1d78e1cde123e0a5c799c91b8261239b107b8eca27409e08f8edb1b0b36
+
+pkgname = qt5-base-dev-git
+
diff --git a/0001-Add-a-way-to-filter-window-system-events.patch b/0001-Add-a-way-to-filter-window-system-events.patch
new file mode 100644
index 000000000000..58de8ad00666
--- /dev/null
+++ b/0001-Add-a-way-to-filter-window-system-events.patch
@@ -0,0 +1,117 @@
+From 28e39706a1a922d5c1054ad3243bac8b2708dc56 Mon Sep 17 00:00:00 2001
+From: Giulio Camuffo <giulio.camuffo@jollamobile.com>
+Date: Wed, 22 Apr 2015 13:39:39 +0300
+Subject: [PATCH] Add a way to filter window system events
+
+This change introduces the class QWindowSystemEventHandler
+which can be used to hook into QWindowSystemInterfacePrivate to
+filter and dispatch window system events.
+One use case is to intercept key events from the underlying system
+in QtCompositor and feed them into the xkbcommon state, and to modify
+the events based on the resulting state.
+
+Change-Id: I829eb7d960420135990fb0f6db54c14eea3e8e48
+Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
+Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
+---
+ src/gui/kernel/qwindowsysteminterface.cpp | 34 +++++++++++++++++++++++++++++--
+ src/gui/kernel/qwindowsysteminterface_p.h | 13 ++++++++++++
+ 2 files changed, 45 insertions(+), 2 deletions(-)
+
+diff --git a/src/gui/kernel/qwindowsysteminterface.cpp b/src/gui/kernel/qwindowsysteminterface.cpp
+index 850b69d..2ea1ccd 100644
+--- a/src/gui/kernel/qwindowsysteminterface.cpp
++++ b/src/gui/kernel/qwindowsysteminterface.cpp
+@@ -48,6 +48,7 @@ QElapsedTimer QWindowSystemInterfacePrivate::eventTime;
+ bool QWindowSystemInterfacePrivate::synchronousWindowsSystemEvents = false;
+ QWaitCondition QWindowSystemInterfacePrivate::eventsFlushed;
+ QMutex QWindowSystemInterfacePrivate::flushEventMutex;
++QWindowSystemEventHandler *QWindowSystemInterfacePrivate::eventHandler;
+
+ //------------------------------------------------------------
+ //
+@@ -621,14 +622,32 @@ bool QWindowSystemInterface::sendWindowSystemEvents(QEventLoop::ProcessEventsFla
+ QWindowSystemInterfacePrivate::getWindowSystemEvent();
+ if (!event)
+ break;
+- nevents++;
+- QGuiApplicationPrivate::processWindowSystemEvent(event);
++
++ if (QWindowSystemInterfacePrivate::eventHandler) {
++ if (QWindowSystemInterfacePrivate::eventHandler->sendEvent(event))
++ nevents++;
++ } else {
++ nevents++;
++ QGuiApplicationPrivate::processWindowSystemEvent(event);
++ }
+ delete event;
+ }
+
+ return (nevents > 0);
+ }
+
++void QWindowSystemInterfacePrivate::installWindowSystemEventHandler(QWindowSystemEventHandler *handler)
++{
++ if (!eventHandler)
++ eventHandler = handler;
++}
++
++void QWindowSystemInterfacePrivate::removeWindowSystemEventhandler(QWindowSystemEventHandler *handler)
++{
++ if (eventHandler == handler)
++ eventHandler = 0;
++}
++
+ void QWindowSystemInterface::setSynchronousWindowsSystemEvents(bool enable)
+ {
+ QWindowSystemInterfacePrivate::synchronousWindowsSystemEvents = enable;
+@@ -852,4 +871,15 @@ Q_GUI_EXPORT void qt_handleTouchEvent(QWindow *w, QTouchDevice *device,
+ QWindowSystemInterface::handleTouchEvent(w, device, touchPointList(points), mods);
+ }
+
++QWindowSystemEventHandler::~QWindowSystemEventHandler()
++{
++ QWindowSystemInterfacePrivate::removeWindowSystemEventhandler(this);
++}
++
++bool QWindowSystemEventHandler::sendEvent(QWindowSystemInterfacePrivate::WindowSystemEvent *e)
++{
++ QGuiApplicationPrivate::processWindowSystemEvent(e);
++ return true;
++}
++
+ QT_END_NAMESPACE
+diff --git a/src/gui/kernel/qwindowsysteminterface_p.h b/src/gui/kernel/qwindowsysteminterface_p.h
+index 2ec402a..f51c726 100644
+--- a/src/gui/kernel/qwindowsysteminterface_p.h
++++ b/src/gui/kernel/qwindowsysteminterface_p.h
+@@ -54,6 +54,8 @@
+
+ QT_BEGIN_NAMESPACE
+
++class QWindowSystemEventHandler;
++
+ class Q_GUI_EXPORT QWindowSystemInterfacePrivate {
+ public:
+ enum EventType {
+@@ -487,6 +489,17 @@ public:
+ static QMutex flushEventMutex;
+
+ static QList<QTouchEvent::TouchPoint> convertTouchPoints(const QList<QWindowSystemInterface::TouchPoint> &points, QEvent::Type *type);
++
++ static void installWindowSystemEventHandler(QWindowSystemEventHandler *handler);
++ static void removeWindowSystemEventhandler(QWindowSystemEventHandler *handler);
++ static QWindowSystemEventHandler *eventHandler;
++};
++
++class Q_GUI_EXPORT QWindowSystemEventHandler
++{
++public:
++ virtual ~QWindowSystemEventHandler();
++ virtual bool sendEvent(QWindowSystemInterfacePrivate::WindowSystemEvent *event);
+ };
+
+ QT_END_NAMESPACE
+--
+2.6.4
+
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..ae55a4ed6c7d
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,81 @@
+# Maintainer: Riley Trautman <asonix.dev@gmail.com>
+# Contributor: Jerome Leclanche <jerome@leclan.ch>
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
+
+_pkgname=qt5-base
+pkgname=$_pkgname-dev-git
+pkgver=v5.5.1.106.gc8c4ad0
+pkgrel=1
+pkgdesc="A cross-platform application and UI framework"
+arch=("i686" "x86_64")
+url="https://qt-project.org/"
+license=("GPL3" "LGPL")
+depends=(
+ "dbus" "xcb-util-keysyms" "xcb-util-wm" "xcb-util-image"
+ "libxext" "inputproto" "libgl" "libxkbcommon" "systemd"
+ "libpng" "sqlite" "fontconfig" "icu" "libxrender" "libinput"
+)
+makedepends=("git" "postgresql-libs")
+optdepends=(
+ "qtchooser: set the default Qt toolkit"
+ "postgresql-libs: PostgreSQL driver"
+ "libmariadbclient: MariaDB driver"
+ "unixodbc: ODBC driver"
+ "libfbclient: Firebird/iBase driver"
+)
+provides=("$_pkgname")
+conflicts=("$_pkgname" "qtchooser")
+source=("$_pkgname::git://code.qt.io/qt/qtbase.git#branch=5.5"
+ "0001-Add-a-way-to-filter-window-system-events.patch")
+sha256sums=('SKIP'
+ '08eea1d78e1cde123e0a5c799c91b8261239b107b8eca27409e08f8edb1b0b36')
+
+pkgver() {
+ cd "$srcdir/$_pkgname"
+ git describe --always | sed "s/-/./g"
+}
+
+prepare() {
+ cd "$srcdir/$_pkgname"
+ sed -i "s|-O2|${CXXFLAGS}|" mkspecs/common/{g++,gcc}-base.conf
+ sed -i "/^QMAKE_LFLAGS_RPATH/s| -Wl,-rpath,||g" "mkspecs/common/gcc-base-unix.conf"
+ sed -i "/^QMAKE_LFLAGS\s/s|+=|+= ${LDFLAGS}|g" "mkspecs/common/gcc-base.conf"
+
+ git apply ../0001-Add-a-way-to-filter-window-system-events.patch
+}
+
+build() {
+ cd "$srcdir/$_pkgname"
+
+ ./configure -confirm-license -opensource \
+ -prefix /usr \
+ -bindir /usr/lib/qt/bin \
+ -docdir /usr/share/doc/qt \
+ -headerdir /usr/include/qt \
+ -archdatadir /usr/lib/qt \
+ -datadir /usr/share/qt \
+ -sysconfdir /etc/xdg \
+ -examplesdir /usr/share/doc/qt/examples \
+ -system-sqlite \
+ -openssl-linked \
+ -nomake examples \
+ -nomake tests \
+ -no-rpath \
+ -optimized-qmake \
+ -dbus-linked \
+ -reduce-relocations \
+ -egl \
+ -eglfs \
+ -libinput
+ make
+}
+
+package() {
+ cd "$srcdir/$_pkgname"
+ make INSTALL_ROOT="$pkgdir" install
+ for file in "${pkgdir}"/usr/lib/qt/bin/*; do
+ mkdir -p "${pkgdir}"/usr/bin
+ ln -s /usr/lib/qt/bin/$(basename $file) "${pkgdir}"/usr/bin/$(basename $file)
+ done
+}