1/*****************************************************************************
2 * Copyright (C) 2008 by Sebastian Trueg <trueg@kde.org> *
3 * Copyright (C) 2009-2010 by Peter Penz <peter.penz@gmx.at> *
4 * *
5 * This library is free software; you can redistribute it and/or *
6 * modify it under the terms of the GNU Library General Public *
7 * License as published by the Free Software Foundation; either *
8 * version 2 of the License, or (at your option) any later version. *
9 * *
10 * This library is distributed in the hope that it will be useful, *
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
13 * Library General Public License for more details. *
14 * *
15 * You should have received a copy of the GNU Library General Public License *
16 * along with this library; see the file COPYING.LIB. If not, write to *
17 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, *
18 * Boston, MA 02110-1301, USA. *
19 *****************************************************************************/
20
21#ifndef KFILEMETADATAWIDGET_H
22#define KFILEMETADATAWIDGET_H
23
24#include <kio/kio_export.h>
25#include <kfileitem.h>
26
27#include <QList>
28#include <QWidget>
29
30class KUrl;
31
32/**
33 * @deprecated since 4.12 use Nepomuk2::FileMetaDataWidget
34 *
35 * @brief Shows the meta data of one or more file items.
36 *
37 * Meta data like name, size, rating, comment, ... are
38 * shown as several rows containing a description and
39 * the meta data value. It is possible for the user
40 * to change specific meta data like rating, tags and
41 * comment. The changes are stored automatically by the
42 * meta data widget.
43 *
44 * @since 4.5
45 */
46class KIO_EXPORT_DEPRECATED KFileMetaDataWidget : public QWidget
47{
48 Q_OBJECT
49 Q_PROPERTY(bool readOnly READ isReadOnly WRITE setReadOnly)
50
51public:
52 explicit KFileMetaDataWidget(QWidget* parent = 0);
53 virtual ~KFileMetaDataWidget();
54
55 /**
56 * Sets the items for which the meta data should be shown.
57 * The signal metaDataRequestFinished() will be emitted,
58 * as soon as the meta data for the items has been received.
59 */
60 void setItems(const KFileItemList& items);
61 KFileItemList items() const;
62
63 /**
64 * If set to true, data such as the comment, tag or rating cannot be
65 * changed by the user. Per default read-only is disabled.
66 */
67 void setReadOnly(bool readOnly);
68 bool isReadOnly() const;
69
70 /** @see QWidget::sizeHint() */
71 virtual QSize sizeHint() const;
72
73Q_SIGNALS:
74 /**
75 * Is emitted, if a meta data represents an URL that has
76 * been clicked by the user.
77 */
78 void urlActivated(const KUrl& url);
79
80 /**
81 * Is emitted after the meta data has been received for the items
82 * set by KFileMetaDataWidget::setItems().
83 * @since 4.6
84 */
85 void metaDataRequestFinished(const KFileItemList& items);
86
87protected:
88 virtual bool event(QEvent* event);
89
90private:
91 class Private;
92 Private* d;
93
94 Q_PRIVATE_SLOT(d, void slotLoadingFinished())
95 Q_PRIVATE_SLOT(d, void slotLinkActivated(QString))
96 Q_PRIVATE_SLOT(d, void slotDataChangeStarted())
97 Q_PRIVATE_SLOT(d, void slotDataChangeFinished())
98};
99
100#endif
101