Files
RedBear-OS/local/recipes/kde/kf6-attica/source/src/putjob.cpp
T
vasilito e8a15d396a fix: KF6Attica recipe, kf6-knewstuff Attica dep, topo-sort cycle error
- Created kf6-attica recipe (minimal core library build providing
  KF6::Attica cmake target, needed by kf6-knewstuff). v6.10.0,
  QML/tests/examples disabled.
- Added kf6-attica to redbear-full.toml config, integrate-redbear.sh
  symlink, and recipes/kde/ symlink.
- Fixed kf6-knewstuff: removed stale find_package(KF6Attica)
  suppression; added kf6-attica as dependency. Now publishes
  to repo (core-only build produces empty package — upstream
  code structure yields no libs with QtQuick/widgets/tools off).
- Cookbook topo-sort: changed cycle fallback from silent
  Ok(recipes) to Err(Recursion) — surfaces dependency graph
  bugs instead of hiding them.
- Fixed stale QtNetwork comment: QtNetwork IS enabled in qtbase
  since 2026-04-29 (relibc DNS resolver hardened).
- Verified: kf6-attica builds, kf6-knewstuff publishes to repo
2026-04-30 01:32:25 +01:00

115 lines
3.8 KiB
C++

/*
This file is part of KDE.
SPDX-FileCopyrightText: 2011 Laszlo Papp <djszapi@archlinux.us>
SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
*/
#include "putjob.h"
#include <QDebug>
#include <QXmlStreamReader>
#include <QNetworkAccessManager>
#include "platformdependent_v2.h"
using namespace Attica;
PutJob::PutJob(PlatformDependent *internals, const QNetworkRequest &request, QIODevice *iodevice)
: BaseJob(internals)
, m_ioDevice(iodevice)
, m_request(request)
{
}
Attica::PutJob::PutJob(PlatformDependent *internals, const QNetworkRequest &request, const QByteArray &byteArray)
: BaseJob(internals)
, m_ioDevice(nullptr)
, m_byteArray(byteArray)
, m_request(request)
{
}
PutJob::PutJob(PlatformDependent *internals, const QNetworkRequest &request, const StringMap &parameters)
: BaseJob(internals)
, m_ioDevice(nullptr)
, m_request(request)
{
// Create put data
int j = 0;
for (StringMap::const_iterator i = parameters.begin(); i != parameters.end(); ++i) {
if (j++ > 0) {
m_byteArray.append('&');
}
m_byteArray.append(QUrl::toPercentEncoding(i.key()));
m_byteArray.append('=');
m_byteArray.append(QUrl::toPercentEncoding(i.value()));
}
}
QNetworkReply *PutJob::executeRequest()
{
Attica::PlatformDependentV2 *platformDependentV2 = dynamic_cast<Attica::PlatformDependentV2 *>(internals());
if (!platformDependentV2) {
return nullptr;
}
if (m_ioDevice) {
return platformDependentV2->put(m_request, m_ioDevice);
} else {
return platformDependentV2->put(m_request, m_byteArray);
}
}
void PutJob::parse(const QString &xmlString)
{
// qCDebug(ATTICA) << "PutJob::parse" << xmlString;
QXmlStreamReader xml(xmlString);
Metadata data;
while (!xml.atEnd()) {
xml.readNext();
if (xml.isStartElement()) {
if (xml.name() == QLatin1String("meta")) {
while (!xml.atEnd()) {
xml.readNext();
if (xml.isEndElement() && xml.name() == QLatin1String("meta")) {
break;
} else if (xml.isStartElement()) {
if (xml.name() == QLatin1String("status")) {
data.setStatusString(xml.readElementText());
} else if (xml.name() == QLatin1String("statuscode")) {
data.setStatusCode(xml.readElementText().toInt());
} else if (xml.name() == QLatin1String("message")) {
data.setMessage(xml.readElementText());
} else if (xml.name() == QLatin1String("totalitems")) {
data.setTotalItems(xml.readElementText().toInt());
} else if (xml.name() == QLatin1String("itemsperpage")) {
data.setItemsPerPage(xml.readElementText().toInt());
}
}
}
} else if (xml.name() == QLatin1String("data")) {
while (!xml.atEnd()) {
xml.readNext();
if (xml.isEndElement() && xml.name() == QLatin1String("data")) {
break;
} else if (xml.isStartElement()) {
if (xml.name() == QLatin1String("projectid")) {
data.setResultingId(xml.readElementText());
}
if (xml.name() == QLatin1String("buildjobid")) {
data.setResultingId(xml.readElementText());
}
}
}
}
}
}
setMetadata(data);
}
#include "moc_putjob.cpp"