digiKam
Loading...
Searching...
No Matches
gpsitemmodel.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 : 2010-03-21
7 * Description : A model to hold GPS information about items.
8 *
9 * SPDX-FileCopyrightText: 2010-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
10 * SPDX-FileCopyrightText: 2010 by Michael G. Hansen <mike at mghansen dot de>
11 *
12 * SPDX-License-Identifier: GPL-2.0-or-later
13 *
14 * ============================================================ */
15
16#pragma once
17
18// Qt includes
19
20#include <QAbstractItemModel>
21#include <QPixmap>
22
23// Local includes
24
25#include "gpsitemcontainer.h"
26#include "thumbnailloadthread.h"
27#include "digikam_export.h"
28
29namespace Digikam
30{
31
32class DIGIKAM_EXPORT GPSItemModel : public QAbstractItemModel
33{
34 Q_OBJECT
35
36public:
37
38 explicit GPSItemModel(QObject* const parent = nullptr);
39 ~GPSItemModel() override;
40
41 // own functions:
42
43 void addItem(GPSItemContainer* const newItem);
44 void setColumnCount(const int nColumns);
45 GPSItemContainer* itemFromIndex(const QModelIndex& index) const;
46 GPSItemContainer* itemFromUrl(const QUrl& url) const;
47 QModelIndex indexFromUrl(const QUrl& url) const;
48
49 QPixmap getPixmapForIndex(const QPersistentModelIndex& itemIndex, const int size);
50
51 // QAbstractItemModel customizations:
52
53 int columnCount(const QModelIndex& parent = QModelIndex()) const override;
54 bool setData(const QModelIndex& index, const QVariant& value, int role) override;
55 QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const override;
56 QModelIndex index(int row, int column, const QModelIndex& parent = QModelIndex()) const override;
57 QModelIndex parent(const QModelIndex& index) const override;
58 int rowCount(const QModelIndex& parent = QModelIndex()) const override;
59 bool setHeaderData(int section, Qt::Orientation orientation, const QVariant& value, int role) override;
60 QVariant headerData(int section, Qt::Orientation orientation, int role) const override;
61 Qt::ItemFlags flags(const QModelIndex& index) const override;
62 Qt::DropActions supportedDragActions() const override;
63
64protected:
65
66 void itemChanged(GPSItemContainer* const changedItem);
67
68Q_SIGNALS:
69
70 void signalThumbnailForIndexAvailable(const QPersistentModelIndex& index, const QPixmap& pixmap);
71
72protected Q_SLOTS:
73
74 void slotThumbnailLoaded(const LoadingDescription&, const QPixmap&);
75
76private:
77
78 class Private;
79 Private* const d = nullptr;
80
81 friend class GPSItemContainer;
82};
83
84} // namespace Digikam
Definition gpsitemcontainer.h:75
Definition gpsitemmodel.h:33
void signalThumbnailForIndexAvailable(const QPersistentModelIndex &index, const QPixmap &pixmap)
Definition loadingdescription.h:35
qulonglong value
Definition itemviewutilities.cpp:585
Definition datefolderview.cpp:34