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,100 @@
/*
SPDX-FileCopyrightText: 2010 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.net>
SPDX-FileContributor: Stephen Kelly <stephen@kdab.com>
SPDX-License-Identifier: LGPL-2.0-or-later
*/
#ifndef BREADCRUMBNAVIGATION_WIDGET_H
#define BREADCRUMBNAVIGATION_WIDGET_H
#include "klinkitemselectionmodel.h"
#include <kselectionproxymodel.h>
#include <QItemSelection>
#include <QLabel>
#include <QWidget>
class CurrentItemLabel : public QLabel
{
Q_OBJECT
public:
CurrentItemLabel(QAbstractItemModel *model, QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags());
private Q_SLOTS:
void rowsInserted(const QModelIndex &parent, int start, int end);
void rowsRemoved(const QModelIndex &parent, int start, int end);
void dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight);
void modelReset();
private:
QAbstractItemModel *m_model;
};
class KBreadcrumbNavigationProxyModel : public KSelectionProxyModel
{
Q_OBJECT
public:
KBreadcrumbNavigationProxyModel(QItemSelectionModel *selectionModel, QObject *parent = nullptr);
void setShowHiddenAscendantData(bool showHiddenAscendantData);
bool showHiddenAscendantData() const;
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
private:
bool m_showHiddenAscendantData;
};
class KNavigatingProxyModel : public KSelectionProxyModel
{
Q_OBJECT
public:
KNavigatingProxyModel(QItemSelectionModel *selectionModel, QObject *parent = nullptr);
void setSourceModel(QAbstractItemModel *sourceModel) override;
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
private Q_SLOTS:
void modelReset();
void updateNavigation();
void navigationSelectionChanged(const QItemSelection &, const QItemSelection &);
private:
private:
using KSelectionProxyModel::setFilterBehavior;
QItemSelectionModel *m_selectionModel;
};
class KForwardingItemSelectionModel : public QItemSelectionModel
{
Q_OBJECT
public:
enum Direction {
Forward,
Reverse,
};
KForwardingItemSelectionModel(QAbstractItemModel *model, QItemSelectionModel *selectionModel, QObject *parent = nullptr);
KForwardingItemSelectionModel(QAbstractItemModel *model, QItemSelectionModel *selectionModel, Direction direction, QObject *parent = nullptr);
void select(const QModelIndex &index, SelectionFlags command) override;
void select(const QItemSelection &selection, SelectionFlags command) override;
private Q_SLOTS:
void navigationSelectionChanged(const QItemSelection &selected, const QItemSelection &deselected);
private:
QItemSelectionModel *m_selectionModel;
Direction m_direction;
};
class BreadcrumbNavigationWidget : public QWidget
{
Q_OBJECT
public:
BreadcrumbNavigationWidget(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags());
};
#endif