cf12defd28
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
88 lines
2.2 KiB
C++
88 lines
2.2 KiB
C++
/*
|
|
SPDX-FileCopyrightText: 2007, 2006 Rafael Fernández López <ereslibre@kde.org>
|
|
SPDX-FileCopyrightText: 2002-2003 Matthias Kretz <kretz@kde.org>
|
|
|
|
SPDX-License-Identifier: LGPL-2.0-only
|
|
*/
|
|
|
|
#ifndef KPLUGINWIDGET_P_H
|
|
#define KPLUGINWIDGET_P_H
|
|
|
|
#include <QAbstractListModel>
|
|
|
|
#include <KCategorizedSortFilterProxyModel>
|
|
#include <KConfigGroup>
|
|
#include <kwidgetitemdelegate.h>
|
|
|
|
#include <kcmutils_export.h>
|
|
|
|
#include "kpluginmodel.h"
|
|
|
|
class QAbstractItemView;
|
|
class QCheckBox;
|
|
class QLabel;
|
|
class QLineEdit;
|
|
class QPushButton;
|
|
|
|
class KCategorizedView;
|
|
class KCategoryDrawer;
|
|
class KCModuleProxy;
|
|
|
|
class KPluginProxyModel;
|
|
class PluginDelegate;
|
|
class PluginEntry;
|
|
|
|
class KPluginWidgetPrivate
|
|
{
|
|
public:
|
|
int dependantLayoutValue(int value, int width, int totalWidth) const;
|
|
|
|
public:
|
|
QLineEdit *lineEdit = nullptr;
|
|
KCategorizedView *listView = nullptr;
|
|
KCategoryDrawer *categoryDrawer = nullptr;
|
|
KPluginModel *pluginModel = nullptr;
|
|
KPluginProxyModel *proxyModel = nullptr;
|
|
QVariantList kcmArguments;
|
|
bool showDefaultIndicator = false;
|
|
};
|
|
|
|
class PluginDelegate : public KWidgetItemDelegate
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
explicit PluginDelegate(KPluginWidgetPrivate *pluginSelector_d, QObject *parent = nullptr);
|
|
~PluginDelegate();
|
|
|
|
void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const override;
|
|
QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const override;
|
|
void configure(const QModelIndex &idx);
|
|
|
|
Q_SIGNALS:
|
|
void changed(const QString &pluginId, bool enabled);
|
|
void configCommitted(const QString &pluginId);
|
|
|
|
protected:
|
|
QList<QWidget *> createItemWidgets(const QModelIndex &index) const override;
|
|
void updateItemWidgets(const QList<QWidget *> &widgets, const QStyleOptionViewItem &option, const QPersistentModelIndex &index) const override;
|
|
|
|
private Q_SLOTS:
|
|
void slotStateChanged(bool state);
|
|
void slotAboutClicked();
|
|
void slotConfigureClicked();
|
|
|
|
private:
|
|
QFont titleFont(const QFont &baseFont) const;
|
|
|
|
QCheckBox *checkBox;
|
|
QPushButton *pushButton;
|
|
|
|
KPluginWidgetPrivate *pluginSelector_d;
|
|
|
|
public:
|
|
std::function<QPushButton *(const KPluginMetaData &)> handler;
|
|
};
|
|
|
|
#endif // KPLUGINSELECTOR_P_H
|