diff options
author | Riley Trautman | 2015-12-31 01:12:02 -0600 |
---|---|---|
committer | Riley Trautman | 2015-12-31 01:12:02 -0600 |
commit | 3caee57a55a401e416c572ecce67221ed5f8e79c (patch) | |
tree | 28a716661bcdd4734e7c32bf46d2bc102e58913d | |
download | aur-3caee57a55a401e416c572ecce67221ed5f8e79c.tar.gz |
Initial import
-rw-r--r-- | .SRCINFO | 43 | ||||
-rw-r--r-- | 0001-Add-a-way-to-filter-window-system-events.patch | 117 | ||||
-rw-r--r-- | PKGBUILD | 81 |
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 +} |