View Single Post
sakya's Avatar
Posts: 533 | Thanked: 1,341 times | Joined on Dec 2010 @ Italy
#2
Ok, I don't know what I'm doing wrong, but asyncCall doesn't work for me.
callWithCallback works perfectly.
Code:
void MafwHelper::GetCatalog(QString aggregate, int index, int count)
{
#ifdef Q_WS_MAEMO_5
    QDBusInterface device(QLatin1String("org.freedesktop.Tracker"),
                          QLatin1String("/org/freedesktop/Tracker/Metadata"),
                          QLatin1String("org.freedesktop.Tracker.Metadata"),
                          QDBusConnection::sessionBus());

    QStringList par1 = QStringList() << aggregate;
    QStringList par2 = QStringList() << "SUM" << "COUNT" << "COUNT" << "CONCAT";
    QStringList par3 = QStringList() << "Audio:Duration" << "Audio:Album" << "*" << "Audio:Album";

    qDebug() << "DBusMessage: org.freedesktop.Tracker.Metadata::GetUniqueValuesWithAggregates";

    QList<QVariant> args = QList<QVariant>() << "Music" << par1 << "" << par2 << par3 << false << index << count;
    device.callWithCallback(QLatin1String("GetUniqueValuesWithAggregates"), args,
                                          this, SLOT(GetCatalogFinishedSlot(QDBusMessage)));
#endif
}

#ifdef Q_WS_MAEMO_5
void MafwHelper::GetCatalogFinishedSlot(QDBusMessage msg)
{
    QVariant val = msg.arguments()[0];
    QDBusArgument arg = qvariant_cast<QDBusArgument>(val);

    arg.beginArray();
    while (!arg.atEnd()) {
        QList<QString> element;
        arg >> element;
        qDebug() << element;
    }
    arg.endArray();
}
#endif
 

The Following User Says Thank You to sakya For This Useful Post: