diff --git a/kcontrol/kmetainfo/kmetainfoconfig.cpp b/kcontrol/kmetainfo/kmetainfoconfig.cpp
index bb577012..c26783b7 100644
--- a/kcontrol/kmetainfo/kmetainfoconfig.cpp
+++ b/kcontrol/kmetainfo/kmetainfoconfig.cpp
@@ -52,13 +52,9 @@ KCMMetaInfo::KCMMetaInfo(QWidget* parent, const QVariantList& args)
setButtons(KCModule::Help | KCModule::Apply);
- pluginslist->setSelectionMode(QAbstractItemView::NoSelection);
- pluginslist->setSortingEnabled(true);
- connect(pluginslist, SIGNAL(itemChanged(QListWidgetItem*)), this, SLOT(slotItemChanged(QListWidgetItem*)));
+ connect(pluginstable, SIGNAL(itemChanged(QTableWidgetItem*)), this, SLOT(slotPluginItemChanged(QTableWidgetItem*)));
- metainfolist->setSelectionMode(QAbstractItemView::NoSelection);
- metainfolist->setSortingEnabled(true);
- connect(metainfolist, SIGNAL(itemChanged(QListWidgetItem*)), this, SLOT(slotItemChanged(QListWidgetItem*)));
+ connect(metainfolist, SIGNAL(itemChanged(QListWidgetItem*)), this, SLOT(slotMetaItemChanged(QListWidgetItem*)));
load();
}
@@ -71,16 +67,30 @@ void KCMMetaInfo::load()
{
{
KConfig config("kmetainformationrc", KConfig::NoGlobals);
- pluginslist->clear();
+ pluginstable->clearContents();
+ pluginstable->setRowCount(0);
+ int rowcount = 0;
KConfigGroup pluginsgroup = config.group("Plugins");
const KService::List kfmdplugins = KServiceTypeTrader::self()->query("KFileMetaData/Plugin");
foreach (const KService::Ptr &kfmdplugin, kfmdplugins) {
const QString key = kfmdplugin->desktopEntryName();
- const QString itemtext = kfmdplugin->genericName();
- QListWidgetItem* item = new QListWidgetItem(itemtext, pluginslist);
- item->setData(Qt::UserRole, key);
+
+ pluginstable->setRowCount(rowcount + 1);
+
+ QTableWidgetItem* nameitem = new QTableWidgetItem();
+ nameitem->setFlags(Qt::ItemIsEnabled | Qt::ItemIsUserCheckable);
+ nameitem->setText(kfmdplugin->genericName());
+ nameitem->setData(Qt::UserRole, key);
const bool enable = pluginsgroup.readEntry(key, true);
- item->setCheckState(enable ? Qt::Checked : Qt::Unchecked);
+ nameitem->setCheckState(enable ? Qt::Checked : Qt::Unchecked);
+ pluginstable->setItem(rowcount, 0, nameitem);
+
+ QTableWidgetItem* descitem = new QTableWidgetItem();
+ descitem->setFlags(Qt::ItemIsEnabled);
+ descitem->setText(kfmdplugin->comment());
+ pluginstable->setItem(rowcount, 1, descitem);
+
+ rowcount++;
}
}
@@ -94,8 +104,8 @@ void KCMMetaInfo::save()
{
KConfig config("kmetainformationrc", KConfig::NoGlobals);
KConfigGroup pluginsgroup = config.group("Plugins");
- for (int i = 0; i < pluginslist->count(); ++i) {
- QListWidgetItem* item = pluginslist->item(i);
+ for (int i = 0; i < pluginstable->rowCount(); ++i) {
+ QTableWidgetItem* item = pluginstable->item(i, 0);
const bool enable = (item->checkState() == Qt::Checked);
const QString key = item->data(Qt::UserRole).toString();
pluginsgroup.writeEntry(key, enable);
@@ -115,7 +125,13 @@ void KCMMetaInfo::save()
loadMetaInfo();
}
-void KCMMetaInfo::slotItemChanged(QListWidgetItem *item)
+void KCMMetaInfo::slotPluginItemChanged(QTableWidgetItem *item)
+{
+ Q_UNUSED(item);
+ emit changed(true);
+}
+
+void KCMMetaInfo::slotMetaItemChanged(QListWidgetItem *item)
{
Q_UNUSED(item);
emit changed(true);
diff --git a/kcontrol/kmetainfo/kmetainfoconfig.h b/kcontrol/kmetainfo/kmetainfoconfig.h
index ca73d9bb..4d721fe6 100644
--- a/kcontrol/kmetainfo/kmetainfoconfig.h
+++ b/kcontrol/kmetainfo/kmetainfoconfig.h
@@ -40,7 +40,8 @@ public:
void save() final;
private Q_SLOTS:
- void slotItemChanged(QListWidgetItem *item);
+ void slotPluginItemChanged(QTableWidgetItem *item);
+ void slotMetaItemChanged(QListWidgetItem *item);
private:
void loadMetaInfo();
diff --git a/kcontrol/kmetainfo/kmetainfoconfig.ui b/kcontrol/kmetainfo/kmetainfoconfig.ui
index 4cdc56ee..0dff6b92 100644
--- a/kcontrol/kmetainfo/kmetainfoconfig.ui
+++ b/kcontrol/kmetainfo/kmetainfoconfig.ui
@@ -18,7 +18,17 @@
-
-
+
+
+ <html><head/><body><p>Meta information shown in tooltips and properties dialogs.</p></body></html>
+
+
+ QAbstractItemView::NoSelection
+
+
+ true
+
+
@@ -30,7 +40,33 @@
-
-
+
+
+ <html><head/><body><p>Disabling undesired plugins can reduce the disk I/O during directory listing</p></body></html>
+
+
+ QAbstractItemView::NoSelection
+
+
+ true
+
+
+ true
+
+
+ false
+
+
+
+ Plugin
+
+
+
+
+ Description
+
+
+