#include <klocale.h>
-#include <QLabel>
-#include <QGridLayout>
-#include <QTextEdit>
+#include <QtGui/QLabel>
+#include <QtGui/QGridLayout>
+#include <QtGui/QTextEdit>
#ifdef HAVE_KMETADATA
-#include <kmetadatatagwidget.h>
+#include <kmetadata/kmetadatatagwidget.h>
#include <kmetadata/resourcemanager.h>
-#include <kmetadata/file.h>
-#include <kratingwidget.h>
-#include <kmetadatatagwidget.h>
+#include <kmetadata/resource.h>
+#include <kmetadata/variant.h>
+#include <kmetadata/kratingwidget.h>
+#include <kmetadata/kmetadatatagwidget.h>
#endif
+// FIXME: these should be replaced by using KMetaData::File once it is available again
+static const char* s_nfoFile = "http://ont.semanticdesktop.org/2007/03/22/nfo#File";
+static const char* s_nfoFileUrl = "http://ont.semanticdesktop.org/2007/03/22/nfo#fileUrl";
+
bool MetaDataWidget::metaDataAvailable()
{
{
public:
#ifdef HAVE_KMETADATA
- void loadComment( const QString& comment ) {
- editComment->blockSignals( true );
- if ( comment.isEmpty() ) {
- editComment->setFontItalic( true );
- editComment->setText( i18n( "Click to add comment..." ) );
- }
- else {
- editComment->setFontItalic( false );
- editComment->setText( comment );
+ void loadComment(const QString& comment)
+ {
+ editComment->blockSignals(true);
+ if (comment.isEmpty()) {
+ editComment->setFontItalic(true);
+ editComment->setText(i18n("Click to add comment..."));
+ } else {
+ editComment->setFontItalic(false);
+ editComment->setText(comment);
}
- editComment->blockSignals( false );
+ editComment->blockSignals(false);
}
KUrl fileUrl;
- Nepomuk::KMetaData::File file;
+ Nepomuk::KMetaData::Resource file;
QTextEdit* editComment;
KRatingWidget* ratingWidget;
};
-MetaDataWidget::MetaDataWidget( QWidget* parent )
- : QWidget( parent )
+MetaDataWidget::MetaDataWidget(QWidget* parent)
+ : QWidget(parent)
{
- d = new Private;
-
#ifdef HAVE_KMETADATA
- d->editComment = new QTextEdit( this );
- d->tagWidget = new Nepomuk::KMetaData::TagWidget( this );
- d->ratingWidget = new KRatingWidget( this );
- connect( d->ratingWidget, SIGNAL(ratingChanged(int)), this, SLOT(slotRatingChanged(int)) );
- connect( d->editComment, SIGNAL( textChanged() ), this, SLOT( slotCommentChanged() ) );
-
- QVBoxLayout* lay = new QVBoxLayout( this );
- lay->setMargin( 0 );
+ d = new Private;
+ d->editComment = new QTextEdit(this);
+ d->tagWidget = new Nepomuk::KMetaData::TagWidget(this);
+ d->ratingWidget = new KRatingWidget(this);
+ connect(d->ratingWidget, SIGNAL(ratingChanged(int)), this, SLOT(slotRatingChanged(int)));
+ connect(d->editComment, SIGNAL(textChanged()), this, SLOT(slotCommentChanged()));
+
+ QVBoxLayout* lay = new QVBoxLayout(this);
+ lay->setMargin(0);
QHBoxLayout* hbox = new QHBoxLayout;
- hbox->addWidget( new QLabel( i18n( "Rating:" ), this ) );
- hbox->addStretch( 1 );
- hbox->addWidget( d->ratingWidget );
- lay->addLayout( hbox );
- lay->addWidget( d->editComment );
+ hbox->addWidget(new QLabel(i18n("Rating:"), this));
+ hbox->addStretch(1);
+ hbox->addWidget(d->ratingWidget);
+ lay->addLayout(hbox);
+ lay->addWidget(d->editComment);
hbox = new QHBoxLayout;
- hbox->addWidget( new QLabel( i18n( "Tags:" ), this ) );
- hbox->addWidget( d->tagWidget, 1 );
- lay->addLayout( hbox );
+ hbox->addWidget(new QLabel(i18n("Tags:"), this));
+ hbox->addWidget(d->tagWidget, 1);
+ lay->addLayout(hbox);
- d->editComment->installEventFilter( this );
- d->editComment->viewport()->installEventFilter( this );
+ d->editComment->installEventFilter(this);
+ d->editComment->viewport()->installEventFilter(this);
+#else
+ d = 0;
#endif
}
}
-void MetaDataWidget::setFile( const KUrl& url )
+void MetaDataWidget::setFile(const KUrl& url)
{
#ifdef HAVE_KMETADATA
+ // FIXME: replace with KMetaData::File once we have it again
d->fileUrl = url;
- d->file = Nepomuk::KMetaData::File( url.url() );
- d->file.setLocation( url.url() );
- d->ratingWidget->setRating( d->file.getRating() );
- d->tagWidget->setTaggedResource( d->file );
- d->loadComment( d->file.getComment() );
+ d->file = Nepomuk::KMetaData::Resource(url.url(), s_nfoFile);
+// d->file.setLocation(url.url());
+ d->file.setProperty( s_nfoFileUrl, url.url() );
+ d->ratingWidget->setRating(d->file.rating());
+ d->tagWidget->setTaggedResource(d->file);
+ d->loadComment(d->file.description());
#endif
}
-void MetaDataWidget::setFiles( const KUrl::List urls )
+void MetaDataWidget::setFiles(const KUrl::List urls)
{
+#ifdef HAVE_KMETADATA
// FIXME: support multiple files
- setFile( urls.first() );
+ setFile(urls.first());
+#endif
}
void MetaDataWidget::slotCommentChanged()
{
#ifdef HAVE_KMETADATA
- d->file.setComment( d->editComment->toPlainText() );
+ d->file.setDescription(d->editComment->toPlainText());
#endif
}
-void MetaDataWidget::slotRatingChanged( int r )
+void MetaDataWidget::slotRatingChanged(int r)
{
#ifdef HAVE_KMETADATA
- d->file.setRating( r );
+ d->file.setRating(r);
#endif
}
-bool MetaDataWidget::eventFilter( QObject* obj, QEvent* event )
+bool MetaDataWidget::eventFilter(QObject* obj, QEvent* event)
{
#ifdef HAVE_KMETADATA
- if ( obj == d->editComment->viewport()
- || obj == d->editComment ) {
- if ( event->type() == QEvent::FocusOut ) {
+ if (obj == d->editComment->viewport()
+ || obj == d->editComment) {
+ if (event->type() == QEvent::FocusOut) {
// make sure the info text is displayed again
- d->loadComment( d->editComment->toPlainText() );
- }
- else if ( event->type() == QEvent::FocusIn ) {
- qDebug() << "JKGHLKGLKHÖLKJHLÖ" << endl;
- d->editComment->setFontItalic( false );
- if ( d->file.getComment().isEmpty() )
- d->editComment->setText( QString() );
+ d->loadComment(d->editComment->toPlainText());
+ } else if (event->type() == QEvent::FocusIn) {
+ d->editComment->setFontItalic(false);
+ if (d->file.description().isEmpty())
+ d->editComment->setText(QString());
}
}
#endif
- return QWidget::eventFilter( obj, event );
+ return QWidget::eventFilter(obj, event);
}
#include "metadatawidget.moc"