• Skip to content
  • Skip to link menu
  • KDE API Reference
  • kdelibs-4.14.38 API Reference
  • KDE Home
  • Contact Us
 

KUtils

  • kutils
kpluginselector_p.h
Go to the documentation of this file.
1
21#ifndef KPLUGINSELECTOR_P_H
22#define KPLUGINSELECTOR_P_H
23
24#include <QtCore/QAbstractListModel>
25#include <QtGui/QAbstractItemDelegate>
26
27#include <kconfiggroup.h>
28#include <kplugininfo.h>
29#include <kwidgetitemdelegate.h>
30#include <kcategorizedsortfilterproxymodel.h>
31
32class QLabel;
33class QCheckBox;
34class QPushButton;
35class QAbstractItemView;
36
37class KLineEdit;
38class KCategorizedView;
39class KCModuleProxy;
40class KCategoryDrawer;
41
42class PluginEntry;
43
44class KPluginSelector::Private
45 : public QObject
46{
47 Q_OBJECT
48
49public:
50 enum ExtraRoles
51 {
52 PluginEntryRole = 0x09386561,
53 ServicesCountRole = 0x1422E2AA,
54 NameRole = 0x0CBBBB00,
55 CommentRole = 0x19FC6DE2,
56 AuthorRole = 0x30861E10,
57 EmailRole = 0x02BE3775,
58 WebsiteRole = 0x13095A34,
59 VersionRole = 0x0A0CB450,
60 LicenseRole = 0x001F308A,
61 DependenciesRole = 0x04CAB650,
62 IsCheckableRole = 0x0AC2AFF8
63 };
64
65 Private(KPluginSelector *parent);
66 ~Private();
67
68 void updateDependencies(PluginEntry *pluginEntry, bool added);
69 int dependantLayoutValue(int value, int width, int totalWidth) const;
70
71public:
72 class PluginModel;
73 class ProxyModel;
74 class PluginDelegate;
75 class DependenciesWidget;
76 KPluginSelector *parent;
77 KLineEdit *lineEdit;
78 KCategorizedView *listView;
79 KCategoryDrawer *categoryDrawer;
80 PluginModel *pluginModel;
81 ProxyModel *proxyModel;
82 PluginDelegate *pluginDelegate;
83 DependenciesWidget *dependenciesWidget;
84 bool showIcons;
85};
86
87class PluginEntry
88{
89public:
90 QString category;
91 KPluginInfo pluginInfo;
92 bool checked;
93 bool manuallyAdded;
94 KConfigGroup cfgGroup;
95 KPluginSelector::PluginLoadMethod pluginLoadMethod;
96 bool isCheckable;
97
98 bool operator==(const PluginEntry &pe) const
99 {
100 return pluginInfo.entryPath() == pe.pluginInfo.entryPath();
101 }
102};
103
104Q_DECLARE_METATYPE(PluginEntry*)
105
106
107
111class KPluginSelector::Private::DependenciesWidget
112 : public QWidget
113{
114 Q_OBJECT
115
116public:
117 DependenciesWidget(QWidget *parent = 0);
118 ~DependenciesWidget();
119
120 void addDependency(const QString &dependency, const QString &pluginCausant, bool added);
121 void userOverrideDependency(const QString &dependency);
122
123 void clearDependencies();
124
125private Q_SLOTS:
126 void showDependencyDetails();
127
128private:
129 struct FurtherInfo
130 {
131 bool added;
132 QString pluginCausant;
133 };
134
135 void updateDetails();
136
137 QLabel *details;
138 QMap<QString, struct FurtherInfo> dependencyMap;
139 int addedByDependencies;
140 int removedByDependencies;
141};
142
143
144class KPluginSelector::Private::PluginModel
145 : public QAbstractListModel
146{
147public:
148 PluginModel(KPluginSelector::Private *pluginSelector_d, QObject *parent = 0);
149 ~PluginModel();
150
151 void addPlugins(const QList<KPluginInfo> &pluginList, const QString &categoryName, const QString &categoryKey, const KConfigGroup &cfgGroup, PluginLoadMethod pluginLoadMethod = ReadConfigFile, bool manuallyAdded = false);
152 QList<KService::Ptr> pluginServices(const QModelIndex &index) const;
153
154 virtual QModelIndex index(int row, int column = 0, const QModelIndex &parent = QModelIndex()) const;
155 virtual QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
156 virtual bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole);
157 virtual int rowCount(const QModelIndex &parent = QModelIndex()) const;
158
159public:
160 QList<PluginEntry> pluginEntryList;
161
162private:
163 KPluginSelector::Private *pluginSelector_d;
164};
165
166class KPluginSelector::Private::ProxyModel
167 : public KCategorizedSortFilterProxyModel
168{
169public:
170 ProxyModel(KPluginSelector::Private *pluginSelector_d, QObject *parent = 0);
171 ~ProxyModel();
172
173protected:
174 virtual bool filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const;
175 virtual bool subSortLessThan(const QModelIndex &left, const QModelIndex &right) const;
176
177private:
178 KPluginSelector::Private *pluginSelector_d;
179};
180
181
182class KPluginSelector::Private::PluginDelegate
183 : public KWidgetItemDelegate
184{
185 Q_OBJECT
186
187public:
188 PluginDelegate(KPluginSelector::Private *pluginSelector_d, QObject *parent = 0);
189 ~PluginDelegate();
190
191 void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const;
192 QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const;
193
194Q_SIGNALS:
195 void changed(bool hasChanged);
196 void configCommitted(const QByteArray &componentName);
197
198protected:
199 virtual QList<QWidget*> createItemWidgets() const;
200 virtual void updateItemWidgets(const QList<QWidget*> widgets,
201 const QStyleOptionViewItem &option,
202 const QPersistentModelIndex &index) const;
203
204private Q_SLOTS:
205 void slotStateChanged(bool state);
206 void emitChanged();
207 void slotAboutClicked();
208 void slotConfigureClicked();
209 void slotDefaultClicked();
210
211private:
212 QFont titleFont(const QFont &baseFont) const;
213
214 QCheckBox *checkBox;
215 QPushButton *pushButton;
216 QList<KCModuleProxy*> moduleProxyList;
217
218 KPluginSelector::Private *pluginSelector_d;
219};
220
221#endif // KPLUGINSELECTOR_P_H
KCModuleProxy
Encapsulates a KCModule for embedding.
Definition: kcmoduleproxy.h:68
KCategorizedSortFilterProxyModel
KCategorizedView
KCategoryDrawer
KConfigGroup
KLineEdit
KPluginInfo
KPluginInfo::entryPath
QString entryPath() const
KPluginSelector::Private::DependenciesWidget
This widget will inform the user about changes that happened automatically due to plugin dependencies...
Definition: kpluginselector_p.h:113
KPluginSelector::Private::PluginDelegate
Definition: kpluginselector_p.h:184
KPluginSelector::Private::PluginDelegate::createItemWidgets
virtual QList< QWidget * > createItemWidgets() const
Definition: kpluginselector.cpp:666
KPluginSelector::Private::PluginDelegate::changed
void changed(bool hasChanged)
KPluginSelector::Private::PluginDelegate::updateItemWidgets
virtual void updateItemWidgets(const QList< QWidget * > widgets, const QStyleOptionViewItem &option, const QPersistentModelIndex &index) const
Definition: kpluginselector.cpp:699
KPluginSelector::Private::PluginDelegate::configCommitted
void configCommitted(const QByteArray &componentName)
KPluginSelector::Private::PluginDelegate::sizeHint
QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const
Definition: kpluginselector.cpp:644
KPluginSelector::Private::PluginDelegate::~PluginDelegate
~PluginDelegate()
Definition: kpluginselector.cpp:578
KPluginSelector::Private::PluginDelegate::paint
void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
Definition: kpluginselector.cpp:584
KPluginSelector::Private::PluginModel
Definition: kpluginselector_p.h:146
KPluginSelector::Private::PluginModel::setData
virtual bool setData(const QModelIndex &index, const QVariant &value, int role=Qt::EditRole)
Definition: kpluginselector.cpp:510
KPluginSelector::Private::PluginModel::data
virtual QVariant data(const QModelIndex &index, int role=Qt::DisplayRole) const
Definition: kpluginselector.cpp:465
KPluginSelector::Private::PluginModel::pluginServices
QList< KService::Ptr > pluginServices(const QModelIndex &index) const
Definition: kpluginselector.cpp:452
KPluginSelector::Private::PluginModel::pluginEntryList
QList< PluginEntry > pluginEntryList
Definition: kpluginselector_p.h:160
KPluginSelector::Private::PluginModel::rowCount
virtual int rowCount(const QModelIndex &parent=QModelIndex()) const
Definition: kpluginselector.cpp:530
KPluginSelector::Private::PluginModel::~PluginModel
~PluginModel()
Definition: kpluginselector.cpp:407
KPluginSelector::Private::PluginModel::addPlugins
void addPlugins(const QList< KPluginInfo > &pluginList, const QString &categoryName, const QString &categoryKey, const KConfigGroup &cfgGroup, PluginLoadMethod pluginLoadMethod=ReadConfigFile, bool manuallyAdded=false)
Definition: kpluginselector.cpp:411
KPluginSelector::Private::PluginModel::index
virtual QModelIndex index(int row, int column=0, const QModelIndex &parent=QModelIndex()) const
Definition: kpluginselector.cpp:457
KPluginSelector::Private::ProxyModel
Definition: kpluginselector_p.h:168
KPluginSelector::Private::ProxyModel::~ProxyModel
~ProxyModel()
Definition: kpluginselector.cpp:546
KPluginSelector::Private::ProxyModel::filterAcceptsRow
virtual bool filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const
Definition: kpluginselector.cpp:550
KPluginSelector::Private::ProxyModel::subSortLessThan
virtual bool subSortLessThan(const QModelIndex &left, const QModelIndex &right) const
Definition: kpluginselector.cpp:564
KPluginSelector::Private
Definition: kpluginselector_p.h:46
KPluginSelector::Private::pluginDelegate
PluginDelegate * pluginDelegate
Definition: kpluginselector_p.h:82
KPluginSelector::Private::updateDependencies
void updateDependencies(PluginEntry *pluginEntry, bool added)
Definition: kpluginselector.cpp:64
KPluginSelector::Private::categoryDrawer
KCategoryDrawer * categoryDrawer
Definition: kpluginselector_p.h:79
KPluginSelector::Private::ExtraRoles
ExtraRoles
Definition: kpluginselector_p.h:51
KPluginSelector::Private::ServicesCountRole
@ ServicesCountRole
Definition: kpluginselector_p.h:53
KPluginSelector::Private::DependenciesRole
@ DependenciesRole
Definition: kpluginselector_p.h:61
KPluginSelector::Private::CommentRole
@ CommentRole
Definition: kpluginselector_p.h:55
KPluginSelector::Private::WebsiteRole
@ WebsiteRole
Definition: kpluginselector_p.h:58
KPluginSelector::Private::NameRole
@ NameRole
Definition: kpluginselector_p.h:54
KPluginSelector::Private::AuthorRole
@ AuthorRole
Definition: kpluginselector_p.h:56
KPluginSelector::Private::IsCheckableRole
@ IsCheckableRole
Definition: kpluginselector_p.h:62
KPluginSelector::Private::EmailRole
@ EmailRole
Definition: kpluginselector_p.h:57
KPluginSelector::Private::PluginEntryRole
@ PluginEntryRole
Definition: kpluginselector_p.h:52
KPluginSelector::Private::LicenseRole
@ LicenseRole
Definition: kpluginselector_p.h:60
KPluginSelector::Private::VersionRole
@ VersionRole
Definition: kpluginselector_p.h:59
KPluginSelector::Private::~Private
~Private()
Definition: kpluginselector.cpp:59
KPluginSelector::Private::parent
KPluginSelector * parent
Definition: kpluginselector_p.h:76
KPluginSelector::Private::dependantLayoutValue
int dependantLayoutValue(int value, int width, int totalWidth) const
Definition: kpluginselector.cpp:99
KPluginSelector::Private::listView
KCategorizedView * listView
Definition: kpluginselector_p.h:78
KPluginSelector::Private::showIcons
bool showIcons
Definition: kpluginselector_p.h:84
KPluginSelector::Private::lineEdit
KLineEdit * lineEdit
Definition: kpluginselector_p.h:77
KPluginSelector::Private::dependenciesWidget
DependenciesWidget * dependenciesWidget
Definition: kpluginselector_p.h:83
KPluginSelector::Private::proxyModel
ProxyModel * proxyModel
Definition: kpluginselector_p.h:81
KPluginSelector::Private::pluginModel
PluginModel * pluginModel
Definition: kpluginselector_p.h:80
KPluginSelector
A widget to select what plugins to load and configure the plugins.
Definition: kpluginselector.h:60
KPluginSelector::PluginLoadMethod
PluginLoadMethod
Definition: kpluginselector.h:64
KPluginSelector::ReadConfigFile
@ ReadConfigFile
Definition: kpluginselector.h:65
KWidgetItemDelegate
PluginEntry
Definition: kpluginselector_p.h:88
PluginEntry::manuallyAdded
bool manuallyAdded
Definition: kpluginselector_p.h:93
PluginEntry::cfgGroup
KConfigGroup cfgGroup
Definition: kpluginselector_p.h:94
PluginEntry::isCheckable
bool isCheckable
Definition: kpluginselector_p.h:96
PluginEntry::checked
bool checked
Definition: kpluginselector_p.h:92
PluginEntry::category
QString category
Definition: kpluginselector_p.h:90
PluginEntry::pluginInfo
KPluginInfo pluginInfo
Definition: kpluginselector_p.h:91
PluginEntry::pluginLoadMethod
KPluginSelector::PluginLoadMethod pluginLoadMethod
Definition: kpluginselector_p.h:95
PluginEntry::operator==
bool operator==(const PluginEntry &pe) const
Definition: kpluginselector_p.h:98
QAbstractListModel
QLabel
QList
QMap
QObject
QPushButton
QWidget
kcategorizedsortfilterproxymodel.h
kconfiggroup.h
kplugininfo.h
kwidgetitemdelegate.h
This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Mon Feb 20 2023 00:00:00 by doxygen 1.9.6 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

KUtils

Skip menu "KUtils"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

kdelibs-4.14.38 API Reference

Skip menu "kdelibs-4.14.38 API Reference"
  • DNSSD
  • Interfaces
  •   KHexEdit
  •   KMediaPlayer
  •   KSpeech
  •   KTextEditor
  • kconf_update
  • KDE3Support
  •   KUnitTest
  • KDECore
  • KDED
  • KDEsu
  • KDEUI
  • KDEWebKit
  • KDocTools
  • KFile
  • KHTML
  • KImgIO
  • KInit
  • kio
  • KIOSlave
  • KJS
  •   KJS-API
  •   WTF
  • kjsembed
  • KNewStuff
  • KParts
  • KPty
  • Kross
  • KUnitConversion
  • KUtils
  • Nepomuk
  • Plasma
  • Solid
  • Sonnet
  • ThreadWeaver
Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal