Main Page | Namespace List | Class Hierarchy | Class List | File List | Class Members | File Members

AlbumStatistics Class Reference

#include <albumStatistics.h>

Inheritance diagram for AlbumStatistics:

[legend]
Collaboration diagram for AlbumStatistics:
[legend]
List of all members.

Detailed Description

Album Statistics Window.

Definition at line 30 of file albumStatistics.h.

Signals

void closed ()

Public Member Functions

 AlbumStatistics (Album *album, QWidget *parent=0, const char *name=0)

Private Slots

void setCreationDate ()
void reject ()

Private Member Functions

void closeEvent (QCloseEvent *e)

Private Attributes

Albumalbum
QGridLayout * grid
QGridLayout * grid2
QLabeltitleMessage
QLabelnumSubalbums
QLabelnumSubalbumsVal
QLabelnumPhotos
QLabelnumPhotosVal
QLabelsizeOnDisk
QLabelsizeOnDiskVal
QLabelcreated
QLabelcreatedVal
QPushButton * setCreatedVal
QLabelmodified
QLabelmodifiedVal
QFramealbumPreview
QPixmap * albumImage
QLabelalbumIcon
QLabelalbumTitle
QPushButton * closeButton
 Close button.


Constructor & Destructor Documentation

AlbumStatistics::AlbumStatistics Album album,
QWidget parent = 0,
const char *  name = 0
 

Definition at line 31 of file albumStatistics.cpp.

References albumIcon, albumImage, albumPreview, AlbumStatistics(), albumTitle, calcScaledImageDimensions(), closeButton, created, createdVal, Subalbum::getFirst(), Album::getFirstSubalbum(), Photo::getImageFilename(), Subalbum::getNext(), Photo::getNext(), Photo::getSlideshowFilename(), grid, grid2, LARGE, modified, modifiedVal, numPhotos, numPhotosVal, numSubalbums, numSubalbumsVal, sizeOnDisk, sizeOnDiskVal, titleMessage, and WIDGET_SPACING.

Referenced by AlbumStatistics().

00033 : 00034 QDialog(parent,name) 00035 { 00036 //-------------------------------------------------------------- 00037 QColor white(255, 255, 255); 00038 QColor darkBlue(35, 75, 139); 00039 //-------------------------------------------------------------- 00040 //this album pointer 00041 this->album = album; 00042 //-- 00043 //compute size on disk 00044 int albumSize = 0; 00045 Subalbum* curSubalbum = album->getFirstSubalbum(); 00046 QFileInfo info; 00047 while(curSubalbum != NULL) 00048 { 00049 Photo* curPhoto = curSubalbum->getFirst(); 00050 while(curPhoto != NULL) 00051 { 00052 info.setFile( curPhoto->getImageFilename() ); 00053 albumSize+=info.size(); 00054 00055 info.setFile( curPhoto->getSlideshowFilename() ); 00056 albumSize+=info.size(); 00057 00058 curPhoto = curPhoto->getNext(); 00059 } 00060 curSubalbum = curSubalbum->getNext(); 00061 } 00062 //-- 00063 //set window title 00064 setCaption( tr("Album Statistics")); 00065 //-- 00066 //create title 00067 titleMessage = new QLabel( tr("Album Statistics:"), this); 00068 00069 QFont titleFont = titleMessage->font(); 00070 titleFont.setWeight(QFont::Bold); 00071 titleFont.setPointSize( titleFont.pointSize() + 2 ); 00072 00073 QFont statsFont = titleMessage->font(); 00074 statsFont.setWeight(QFont::Bold); 00075 00076 titleMessage->setFont( titleFont ); 00077 //-- 00078 //create stats 00079 //-- 00080 numSubalbums = new QLabel( tr("Collections:"), this); 00081 numSubalbums->setFont( statsFont ); 00082 numSubalbumsVal = new QLabel(this); 00083 numSubalbumsVal->setText( QString("%1").arg(album->getNumSubalbums()) ); 00084 numSubalbumsVal->setFont( statsFont ); 00085 //-- 00086 numPhotos = new QLabel( tr("Photos:"), this); 00087 numPhotos->setFont( statsFont ); 00088 numPhotosVal = new QLabel(this); 00089 numPhotosVal->setText( QString("%1").arg(album->getNumPhotos()) ); 00090 numPhotosVal->setFont( statsFont ); 00091 //-- 00092 sizeOnDisk = new QLabel( tr("Size:"), this); 00093 sizeOnDisk->setFont( statsFont ); 00094 sizeOnDiskVal = new QLabel(this); 00095 sizeOnDiskVal->setFont( statsFont ); 00096 if(albumSize < 1024) 00097 sizeOnDiskVal->setText( QString(tr("~%1 Bytes")).arg(albumSize) ); 00098 else if( albumSize/1024 < 1024) 00099 sizeOnDiskVal->setText( QString(tr("~%1 Kb")).arg( ((float)albumSize)/1024 ) ); 00100 else if( albumSize/(1024*1024) < 1024) 00101 sizeOnDiskVal->setText( QString(tr("~%1 Mb")).arg( ((float)albumSize)/(1024*1024) ) ); 00102 else 00103 sizeOnDiskVal->setText( QString(tr("~%1 Gigs")).arg( ((float)albumSize)/(1024*1024*1024) ) ); 00104 //-- 00105 QString months[] = { tr("January"), 00106 tr("February"), 00107 tr("March"), 00108 tr("April"), 00109 tr("May"), 00110 tr("June"), 00111 tr("July"), 00112 tr("August"), 00113 tr("September"), 00114 tr("October"), 00115 tr("November"), 00116 tr("December") }; 00117 00118 created = new QLabel( tr("Created:"), this); 00119 created->setFont( statsFont ); 00120 QString cVal = QString("%1 %2").arg(months[album->getCreationMonth()-1]).arg(album->getCreationDay()); 00121 if(album->getCreationDay() == 1 || 00122 album->getCreationDay() == 21 || 00123 album->getCreationDay() == 31) 00124 cVal = cVal + "st"; 00125 else if(album->getCreationDay() == 2 || 00126 album->getCreationDay() == 22) 00127 cVal = cVal + "nd"; 00128 else if(album->getCreationDay() == 3 || 00129 album->getCreationDay() == 23) 00130 cVal = cVal + "rd"; 00131 else 00132 cVal = cVal + "th"; 00133 cVal = QString("%1, %2").arg(cVal).arg(album->getCreationYear()); 00134 00135 createdVal = new QLabel( cVal, this ); 00136 createdVal->setFont( statsFont ); 00137 00138 modified = new QLabel( tr("Modified:"), this); 00139 modified->setFont( statsFont ); 00140 QString mVal = QString("%1 %2").arg(months[album->getModificationMonth()-1]).arg(album->getModificationDay()); 00141 00142 if(album->getModificationDay() == 1 || 00143 album->getModificationDay() == 21 || 00144 album->getModificationDay() == 31) 00145 mVal = mVal + "st"; 00146 else if(album->getModificationDay() == 2 || 00147 album->getModificationDay() == 22) 00148 mVal = mVal + "nd"; 00149 else if(album->getModificationDay() == 3 || 00150 album->getModificationDay() == 23) 00151 mVal = mVal + "rd"; 00152 else 00153 mVal = mVal + "th"; 00154 mVal = QString("%1, %2").arg(mVal).arg(album->getModificationYear()); 00155 modifiedVal = new QLabel( mVal, this ); 00156 modifiedVal->setFont( statsFont ); 00157 //-- 00158 //create album image and title labels 00159 albumPreview = new QFrame( this ); 00160 albumIcon = new QLabel( albumPreview ); 00161 00162 //if no rep image use small version 00163 if(album->getRepresentativeImage(LARGE) != NULL) 00164 { 00165 QImage tImage = album->getRepresentativeImage( LARGE )->convertToImage(); 00166 int newWidth, newHeight; 00167 calcScaledImageDimensions( tImage.width(), tImage.height(), 00168 300, 300, 00169 newWidth, newHeight); 00170 QImage tImage2 = tImage.smoothScale( newWidth, newHeight ); 00171 albumImage = new QPixmap( newWidth, newHeight ); 00172 albumImage->convertFromImage( tImage2 ); 00173 albumIcon->setPixmap( *albumImage ); 00174 } 00175 00176 albumTitle = new QLabel( albumPreview ); 00177 if(album->getName().compare("") != 0) 00178 { 00179 albumTitle->setText( "\"" + album->getName() + "\"" ); 00180 } 00181 albumTitle->setFont( statsFont ); 00182 //-- 00183 //create close button 00184 closeButton = new QPushButton( tr("Close"), this ); 00185 closeButton->setSizePolicy( QSizePolicy::Fixed, QSizePolicy::Fixed ); 00186 closeButton->setDefault(true); 00187 closeButton->setFocus(); 00188 connect( closeButton, SIGNAL(clicked()), SLOT(close()) ); 00189 //-- 00190 setPaletteBackgroundColor( darkBlue ); 00191 titleMessage->setPaletteForegroundColor( white ); 00192 titleMessage->setPaletteBackgroundColor( darkBlue ); 00193 numSubalbums->setPaletteForegroundColor( white ); 00194 numSubalbums->setPaletteBackgroundColor( darkBlue ); 00195 numSubalbumsVal->setPaletteForegroundColor( white ); 00196 numSubalbumsVal->setPaletteBackgroundColor( darkBlue ); 00197 numPhotos->setPaletteForegroundColor( white ); 00198 numPhotos->setPaletteBackgroundColor( darkBlue ); 00199 numPhotosVal->setPaletteForegroundColor( white ); 00200 numPhotosVal->setPaletteBackgroundColor( darkBlue ); 00201 sizeOnDisk->setPaletteForegroundColor( white ); 00202 sizeOnDisk->setPaletteBackgroundColor( darkBlue ); 00203 sizeOnDiskVal->setPaletteForegroundColor( white ); 00204 sizeOnDiskVal->setPaletteBackgroundColor( darkBlue ); 00205 created->setPaletteForegroundColor( white ); 00206 created->setPaletteBackgroundColor( darkBlue ); 00207 createdVal->setPaletteForegroundColor( white ); 00208 createdVal->setPaletteBackgroundColor( darkBlue ); 00209 modified->setPaletteForegroundColor( white ); 00210 modified->setPaletteBackgroundColor( darkBlue ); 00211 modifiedVal->setPaletteForegroundColor( white ); 00212 modifiedVal->setPaletteBackgroundColor( darkBlue ); 00213 albumTitle->setPaletteForegroundColor( white ); 00214 albumTitle->setPaletteBackgroundColor( darkBlue ); 00215 albumPreview->setPaletteBackgroundColor( darkBlue ); 00216 closeButton->setEraseColor(darkBlue); 00217 //-- 00218 //place widgets in grid 00219 grid = new QGridLayout( this, 10, 3, 0); 00220 grid->setMargin(WIDGET_SPACING); 00221 grid->setSpacing(WIDGET_SPACING); 00222 00223 grid->addRowSpacing( 0, 10 ); 00224 grid->setRowStretch( 0, 1 ); 00225 00226 //add statistics text 00227 grid->addMultiCellWidget( titleMessage, 1, 1, 0, 1, Qt::AlignCenter); 00228 00229 //add space between "Album Statistics" text and actual statistics 00230 grid->addRowSpacing( 2, 10 ); 00231 grid->setRowStretch( 2, 1 ); 00232 00233 grid->addWidget( numSubalbums, 3, 0 ); 00234 grid->addWidget( numSubalbumsVal, 3, 1, Qt::AlignRight ); 00235 grid->addWidget( numPhotos, 4, 0 ); 00236 grid->addWidget( numPhotosVal, 4, 1, Qt::AlignRight ); 00237 grid->addWidget( sizeOnDisk, 5, 0 ); 00238 grid->addWidget( sizeOnDiskVal, 5, 1, Qt::AlignRight ); 00239 grid->addWidget( created, 6,0 ); 00240 grid->addWidget( createdVal, 6, 1, Qt::AlignRight ); 00241 grid->addWidget( modified, 7,0 ); 00242 grid->addWidget( modifiedVal, 7, 1, Qt::AlignRight ); 00243 00244 grid->setRowStretch( 8, 1 ); 00245 00246 00247 //add album image and name 00248 grid2 = new QGridLayout( albumPreview, 2, 1, 0 ); 00249 grid2->setSpacing(WIDGET_SPACING); 00250 00251 grid2->addWidget( albumIcon, 0, 0, Qt::AlignCenter ); 00252 grid2->addWidget( albumTitle, 1, 0, Qt::AlignCenter ); 00253 grid->addMultiCellWidget( albumPreview, 0,8, 2, 2, Qt::AlignCenter ); 00254 00255 //add ok button 00256 grid->addMultiCellWidget( closeButton, 9,9, 0, 2, Qt::AlignCenter ); 00257 //-- 00258 //set window to not be resizeable 00259 show(); 00260 setFixedSize(size()); 00261 //------------------------------- 00262 } //==============================================


Member Function Documentation

void AlbumStatistics::closed  )  [signal]
 

Referenced by closeEvent(), and reject().

void AlbumStatistics::closeEvent QCloseEvent *  e  )  [private]
 

Definition at line 269 of file albumStatistics.cpp.

References closed(), and closeEvent().

Referenced by closeEvent().

00270 { 00271 QWidget::closeEvent( e ); 00272 emit closed(); 00273 }

void AlbumStatistics::reject  )  [private, slot]
 

Definition at line 275 of file albumStatistics.cpp.

References closed().

00276 { 00277 QDialog::reject(); 00278 emit closed(); 00279 }

void AlbumStatistics::setCreationDate  )  [private, slot]
 

Definition at line 264 of file albumStatistics.cpp.

00265 { 00266 00267 }


Member Data Documentation

Album* AlbumStatistics::album [private]
 

Definition at line 47 of file albumStatistics.h.

QLabel* AlbumStatistics::albumIcon [private]
 

Definition at line 71 of file albumStatistics.h.

Referenced by AlbumStatistics().

QPixmap* AlbumStatistics::albumImage [private]
 

Definition at line 70 of file albumStatistics.h.

Referenced by AlbumStatistics().

QFrame* AlbumStatistics::albumPreview [private]
 

Definition at line 69 of file albumStatistics.h.

Referenced by AlbumStatistics().

QLabel* AlbumStatistics::albumTitle [private]
 

Definition at line 73 of file albumStatistics.h.

Referenced by AlbumStatistics().

QPushButton* AlbumStatistics::closeButton [private]
 

Close button.

Definition at line 76 of file albumStatistics.h.

Referenced by AlbumStatistics().

QLabel* AlbumStatistics::created [private]
 

Definition at line 62 of file albumStatistics.h.

Referenced by AlbumStatistics().

QLabel* AlbumStatistics::createdVal [private]
 

Definition at line 63 of file albumStatistics.h.

Referenced by AlbumStatistics().

QGridLayout* AlbumStatistics::grid [private]
 

Definition at line 48 of file albumStatistics.h.

Referenced by AlbumStatistics().

QGridLayout* AlbumStatistics::grid2 [private]
 

Definition at line 49 of file albumStatistics.h.

Referenced by AlbumStatistics().

QLabel* AlbumStatistics::modified [private]
 

Definition at line 66 of file albumStatistics.h.

Referenced by AlbumStatistics().

QLabel* AlbumStatistics::modifiedVal [private]
 

Definition at line 67 of file albumStatistics.h.

Referenced by AlbumStatistics().

QLabel* AlbumStatistics::numPhotos [private]
 

Definition at line 56 of file albumStatistics.h.

Referenced by AlbumStatistics().

QLabel* AlbumStatistics::numPhotosVal [private]
 

Definition at line 57 of file albumStatistics.h.

Referenced by AlbumStatistics().

QLabel* AlbumStatistics::numSubalbums [private]
 

Definition at line 53 of file albumStatistics.h.

Referenced by AlbumStatistics().

QLabel* AlbumStatistics::numSubalbumsVal [private]
 

Definition at line 54 of file albumStatistics.h.

Referenced by AlbumStatistics().

QPushButton* AlbumStatistics::setCreatedVal [private]
 

Definition at line 64 of file albumStatistics.h.

QLabel* AlbumStatistics::sizeOnDisk [private]
 

Definition at line 59 of file albumStatistics.h.

Referenced by AlbumStatistics().

QLabel* AlbumStatistics::sizeOnDiskVal [private]
 

Definition at line 60 of file albumStatistics.h.

Referenced by AlbumStatistics().

QLabel* AlbumStatistics::titleMessage [private]
 

Definition at line 51 of file albumStatistics.h.

Referenced by AlbumStatistics().


The documentation for this class was generated from the following files:
Generated on Sun Mar 4 19:43:04 2007 for AlbumShaper by doxygen 1.3.7