コード例 #1
0
bool EnginioClientConnectionPrivate::appendIdToPathIfPossible(QString *path, const QString &id, QByteArray *errorMsg, EnginioClientConnectionPrivate::PathOptions flags, QByteArray errorMessageHint)
{
    Q_ASSERT(path && errorMsg);
    if (id.isEmpty()) {
        if (flags == RequireIdInPath) {
            *errorMsg = constructErrorMessage(errorMessageHint);
            return false;
        }
        return true;
    }
    path->append('/');
    path->append(id);
    return true;
}
コード例 #2
0
 EnginioReply *setData(const int row, const QVariant &value, int role)
 {
     if (role > SyncedRole) {
         _rowsToSync.insert(row);
         const QString roleName(_roles.value(role));
         QJsonObject oldObject = _data.at(row).toObject();
         QJsonObject deltaObject;
         QJsonObject newObject = oldObject;
         deltaObject[roleName] = newObject[roleName] = QJsonValue::fromVariant(value);
         deltaObject[EnginioString::id] = newObject[EnginioString::id];
         deltaObject[EnginioString::objectType] = newObject[EnginioString::objectType];
         EnginioReply *id = _enginio->update(deltaObject, _operation);
         _dataChanged.insert(id, qMakePair(row, oldObject));
         _data.replace(row, newObject);
         emit q->dataChanged(q->index(row), q->index(row));
         return id;
     }
     EnginioClientPrivate *client = EnginioClientPrivate::get(_enginio);
     QNetworkReply *nreply = new EnginioFakeReply(client, constructErrorMessage(QByteArrayLiteral("EnginioModel: Trying to update an object with unknown role")));
     EnginioReply *ereply = new EnginioReply(client, nreply);
     return ereply;
 }