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
This commit is contained in:
2026-04-30 01:32:25 +01:00
parent 4165623d89
commit e8a15d396a
183 changed files with 17533 additions and 9 deletions
@@ -0,0 +1,155 @@
/*
This file is part of KDE.
SPDX-FileCopyrightText: 2010 Intel Corporation
SPDX-FileContributor: Mateu Batle Sastre <mbatle@collabora.co.uk>
SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
*/
#include "comment.h"
#include <QMap>
using namespace Attica;
QString Comment::commentTypeToString(const Comment::Type type)
{
switch (type) {
case ContentComment:
return QStringLiteral("1");
case ForumComment:
return QStringLiteral("4");
case KnowledgeBaseComment:
return QStringLiteral("7");
case EventComment:
return QStringLiteral("8");
}
Q_ASSERT(false);
return QString();
}
class Q_DECL_HIDDEN Comment::Private : public QSharedData
{
public:
QString m_id;
QString m_subject;
QString m_text;
int m_childCount;
QString m_user;
QDateTime m_date;
int m_score;
QList<Comment> m_children;
Private()
: m_childCount(0)
, m_score(0)
{
}
};
Comment::Comment()
: d(new Private)
{
}
Comment::Comment(const Comment &other)
: d(other.d)
{
}
Comment &Comment::operator=(const Attica::Comment &other)
{
d = other.d;
return *this;
}
Comment::~Comment()
{
}
void Comment::setId(const QString &id)
{
d->m_id = id;
}
QString Comment::id() const
{
return d->m_id;
}
void Comment::setSubject(const QString &subject)
{
d->m_subject = subject;
}
QString Comment::subject() const
{
return d->m_subject;
}
void Comment::setText(const QString &text)
{
d->m_text = text;
}
QString Comment::text() const
{
return d->m_text;
}
void Comment::setChildCount(const int childCount)
{
d->m_childCount = childCount;
}
int Comment::childCount() const
{
return d->m_childCount;
}
void Comment::setUser(const QString &user)
{
d->m_user = user;
}
QString Comment::user() const
{
return d->m_user;
}
void Comment::setDate(const QDateTime &date)
{
d->m_date = date;
}
QDateTime Comment::date() const
{
return d->m_date;
}
void Comment::setScore(const int score)
{
d->m_score = score;
}
int Comment::score() const
{
return d->m_score;
}
void Comment::setChildren(QList<Comment> children)
{
d->m_children = std::move(children); // TODO KF6 Make QList const & and remove the std::move
}
QList<Comment> Comment::children() const
{
return d->m_children;
}
bool Comment::isValid() const
{
return !(d->m_id.isEmpty());
}