┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/panels/information/kmetadatawidget.h
diff options
context:
space:
mode:
authorPeter Penz <[email protected]>2010-03-22 22:23:02 +0000
committerPeter Penz <[email protected]>2010-03-22 22:23:02 +0000
commitcaf017c2fefa8280046b02cfd071a118f2909ced (patch)
treea17f5bd569830806d679c7aedf103861ff9b2507 /src/panels/information/kmetadatawidget.h
parent622acabf23b6c8c3badab6a8c2e93e0ae8963f1b (diff)
Use KFileMetaDataWidget from kdelibs. Still open: Provide dialog which wraps KFileMetaDataConfigurationWidget.
svn path=/trunk/KDE/kdebase/apps/; revision=1106465
Diffstat (limited to 'src/panels/information/kmetadatawidget.h')
-rw-r--r--src/panels/information/kmetadatawidget.h202
1 files changed, 0 insertions, 202 deletions
diff --git a/src/panels/information/kmetadatawidget.h b/src/panels/information/kmetadatawidget.h
deleted file mode 100644
index a31c70eb0..000000000
--- a/src/panels/information/kmetadatawidget.h
+++ /dev/null
@@ -1,202 +0,0 @@
-/*****************************************************************************
- * Copyright (C) 2008 by Sebastian Trueg <[email protected]> *
- * Copyright (C) 2009-2010 by Peter Penz <[email protected]> *
- * *
- * This library is free software; you can redistribute it and/or *
- * modify it under the terms of the GNU Library General Public *
- * License version 2 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Library General Public License for more details. *
- * *
- * You should have received a copy of the GNU Library General Public License *
- * along with this library; see the file COPYING.LIB. If not, write to *
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, *
- * Boston, MA 02110-1301, USA. *
- *****************************************************************************/
-
-#ifndef KMETADATAWIDGET_H
-#define KMETADATAWIDGET_H
-
-#include <kfileitem.h>
-
-#include <QList>
-#include <QWidget>
-
-#include <config-nepomuk.h>
-#ifdef HAVE_NEPOMUK
- #define DISABLE_NEPOMUK_LEGACY
- #include <nepomuk/variant.h>
-#endif
-
-class KMetaDataModel;
-class KUrl;
-
-/**
- * @brief Shows the meta data of one or more file items.
- *
- * Meta data like name, size, rating, comment, ... are
- * shown as several rows containing a description and
- * the meta data value. It is possible for the user
- * to change specific meta data like rating, tags and
- * comment. The changes are stored automatically by the
- * meta data widget.
- *
- * To show more than basic meta data, the meta data widget
- * must be provided with a meta data model
- * (see KMetaDataWidget::setModel()).
- *
- * Per default most meta data values are shown as labels.
- * However it is possible to adjust KMetaDataWidget to use
- * custom widgets for showing and modifying meta data (e. g.
- * like done already for the rating, tags or comments). The
- * following steps are necessary:
- * - Derive a custom widget from KMetaDataWidget.
- * - Create the custom widgets in the constructor and
- * make them invisible per default.
- * - Implement the methods valueWidget(), setValue() and
- * (optionally) label() by accessing the custom widgets.
- */
-class KMetaDataWidget : public QWidget
-{
- Q_OBJECT
-
-public:
- /**
- * Allows to specify which general data types should be shown
- * by the meta data widget.
- * @see KMetaDataWidget::setVisibleDataTypes()
- * @see KMetaDataWidget::visibleDataTypes()
- */
- enum MetaDataType
- {
- None = 0,
- TypeData = 1,
- SizeData = 2,
- ModifiedData = 4,
- OwnerData = 8,
- PermissionsData = 16,
- RatingData = 32,
- TagsData = 64,
- CommentData = 128
- };
- Q_DECLARE_FLAGS(MetaDataTypes, MetaDataType)
-
- explicit KMetaDataWidget(QWidget* parent = 0);
- virtual ~KMetaDataWidget();
-
- /**
- * Triggers the asynchronous loading of the meta data
- * for the file item \p item. Connect to the signal
- * loadingFinished() to be able to read the meta
- * data.
- */
- void setItem(const KFileItem& item);
-
- /**
- * Triggers the asynchronous loading of the meta data
- * for the file items \p items. Connect to the signal
- * loadingFinished() to be able to read the meta
- * data.
- */
- void setItems(const KFileItemList& items);
-
- /**
- * Convenience method for KMetaDataWidget::setItem(const KFileItem&),
- * if the application has only an URL and no file item.
- * For performance reason it is recommended to use this convenience
- * method only if the application does not have a file item already.
- */
- void setItem(const KUrl& url);
-
- /**
- * Convenience method for KMetaDataWidget::setItems(const KFileItemList&),
- * if the application has only URLs and no file items.
- * For performance reason it is recommended to use this convenience
- * method only if the application does not have a file items already.
- */
- void setItems(const QList<KUrl>& urls);
-
- KFileItemList items() const;
-
- /**
- * Sets the used model which provides the data for the widget.
- * One model can be shared by several meta data widgets.
- */
- void setModel(KMetaDataModel* model);
- KMetaDataModel* model() const;
-
- /**
- * If set to true, data like comment, tag or rating cannot be changed by the user.
- * Per default read-only is disabled.
- */
- void setReadOnly(bool readOnly);
- bool isReadOnly() const;
-
- /**
- * Specifies which kind of data types should be shown (@see KMetaDataWidget::Data).
- * Example: metaDataWidget->setVisibleDataTypes(KMetaDataWidget::TypeData | KMetaDataWidget::ModifiedData);
- * Per default all data types are shown.
- */
- void setVisibleDataTypes(MetaDataTypes data);
-
- /**
- * Returns which kind of data is shown (@see KMetaDataWidget::Data).
- * Example: if (metaDataWidget->shownData() & KMetaDataWidget::TypeData) ...
- */
- MetaDataTypes visibleDataTypes() const;
-
- /** @see QWidget::sizeHint() */
- virtual QSize sizeHint() const;
-
- /**
- * @return Translated string for the label of the meta data represented
- * by \p metaDataUri. If no custom translation is provided, the
- * base implementation must be invoked.
- */
- virtual QString label(const KUrl& metaDataUri) const;
-
-Q_SIGNALS:
- void urlActivated(const KUrl& url);
-
-protected:
-#ifdef HAVE_NEPOMUK
- /**
- * @return Pointer to the custom value-widget that should be used
- * to show the meta data represented by \p metaDataUri. If 0
- * is returned, the meta data will be shown inside a label
- * as fallback. If no custom value widget is used for the
- * given URI, the base implementation must be invoked.
- */
- virtual QWidget* valueWidget(const KUrl& metaDataUri) const;
-
- /**
- * Sets the value of a custom value-widget to \p value. If the meta data
- * represented by \p metaDataUri is not shown by a custom value-widget (see
- * KMetaDataWidget::valueWidget()), then the base implementation must be
- * invoked.
- * @return True, if a custom value-widget is available, where the value got applied.
- */
- virtual bool setValue(const KUrl& metaDataUri, const Nepomuk::Variant& value);
-#endif
-
- virtual bool event(QEvent* event);
-
-private:
- class Private;
- Private* d;
-
- Q_PRIVATE_SLOT(d, void slotLoadingFinished())
- Q_PRIVATE_SLOT(d, void slotRatingChanged(unsigned int rating))
- Q_PRIVATE_SLOT(d, void slotTagsChanged(const QList<Nepomuk::Tag>& tags))
- Q_PRIVATE_SLOT(d, void slotCommentChanged(const QString& comment))
- Q_PRIVATE_SLOT(d, void slotMetaDataUpdateDone())
- Q_PRIVATE_SLOT(d, void slotLinkActivated(const QString& link))
- Q_PRIVATE_SLOT(d, void slotTagActivated(const Nepomuk::Tag& tag))
-};
-
-Q_DECLARE_OPERATORS_FOR_FLAGS(KMetaDataWidget::MetaDataTypes)
-
-#endif