3
using System.Collections.Generic;
4
using System.Collections.ObjectModel;
10
private ImageItemRecord item;
11
private PhotoDatabase db;
12
private List<Thumbnail> thumbnails = new List<Thumbnail> ();
13
private string fullSizeFile;
14
private bool dirty = false;
17
get { return item.Id; }
20
internal ImageItemRecord Record {
24
public PhotoDatabase PhotoDatabase {
32
public DateTime OriginalDate {
33
get { return item.OriginalDate; }
34
set { item.OriginalDate = value; }
37
public DateTime DigitizedDate {
38
get { return item.DigitizedDate; }
39
set { item.DigitizedDate = value; }
42
// FIXME: use an enum or whatever
44
get { return item.Rating; }
45
set { item.Rating = value; }
48
public IList<Thumbnail> Thumbnails {
49
get { return new ReadOnlyCollection<Thumbnail> (thumbnails); }
52
public string FullSizeFileName {
57
return CurrentFullSizeFileName;
65
internal string CurrentFullSizeFileName {
67
if (item.FullName == null || item.FullName.FileName == null)
70
return db.GetFilesystemPath (item.FullName.FileName);
75
internal Photo (ImageItemRecord item, PhotoDatabase db) {
79
foreach (ImageNameRecord name in item.Names) {
80
thumbnails.Add (new Thumbnail (this, name));
84
internal void SetPodFileName () {
85
if (fullSizeFile != null) {
86
item.FullName.FileName = String.Format (":Full Resolution:{0}:{1}:{2}:{3}", OriginalDate.Year,
87
OriginalDate.Month, OriginalDate.Day,
88
Path.GetFileName (fullSizeFile));
94
public Thumbnail CreateThumbnail () {
95
ImageNameRecord name = new ImageNameRecord (item.IsBE);
98
Thumbnail thumbnail = new Thumbnail (this, name);
99
thumbnails.Add (thumbnail);
104
public void RemoveThumbnail (Thumbnail thumbnail) {
105
item.RemoveName (thumbnail.Record);
106
thumbnails.Remove (thumbnail);
109
public Thumbnail LookupThumbnail (ArtworkFormat format) {
110
foreach (Thumbnail thumbnail in thumbnails) {
111
if (thumbnail.Format == format) {