Baloo Widgets

widgetfactory.h
1 /*
2  <one line to give the library's name and an idea of what it does.>
3  Copyright (C) 2012 Vishesh Handa <[email protected]>
4 
5  This library is free software; you can redistribute it and/or
6  modify it under the terms of the GNU Lesser General Public
7  License as published by the Free Software Foundation; either
8  version 2.1 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  Lesser General Public License for more details.
14 
15  You should have received a copy of the GNU Lesser General Public
16  License along with this library; if not, write to the Free Software
17  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18 */
19 
20 
21 #ifndef WIDGETFACTORY_H
22 #define WIDGETFACTORY_H
23 
24 #include "filemetadatawidget.h"
25 
26 #include <QObject>
27 #include <QStringList>
28 
29 class KJob;
30 class QLabel;
31 class QUrl;
32 class KCommentWidget;
33 class KRatingWidget;
34 
35 namespace Baloo {
36 
37  class Tag;
38  class TagWidget;
39 
40  class WidgetFactory : public QObject
41  {
42  Q_OBJECT
43  public:
44  explicit WidgetFactory(QObject* parent = nullptr);
45  ~WidgetFactory() override;
46 
47  void setItems(const KFileItemList& items);
48 
49  void setReadOnly(bool value);
50 
51  void setDateFormat(const DateFormats format);
52  DateFormats dateFormat() const;
53 
54  QWidget* createWidget(const QString& prop, const QVariant& value, QWidget* parent);
55 
56  Q_SIGNALS:
57  void urlActivated(const QUrl& url);
58  void dataChangeStarted();
59  void dataChangeFinished();
60 
61  private Q_SLOTS:
62  void slotTagsChanged(const QStringList& tags);
63  void slotCommentChanged(const QString& comment);
64  void slotRatingChanged(uint rating);
65 
66  void slotTagClicked(const QString& tag);
67  void slotLinkActivated(const QString& url);
68 
69  private:
70  QWidget* createRatingWidget(int rating, QWidget* parent);
71  QWidget* createTagWidget(const QStringList& tags, QWidget* parent);
72  QWidget* createCommentWidget(const QString& comment, QWidget* parent);
73  QLabel* createValueWidget(QWidget* parent);
74 
75  TagWidget* m_tagWidget;
76  KRatingWidget* m_ratingWidget;
77  KCommentWidget* m_commentWidget;
78 
79  KFileItemList m_items;
80  QStringList m_prevTags;
81  bool m_readOnly;
82  QLocale::FormatType m_dateFormat;
83  };
84 }
85 
86 #endif // WIDGETFACTORY_H
Q_SIGNALSQ_SIGNALS
Q_OBJECTQ_OBJECT
Q_SLOTSQ_SLOTS
This file is part of the KDE documentation.
Documentation copyright © 1996-2021 The KDE developers.
Generated on Thu Oct 21 2021 23:07:11 by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.