Help with QtDBUS

Jaroslav Reznik jreznik at redhat.com
Thu Aug 20 16:15:37 BST 2009


Hi!
I'm trying to help PolicyKit-KDE guys with PolicyKit 1 KDE Authentication 
Agent as in Fedora 12 PolicyKit 1 is going to be default one. And we don't 
want to use Gnome one to not mess our KDE. I'd like to help as this evil comes 
from our Desktop team :-)

But I hit problems with QtBus (yes, I have to admit I'm not DBUS expert at all 
;-).

The BeginAuthentication method has 'sssa{ss}sa(sa{sv})' signature, see [1]. 
I'm trying to implement it in QtDBus. This is part of my code (I'd like to 
branch old code in SVN tomorrow).

So I have this slot
void BeginAuthentication(const QString &action_id, const QString &message, 
const QString &icon_name, const QMap<QString, QString> &details, const QString 
&cookie, const QList<Identity> &identities);

This is Identity structure - a(sa{sv})
struct Identity
{
    QString subject_kind;
    QVariantMap subject_details;
};

Q_DECLARE_METATYPE(Identity)
Q_DECLARE_METATYPE(QList<Identity>)

And marshaling code (for >> nearly same):
QDBusArgument &operator<<(QDBusArgument &argument, const Identity &identity)
{
    argument.beginStructure();
    argument << identity.subject_kind;
    argument << identity.subject_details;    
    argument.endStructure();

    return argument;
}

But I've got UnknowMethod Error from PK1 daemon - Method "BeginAuthentication" 
with signature "sssa{ss}sa(sa{sv})" on interface 
"org.freedesktop.PolicyKit1.AuthenticationAgent" doesn't exist.

What I have to do to use these complex types - a{ss} and a(sa{sv})? I have no 
problems with calling simple CancelAuthentication method (just one string 
parameter).

Thanks
Jaroslav

[1] http://hal.freedesktop.org/docs/polkit/eggdbus-interface-
org.freedesktop.PolicyKit1.AuthenticationAgent.html
-- 
Jaroslav Řezník <jreznik at redhat.com>
Associate Software Engineer - Base Operating Systems Brno

Office: +420 532 294 275
Mobile: +420 731 455 332
Red Hat, Inc.                               http://cz.redhat.com/
 
>> Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<


More information about the kde-core-devel mailing list