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.

101 lines
2.7 KiB
C++

#ifndef CALBUMS_H
#define CALBUMS_H
#include "calbumroots.h"
#include "cimages.h"
#include <QString>
#include <QDate>
#include <QDateTime>
#include <QList>
#include <QStandardItem>
#include <QObject>
#include <QMetaType>
class cAlbums : public QObject
{
Q_OBJECT
public:
cAlbums(const qint32& id, cAlbumsList* albumsList, QSqlDatabase* dbDigikam, QSqlDatabase* m_dbThumbnail, QObject *parent = nullptr);
cAlbums(const qint32& id, cAlbumRoots* albumRoots, const QString& relativePath, const QDate& date, const QString& caption, const QString& collection, const QDateTime& modificationDate, cAlbumsList* albumsList, QSqlDatabase* dbDigikam, QSqlDatabase* dbThumbnail, QObject *parent = nullptr);
~cAlbums();
qint32 id();
void setAlbumRoots(cAlbumRoots* albumRoots);
cAlbumRoots* albumRoots();
void setRelativePath(const QString& relativePath);
QString relativePath();
QString path();
void setDate(const QDate& date);
QDate date();
void setCaption(const QString& caption);
QString caption();
void setCollection(const QString& collection);
QString collection();
void setModificationDate(const QDateTime modificationDate);
QDateTime modificationDate();
void setParentAlbums(cAlbums* root);
cAlbums* parentAlbums();
bool loadImages(bool loadThumbnails = true);
cImagesList* imagesList();
void setItem(QStandardItem* item);
QStandardItem* item();
private:
qint32 m_id;
cAlbumRoots* m_albumRoots;
QString m_relativePath;
QDate m_date;
QString m_caption;
QString m_collection;
QDateTime m_modificationDate;
cAlbums* m_parentAlbums;
cImagesList* m_imagesList;
cAlbumsList* m_albumsList;
QSqlDatabase* m_dbDigikam;
QSqlDatabase* m_dbThumbnail;
QStandardItem* m_item;
};
Q_DECLARE_METATYPE(cAlbums*)
class cAlbumsList : public QObject, public QList<cAlbums*>
{
Q_OBJECT
public:
cAlbumsList(QSqlDatabase* dbDigikam, QSqlDatabase* dbThumbnail, cAlbumRootsList* albumRootsList, QObject* parent = nullptr);
~cAlbumsList();
bool load();
cAlbums* add(const qint32& id, QObject* parent = nullptr);
cAlbums* add(const qint32& id, cAlbumRoots* albumRoots, const QString& relativePath, const QDate& date, const QString& caption, const QString& collection, const QDateTime& modificationDate, QObject *parent = nullptr);
cAlbums* add(const qint32& id, const qint32& albumRootsID, const QString& relativePath, const QDate& date, const QString& caption, const QString& collection, const QDateTime& modificationDate, QObject *parent = nullptr);
cAlbums* find(const qint32& id);
cAlbums* find(const QString& relativePath);
private:
QSqlDatabase* m_dbDigikam;
QSqlDatabase* m_dbThumbnail;
cAlbumRootsList* m_albumRootsList;
};
Q_DECLARE_METATYPE(cAlbumsList*)
#endif // CALBUMS_H