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