MauiKit Image Tools

picinfomodel.h
1// Copyright 2018-2020 Camilo Higuita <milo.h@aol.com>
2// Copyright 2018-2020 Nitrux Latinoamericana S.C.
3//
4// SPDX-License-Identifier: GPL-3.0-or-later
5
6#pragma once
7
8#include <QAbstractListModel>
9#include <QObject>
10#include <QSize>
11
12#include <MauiKit4/Core/mauilist.h>
13
14#include <QFileInfo>
15
16class Exiv2Extractor;
17
18/**
19 * @brief
20 */
21class PicInfoModel : public MauiList
22{
24
25 /**
26 *
27 */
28 Q_PROPERTY(QUrl url READ url WRITE setUrl NOTIFY urlChanged)
29 Q_PROPERTY(QString fileName MEMBER m_fileName NOTIFY fileNameChanged FINAL)
30 Q_PROPERTY(double lat READ latitude NOTIFY dataReady FINAL)
31 Q_PROPERTY(double lon READ longitude NOTIFY dataReady FINAL)
32 Q_PROPERTY(double alt READ altitude NOTIFY dataReady FINAL)
33 Q_PROPERTY(QString exifComment READ exifComment NOTIFY dataReady FINAL)
34 Q_PROPERTY(QString cityName READ cityName NOTIFY dataReady FINAL)
35 Q_PROPERTY(QSize pixelSize READ pixelSize NOTIFY dataReady FINAL)
36
37public:
38 enum ROLES { KEY, VALUE };
39 explicit PicInfoModel(QObject *parent = nullptr);
40
41 QUrl url() const;
42 void componentComplete() override final;
43
44public Q_SLOTS:
45 void setUrl(QUrl url);
46
47 double latitude() const;
48 double longitude() const;
49 double altitude() const;
50 QString cityName() const;
51 QSize pixelSize() const;
52
53 bool removeTag(const QString &tag);
54 bool editTag(const QString &tag, const QString &value);
55
56 bool setGpsData(const QString &latitude, const QString &longitude, const QString &altitude ="0.0");
57 bool removeGpsData();
58
59 bool setComment(const QString &comment);
60 QString exifComment() const;
61 bool removeComment();
62
63private:
64 Exiv2Extractor *m_extractor;
65 QUrl m_url;
66 QString m_fileName;
67 FMH::MODEL_LIST m_data;
68
69 double m_longitude;
70 double m_latitude;
71 double m_altitude;
72 QString m_exifComment;
73 QString m_cityName;
74 QSize m_size;
75 void parse();
76
77
79 void urlChanged(QUrl url);
80 void fileNameChanged();
81 void dataReady();
82
83 // MauiList interface
84public:
85 const FMH::MODEL_LIST &items() const override;
86};
Image metadata extractor.
QObject(QObject *parent)
Q_OBJECTQ_OBJECT
Q_PROPERTY(...)
Q_SIGNALSQ_SIGNALS
Q_SLOTSQ_SLOTS
QObject * parent() const const
This file is part of the KDE documentation.
Documentation copyright © 1996-2025 The KDE developers.
Generated on Fri Apr 11 2025 11:57:09 by doxygen 1.13.2 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.