digiKam
wscomboboxdelegate.h
Go to the documentation of this file.
1 /* ============================================================
2  *
3  * This file is a part of digiKam project
4  * https://www.digikam.org
5  *
6  * Date : 2009-07-05
7  * Description : A combobox delegate to display in Web service image lists.
8  *
9  * Copyright (C) 2009 by Pieter Edelman <pieter dot edelman at gmx dot net>
10  *
11  * This program is free software; you can redistribute it
12  * and/or modify it under the terms of the GNU General
13  * Public License as published by the Free Software Foundation;
14  * either version 2, or (at your option) any later version.
15  *
16  * This program is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19  * GNU General Public License for more details.
20  *
21  * ============================================================ */
22 
23 #ifndef DIGIKAM_WS_COMBO_BOX_DELEGATE_H
24 #define DIGIKAM_WS_COMBO_BOX_DELEGATE_H
25 
26 // Qt includes
27 
28 #include <QAbstractItemDelegate>
29 #include <QAbstractItemModel>
30 #include <QMap>
31 #include <QModelIndex>
32 #include <QPainter>
33 #include <QSize>
34 #include <QString>
35 #include <QStyleOptionViewItem>
36 #include <QWidget>
37 
38 // Local includes
39 
40 #include "digikam_export.h"
41 #include "ditemslist.h"
42 
43 namespace Digikam
44 {
45 
46 class DIGIKAM_EXPORT ComboBoxDelegate : public QAbstractItemDelegate
47 {
48  Q_OBJECT
49 
50 public:
51 
52  explicit ComboBoxDelegate(DItemsList* const, const QMap<int, QString>&);
53  ~ComboBoxDelegate() override;
54 
60  void startEditing(QTreeWidgetItem*, int);
61 
63 
66  void paint(QPainter*, const QStyleOptionViewItem&, const QModelIndex&) const override;
67  QSize sizeHint(const QStyleOptionViewItem&, const QModelIndex&) const override;
68  QWidget* createEditor(QWidget*, const QStyleOptionViewItem&, const QModelIndex&) const override;
69  void setEditorData(QWidget*, const QModelIndex&) const override;
70  void setModelData(QWidget*, QAbstractItemModel*, const QModelIndex&) const override;
72 
73 private Q_SLOTS:
74 
75  void slotCommitAndCloseEditor(int);
76  void slotResetEditedState(QObject*);
77 
78 private:
79 
80  class Private;
81  Private* const d;
82 };
83 
84 } // namespace Digikam
85 
86 #endif // DIGIKAM_WS_COMBO_BOX_DELEGATE_H
Definition: wscomboboxdelegate.h:47
Definition: ditemslist.h:196
Definition: datefolderview.cpp:43