Review Request: Add KMetaDataWidget, KMetaDataModel and KMetaDataConfigurationDialog

Peter Penz peter.penz at
Sat Mar 20 20:57:45 GMT 2010

This is an automatically generated e-mail. To reply, visit:

(Updated 2010-03-20 20:57:44.757807)

Review request for kdelibs, Sebastian Trueg, David Faure, and Aurélien Gâteau.


Sebastian and David: I've updated the patch and included nearly all of your suggestions. The interface of KMetaDataWidget is now minimal and does not contain a HAVE_NEPOMUK define anymore.

@Sebastian: Moving the URI-stuff and the creation of custom data-modification widgets to the model was a really good idea :-) However I needed to make KMetaDataConfigurationDialog still a public API, as it requires the (now private) class KMetaDataModel. But I've updated the interface and I don't see a problem in extending the interface if application developers need further configuration options.

@David: I did not handle the case "non-local URI in KMetaDataWidget::setItems()" yet, but I'll fix this later.

I've compiled the code with and without HAVE_NEPOMUK. If the interface of KMetaDataWidget and KMetaDataConfigurationDialog are OK now from your point of view, it would be great if you could let me know before Monday evening so that I can commit it on the BIC Monday. Thanks!


The patch adds KMetaDataWidget, KMetaDataModel and KMetaDataConfigurationDialog as public classes to kdelibs/kfile. The KMetaDataWidget allows an application in an easy way to show meta data of a file (or several files). The widget also allows to change meta data like tags, comments and rating (see or attached screenshot). KMetaDataConfigurationDialog allows to configure which meta tags should be hidden/shown. The classes also work without Nepomuk (and show only very basic meta data like size, permissions, ...). It is possible for applications to add custom meta data if wanted (including widgets to manipulate this meta data).

The classes have been used by Dolphin internally until now and have originally been written by Sebastian Trüg. After the request from Tom Albers and Oliver Heidbüchel to integrate the widget also in Mailody/Okular I've adjusted the classes to get them ready for a kdelibs-integration. I'd also like to to adjust KPropertiesDialog later to use this widget.

I'd ask mainly to look at the files kfile/kmetadatawidget.h, kfile/kmetadatamodel.h and kfile/kmetadataconfigurationdialog.h, the other APIs are internal.


Diffs (updated)

  trunk/KDE/kdelibs/CMakeLists.txt 1103259 
  trunk/KDE/kdelibs/config-nepomuk.h.cmake PRE-CREATION 
  trunk/KDE/kdelibs/kfile/CMakeLists.txt 1103259 
  trunk/KDE/kdelibs/kfile/kcommentwidget.cpp PRE-CREATION 
  trunk/KDE/kdelibs/kfile/kcommentwidget_p.h PRE-CREATION 
  trunk/KDE/kdelibs/kfile/kedittagsdialog.cpp PRE-CREATION 
  trunk/KDE/kdelibs/kfile/kedittagsdialog_p.h PRE-CREATION 
  trunk/KDE/kdelibs/kfile/kloadmetadatathread.cpp PRE-CREATION 
  trunk/KDE/kdelibs/kfile/kloadmetadatathread_p.h PRE-CREATION 
  trunk/KDE/kdelibs/kfile/kmetadataconfigurationdialog.h PRE-CREATION 
  trunk/KDE/kdelibs/kfile/kmetadataconfigurationdialog.cpp PRE-CREATION 
  trunk/KDE/kdelibs/kfile/kmetadatamodel.cpp PRE-CREATION 
  trunk/KDE/kdelibs/kfile/kmetadatamodel_p.h PRE-CREATION 
  trunk/KDE/kdelibs/kfile/kmetadatawidget.h PRE-CREATION 
  trunk/KDE/kdelibs/kfile/kmetadatawidget.cpp PRE-CREATION 
  trunk/KDE/kdelibs/kfile/knfotranslator.cpp PRE-CREATION 
  trunk/KDE/kdelibs/kfile/knfotranslator_p.h PRE-CREATION 
  trunk/KDE/kdelibs/kfile/ktaggingwidget.cpp PRE-CREATION 
  trunk/KDE/kdelibs/kfile/ktaggingwidget_p.h PRE-CREATION 
  trunk/KDE/kdelibs/nepomuk/core/ui/CMakeLists.txt 1103259 
  trunk/KDE/kdelibs/nepomuk/core/ui/nepomukmassupdatejob.h 1103259 
  trunk/KDE/kdelibs/nepomuk/core/ui/nepomukmassupdatejob.cpp 1103259 



Tested in Dolphin. An early version has been tested also in Mailody and Okular.





More information about the kde-core-devel mailing list