┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/settings/additionalinfodialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/settings/additionalinfodialog.cpp')
-rw-r--r--src/settings/additionalinfodialog.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/settings/additionalinfodialog.cpp b/src/settings/additionalinfodialog.cpp
index 9e5f170da..3cac35b7b 100644
--- a/src/settings/additionalinfodialog.cpp
+++ b/src/settings/additionalinfodialog.cpp
@@ -19,12 +19,18 @@
#include "additionalinfodialog.h"
+#include <config-nepomuk.h>
+
#include <KLocale>
#include "kitemviews/kfileitemmodel.h"
#include <QCheckBox>
#include <QLabel>
#include <QVBoxLayout>
+#ifdef HAVE_NEPOMUK
+ #include <Nepomuk/ResourceManager>
+#endif
+
AdditionalInfoDialog::AdditionalInfoDialog(QWidget* parent,
const QList<QByteArray>& visibleRoles) :
KDialog(parent),
@@ -44,12 +50,30 @@ AdditionalInfoDialog::AdditionalInfoDialog(QWidget* parent,
header->setWordWrap(true);
// Add checkboxes
+ bool nepomukRunning = false;
+ bool indexingEnabled = false;
+#ifdef HAVE_NEPOMUK
+ nepomukRunning = (Nepomuk::ResourceManager::instance()->init() == 0);
+ if (nepomukRunning) {
+ KConfig config("nepomukserverrc");
+ indexingEnabled = config.group("Service-nepomukfileindexer").readEntry("autostart", false);
+ }
+#endif
+
m_listWidget = new QListWidget(mainWidget);
m_listWidget->setSelectionMode(QAbstractItemView::NoSelection);
const QList<KFileItemModel::RoleInfo> rolesInfo = KFileItemModel::rolesInformation();
foreach (const KFileItemModel::RoleInfo& info, rolesInfo) {
QListWidgetItem* item = new QListWidgetItem(info.translation, m_listWidget);
item->setCheckState(visibleRoles.contains(info.role) ? Qt::Checked : Qt::Unchecked);
+
+ const bool enable = (!info.requiresNepomuk && !info.requiresIndexer) ||
+ (info.requiresNepomuk && nepomukRunning) ||
+ (info.requiresIndexer && indexingEnabled);
+
+ if (!enable) {
+ item->setFlags(item->flags() & ~Qt::ItemIsEnabled);
+ }
}
QVBoxLayout* layout = new QVBoxLayout(mainWidget);