We cannot use the Indicators component so let's copy and paste it whenever we need...
[harmattan/cameraplus] / imports / metadata.h
1 // -*- c++ -*-
2
3 #ifndef META_DATA_H
4 #define META_DATA_H
5
6 #include <QObject>
7 #include "qtcammetadata.h"
8
9 class Camera;
10
11 class MetaData : public QObject {
12   Q_OBJECT
13
14   Q_PROPERTY(Camera* camera READ camera WRITE setCamera NOTIFY cameraChanged);
15   Q_PROPERTY(QString manufacturer READ manufacturer WRITE setManufacturer NOTIFY manufacturerChanged);
16   Q_PROPERTY(QString model READ model WRITE setModel NOTIFY modelChanged);
17   Q_PROPERTY(QString country READ country WRITE setCountry NOTIFY countryChanged);
18   Q_PROPERTY(QString city READ city WRITE setCity NOTIFY cityChanged);
19   Q_PROPERTY(QString suburb READ suburb WRITE setSuburb NOTIFY suburbChanged);
20   Q_PROPERTY(double longitude READ longitude WRITE setLongitude NOTIFY longitudeChanged);
21   Q_PROPERTY(bool longitudeValid READ isLongitudeValid WRITE setLongitudeValid NOTIFY longitudeValidChanged);
22   Q_PROPERTY(double latitude READ latitude WRITE setLatitude NOTIFY latitudeChanged);
23   Q_PROPERTY(bool latitudeValid READ isLatitudeValid WRITE setLatitudeValid NOTIFY latitudeValidChanged);
24   Q_PROPERTY(double elevation READ elevation WRITE setElevation NOTIFY elevationChanged);
25   Q_PROPERTY(bool elevationValid READ isElevationValid WRITE setElevationValid NOTIFY elevationValidChanged);
26   Q_PROPERTY(Orientation orientation READ orientation WRITE setOrientation NOTIFY orientationChanged);
27   Q_PROPERTY(QString artist READ artist WRITE setArtist NOTIFY artistChanged);
28   Q_PROPERTY(int captureDirection READ captureDirection WRITE setCaptureDirection NOTIFY captureDirectionChanged);
29   Q_PROPERTY(bool captureDirectionValid READ isCaptureDirectionValid WRITE setCaptureDirectionValid NOTIFY captureDirectionValidChanged);
30   Q_PROPERTY(double horizontalError READ horizontalError WRITE setHorizontalError NOTIFY horizontalErrorChanged);
31   Q_PROPERTY(bool horizontalErrorValid READ isHorizontalErrorValid WRITE setHorizontalErrorValid NOTIFY horizontalErrorValidChanged);
32   Q_PROPERTY(bool dateTimeEnabled READ isDateTimeEnabled WRITE setDateTimeEnabled NOTIFY dateTimeEnabledChanged);
33   Q_ENUMS(Orientation);
34
35 public:
36   typedef enum {
37     Unknown = -1,
38     Landscape = QtCamMetaData::Landscape,
39     Portrait = QtCamMetaData::Portrait,
40     InvertedLandscape = QtCamMetaData::InvertedLandscape,
41     InvertedPortrait = QtCamMetaData::InvertedPortrait
42   } Orientation;
43
44   MetaData(QObject *parent = 0);
45   ~MetaData();
46
47   Camera *camera() const;
48   void setCamera(Camera *camera);
49
50   QString manufacturer() const;
51   void setManufacturer(const QString& manufacturer);
52
53   QString model() const;
54   void setModel(const QString& model);
55
56   QString country() const;
57   void setCountry(const QString& country);
58
59   QString city() const;
60   void setCity(const QString& city);
61
62   QString suburb() const;
63   void setSuburb(const QString& suburb);
64
65   double longitude() const;
66   void setLongitude(double longitude);
67
68   double latitude() const;
69   void setLatitude(double latitude);
70
71   double elevation() const;
72   void setElevation(double elevation);
73
74   Orientation orientation() const;
75   void setOrientation(const Orientation& orientation);
76
77   QString artist() const;
78   void setArtist(const QString& artist);
79
80   int captureDirection() const;
81   void setCaptureDirection(int captureDirection);
82
83   double horizontalError() const;
84   void setHorizontalError(double horizontalError);
85
86   bool isLongitudeValid() const;
87   void setLongitudeValid(bool valid);
88
89   bool isLatitudeValid() const;
90   void setLatitudeValid(bool valid);
91
92   bool isElevationValid() const;
93   void setElevationValid(bool valid);
94
95   bool isCaptureDirectionValid() const;
96   void setCaptureDirectionValid(bool valid);
97
98   bool isHorizontalErrorValid() const;
99   void setHorizontalErrorValid(bool valid);
100
101   bool isDateTimeEnabled() const;
102   void setDateTimeEnabled(bool enabled);
103
104 public slots:
105   void setMetaData();
106
107 signals:
108   void cameraChanged();
109   void manufacturerChanged();
110   void modelChanged();
111   void countryChanged();
112   void cityChanged();
113   void suburbChanged();
114   void longitudeChanged();
115   void latitudeChanged();
116   void elevationChanged();
117   void orientationChanged();
118   void artistChanged();
119   void dateTimeChanged();
120   void captureDirectionChanged();
121   void horizontalErrorChanged();
122   void longitudeValidChanged();
123   void latitudeValidChanged();
124   void elevationValidChanged();
125   void captureDirectionValidChanged();
126   void horizontalErrorValidChanged();
127   void dateTimeEnabledChanged();
128
129 private slots:
130   void deviceChanged();
131
132 private:
133   QtCamMetaData *m_data;
134   Camera *m_cam;
135   QString m_manufacturer;
136   QString m_model;
137   QString m_country;
138   QString m_city;
139   QString m_suburb;
140   double m_longitude;
141   double m_latitude;
142   double m_elevation;
143   Orientation m_orientation;
144   QString m_artist;
145   int m_captureDirection;
146   double m_horizontalError;
147   bool m_longitudeValid;
148   bool m_latitudeValid;
149   bool m_elevationValid;
150   bool m_captureDirectionValid;
151   bool m_horizontalErrorValid;
152   bool m_dateTimeEnabled;
153 };
154
155 #endif /* META_DATA_H */