Пример #1
0
void DBTalker::parseResponseListFolders(const QByteArray& data)
{
    //added root in list at constructor and call getfolderslist after calling list folders in dbwindow
    QJson::Parser parser;
    bool ok;
    QVariant result = parser.parse(data,&ok);

    if(!ok)
    {
        emit signalBusy(false);
        emit signalListAlbumsFailed(i18n("Failed to list folders"));
        return;
    }

    QList<QPair<QString, QString> > list;
    list.clear();
    list.append(qMakePair(QString("/"),QString("root")));

    QVariantMap rmap = result.toMap();
    QList<QString> a = rmap.uniqueKeys();

    for(int i=0;i<rmap.size();i++)
    {
        if(a[i] == "contents")
        {
            QVariantList qwe = rmap[a[i]].toList();

            foreach(QVariant abc, qwe)
            {
                QVariantMap qwer = abc.toMap();
                QList<QString> b = qwer.uniqueKeys();
                QString path("");
                QString isDir("");
                int temp = 0;

                for(int i=0;i<qwer.size();i++)
                {
                    if(b[i] == "is_dir")
                        isDir = qwer[b[i]].value<QString>();
                    if(b[i] == "path")
                    {
                        path = qwer[b[i]].value<QString>();
                        temp = i;
                    }
                }
                if(QString::compare(isDir, QString("true"), Qt::CaseInsensitive) == 0)
                {
                    kDebug() << temp << " " << b[temp] << " : " << qwer[b[temp]] << " " << qwer[b[temp]].value<QString>() << endl;
                    QString name = qwer[b[temp]].value<QString>().section('/',-2);
                    kDebug() << "str " << name;
                    list.append(qMakePair(qwer[b[temp]].value<QString>(),name));
                    queue.enqueue(qwer[b[temp]].value<QString>());
                }
            }
        }
Пример #2
0
void DBTalker::parseResponseListFolders(const QByteArray& data)
{
    QJsonParseError err;
    QJsonDocument doc = QJsonDocument::fromJson(data, &err);

    if (err.error != QJsonParseError::NoError)
    {
        emit signalBusy(false);
        emit signalListAlbumsFailed(i18n("Failed to list folders"));
        return;
    }

    QJsonObject jsonObject = doc.object();
    QJsonArray jsonArray   = jsonObject[QString::fromLatin1("contents")].toArray();

    QList<QPair<QString, QString> > list;
    list.clear();
    list.append(qMakePair(QString::fromLatin1("/"), QString::fromLatin1("root")));

    foreach (const QJsonValue& value, jsonArray)
    {
        QString path(QString::fromLatin1(""));
        bool isDir;

        QJsonObject obj = value.toObject();
        path            = obj[QString::fromLatin1("path")].toString();
        isDir           = obj[QString::fromLatin1("is_dir")].toBool();
        qCDebug(KIPIPLUGINS_LOG) << "Path is "<<path<<" Is Dir "<<isDir;

        if(isDir)
        {
            qCDebug(KIPIPLUGINS_LOG) << "Path is "<<path<<" Is Dir "<<isDir;
            QString name = path.section(QLatin1Char('/'), -2);
            qCDebug(KIPIPLUGINS_LOG) << "str " << name;
            list.append(qMakePair(path,name));
            m_queue.enqueue(path);
        }
    }