• Main Page
  • Classes
  • Files
  • File List
  • File Members

quillmetadata.h

Go to the documentation of this file.
00001 /****************************************************************************
00002 **
00003 ** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
00004 ** Contact: Alexander Bokovoy <alexander.bokovoy@nokia.com>
00005 **
00006 ** This file is part of the Quill Metadata package.
00007 **
00008 ** Commercial Usage
00009 ** Licensees holding valid Qt Commercial licenses may use this file in
00010 ** accordance with the Qt Commercial License Agreement provided with the
00011 ** Software or, alternatively, in accordance with the terms contained in
00012 ** a written agreement between you and Nokia.
00013 **
00014 ** GNU Lesser General Public License Usage
00015 ** Alternatively, this file may be used under the terms of the GNU Lesser
00016 ** General Public License version 2.1 as published by the Free Software
00017 ** Foundation and appearing in the file LICENSE.LGPL included in the
00018 ** packaging of this file.  Please review the following information to
00019 ** ensure the GNU Lesser General Public License version 2.1 requirements
00020 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
00021 **
00022 ** In addition, as a special exception, Nokia gives you certain
00023 ** additional rights. These rights are described in the Nokia Qt LGPL
00024 ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
00025 ** package.
00026 **
00027 ** GNU General Public License Usage
00028 ** Alternatively, this file may be used under the terms of the GNU
00029 ** General Public License version 3.0 as published by the Free Software
00030 ** Foundation and appearing in the file LICENSE.GPL included in the
00031 ** packaging of this file.  Please review the following information to
00032 ** ensure the GNU General Public License version 3.0 requirements will be
00033 ** met: http://www.gnu.org/copyleft/gpl.html.
00034 **
00035 ** If you are unsure which license is appropriate for your use, please
00036 ** contact the sales department at qt-sales@nokia.com.
00037 **
00038 ****************************************************************************/
00039 
00040 #ifndef QUILL_METADATA_H
00041 #define QUILL_METADATA_H
00042 
00043 #include <QString>
00044 #include <QVariant>
00045 
00046 class QuillMetadataPrivate;
00047 
00048 class QuillMetadata
00049 {
00050  public:
00051 
00052     enum Tag {
00054         Tag_Make,
00056         Tag_Model,
00058         Tag_ImageWidth,
00060         Tag_ImageHeight,
00062         Tag_FocalLength,
00064         Tag_ExposureTime,
00066         Tag_TimestampOriginal,
00068         Tag_Title,
00070         Tag_Copyright,
00072         Tag_Creator,
00074         Tag_Keywords,
00076         Tag_Subject,
00078         Tag_City,
00080         Tag_Country,
00082         Tag_Location,
00084         Tag_Rating,
00086         Tag_Timestamp,
00088         Tag_Orientation,
00090         Tag_Description,
00092         Tag_GPSLatitude,
00094         Tag_GPSLatitudeRef,
00096         Tag_GPSLongitude,
00098         Tag_GPSLongitudeRef,
00100         Tag_GPSAltitude,
00102         Tag_GPSAltitudeRef,
00104         Tag_GPSVersionID,
00106         Tag_GPSImgDirection,
00108         Tag_GPSImgDirectionRef,
00110         Tag_Undefined,
00111     };
00112 
00113     enum TagGroup {
00115         TagGroup_All = 0,
00117         TagGroup_GPS
00118     };
00119 
00124     enum MetadataFormatFlags {
00126         ExifFormat = 0x1,
00128         XmpFormat = 0x2,
00130         AllFormats = ~1
00131     };
00132 
00133  public:
00137     QuillMetadata();
00138 
00148     QuillMetadata(const QString &fileName,
00149                   MetadataFormatFlags formats = AllFormats);
00150 
00162     explicit QuillMetadata(const QString &fileName,
00163                   MetadataFormatFlags formats,
00164                   Tag tagToRead);
00165 
00169     ~QuillMetadata();
00170 
00178     static bool canRead(const QString &filePath);
00179 
00183     bool isValid() const;
00184 
00189     QVariant entry(Tag tag) const;
00190 
00196     void setEntry(Tag tag, const QVariant &entry);
00197 
00202     void removeEntry(Tag tag);
00203 
00209     void removeEntries(const QList<Tag> &tags);
00210 
00216     void removeEntries(TagGroup tagGroup);
00217 
00233     bool write(const QString &filePath,
00234                MetadataFormatFlags formats = AllFormats) const;
00235 
00243     QByteArray dump(MetadataFormatFlags formats) const;
00244 
00245  private:
00246     void init();
00247 
00248  private:
00249     QuillMetadataPrivate *priv;
00250 };
00251 
00252 #endif

Generated on Tue Apr 12 2011 17:07:42 for quillmetadatalib by  doxygen 1.7.1