You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
135 lines
3.7 KiB
C++
135 lines
3.7 KiB
C++
#ifndef CIMAGES_H
|
|
#define CIMAGES_H
|
|
|
|
|
|
#include "common.h"
|
|
#include "cimage.h"
|
|
|
|
#include <QString>
|
|
#include <QDateTime>
|
|
#include <QList>
|
|
#include <QStandardItem>
|
|
|
|
#include <QSqlDatabase>
|
|
|
|
#include <QObject>
|
|
|
|
#include <QMetaType>
|
|
|
|
|
|
class cAlbums;
|
|
class cAlbumsList;
|
|
|
|
class cImages : public QObject
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
cImages(const qint32& id, QObject *parent = nullptr);
|
|
cImages(const qint32& id, cAlbums* albums, const QString& name, const qint8& status, const qint8& category, const QDateTime& modificationDate, const qint32& fileSize, const QString& uniqueHash, const qint32& manualOrder, QSqlDatabase* dbThumbnail, QObject *parent = nullptr);
|
|
~cImages();
|
|
|
|
qint32 id();
|
|
|
|
void setAlbums(cAlbums* albums);
|
|
cAlbums* albums();
|
|
|
|
void setName(const QString& name);
|
|
QString name();
|
|
|
|
void setStatus(qint8& status);
|
|
qint8 status();
|
|
|
|
void setCategory(qint8& category);
|
|
qint8 category();
|
|
|
|
void setModificationDate(const QDateTime modificationDate);
|
|
QDateTime modificationDate();
|
|
|
|
void setFileSize(qint32& fileSize);
|
|
qint32 fileSize();
|
|
|
|
void setUniqueHash(const QString& uniqueHash);
|
|
QString uniqueHash();
|
|
|
|
void setManualOrder(qint32& manualOrder);
|
|
qint32 manualOrder();
|
|
|
|
void setItem(QStandardItem* item);
|
|
QStandardItem* item();
|
|
|
|
void loadThumbnail();
|
|
QImage* thumbnail();
|
|
|
|
void setImageComment(const IMAGECOMMENT& ImageComment);
|
|
IMAGECOMMENT imageComment();
|
|
|
|
void setImageCopyright(const IMAGECOPYRIGHT& ImageCopyright);
|
|
IMAGECOPYRIGHT imageCopyright();
|
|
|
|
void setImageInformation(const IMAGEINFORMATION& ImageInformation);
|
|
IMAGEINFORMATION imageInformation();
|
|
|
|
void setImageMetadata(const IMAGEMETADATA& ImageMetadata);
|
|
IMAGEMETADATA imageMetadata();
|
|
|
|
void setImagePositions(const IMAGEPOSITIONS& ImagePositions);
|
|
IMAGEPOSITIONS imagePositions();
|
|
|
|
void setImageProperties(const IMAGEPROPERTIES& ImageProperties);
|
|
IMAGEPROPERTIES imageProperties();
|
|
|
|
void setVideoMetadata(const VIDEOMETADATA& VideoMetadata);
|
|
VIDEOMETADATA videoMetadata();
|
|
|
|
private:
|
|
qint32 m_id;
|
|
cAlbums* m_albums;
|
|
QString m_name;
|
|
qint8 m_status;
|
|
qint8 m_category;
|
|
QDateTime m_modificationDate;
|
|
qint32 m_fileSize;
|
|
QString m_uniqueHash;
|
|
qint32 m_manualOrder;
|
|
QSqlDatabase* m_dbThumbnail;
|
|
QStandardItem* m_item;
|
|
cImage* m_thumbnail;
|
|
|
|
IMAGECOMMENT m_ImageComment;
|
|
IMAGECOPYRIGHT m_ImageCopyright;
|
|
IMAGEINFORMATION m_ImageInformation;
|
|
IMAGEMETADATA m_ImageMetadata;
|
|
IMAGEPOSITIONS m_ImagePositions;
|
|
IMAGEPROPERTIES m_ImageProperties;
|
|
VIDEOMETADATA m_VideoMetadata;
|
|
|
|
signals:
|
|
|
|
};
|
|
|
|
Q_DECLARE_METATYPE(cImages*)
|
|
|
|
class cImagesList : public QObject, public QList<cImages*>
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
cImagesList(QSqlDatabase* dbDigikam, QSqlDatabase* dbThumbnail, cAlbumsList* albumsList, QObject* parent = nullptr);
|
|
~cImagesList();
|
|
|
|
bool load(bool loadThumbnails, cAlbums* albums);
|
|
bool load(bool loadThumbnails, const qint32& albumsID);
|
|
bool loadThumbnails();
|
|
cImages* add(const qint32& id, QObject* parent = nullptr);
|
|
cImages* add(const qint32& id, cAlbums* albums, const QString& name, const qint8& status, const qint8& category, const QDateTime& modificationDate, const qint32& fileSize, const QString& uniqueHash, const qint32& manualOrder, bool loadThumbnails, QObject *parent = nullptr);
|
|
cImages* add(const qint32& id, const qint32& albumsID, const QString& name, const qint8& status, const qint8& category, const QDateTime &modificationDate, const qint32 &fileSize, const QString& uniqueHash, const qint32 &manualOrder, bool loadThumbnails, QObject *parent = nullptr);
|
|
cImages* find(const qint32& id);
|
|
|
|
private:
|
|
QSqlDatabase* m_dbDigikam;
|
|
QSqlDatabase* m_dbThumbnail;
|
|
cAlbumsList* m_albumsList;
|
|
};
|
|
|
|
#endif // CIMAGES_H
|