summaryrefslogtreecommitdiffstats
path: root/movieitem.h
blob: 70bfc88656aa914a59859fba6b11899c41a18e74 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
/*
  This program is free software; you can redistribute it and/or
  modify it under the terms of the GNU General Public License
  as published by the Free Software Foundation; either version
  2 of the License, or (at your option) any later version.
*/

#ifndef MOVIEITEM_H
#define MOVIEITEM_H

#include <QObject>
#include <QList>
#include <QVariant>
#include <QHash>

#include "coveritem.h"

class QSqlQuery;

class MovieItem : public QObject {
	Q_OBJECT
	Q_ENUMS(Columns)
	public:
		enum Columns { Title = 0, Filename = 1, Md5Sum = 2, Size = 3, Genre = 4, Quality = 5, Dvd = 6 };
		enum { NumRows = 7 };
		MovieItem(int id = -1, QObject *parent = 0);
		~MovieItem() {};
		int id() const { return mId; };
		void setId(int id);
		int genreId() const { return mGenreId; };
		bool setData(const QList<QVariant> &data);
		void setDataAt(int column, const QVariant &data);
		const QList<QVariant> data() const;
		const QVariant dataAt(int column) const;
		const QList<QVariant> actors() const { return mActors; };
		const QHash<QString, QVariant> actorMap() const { return mActorIdMap; };
		const QList<QVariant> covers() const { return mCovers; };
		void populate();
		void setActors();
		void setCovers();

	private:
		void setGenreName();
		void setSize();
		const int mNumRows;
		int mId;
		int mGenreId;
		QList<QVariant> mRows;
		QList<QVariant> mActors;
		QHash<QString, QVariant> mActorIdMap;
		QList<QVariant> mCovers;
};

#endif