[arch-commits] Commit in appmenu-qt/trunk (PKGBUILD appmenu-async.diff)

Andrea Scarpino andrea at archlinux.org
Sat Jan 5 12:46:56 UTC 2013


    Date: Saturday, January 5, 2013 @ 07:46:56
  Author: andrea
Revision: 174630

upgpkg: appmenu-qt 0.2.6-2

Use async dbus calls (FS#33286)

Added:
  appmenu-qt/trunk/appmenu-async.diff
Modified:
  appmenu-qt/trunk/PKGBUILD

--------------------+
 PKGBUILD           |   16 ++++--
 appmenu-async.diff |  121 +++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 132 insertions(+), 5 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2013-01-05 10:20:51 UTC (rev 174629)
+++ PKGBUILD	2013-01-05 12:46:56 UTC (rev 174630)
@@ -3,19 +3,25 @@
 
 pkgname=appmenu-qt
 pkgver=0.2.6
-pkgrel=1
+pkgrel=2
 pkgdesc="Allows Qt applications to export menus over DBus to a menu applet"
 arch=('i686' 'x86_64')
 url='https://launchpad.net/appmenu-qt'
 license=('GPL')
 depends=('libdbusmenu-qt')
 makedepends=('cmake')
-source=("http://launchpad.net/${pkgname}/trunk/${pkgver}/+download/${pkgname}-${pkgver}.tar.bz2"{,.asc})
+source=("http://launchpad.net/${pkgname}/trunk/${pkgver}/+download/${pkgname}-${pkgver}.tar.bz2"{,.asc}
+        'appmenu-async.diff')
 md5sums=('90cce750e5412d43ce075b0a9bdb6782'
-         'de499d01369fc85040f5bbfc53ae1700')
+         'de499d01369fc85040f5bbfc53ae1700'
+         '82947207881702d88403c149406b502a')
 
 build() {
-  cd "${srcdir}"
+  # FS#33286
+  cd ${pkgname}-${pkgver}
+  patch -p0 -i "${srcdir}"/appmenu-async.diff
+  cd ../
+
   mkdir build
   cd build
   cmake ../${pkgname}-${pkgver} \
@@ -25,6 +31,6 @@
 }
 
 package() {
-  cd "${srcdir}"/build
+  cd build
   make DESTDIR="${pkgdir}" install
 }

Added: appmenu-async.diff
===================================================================
--- appmenu-async.diff	                        (rev 0)
+++ appmenu-async.diff	2013-01-05 12:46:56 UTC (rev 174630)
@@ -0,0 +1,121 @@
+=== modified file 'src/CMakeLists.txt'
+--- src/CMakeLists.txt	2012-02-27 14:27:17 +0000
++++ src/CMakeLists.txt	2013-01-04 10:33:53 +0000
+@@ -15,6 +15,10 @@
+     ${QT_QTXML_INCLUDE_DIR}
+     )
+ 
++qt4_add_dbus_interface(appmenu_qt_SRCS com.canonical.AppMenu.Registrar.xml
++                       registrar)
++
++
+ qt4_automoc(${appmenu_qt_SRCS})
+ 
+ link_directories(
+
+=== modified file 'src/appmenuplatformmenubar.cpp'
+--- src/appmenuplatformmenubar.cpp	2012-04-04 16:06:06 +0000
++++ src/appmenuplatformmenubar.cpp	2013-01-04 10:36:25 +0000
+@@ -15,6 +15,7 @@
+    along with appmenu-qt.  If not, see <http://www.gnu.org/licenses/>.
+ */
+ #include "appmenuplatformmenubar.h"
++#include "registrar.h"
+ 
+ // dbusmenu-qt
+ #include <dbusmenuexporter.h>
+@@ -393,6 +394,8 @@
+ 
+ bool MenuBarAdapter::registerWindow()
+ {
++    static com::canonical::AppMenu::Registrar *registrar = 0;
++
+     if (!m_menuBar->window()) {
+         WARN << "No parent for this menubar";
+         return false;
+@@ -403,9 +406,8 @@
+         return true;
+     }
+ 
+-    QDBusInterface host(REGISTRAR_SERVICE, REGISTRAR_PATH, REGISTRAR_IFACE);
+-    if (!host.isValid()) {
+-        return false;
++    if (!registrar) {
++        registrar = new com::canonical::AppMenu::Registrar(REGISTRAR_SERVICE, REGISTRAR_PATH, QDBusConnection::sessionBus(), 0);
+     }
+ 
+     Q_FOREACH(QAction *action, m_menuBar->actions()) {
+@@ -428,8 +430,9 @@
+     }
+ 
+     m_registeredWinId = winId;
+-    QVariant path = QVariant::fromValue<QDBusObjectPath>(QDBusObjectPath(m_objectPath));
+-    host.asyncCall(QLatin1String("RegisterWindow"), QVariant(winId), path);
++    if (registrar) {
++        registrar->RegisterWindow(winId, QDBusObjectPath(m_objectPath));
++    }
+     return true;
+ }
+ 
+
+=== added file 'src/com.canonical.AppMenu.Registrar.xml'
+--- src/com.canonical.AppMenu.Registrar.xml	1970-01-01 00:00:00 +0000
++++ src/com.canonical.AppMenu.Registrar.xml	2013-01-04 10:04:35 +0000
+@@ -0,0 +1,56 @@
++<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
++<node xmlns:dox="http://www.ayatana.org/dbus/dox.dtd">
++	<dox:d><![CDATA[
++	  @mainpage
++	 
++	  An interface to register menus that are associated with a window in an application.  The
++	  main interface is docuemented here: @ref com::canonical::AppMenu::Registrar.
++	    
++	  The actual menus are transported using the dbusmenu protocol which is available
++	  here: @ref com::canonical::dbusmenu.
++	]]></dox:d>
++	<interface name="com.canonical.AppMenu.Registrar" xmlns:dox="http://www.ayatana.org/dbus/dox.dtd">
++		<dox:d>
++		  An interface to register a menu from an application's window to be displayed in another
++		  window.  This manages that association between XWindow Window IDs and the dbus
++		  address and object that provides the menu using the dbusmenu dbus interface.
++		</dox:d>
++		<method name="RegisterWindow">
++			<dox:d><![CDATA[
++			  Associates a dbusmenu with a window
++	     
++			  /note this method assumes that the connection from the caller is the DBus connection
++			    to use for the object.  Applications that use multiple DBus connections will need to
++			    ensure this method is called with the same connection that implmenets the object.
++			]]></dox:d>
++			<arg name="windowId" type="u" direction="in">
++				<dox:d>The XWindow ID of the window</dox:d>
++			</arg>
++			<arg name="menuObjectPath" type="o" direction="in">
++				<dox:d>The object on the dbus interface implementing the dbusmenu interface</dox:d>
++			</arg>
++		</method>
++		<method name="UnregisterWindow">
++			<dox:d>
++			  A method to allow removing a window from the database.  Windows will also be removed
++			  when the client drops off DBus so this is not required.  It is polite though.  And
++			  important for testing.
++			</dox:d>
++			<arg name="windowId" type="u" direction="in">
++				<dox:d>The XWindow ID of the window</dox:d>
++			</arg>
++		</method>
++		<method name="GetMenuForWindow">
++			<dox:d>Gets the registered menu for a given window ID.</dox:d>
++			<arg name="windowId" type="u" direction="in">
++				<dox:d>The XWindow ID of the window to get</dox:d>
++			</arg>
++			<arg name="service" type="s" direction="out">
++				<dox:d>The address of the connection on DBus (e.g. :1.23 or org.example.service)</dox:d>
++			</arg>
++			<arg name="menuObjectPath" type="o" direction="out">
++				<dox:d>The path to the object which implements the com.canonical.dbusmenu interface.</dox:d>
++			</arg>
++		</method>
++	</interface>
++</node>
+




More information about the arch-commits mailing list