AlbumShaper
1.0a3
|
00001 //============================================== 00002 // copyright : (C) 2003-2005 by Will Stokes 00003 //============================================== 00004 // This program is free software; you can redistribute it 00005 // and/or modify it under the terms of the GNU General 00006 // Public License as published by the Free Software 00007 // Foundation; either version 2 of the License, or 00008 // (at your option) any later version. 00009 //============================================== 00010 00011 #ifndef BACKEND_SUBALBUM_H 00012 #define BACKEND_SUBALBUM_H 00013 00014 //define representative image sizes 00015 #define SMALL 1 00016 #define MEDIUM 2 00017 #define LARGE 3 00018 00019 //-------------------- 00020 //forward declarations 00021 class QString; 00022 class QPixmap; 00023 class QDomNode; 00024 class Album; 00025 class Photo; 00026 class StatusWidget; 00027 class PhotoPreviewWidget; 00028 //-------------------- 00029 00030 //===================================== 00043 //===================================== 00044 00045 class Subalbum 00046 { 00047 //------------------------------------------------------ 00048 public: 00049 00052 Subalbum(Album* albm, int number); 00053 00055 ~Subalbum(); 00056 00058 void setName(QString val); 00059 00061 QString getName(); 00062 00064 void setDescription(QString val); 00065 00067 QString getDescription(); 00068 00070 QPixmap* getRepresentativeImage(int size); 00071 00073 void setRepresentativeImage(QString imageFilename); 00074 00077 bool addPhoto(QString fileName, bool replaceDescription = false, Photo* newPhoto = NULL); 00078 00080 bool lazyAddPhoto(QString imageName, 00081 QString slideshowName, 00082 QString thumbnailName, 00083 Photo* newPhoto); 00084 00086 void addPhoto(Photo* newPhoto); 00087 00089 void photoMoved(Photo* val); 00090 00092 void removePhoto(Photo* val); 00093 00095 Subalbum* getPrev(); 00096 00098 Subalbum* getNext(); 00099 00101 void setPrev(Subalbum* val); 00102 00104 void setNext(Subalbum* val); 00105 00107 Photo* getFirst(); 00108 00110 Photo* getLast(); 00111 00113 void exportToXML(StatusWidget* status, QTextStream& stream); 00114 00116 void importFromDisk(QDomNode* root, int subalbumNum, 00117 StatusWidget* status, QString dirName, bool disableCheckPhotoMods); 00118 00120 void syncPhotoList(PhotoPreviewWidget* item); 00121 00123 int getSubalbumNumber(); 00124 00126 void setSubalbumNumber(int newVal); 00127 00129 int getNumPhotos(); 00130 00132 int getNumLoadedPhotos(); 00133 00134 //Resets the number of loaded photos in the subalbum to the number of photos in the subalbum 00135 void resetNumLoadedPhotos(); 00136 00137 //Sets the subalbum as modified 00138 void setModified(); 00139 00141 Album* getAlbum(); 00142 //------------------------------------------------------ 00143 private: 00145 int number; 00146 00148 int numPhotos; 00149 00151 int loadedPhotos; 00152 00154 QString name; 00155 00157 QString description; 00158 00159 //Small, medium, and large representative images 00160 QPixmap* smallRepresentativeImage; 00161 QPixmap* mediumRepresentativeImage; 00162 QPixmap* largeRepresentativeImage; 00163 00165 Photo* firstPhoto; 00166 00168 Photo* lastPhoto; 00169 00171 Subalbum* prevSubalbum; 00172 00174 Subalbum* nextSubalbum; 00175 00177 Album* albm; 00178 //------------------------------------------------------ 00179 }; 00180 00181 #endif //BACKEND_SUBALBUM_H