most entries are not kcms, fail gracefully
don't spit scary errors when an entry has an empty plugin path, ie not a kcm Change-Id: I1f2cc744aaed315ae3dd56d5a55082eb09a5ed6e
This commit is contained in:
parent
1fcdc08222
commit
cc97bd8297
@ -210,11 +210,17 @@ QVariant ConfigModel::data(const QModelIndex &index, int role) const
|
|||||||
return d->categories.at(index.row())->visible();
|
return d->categories.at(index.row())->visible();
|
||||||
case KCMRole: {
|
case KCMRole: {
|
||||||
const QString pluginName = d->categories.at(index.row())->pluginName();
|
const QString pluginName = d->categories.at(index.row())->pluginName();
|
||||||
|
const QString pluginPath = KPluginLoader::findPlugin(pluginName);
|
||||||
|
//no kcm is registered for this row, it's a normal qml-only entry
|
||||||
|
if (pluginName.isEmpty() || pluginPath.isEmpty()) {
|
||||||
|
return QVariant();
|
||||||
|
}
|
||||||
|
|
||||||
if (d->kcms.contains(pluginName)) {
|
if (d->kcms.contains(pluginName)) {
|
||||||
return QVariant::fromValue(d->kcms.value(pluginName));
|
return QVariant::fromValue(d->kcms.value(pluginName));
|
||||||
}
|
}
|
||||||
|
|
||||||
KPluginLoader loader(KPluginLoader::findPlugin(pluginName));
|
KPluginLoader loader(pluginPath);
|
||||||
KPluginFactory* factory = loader.factory();
|
KPluginFactory* factory = loader.factory();
|
||||||
if (!factory) {
|
if (!factory) {
|
||||||
qWarning() << "Error loading KCM:" << loader.errorString();
|
qWarning() << "Error loading KCM:" << loader.errorString();
|
||||||
|
Loading…
Reference in New Issue
Block a user