Два дня отладки - лазанья в кишках QtDbus. 1. Выяснил, как передавать передавать свои типы данных по D-Bus (это не совсем тривиально, здесь хоть кто то объяснил)2. Сделал типа такого
typedef QMap<QString, QVariant> VariantMap;
//---------------------------------------------------------------------------------
Q_DECLARE_METATYPE(VariantMap)
//---------------------------------------------------------------------------------
QDBusArgument &operator << (QDBusArgument &arg, const VariantMap &m);
const QDBusArgument &operator >> (const QDBusArgument &arg, VariantMap &m);
//---------------------------------------------------------------------------------
inline void RegisterVariantMapTypes()
{
qDBusRegisterMetaType<VariantMap>();
}
3. Сервер упорно отказывался принимать аргумент такого типа. При отладке поучалось что такой тип не зарегистрирован. 4. Выяснилось, что регистрируется тип QMap (кот. уже зарегистрирован), а адаптерный класс (QDBusAbstractAdaptor) не может получить id класса по имени "VariantMap".Вылечилось только когда отказался от typedef (сделал наследника от QMap).Вот такие вот грабли с темплейтами C++UPD:вот на что я наступил - bugreports.qt.nokia.com/browse/QTBUG-6833,спасибо wecanstoptrain