+#ifdef HAVE_NEPOMUK
+QString KMetaDataWidget::label(const KUrl& metaDataUri) const
+{
+ QString label;
+ const QString uri = metaDataUri.url();
+ if (uri == QLatin1String("kfileitem#rating")) {
+ label = i18nc("@label", "Rating");
+ } else if (uri == QLatin1String("kfileitem#tags")) {
+ label = i18nc("@label", "Tags");
+ } else if (uri == QLatin1String("kfileitem#comment")) {
+ label = i18nc("@label", "Comment");
+ } else {
+ label = KNfoTranslator::instance().translation(metaDataUri);
+ }
+
+ return label;
+}
+
+QWidget* KMetaDataWidget::valueWidget(const KUrl& metaDataUri) const
+{
+ QWidget* widget = 0;
+
+ if (d->m_nepomukActivated) {
+ const QString uri = metaDataUri.url();
+ if (uri == QLatin1String("kfileitem#rating")) {
+ widget = d->m_ratingWidget;
+ } else if (uri == QLatin1String("kfileitem#tags")) {
+ widget = d->m_taggingWidget;
+ } else if (uri == QLatin1String("kfileitem#comment")) {
+ widget = d->m_commentWidget;
+ }
+ }
+
+ return widget;
+}
+
+bool KMetaDataWidget::setValue(const KUrl& metaDataUri, const Nepomuk::Variant& value)
+{
+ if (d->m_nepomukActivated) {
+ QWidget* widget = valueWidget(metaDataUri);
+ if (widget == d->m_ratingWidget) {
+ d->m_ratingWidget->setRating(value.toInt());
+ return true;
+ }
+
+ if (widget == d->m_taggingWidget) {
+ QList<Nepomuk::Variant> variants = value.toVariantList();
+ QList<Nepomuk::Tag> tags;
+ foreach (const Nepomuk::Variant& variant, variants) {
+ const Nepomuk::Resource resource = variant.toResource();
+ tags.append(static_cast<Nepomuk::Tag>(resource));
+ }
+ d->m_taggingWidget->setTags(tags);
+ return true;
+ }
+
+ if (widget == d->m_commentWidget) {
+ d->m_commentWidget->setText(value.toString());
+ return true;
+ }
+ }
+ return false;
+}
+#endif
+