mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-27 19:25:49 +08:00
refs #450 CVariant has to work around the fact that QtDBus can't marshal an invalid QVariant.
This commit is contained in:
@@ -205,9 +205,16 @@ namespace BlackMisc
|
|||||||
}
|
}
|
||||||
|
|
||||||
void CVariant::marshallToDbus(QDBusArgument &arg) const
|
void CVariant::marshallToDbus(QDBusArgument &arg) const
|
||||||
|
{
|
||||||
|
if (isValid())
|
||||||
{
|
{
|
||||||
arg << QString(typeName()) << QDBusVariant(getQVariant());
|
arg << QString(typeName()) << QDBusVariant(getQVariant());
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
arg << QString() << QDBusVariant(QVariant(0));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void CVariant::unmarshallFromDbus(const QDBusArgument &arg)
|
void CVariant::unmarshallFromDbus(const QDBusArgument &arg)
|
||||||
{
|
{
|
||||||
@@ -215,8 +222,15 @@ namespace BlackMisc
|
|||||||
QDBusVariant dbusVar;
|
QDBusVariant dbusVar;
|
||||||
arg >> typeName >> dbusVar;
|
arg >> typeName >> dbusVar;
|
||||||
|
|
||||||
|
if (typeName.isEmpty())
|
||||||
|
{
|
||||||
|
*this = CVariant();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
*this = fixQVariantFromDbusArgument(dbusVar.variant(), QMetaType::type(qPrintable(typeName)));
|
*this = fixQVariantFromDbusArgument(dbusVar.variant(), QMetaType::type(qPrintable(typeName)));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void CVariant::setPropertyByIndex(const CVariant &variant, const CPropertyIndex &index)
|
void CVariant::setPropertyByIndex(const CVariant &variant, const CPropertyIndex &index)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user