digiKam
Loading...
Searching...
No Matches
tagmngrlistmodel.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 : 20013-08-22
7 * Description : List View Model with support for mime data and drag-n-drop
8 *
9 * SPDX-FileCopyrightText: 2013 by Veaceslav Munteanu <veaceslav dot munteanu90 at gmail dot com>
10 *
11 * SPDX-License-Identifier: GPL-2.0-or-later
12 *
13 * ============================================================ */
14
15#pragma once
16
17// Qt includes
18
19#include <QAbstractItemModel>
20#include <QModelIndex>
21#include <QVariant>
22
23namespace Digikam
24{
25
26class ListItem;
27
28class TagMngrListModel : public QAbstractItemModel
29{
30 Q_OBJECT
31
32public:
33
34 explicit TagMngrListModel(QObject* const parent = nullptr);
35 ~TagMngrListModel() override;
36
43 ListItem* addItem(QList<QVariant> values);
44
49 QList<ListItem*> allItems() const;
50
51 void deleteItem(ListItem* const item);
52
56 QVariant data(const QModelIndex& index, int role) const override;
57
58 Qt::ItemFlags flags(const QModelIndex& index) const override;
59
60 QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override;
61
62 QModelIndex index(int row, int column, const QModelIndex& parent = QModelIndex()) const override;
63
64 QModelIndex parent(const QModelIndex& index) const override;
65
66 int rowCount(const QModelIndex& parent = QModelIndex()) const override;
67
68 int columnCount(const QModelIndex& parent = QModelIndex()) const override;
69
70 bool setData(const QModelIndex& index, const QVariant& value, int role) override;
71
76 Qt::DropActions supportedDropActions() const override;
77 QStringList mimeTypes() const override;
78 QMimeData* mimeData(const QModelIndexList& indexes) const override;
79 bool dropMimeData(const QMimeData* data, Qt::DropAction action, int row,
80 int column, const QModelIndex& parent) override;
81
82 QList<int> getDragNewSelection() const;
83
84private:
85
86 class Private;
87 Private* const d = nullptr;
88};
89
90} // namespace Digikam
Definition tagmngrlistitem.h:26
Definition tagmngrlistmodel.h:29
bool setData(const QModelIndex &index, const QVariant &value, int role) override
Definition tagmngrlistmodel.cpp:135
QVariant headerData(int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const override
Definition tagmngrlistmodel.cpp:286
QModelIndex parent(const QModelIndex &index) const override
Definition tagmngrlistmodel.cpp:326
QList< ListItem * > allItems() const
allItems - return all items from List, usually to be saved in KConfig
Definition tagmngrlistmodel.cpp:90
Qt::DropActions supportedDropActions() const override
Definition tagmngrlistmodel.cpp:122
ListItem * addItem(QList< QVariant > values)
addItem - add new item to list
Definition tagmngrlistmodel.cpp:62
Qt::ItemFlags flags(const QModelIndex &index) const override
Definition tagmngrlistmodel.cpp:271
~TagMngrListModel() override
Definition tagmngrlistmodel.cpp:56
QStringList mimeTypes() const override
Definition tagmngrlistmodel.cpp:127
QMimeData * mimeData(const QModelIndexList &indexes) const override
Definition tagmngrlistmodel.cpp:154
int rowCount(const QModelIndex &parent=QModelIndex()) const override
Definition tagmngrlistmodel.cpp:344
QModelIndex index(int row, int column, const QModelIndex &parent=QModelIndex()) const override
Definition tagmngrlistmodel.cpp:296
int columnCount(const QModelIndex &parent=QModelIndex()) const override
Definition tagmngrlistmodel.cpp:115
QVariant data(const QModelIndex &index, int role) const override
Definition tagmngrlistmodel.cpp:249
bool dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) override
Definition tagmngrlistmodel.cpp:174
void deleteItem(ListItem *const item)
Definition tagmngrlistmodel.cpp:100
QList< int > getDragNewSelection() const
Definition tagmngrlistmodel.cpp:95
qulonglong value
Definition itemviewutilities.cpp:585
Definition datefolderview.cpp:34