00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef BACKEND_ALBUM_H
00012 #define BACKEND_ALBUM_H
00013
00014
00015 #define SMALL 1
00016 #define MEDIUM 2
00017 #define LARGE 3
00018
00019
00020 #define ALBUM_LOADED 1
00021 #define ALBUM_READ_ERROR 2
00022 #define ALBUM_XML_ERROR 3
00023 #define ALBUM_EXPORTED 1
00024 #define ALBUM_ERROR_OPEN_FILE 2
00025
00026
00027 class QString;
00028 class QPixmap;
00029 class Subalbum;
00030 class SubalbumPreviewWidget;
00031 class StatusWidget;
00032 class QStringList;
00033
00034
00035
00048
00049
00050 class Album
00051 {
00052
00053 public:
00054
00056 Album( QString tmpDir, bool createSubalbum = true );
00057
00059 ~Album();
00060
00062 void setName(QString val);
00063
00065 QString getName();
00066
00068 void setDescription(QString val);
00069
00071 QString getDescription();
00072
00074 void setAuthor(QString val);
00075
00077 QString getAuthor();
00078
00080 void setRepresentativeImages(QString imageFilename);
00081
00083 QPixmap* getRepresentativeImage(int size);
00084
00086 Subalbum* getFirstSubalbum();
00087
00089 Subalbum* getLastSubalbum();
00090
00092 void appendSubalbum(Subalbum* val);
00093
00095 void removeSubalbum(Subalbum* val);
00096
00098 int getModificationYear();
00099
00101 int getModificationMonth();
00102
00104 int getModificationDay();
00105
00107 int getCreationYear();
00108
00110 int getCreationMonth();
00111
00113 int getCreationDay();
00114
00116 void Album::updateCreationDate();
00117
00119 void updateModificationDate();
00120
00122 int importFromDisk(StatusWidget* status, QString fileName, bool disableCheckPhotoMods);
00123
00125 int exportToDisk(StatusWidget* status, QString dirName, QString themeName);
00126
00129 int exportToDisk(StatusWidget* status, bool forceSave=false);
00130
00132 int exportCompressedWebAlbum(StatusWidget* status,
00133 QString exportLocation,
00134 QString exportMessage);
00135
00138 int exportLargeImages(StatusWidget* status, QString exportPath, QString exportMessage);
00139
00141 bool prevSave();
00142
00144 bool albumModified();
00145
00147 void setModified(bool val=true);
00148
00150 void syncSubalbumList(SubalbumPreviewWidget* item);
00151
00153 QString getSaveLocation();
00154
00156 int getNumPhotos();
00157
00159 int getNumSubalbums();
00160
00162 QString getTheme();
00163
00165 QString getTmpDir();
00166
00168 int getNextUniquePhotoID();
00169
00171 QStringList getThumbnailFilenames();
00172
00173 private:
00175 int exportToXML(StatusWidget* status, QString exportPath);
00176
00178 void exportTopLevelImages();
00179
00181 void exportSubalbumImages(StatusWidget* status, bool forceSave);
00182
00185 void removeStagnantOrigFiles(StatusWidget* status);
00186
00188 void reorderSubalbumImages(StatusWidget* status);
00189
00191 void removeStagnantImages();
00192
00194 void exportThemeResources( QString theme );
00195
00197 QString name;
00198
00200 QString description;
00201
00203 QString author;
00204
00206 QPixmap* smallRepresentativeImage;
00207 QPixmap* largeRepresentativeImage;
00208
00210 Subalbum* firstSubalbum;
00211
00213 Subalbum* lastSubalbum;
00214
00216 int modificationYear;
00217
00219 int modificationMonth;
00220
00222 int modificationDay;
00223
00225 int creationYear;
00226
00228 int creationMonth;
00229
00231 int creationDay;
00232
00234 int numSubalbums;
00235
00237 int numLoadedSubalbums;
00238
00240 bool savedToDisk;
00241
00243 QString saveLocation;
00244
00245
00246 QString oldSaveLocation;
00247
00249 QString theme;
00250
00252 bool modified;
00253
00255 QString tmpDir;
00256
00260 int nextUniqueID;
00261
00262 };
00263
00264 #endif //BACKEND_ALBUM_H