]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/settings/additionalinfodialog.cpp
Merge remote-tracking branch 'origin/master' into frameworks
[dolphin.git] / src / settings / additionalinfodialog.cpp
index 9e5f170dae36882d31c2244d2ab1f8af1d184574..db9258ae8a9bf0baefa429708ea870a98d2f2798 100644 (file)
 
 #include "additionalinfodialog.h"
 
+#include <config-baloo.h>
+
 #include <KLocale>
 #include "kitemviews/kfileitemmodel.h"
 #include <QCheckBox>
 #include <QLabel>
 #include <QVBoxLayout>
 
+#ifdef HAVE_BALOO
+    #include <baloo/indexerconfig.h>
+#endif
+
 AdditionalInfoDialog::AdditionalInfoDialog(QWidget* parent,
                                            const QList<QByteArray>& visibleRoles) :
     KDialog(parent),
@@ -44,25 +50,38 @@ AdditionalInfoDialog::AdditionalInfoDialog(QWidget* parent,
     header->setWordWrap(true);
 
     // Add checkboxes
+    bool indexingEnabled = false;
+#ifdef HAVE_BALOO
+    Baloo::IndexerConfig config;
+    indexingEnabled = config.fileIndexingEnabled();
+#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.requiresBaloo && !info.requiresIndexer) ||
+                            (info.requiresBaloo) ||
+                            (info.requiresIndexer && indexingEnabled);
+
+        if (!enable) {
+            item->setFlags(item->flags() & ~Qt::ItemIsEnabled);
+        }
     }
 
     QVBoxLayout* layout = new QVBoxLayout(mainWidget);
     layout->addWidget(header);
     layout->addWidget(m_listWidget);
-    layout->addStretch(1);
 
     setMainWidget(mainWidget);
 
     const KConfigGroup dialogConfig(KSharedConfig::openConfig("dolphinrc"), "AdditionalInfoDialog");
     restoreDialogSize(dialogConfig);
 
-    connect(this, SIGNAL(okClicked()), this, SLOT(slotOk()));
+    connect(this, &AdditionalInfoDialog::okClicked, this, &AdditionalInfoDialog::slotOk);
 }
 
 AdditionalInfoDialog::~AdditionalInfoDialog()