[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-core-devel
Subject: Re: Review Request: Add KMetaDataWidget and
From: "Peter Penz" <peter.penz () gmx ! at>
Date: 2009-10-27 8:06:19
Message-ID: 20091027080619.17795.87855 () localhost
[Download RAW message or body]
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://reviewboard.kde.org/r/1938/
-----------------------------------------------------------
(Updated 2009-10-27 08:06:19.565297)
Review request for kdelibs, Sebastian Trueg and David Faure.
Changes
-------
Thanks for the review comments. I've uploaded an updated patch with the following \
changes:
* Removed the tags-, comments- and rating-APIs. As Sebastian said it is only an \
arbitrary subset of what Nepomuk can provide. If the application really requires to \
change those properties manually, it can do it directly with Nepomuk anyhow. Nice: \
The HAVE_NEPOMUK hack in the header is now gone.
* Use setShownData()/shownData() instead of setHiddenData()/hiddenData() as Aurélien \
suggests.
* Added methods setCustomDataList()/customDataList(), so that it is possible for \
applications like Gwenview to add a list of custom meta data. The method has not been \
implemented yet, but I mainly ask to check whether the interface and naming is OK. I \
thought about the possibility to add custom widgets instead of QString values, but I \
rejected the idea (this cries for some problems).
In general I'm against splitting KMetaDataWidget into 2 classes (one without Nepomuk \
and one with Nepomuk code). IMO the applications should not be burdened to \
instantiate the "correct" class dependent on whether Nepomuk is running or not. \
Whether Nepomuk is running or not is an implementation detail and reflected in the \
number of shown meta data, but it is not something that should result in the need of \
application code like this:
if (Nepomuk::ResourceManager::instance()->init() != 0) {
m_metaDataWidget = new KMetaDataWidget(this);
} else {
m_metaDataWidget = new KNepomukMetaDataWidget(this);
}
just let the application do this:
m_metaDataWidget = new KMetaDataWidget(this);
and let KMetaDataWidget itself to take care about whether there is Nepomuk available \
or not.
Open issue:
* There is still the cmake warning mentioned above. I tried to use KDE4_NEPOMUK_LIBS \
instead of NEPOMUK_LIBRARIES after a hint from David, but in this case I even get a \
link error. Any help would be appreciated.
Summary
-------
The patch adds KMetaDataWidget and KMetaDataConfigurationDialog as public classes to \
kdelibs/kfile. 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: http://enzosworld.gmxhome.de/temp/metadatawidget_new.png \
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, ...).
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.
Sebastian Trüg, Tom Albers, Oliver Heidbüchel and I did already an internal review \
and the classes have been tested in the context of Mailody and Okular. There are \
still some minor implementation issues, but the main reason for this request is to \
review the public API and the integration into kdelibs/kfile (I'll take care to fix \
the issues until KDE 4.4).
I'd ask to mainly look at the files kfile/kmetadatawidget.h, \
kfile/kmetadataconfigurationdialog.h and kfile/CMakeLists.txt One ugly hack in the \
header file is the HAVE_NEPOMUK part in kmetadatawidget.h. As Nepomuk runs with \
Virtuoso now, the chances are good that we can get rid of this hack until KDE 4.4 \
(see also http://lists.kde.org/?l=kde-core-devel&m=125577498913008&w=2 for the \
discussion on kde-core-devel).
Please let me know whether there are general concerns regarding the location or the \
HAVE_NEPOMUK issue.
Diffs (updated)
-----
trunk/KDE/kdelibs/kfile/CMakeLists.txt 1038666
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/kmetadataconfigurationdialog.h PRE-CREATION
trunk/KDE/kdelibs/kfile/kmetadataconfigurationdialog.cpp PRE-CREATION
trunk/KDE/kdelibs/kfile/kmetadatawidget.h PRE-CREATION
trunk/KDE/kdelibs/kfile/kmetadatawidget.cpp 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 1038666
trunk/KDE/kdelibs/nepomuk/core/ui/nepomukmassupdatejob.h 1038666
trunk/KDE/kdelibs/nepomuk/core/ui/nepomukmassupdatejob.cpp 1038666
Diff: http://reviewboard.kde.org/r/1938/diff
Testing
-------
Tested in Dolphin, Mailody and Okular. Some minor implementation issues are open, but \
the interface seems to be sufficient.
Thanks,
Peter
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic