29 #include <config-kio.h>
30 #ifndef KIO_NO_NEPOMUK
31 #define DISABLE_NEPOMUK_LEGACY
33 #include <resourcemanager.h>
41 #include <QListWidget>
42 #include <QVBoxLayout>
44 class KFileMetaDataConfigurationWidget::Private
52 void addItem(
const KUrl& uri);
59 void slotLoadingFinished();
61 int m_visibleDataTypes;
63 #ifndef KIO_NO_NEPOMUK
73 m_visibleDataTypes(0),
75 #ifndef KIO_NO_NEPOMUK
82 m_metaDataList->setSelectionMode(QAbstractItemView::NoSelection);
83 m_metaDataList->setSortingEnabled(
true);
85 QVBoxLayout* layout =
new QVBoxLayout(q);
86 layout->addWidget(m_metaDataList);
88 #ifndef KIO_NO_NEPOMUK
93 KFileMetaDataConfigurationWidget::Private::~Private()
97 void KFileMetaDataConfigurationWidget::Private::loadMetaData()
99 #ifndef KIO_NO_NEPOMUK
100 m_provider->setItems(m_fileItems);
101 connect(m_provider, SIGNAL(loadingFinished()),
102 q, SLOT(slotLoadingFinished()));
106 void KFileMetaDataConfigurationWidget::Private::addItem(
const KUrl& uri)
111 static const char*
const hiddenProperties[] = {
112 "http://www.semanticdesktop.org/ontologies/2007/01/19/nie#comment",
113 "http://www.semanticdesktop.org/ontologies/2007/01/19/nie#contentSize",
114 "http://www.semanticdesktop.org/ontologies/2007/01/19/nie#lastModified",
115 "http://www.semanticdesktop.org/ontologies/2007/01/19/nie#plainTextContent"
116 "http://www.semanticdesktop.org/ontologies/2007/01/19/nie#mimeType",
117 "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#fileName",
118 "http://www.w3.org/1999/02/22-rdf-syntax-ns#type",
124 while (hiddenProperties[i] != 0) {
125 if (key == QLatin1String(hiddenProperties[i])) {
136 #ifndef KIO_NO_NEPOMUK
139 : m_provider->label(uri);
144 QListWidgetItem* item =
new QListWidgetItem(label, m_metaDataList);
145 item->setData(Qt::UserRole, key);
146 const bool show = settings.
readEntry(key,
true);
147 item->setCheckState(show ? Qt::Checked : Qt::Unchecked);
150 void KFileMetaDataConfigurationWidget::Private::slotLoadingFinished()
152 #ifndef KIO_NO_NEPOMUK
155 Q_ASSERT(m_provider != 0);
157 const QHash<KUrl, Nepomuk::Variant> data = m_provider->data();
158 QHash<KUrl, Nepomuk::Variant>::const_iterator it = data.constBegin();
159 while (it != data.constEnd()) {
179 d->m_fileItems =
items;
184 return d->m_fileItems;
192 const int count = d->m_metaDataList->count();
193 for (
int i = 0; i < count; ++i) {
194 QListWidgetItem* item = d->m_metaDataList->item(i);
195 const bool show = (item->checkState() == Qt::Checked);
196 const QString key = item->data(Qt::UserRole).toString();
205 if (event->type() == QEvent::Polish) {
208 QMetaObject::invokeMethod(
this,
"loadMetaData", Qt::QueuedConnection);
215 return d->m_metaDataList->sizeHint();
219 #include "kfilemetadataconfigurationwidget.moc"