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,97 @@
/*
This file is part of the KDE frameworks
SPDX-FileCopyrightText: 2016 Ragnar Thomsen <rthomsen6@gmail.com>
SPDX-License-Identifier: LGPL-2.1-or-later
*/
#include "kcollapsiblegroupbox_test.h"
#include <KCollapsibleGroupBox>
#include <QCheckBox>
#include <QDialog>
#include <QLabel>
#include <QLineEdit>
#include <QTest>
#include <QVBoxLayout>
QTEST_MAIN(KCollapsibleGroupBoxTest)
void KCollapsibleGroupBoxTest::testDestructorCrash()
{
// The unittest does not crash the first time,
// so we run it twice.
int i = 0;
while (i != 2) {
QDialog *dlg = new QDialog(nullptr);
QVBoxLayout *mainvlayout = new QVBoxLayout(dlg);
KCollapsibleGroupBox *collapsible = new KCollapsibleGroupBox(dlg);
collapsible->setTitle(QStringLiteral("A test KCollapsibleGroupBox"));
QVBoxLayout *collapsiblevlayout = new QVBoxLayout(collapsible);
QLabel *lbl = new QLabel(QStringLiteral("A test label."), collapsible);
collapsiblevlayout->addWidget(lbl);
collapsible->expand();
mainvlayout->addWidget(collapsible);
connect(dlg, &QDialog::finished, dlg, &QObject::deleteLater);
dlg->open();
QVERIFY(collapsible);
// If waiting for less than ~500ms the test crashes every time.
// Not waiting or waiting for more than ~500ms is ok.
// Using qSleep(400) does NOT provoke the crash.
QTest::qWait(400);
dlg->accept();
i++;
}
}
void KCollapsibleGroupBoxTest::testOverrideFocus()
{
KCollapsibleGroupBox collapsible;
QVBoxLayout layout(&collapsible);
QCheckBox checkBox;
QCOMPARE(checkBox.focusPolicy(), Qt::StrongFocus);
layout.addWidget(&checkBox);
// The ChildAdded event is processed asynchronously.
qApp->processEvents();
// Make sure focus policy has been overridden.
collapsible.show();
QVERIFY(checkBox.isVisible());
QCOMPARE(checkBox.focusPolicy(), Qt::NoFocus);
// Make sure focus policy is restored on expand event.
collapsible.expand();
QVERIFY(checkBox.isVisible());
QCOMPARE(checkBox.focusPolicy(), Qt::StrongFocus);
// Make sure focus policy is overridden again on next collapse.
collapsible.collapse();
QVERIFY(checkBox.isVisible());
QCOMPARE(checkBox.focusPolicy(), Qt::NoFocus);
}
void KCollapsibleGroupBoxTest::childShouldGetFocus()
{
KCollapsibleGroupBox collapsible;
auto spinBox = new QLineEdit(&collapsible);
// The ChildAdded event is processed asynchronously.
// This also "simulates" user who manually expands.
qApp->processEvents();
collapsible.expand();
QCOMPARE(spinBox->focusPolicy(), Qt::StrongFocus);
}
#include "moc_kcollapsiblegroupbox_test.cpp"