00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef BACKEND_PHOTO_H
00012 #define BACKEND_PHOTO_H
00013
00014
00015 #define THUMBNAIL 1
00016 #define SLIDESHOW 2
00017 #define IMAGE 3
00018
00019
00020
00021
00022 #include "tools/imageTools.h"
00023
00024
00025
00026 class QString;
00027 class QPixmap;
00028 class QImage;
00029 class QDomNode;
00030 class QDateTime;
00031 class Subalbum;
00032
00033
00034
00039
00040
00041 class Photo
00042 {
00043
00044 public:
00046 Photo(Subalbum* subalbum, Photo* prev, int photoNumber);
00047
00048 ~Photo();
00049
00051 QImage* getThumbnailImage();
00052
00056 bool constructSmallerImages();
00057
00060 bool setImage(QString imageName,
00061 QString slideshowName,
00062 QString thumbnailName);
00063
00065 bool setImage(QString imageName, int uniqueID);
00066
00069 bool setImage(QString editedImageFilename);
00070
00072 QString getImageFilename();
00073
00075 QString getSlideshowFilename();
00076
00078 QString getThumbnailFilename();
00079
00081 void setImageFilename(QString val);
00082
00084 void setSlideshowFilename(QString val);
00085
00087 void setThumbnailFilename(QString val);
00088
00090 QString getImageChecksum();
00091
00093 QString getThumbnailChecksum();
00094
00096 QString getSlideshowChecksum();
00097
00099 void setImageChecksum(QString val);
00100
00102 void setThumbnailChecksum(QString val);
00103
00105 void setSlideshowChecksum(QString val);
00106
00108 QString getDescription();
00109
00111 void setDescription(QString val);
00112
00114 Photo* getPrev();
00115
00117 Photo* getNext();
00118
00120 void setPrev(Photo* val);
00121
00123 void setNext(Photo* val);
00124
00126 QDateTime* importFromDisk(QDomNode* root);
00127
00129 void exportToXML(QTextStream& stream);
00130
00132 void rotate90();
00133
00135 void rotate270();
00136
00138 void flipHorizontally();
00139
00141 void flipVertically();
00142
00144 void applyTransformation(TRANSFORM_CODE transformation);
00145
00147 bool getNeedsSavingVal();
00148
00150 void setNeedsSavingVal(bool val);
00151
00153 bool getEverSaved();
00154
00156 void setEverSaved(bool val);
00157
00159 void revertPhoto();
00160
00162 bool revertPossible();
00163
00165 bool getRecentlyReverted();
00166
00168 void setRecentlyReverted(bool val);
00169
00171 QString originalImageFilename();
00172
00174 int getInitialPhotoNumber();
00175
00177 void setInitialPhotoNumber(int val);
00178
00180 int getInitialSubalbumNumber();
00181
00183 void setInitialSubalbumNumber(int val);
00184
00185 private:
00187 Subalbum* subalbum;
00188
00190 Photo* prev;
00191
00193 Photo* next;
00194
00195
00196 int initialPhotoNumber;
00197
00198
00199 int initialSubalbumNumber;
00200
00202 QString description;
00203
00205 QImage* thumbnailImage;
00206
00208 QString imageLocation;
00209 QString slideshowLocation;
00210 QString thumbnailLocation;
00211
00213 QString imageChecksum;
00214 QString slideshowChecksum;
00215 QString thumbnailChecksum;
00216
00218 bool needsSaving;
00219
00221 bool everSaved;
00222
00225 bool recentlyReverted;
00226
00227 };
00228
00229 #endif //BACKEND_PHOTO_H