Advance Wayland and KDE package bring-up

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
2026-04-14 10:51:06 +01:00
parent 51f3c21121
commit cf12defd28
15214 changed files with 20594243 additions and 269 deletions
@@ -0,0 +1,233 @@
/*
SPDX-FileCopyrightText: 2009-2012 Dario Freddi <drf@kde.org>
SPDX-FileCopyrightText: 2008 Nicola Gigante <nicola.gigante@gmail.com>
SPDX-License-Identifier: LGPL-2.1-or-later
*/
#include "actionreply.h"
#include <QDebug>
#include <QIODevice>
namespace KAuth
{
class ActionReplyData : public QSharedData
{
public:
ActionReplyData()
{
}
ActionReplyData(const ActionReplyData &other)
: QSharedData(other)
, data(other.data)
, errorCode(other.errorCode)
, errorDescription(other.errorDescription)
, type(other.type)
{
}
~ActionReplyData()
{
}
QVariantMap data; // User-defined data for success and helper error replies, empty for kauth errors
uint errorCode;
QString errorDescription;
ActionReply::Type type;
};
// Predefined replies
const ActionReply ActionReply::SuccessReply()
{
return ActionReply();
}
const ActionReply ActionReply::HelperErrorReply()
{
ActionReply reply(ActionReply::HelperErrorType);
reply.setError(-1);
return reply;
}
const ActionReply ActionReply::HelperErrorReply(int error)
{
ActionReply reply(ActionReply::HelperErrorType);
reply.setError(error);
return reply;
}
const ActionReply ActionReply::NoResponderReply()
{
return ActionReply(ActionReply::NoResponderError);
}
const ActionReply ActionReply::NoSuchActionReply()
{
return ActionReply(ActionReply::NoSuchActionError);
}
const ActionReply ActionReply::InvalidActionReply()
{
return ActionReply(ActionReply::InvalidActionError);
}
const ActionReply ActionReply::AuthorizationDeniedReply()
{
return ActionReply(ActionReply::AuthorizationDeniedError);
}
const ActionReply ActionReply::UserCancelledReply()
{
return ActionReply(ActionReply::UserCancelledError);
}
const ActionReply ActionReply::HelperBusyReply()
{
return ActionReply(ActionReply::HelperBusyError);
}
const ActionReply ActionReply::AlreadyStartedReply()
{
return ActionReply(ActionReply::AlreadyStartedError);
}
const ActionReply ActionReply::DBusErrorReply()
{
return ActionReply(ActionReply::DBusError);
}
// Constructors
ActionReply::ActionReply(const ActionReply &reply)
: d(reply.d)
{
}
ActionReply::ActionReply()
: d(new ActionReplyData())
{
d->errorCode = 0;
d->type = SuccessType;
}
ActionReply::ActionReply(ActionReply::Type type)
: d(new ActionReplyData())
{
d->errorCode = 0;
d->type = type;
}
ActionReply::ActionReply(int error)
: d(new ActionReplyData())
{
d->errorCode = error;
d->type = KAuthErrorType;
}
ActionReply::~ActionReply()
{
}
void ActionReply::setData(const QVariantMap &data)
{
d->data = data;
}
void ActionReply::addData(const QString &key, const QVariant &value)
{
d->data.insert(key, value);
}
QVariantMap ActionReply::data() const
{
return d->data;
}
ActionReply::Type ActionReply::type() const
{
return d->type;
}
void ActionReply::setType(ActionReply::Type type)
{
d->type = type;
}
bool ActionReply::succeeded() const
{
return d->type == SuccessType;
}
bool ActionReply::failed() const
{
return !succeeded();
}
ActionReply::Error ActionReply::errorCode() const
{
return (ActionReply::Error)d->errorCode;
}
void ActionReply::setErrorCode(Error errorCode)
{
d->errorCode = errorCode;
if (d->type != HelperErrorType) {
d->type = KAuthErrorType;
}
}
int ActionReply::error() const
{
return d->errorCode;
}
void ActionReply::setError(int error)
{
d->errorCode = error;
}
QString ActionReply::errorDescription() const
{
return d->errorDescription;
}
void ActionReply::setErrorDescription(const QString &error)
{
d->errorDescription = error;
}
QByteArray ActionReply::serialized() const
{
QByteArray data;
QDataStream s(&data, QIODevice::WriteOnly);
s << d->data << d->errorCode << static_cast<quint32>(d->type) << d->errorDescription;
return data;
}
ActionReply ActionReply::deserialize(const QByteArray &data)
{
ActionReply reply;
QByteArray a(data);
QDataStream s(&a, QIODevice::ReadOnly);
quint32 i;
s >> reply.d->data >> reply.d->errorCode >> i >> reply.d->errorDescription;
reply.d->type = static_cast<ActionReply::Type>(i);
return reply;
}
// Operators
ActionReply &ActionReply::operator=(const ActionReply &reply)
{
if (this == &reply) {
// Protect against self-assignment
return *this;
}
d = reply.d;
return *this;
}
bool ActionReply::operator==(const ActionReply &reply) const
{
return (d->type == reply.d->type && d->errorCode == reply.d->errorCode);
}
bool ActionReply::operator!=(const ActionReply &reply) const
{
return (d->type != reply.d->type || d->errorCode != reply.d->errorCode);
}
} // namespace Auth