void ServerInfoRequest::requestSuccess(QNetworkReply& reply) { json_error_t error; json_t* root = parseJSON(reply, &error); if (!root) { qWarning("failed to parse json:%s\n", error.text); emit failed(ApiError::fromJsonError()); return; } QScopedPointer<json_t, JsonPointerCustomDeleter> json(root); QMap<QString, QVariant> dict = mapFromJSON(json.data(), &error); ServerInfo ret; if (dict.contains("version")) { ret.parseVersionFromString(dict["version"].toString()); } if (dict.contains("features")) { ret.parseFeatureFromStrings(dict["features"].toStringList()); } if (dict.contains("desktop-custom-logo")) { ret.customLogo = dict["desktop-custom-logo"].toString(); } if (dict.contains("desktop-custom-brand")) { ret.customBrand = dict["desktop-custom-brand"].toString(); } emit success(account_, ret); }
bool AccountManager::loadServerInfoCB(sqlite3_stmt *stmt, void *data) { ServerInfo *info = static_cast<ServerInfo*>(data); const char *key = (const char *)sqlite3_column_text (stmt, 0); const char *value = (const char *)sqlite3_column_text (stmt, 1); QString key_string = key; QString value_string = value; if (key_string == kVersionKeyName) { info->parseVersionFromString(value_string); } else if (key_string == kFeaturesKeyName) { info->parseFeatureFromStrings(value_string.split(",")); } else if (key_string == kCustomBrandKeyName) { info->customBrand = value_string; } else if (key_string == kCustomLogoKeyName) { info->customLogo = value_string; } return true; }