SlideshowWidget Class Reference

#include <presentationWidget.h>

Inheritance diagram for SlideshowWidget:
[legend]
Collaboration diagram for SlideshowWidget:
[legend]

List of all members.


Detailed Description

Definition at line 39 of file presentationWidget.h.


Signals

void endSlideshow ()

Public Member Functions

 SlideshowWidget (QWidget *parent=0, const char *name=0, WFlags f=0)
void beginSlideshow (Album *albm, Subalbum *startCollection=NULL, Photo *startPhoto=NULL)
SubalbumgetCurCollection ()
 returns a pointer to the currently visible collection
PhotogetCurPhoto ()
 returns a pointer to the currently visible photo

Protected Member Functions

void paintEvent (QPaintEvent *)
void keyPressEvent (QKeyEvent *e)
void mousePressEvent (QMouseEvent *e)
void mouseMoveEvent (QMouseEvent *e)
void contextMenuEvent (QContextMenuEvent *e)
void showCoverPage ()
void showCollectionPage (Subalbum *subalbum)
void loadPhoto ()
void showPhoto ()
void refreshScreen ()
void paintOverlaidControls ()
void exchangePhotos ()

Private Slots

void animate ()
void advancePhoto ()
void backupPhoto ()
void skipToFirstPhoto ()
void skipToLastPhoto ()
void advanceCollection ()
void backupCollection ()
void hideMouse ()
void toggleAutoPlay ()
void stop ()
void speedUp ()
void slowDown ()
void increaseTextSize ()
void decreaseTextSize ()
void contextMenuHiding ()

Private Attributes

QString themePath
AlbumcurAlbum
SubalbumcurCollection
PhotocurPhoto
int photoNum
int collectionNum
bool photoLoaded
QImage scaledImage1
QImage scaledImage2
QImage * currImage
QImage * prevImage
QImage Top_TextBorder
QImage Bottom_TextBorder
QImage Left_TextBorder
QImage Right_TextBorder
QImage TL_TextBorder
QImage TR_TextBorder
QImage BL_TextBorder
QImage BR_TextBorder
QPixmap * paintBufferPrev
QPixmap * paintBufferCurr
QPixmap paintBuffer1
QPixmap paintBuffer2
QPixmap screenBuffer
QImage speed1
QImage speed2
QImage speed4
QImage speed8
QImage pauseInterface
QImage playInterface
QImage interfaceAlphaMask
int screenWidth
int screenHeight
int lastStep
int step
double initDelay
double minDelay
double delay
double accel
QTimer * autoPlayTimer
int autoPlayDelay
bool autoPlay
bool displayAutoPlayDelay
QTimer * animatingTimer
QTime lastTime
QTime currentTime
bool animating
ANIMATION_TYPE type
QMutex animatingMutex
bool displayDebugMessages
int fontSize
QTimer * mouseCursorTimer
bool mouseShown
bool contextMenuShown
bool contextMenuHidingBool

Constructor & Destructor Documentation

SlideshowWidget::SlideshowWidget ( QWidget parent = 0,
const char *  name = 0,
WFlags  f = 0 
)

Definition at line 36 of file presentationWidget.cpp.

References accel, advancePhoto(), animate(), animating, animatingTimer, autoPlay, autoPlayDelay, autoPlayTimer, collectionNum, contextMenuHidingBool, contextMenuShown, curAlbum, curCollection, curPhoto, currImage, displayAutoPlayDelay, displayDebugMessages, hideMouse(), IMAGE_PATH, IMMEDIATE, initDelay, interfaceAlphaMask, minDelay, mouseCursorTimer, paintBuffer1, paintBuffer2, paintBufferCurr, paintBufferPrev, pauseInterface, photoLoaded, photoNum, playInterface, prevImage, scaledImage1, scaledImage2, screenBuffer, screenHeight, screenWidth, speed1, speed2, speed4, speed8, and type.

00036                                                                               : QWidget(parent,name,f)
00037 {
00038   //to prevent flicker, never erase to a background color
00039   setBackgroundMode( Qt::NoBackground);
00040   
00041   //set pointers to null
00042   curAlbum = NULL;
00043   curCollection = NULL;
00044   collectionNum = -1;
00045   curPhoto = NULL;
00046   photoNum = -1;
00047   
00048   //no photo loaded yet  
00049   photoLoaded = false;
00050 
00051   //not animating by default
00052   animating = false;
00053   
00054   //default animation method is immediate
00055   type = IMMEDIATE;
00056   
00057   //set cur and prev pointers to the two scaled images. these
00058   //pointers will be exchanged when loading new images
00059   currImage = &scaledImage1;
00060   prevImage = &scaledImage2;
00061 
00062   //set delay defaults
00063   initDelay = 3; //3
00064   accel = 0.1; // 0.7
00065   minDelay = 1; //0.01
00066 
00067   //setup autoplay defaults, autoPlay should be set 
00068   //to true/false every time we begin a new slideshow
00069   autoPlayDelay = 4;
00070   autoPlay = true;
00071   displayAutoPlayDelay = false;
00072   
00073   displayDebugMessages = false;
00074   //---------------
00075   //create timer objects and setup signals
00076   animatingTimer = new QTimer();
00077   connect(animatingTimer, SIGNAL(timeout()), this, SLOT(animate()) );
00078 
00079   autoPlayTimer = new QTimer();
00080   connect(autoPlayTimer, SIGNAL(timeout()), this, SLOT(advancePhoto()) );
00081   
00082   mouseCursorTimer = new QTimer();
00083   connect(mouseCursorTimer, SIGNAL(timeout()), this, SLOT(hideMouse()) );
00084   //---------------
00085   //ensure pixmap are same size as screen
00086   QDesktopWidget *desktop = QApplication::desktop();
00087   screenWidth = desktop->screenGeometry().width();
00088   screenHeight = desktop->screenGeometry().height();
00089   paintBuffer1.resize( screenWidth, screenHeight );
00090   paintBuffer2.resize( screenWidth, screenHeight );
00091   screenBuffer.resize( screenWidth, screenHeight );
00092   screenBuffer.fill( black );
00093   
00094   paintBufferPrev = &paintBuffer1;
00095   paintBufferCurr = &paintBuffer2;
00096   
00097   //load speed icons
00098   speed1.load( QString(IMAGE_PATH)+"miscImages/cheetah.png" );
00099   speed2.load( QString(IMAGE_PATH)+"miscImages/rabbit.png" );
00100   speed4.load( QString(IMAGE_PATH)+"miscImages/turtle.png" );
00101   speed8.load( QString(IMAGE_PATH)+"miscImages/snail.png" );
00102   
00103   //load play and pause control interfaces
00104   playInterface.load( QString(IMAGE_PATH)+"buttonIcons/playPresentation.png" );
00105   pauseInterface.load( QString(IMAGE_PATH)+"buttonIcons/pausePresentation.png" );
00106   interfaceAlphaMask = pauseInterface.createAlphaMask();
00107   
00108   //by default no context menu object exists
00109   contextMenuShown = false;
00110   contextMenuHidingBool = false;
00111 
00112   //set widget to accept keyboard and mouse focus  
00113   setFocusPolicy(QWidget::StrongFocus);
00114 }


Member Function Documentation

void SlideshowWidget::beginSlideshow ( Album albm,
Subalbum startCollection = NULL,
Photo startPhoto = NULL 
)

Definition at line 475 of file presentationWidget.cpp.

References autoPlay, autoPlayDelay, autoPlayTimer, BL_TextBorder, Bottom_TextBorder, BR_TextBorder, collectionNum, curAlbum, curCollection, curPhoto, displayAutoPlayDelay, displayDebugMessages, fontSize, Subalbum::getFirst(), Album::getFirstSubalbum(), Photo::getNext(), Subalbum::getNext(), Album::getSaveLocation(), Album::getTheme(), Left_TextBorder, loadPhoto(), mouseShown, photoNum, refreshScreen(), Right_TextBorder, showCoverPage(), THEMES_PATH, TL_TextBorder, Top_TextBorder, and TR_TextBorder.

00476 {
00477   autoPlay = true;
00478   autoPlayDelay = 4;
00479   displayAutoPlayDelay = true;
00480   displayDebugMessages = false;
00481   fontSize = 24;
00482   
00483   //store album handle and show cover page
00484   curAlbum = albm;
00485   
00486   //determine presentation resources path
00487   QString presentationResourcesPath;
00488   QDir tempDir( THEMES_PATH );
00489 
00490   //if theme installed on system using its resources
00491   if( tempDir.exists( THEMES_PATH + albm->getTheme()) )
00492   { 
00493     presentationResourcesPath = THEMES_PATH + albm->getTheme() + "/misc_resources/"; 
00494   }
00495   //else try to load resources from the saved album path, this is necessary
00496   //when viewing albums on machines that do not have the used theme installed
00497   else 
00498   { 
00499     presentationResourcesPath = albm->getSaveLocation() + "/misc_resources/"; 
00500   }  
00501     
00502   //load text border images
00503   Top_TextBorder.load(presentationResourcesPath + "Top_TextBorder.png" );
00504   Bottom_TextBorder.load(presentationResourcesPath + "Bottom_TextBorder.png" );
00505   Left_TextBorder.load(presentationResourcesPath + "Left_TextBorder.png" );
00506   Right_TextBorder.load(presentationResourcesPath + "Right_TextBorder.png" );
00507   TL_TextBorder.load(presentationResourcesPath + "TL_TextBorder.png" );
00508   TR_TextBorder.load(presentationResourcesPath + "TR_TextBorder.png" );
00509   BL_TextBorder.load(presentationResourcesPath + "BL_TextBorder.png" );
00510   BR_TextBorder.load(presentationResourcesPath + "BR_TextBorder.png" );
00511   
00512   qApp->setOverrideCursor( QCursor(Qt::BlankCursor));
00513   mouseShown = false;
00514   setMouseTracking(true);
00515 /*  showCoverPage();*/
00516   
00517   //if collection and photo pointers are not null go immediately to specified collection/photo
00518   if(startCollection != NULL && startPhoto != NULL)
00519   {
00520     //set photo and collection  pointers
00521     curPhoto = startPhoto;
00522     curCollection = startCollection;
00523     
00524     //set photo and collection count #'s
00525     collectionNum = 1;
00526     Subalbum* tmpCollection = albm->getFirstSubalbum();
00527     while(tmpCollection != NULL && tmpCollection != curCollection)
00528     {
00529       tmpCollection = tmpCollection->getNext();
00530       collectionNum++;
00531     }
00532     photoNum = 1;
00533     Photo* tmpPhoto = curCollection->getFirst();
00534     while(tmpPhoto != NULL && tmpPhoto!= curPhoto)
00535     {
00536       tmpPhoto = tmpPhoto->getNext();
00537       photoNum++;
00538     }
00539     
00540     //load photo and display
00541     loadPhoto();
00542     refreshScreen();
00543     
00544     //start auto-advance counter
00545     if(autoPlay)
00546       autoPlayTimer->start( (int)1000*autoPlayDelay, TRUE );
00547   }
00548   //otherwise show album cover page
00549   else { showCoverPage(); }   
00550 }

Subalbum * SlideshowWidget::getCurCollection (  ) 

returns a pointer to the currently visible collection

Definition at line 1067 of file presentationWidget.cpp.

References curCollection.

01067 { return curCollection; }

Photo * SlideshowWidget::getCurPhoto (  ) 

returns a pointer to the currently visible photo

Definition at line 1069 of file presentationWidget.cpp.

References curPhoto.

01069 { return curPhoto; }

void SlideshowWidget::paintEvent ( QPaintEvent *   )  [protected]

Definition at line 381 of file presentationWidget.cpp.

References screenBuffer.

00382 { 
00383   //blit the screen buffer to the screen
00384   bitBlt( this, 0, 0, &screenBuffer, 
00385           0, 0, screenBuffer.width(), screenBuffer.height(), 
00386           CopyROP, true );
00387 }

void SlideshowWidget::keyPressEvent ( QKeyEvent *  e  )  [protected]

Definition at line 140 of file presentationWidget.cpp.

References advanceCollection(), advancePhoto(), backupCollection(), backupPhoto(), contextMenuShown, decreaseTextSize(), displayDebugMessages, increaseTextSize(), refreshScreen(), skipToFirstPhoto(), skipToLastPhoto(), slowDown(), speedUp(), stop(), and toggleAutoPlay().

00141 {
00142   if(contextMenuShown)
00143   {
00144     e->ignore();
00145     return;
00146   }
00147   
00148   switch( e->key() )
00149   {
00150     case Qt::Key_Escape:
00151       stop();
00152       break;
00153     case Qt::Key_Return:
00154       toggleAutoPlay();
00155       break;
00156     case Qt::Key_Plus:
00157     case Qt::Key_Equal:
00158       //if control is pressed increase font size
00159       if(e->state() & Qt::ControlButton )
00160         increaseTextSize();
00161       else
00162         speedUp();
00163       break;
00164     case Qt::Key_Minus:
00165     case Qt::Key_Underscore:
00166       //if control is pressed decrease font size
00167       if(e->state() & Qt::ControlButton )
00168         decreaseTextSize();
00169       else
00170         slowDown();
00171       break;
00172     case Qt::Key_Left:
00173       backupPhoto();
00174       break;
00175     case Qt::Key_Right:
00176       advancePhoto();
00177       break;
00178     case Qt::Key_Up:
00179       backupCollection();
00180       break;
00181     case Qt::Key_Down:
00182       advanceCollection();
00183       break;
00184     case Qt::Key_Home:
00185       skipToFirstPhoto();
00186       break;
00187     case Qt::Key_End:
00188       skipToLastPhoto();
00189       break;
00190     case Qt::Key_D:
00191       displayDebugMessages = !displayDebugMessages;
00192       refreshScreen();
00193       break;     
00194     default:
00195       e->ignore(); 
00196   }
00197 }

void SlideshowWidget::mousePressEvent ( QMouseEvent *  e  )  [protected]

Definition at line 199 of file presentationWidget.cpp.

References advanceCollection(), advancePhoto(), backupCollection(), backupPhoto(), HIDE_MOUSE_DELAY, interfaceAlphaMask, mouseCursorTimer, mouseShown, pauseInterface, screenHeight, screenWidth, TEXT_MARGIN, and toggleAutoPlay().

00200 {
00201   //if not the left mouse button ignore
00202   if(e->button() != Qt::LeftButton)
00203     return;
00204   
00205   //if mouse is shown so is the control interface, check to see if
00206   //user clicked one of the interface buttons, if not
00207   //not advance to next photo as normal
00208   if( mouseShown )
00209   {
00210     bool buttonClicked = false;
00211     int x, y, w, h;
00212     w = pauseInterface.width();
00213     h = pauseInterface.height();
00214     x = ( screenWidth - w ) / 2;
00215     y = screenHeight - h - TEXT_MARGIN;
00216         
00217     //check if button pressed, must be within interface 
00218     //region and a non-transparent pixel
00219     if(e->pos().x() >= x && e->pos().y() >= y &&
00220        e->pos().x() <= x+w && e->pos().y() <= y+h &&
00221        interfaceAlphaMask.pixel(e->pos().x() - x, e->pos().y() - y) != 0)
00222     {        
00223       buttonClicked = true;
00224       
00225       //restart the countdown for hiding the mouse and interface
00226       mouseCursorTimer->stop();
00227       mouseCursorTimer->start( (int)HIDE_MOUSE_DELAY, TRUE );  
00228       
00229       int xMid = x + (w/2);
00230       int yMid = y + (h/2);
00231       int dx = e->pos().x() - xMid;
00232       int dy = e->pos().y() - yMid;
00233       int distSqrd = dx*dx + dy*dy;
00234       //center play/pause button is 55 pixels in radius
00235       if(distSqrd <= 3025)
00236         toggleAutoPlay();
00237       //else one of the other buttons has been pressed
00238       else
00239       {
00240         if(e->pos().x() < xMid)
00241         {
00242           //top left is prev photo button
00243           if(e->pos().y() < yMid)
00244             backupPhoto();
00245           //bottom left is prev collection button
00246           else
00247             backupCollection();
00248         }
00249         else
00250         {
00251           //top right is next photo button
00252           if(e->pos().y() < yMid)
00253             advancePhoto();
00254           //bottom right is next collection button
00255           else
00256            advanceCollection();
00257         }
00258       }
00259     }
00260     
00261   }
00262 }

void SlideshowWidget::mouseMoveEvent ( QMouseEvent *  e  )  [protected]

Definition at line 264 of file presentationWidget.cpp.

References HIDE_MOUSE_DELAY, mouseCursorTimer, mouseShown, paintOverlaidControls(), and photoLoaded.

00265 {
00266   //mouse move events often are triggered when we are exiting
00267   //don't restart hiding mouse in these scenarios
00268   if(!photoLoaded)
00269     return;
00270   
00271   mouseCursorTimer->stop();
00272   
00273   //restore the mouse cursor
00274   //hide again if inactive for three seconds
00275   //if mouse not already shown repaint
00276   if(!mouseShown)
00277   {
00278     qApp->restoreOverrideCursor();
00279     mouseShown = true;
00280     paintOverlaidControls();
00281   }
00282   
00283   mouseCursorTimer->start( (int)HIDE_MOUSE_DELAY, TRUE );  
00284 }

void SlideshowWidget::contextMenuEvent ( QContextMenuEvent *  e  )  [protected]

Definition at line 286 of file presentationWidget.cpp.

References advanceCollection(), advancePhoto(), autoPlay, autoPlayTimer, backupCollection(), backupPhoto(), contextMenuHiding(), contextMenuShown, decreaseTextSize(), IMAGE_PATH, increaseTextSize(), mouseCursorTimer, skipToFirstPhoto(), skipToLastPhoto(), slowDown(), speedUp(), stop(), and toggleAutoPlay().

00287 {
00288   //disable hiding the mouse cursor until the context menu is destroyed
00289   mouseCursorTimer->stop();
00290 
00291   //disable autoPlay temporarily while context menu is open, drop shadows look horrid if
00292   //photo scrolls while menu is up anyways
00293   autoPlayTimer->stop();
00294   
00295   QPopupMenu contextMenu(this);
00296   contextMenuShown = true;
00297   connect( &contextMenu, SIGNAL( aboutToHide() ), this, SLOT( contextMenuHiding() ) );
00298   
00299   if(autoPlay)  
00300     contextMenu.insertItem( QIconSet( QPixmap(QString(IMAGE_PATH)+"menuIcons/pause.png") ),
00301                             tr("Pause"), this, SLOT(toggleAutoPlay()), Key_Return );
00302   else                            
00303     contextMenu.insertItem( QIconSet( QPixmap(QString(IMAGE_PATH)+"menuIcons/play.png") ),
00304                             tr("Play"), this, SLOT(toggleAutoPlay()), Key_Return );
00305                             
00306   int speedUpID = contextMenu.insertItem( QIconSet( QPixmap(QString(IMAGE_PATH)+"menuIcons/speedUp.png") ),
00307                                            tr("Speed Up"), this, SLOT(speedUp()), Key_Plus );
00308   int slowDownID = contextMenu.insertItem( QIconSet( QPixmap(QString(IMAGE_PATH)+"menuIcons/slowDown.png") ),
00309                                             tr("Slow Down"), this, SLOT(slowDown()), Key_Minus );
00310                           
00311   //if not currently playing disable speeding up/slowing down options                          
00312   if(!autoPlay)
00313   {                          
00314     contextMenu.setItemEnabled( speedUpID, false );
00315     contextMenu.setItemEnabled( slowDownID, false );
00316   }
00317                   
00318   QPopupMenu navigateMenu(&contextMenu);
00319   navigateMenu.insertItem( QIconSet( QPixmap(QString(IMAGE_PATH)+"menuIcons/backupPhoto.png") ),
00320                           tr("Backup Photo"), this, SLOT(backupPhoto()), Key_Left );
00321   navigateMenu.insertItem( QIconSet( QPixmap(QString(IMAGE_PATH)+"menuIcons/advancePhoto.png") ),
00322                           tr("Advance Photo"), this, SLOT(advancePhoto()), Key_Right );
00323   navigateMenu.insertItem( QIconSet( QPixmap(QString(IMAGE_PATH)+"menuIcons/skipToFirstPhoto.png") ),
00324                           tr("Skip to First Photo"), this, SLOT(skipToFirstPhoto()), Key_Home );
00325   navigateMenu.insertItem( QIconSet( QPixmap(QString(IMAGE_PATH)+"menuIcons/skipToLastPhoto.png") ),
00326                           tr("Skip to Last Photo"), this, SLOT(skipToLastPhoto()), Key_End );
00327   navigateMenu.insertItem( QIconSet( QPixmap(QString(IMAGE_PATH)+"menuIcons/backupCollection.png") ),
00328                           tr("Backup Collection"), this, SLOT(backupCollection()), Key_Up );
00329   navigateMenu.insertItem( QIconSet( QPixmap(QString(IMAGE_PATH)+"menuIcons/advanceCollection.png") ),
00330                           tr("Advance Collection"), this, SLOT(advanceCollection()), Key_Down );
00331   contextMenu.insertItem( tr("Navigate"), &navigateMenu );
00332                                       
00333   contextMenu.insertItem( QIconSet( QPixmap(QString(IMAGE_PATH)+"menuIcons/increaseTextSize.png") ),
00334                           tr("Increase Text Size"), this, SLOT(increaseTextSize()), CTRL+Key_Plus );
00335   contextMenu.insertItem( QIconSet( QPixmap(QString(IMAGE_PATH)+"menuIcons/decreaseTextSize.png") ),
00336                           tr("Decrease Text Size"), this, SLOT(decreaseTextSize()), CTRL+Key_Minus );
00337   
00338   contextMenu.insertItem( QIconSet( QPixmap(QString(IMAGE_PATH)+"menuIcons/exit.png") ),
00339                           tr("Exit"), this, SLOT(stop()), Key_Escape );
00340                     
00341   contextMenu.exec( QPoint(e->globalX(), e->globalY()) );
00342   contextMenuShown = false;
00343 }

void SlideshowWidget::showCoverPage (  )  [protected]

Definition at line 552 of file presentationWidget.cpp.

References collectionNum, curAlbum, Album::getFirstSubalbum(), and showCollectionPage().

Referenced by beginSlideshow().

00553 {
00554   //for now just bring up first collection
00555   collectionNum = 1;
00556   showCollectionPage(curAlbum->getFirstSubalbum() );
00557 }

void SlideshowWidget::showCollectionPage ( Subalbum subalbum  )  [protected]

Definition at line 559 of file presentationWidget.cpp.

References autoPlay, autoPlayDelay, autoPlayTimer, curCollection, curPhoto, Subalbum::getFirst(), loadPhoto(), photoNum, and refreshScreen().

Referenced by showCoverPage().

00560 {
00561   //set subalbum pointer
00562   curCollection = subalbum;
00563   
00564   //for now load up first photo
00565   curPhoto = curCollection->getFirst();
00566   photoNum = 1;  
00567   
00568   loadPhoto();
00569   refreshScreen();
00570   if(autoPlay)
00571     autoPlayTimer->start( (int)1000*autoPlayDelay, TRUE );
00572 }

void SlideshowWidget::loadPhoto (  )  [protected]

Definition at line 389 of file presentationWidget.cpp.

References curPhoto, currImage, Photo::getImageFilename(), photoLoaded, prevImage, scaleImage(), screenHeight, and screenWidth.

Referenced by advanceCollection(), advancePhoto(), backupCollection(), backupPhoto(), beginSlideshow(), showCollectionPage(), skipToFirstPhoto(), and skipToLastPhoto().

00390 {
00391   //exchange prev and curr pointers
00392   QImage* tmp = prevImage;
00393   prevImage = currImage;
00394   currImage = tmp;
00395 
00396   //scale full size image to fit screen
00397   scaleImage( curPhoto->getImageFilename(),*currImage, 
00398               screenWidth, screenHeight );
00399   photoLoaded = true;                  
00400 }

void SlideshowWidget::showPhoto (  )  [protected]

Definition at line 402 of file presentationWidget.cpp.

References BL_TextBorder, Bottom_TextBorder, BR_TextBorder, curPhoto, currImage, fontSize, Photo::getDescription(), Left_TextBorder, paintBufferCurr, Right_TextBorder, screenHeight, TEXT_MARGIN, TL_TextBorder, Top_TextBorder, and TR_TextBorder.

Referenced by exchangePhotos(), and refreshScreen().

00403 { 
00404   QString tempString = "";
00405   int x, y;
00406   
00407   paintBufferCurr->fill(black);
00408   QPainter p;
00409   //------------------------------
00410   //paint photo
00411   p.begin( paintBufferCurr );
00412   p.drawImage( (paintBufferCurr->width() - currImage->width() ) / 2,
00413                (paintBufferCurr->height() - currImage->height() ) / 2,
00414                *currImage );
00415   //------------------------------
00416   //setup font stuff for writing text
00417   p.setPen(QColor("black"));
00418   QFont f( "times", fontSize, QFont::Bold );
00419   QFontMetrics fm( f );
00420   p.setFont( f );
00421   //------------------------------
00422   //paint description               
00423   tempString = curPhoto->getDescription();
00424   if(tempString.stripWhiteSpace().length() > 0)
00425   {
00426     x = TEXT_MARGIN;
00427     y = screenHeight - TEXT_MARGIN - fm.height() - 2*TL_TextBorder.height();
00428     //-------
00429     //top left corner
00430     p.drawImage( x, y, TL_TextBorder );
00431   
00432     //top edge                 
00433     p.drawImage( QRect( x + TL_TextBorder.width(), y, 
00434                         fm.width(tempString), TL_TextBorder.height() ), 
00435                  Top_TextBorder );
00436   
00437     //top right corner               
00438     p.drawImage( x + TL_TextBorder.width() + fm.width(tempString), 
00439                  y, TR_TextBorder );
00440     //-------
00441     //left edge                 
00442     p.drawImage( QRect( x, 
00443                         y + TL_TextBorder.height(), 
00444                         TL_TextBorder.width(), fm.height() ), 
00445                  Left_TextBorder );
00446   
00447     //right edge                 
00448     p.drawImage( QRect( x + TL_TextBorder.width() + fm.width(tempString), 
00449                         y + TL_TextBorder.height(), 
00450                         TL_TextBorder.width(), fm.height() ), 
00451                  Right_TextBorder );
00452     //-------
00453     //bottom left corner
00454     p.drawImage( x, 
00455                  y + TL_TextBorder.height() + fm.height(), BL_TextBorder );
00456     
00457     //bottom edge                 
00458     p.drawImage( QRect( x + TL_TextBorder.width(), 
00459                         y + TL_TextBorder.height() + fm.height(),
00460                         fm.width(tempString), TL_TextBorder.height() ), 
00461                  Bottom_TextBorder );
00462   
00463     //bottom right corner
00464     p.drawImage( x + TL_TextBorder.width() + fm.width(tempString), 
00465                  y + TL_TextBorder.height() + fm.height(), BR_TextBorder );
00466     //-------
00467     p.fillRect( x + TL_TextBorder.width(), y + TL_TextBorder.height(), 
00468                 fm.width(tempString), fm.height(), QBrush(QColor("white")) );
00469     p.drawText( x + TL_TextBorder.width(), y + TL_TextBorder.height() + fm.ascent(), tempString );
00470   }
00471   //------------------------------
00472   p.end();                 
00473 }  

void SlideshowWidget::refreshScreen (  )  [protected]

Definition at line 961 of file presentationWidget.cpp.

References paintBufferCurr, paintOverlaidControls(), screenBuffer, and showPhoto().

Referenced by animate(), beginSlideshow(), decreaseTextSize(), exchangePhotos(), hideMouse(), increaseTextSize(), keyPressEvent(), showCollectionPage(), slowDown(), speedUp(), and toggleAutoPlay().

00962 {
00963   //paint current photo to paintBufferCurr
00964   showPhoto();
00965   
00966   //blit to screen buffer    
00967   bitBlt( &screenBuffer, 0, 0, 
00968           paintBufferCurr, 
00969           0, 0, paintBufferCurr->width(), paintBufferCurr->height(), 
00970           CopyROP, true );
00971           
00972   //paint overlaid controls
00973   paintOverlaidControls();
00974 }

void SlideshowWidget::paintOverlaidControls (  )  [protected]

Definition at line 976 of file presentationWidget.cpp.

References autoPlay, autoPlayDelay, collectionNum, curAlbum, curCollection, displayAutoPlayDelay, displayDebugMessages, fontSize, Subalbum::getNumPhotos(), Album::getNumSubalbums(), mouseShown, pauseInterface, photoNum, playInterface, screenBuffer, screenHeight, screenWidth, speed1, speed2, speed4, speed8, and TEXT_MARGIN.

Referenced by animate(), mouseMoveEvent(), and refreshScreen().

00977 {
00978   QString tempString = "";
00979   int x, y;
00980   
00981   //setup painter to screen buffer for laying on top all top level widgets
00982   QPainter p;
00983   p.begin( &screenBuffer );
00984   //------------------------------
00985   //setup font stuff for writing text
00986   QFont f( "times", fontSize, QFont::Bold );
00987   QFontMetrics fm( f );
00988   p.setFont( f );
00989   //------------------------------
00990   //paint autoPlay delay
00991   if(autoPlay && displayAutoPlayDelay)
00992   {
00993     //get handle on right speed icon
00994     QImage* speedIcon;
00995     if(autoPlayDelay == 1) speedIcon = &speed1;
00996     else if(autoPlayDelay == 2) speedIcon = &speed2;
00997     else if(autoPlayDelay == 4) speedIcon = &speed4;
00998     else speedIcon = &speed8;
00999     
01000     int maxWidth = speed1.width();
01001     if(speed2.width() > maxWidth) maxWidth = speed2.width();
01002     if(speed4.width() > maxWidth) maxWidth = speed4.width();
01003     if(speed8.width() > maxWidth) maxWidth = speed8.width();
01004     
01005     int maxHeight = speed1.height();
01006     if(speed2.height() > maxHeight) maxHeight = speed2.height();
01007     if(speed4.height() > maxHeight) maxHeight = speed4.height();
01008     if(speed8.height() > maxHeight) maxHeight = speed8.height();
01009     
01010     x = screenWidth - TEXT_MARGIN - speedIcon->width() - (maxWidth - speedIcon->width())/2;
01011     y = screenHeight - TEXT_MARGIN - speedIcon->height() - (maxHeight - speedIcon->height())/2;
01012     
01013     p.drawImage( x, y, *speedIcon );
01014     displayAutoPlayDelay = false;
01015   }
01016   //------------------------------
01017   //if debugging enabled paint such messages
01018   if(displayDebugMessages)
01019   {
01020     //before debugging message set color to green
01021     p.setPen(QColor("green"));
01022     //------------------------------
01023     //paint collection number
01024     tempString = QString("(Collection %1 / %2)").arg(collectionNum).arg(curAlbum->getNumSubalbums());
01025     x = 0;
01026     y = 0;
01027     p.fillRect( x, y, fm.width(tempString), fm.height(), QBrush(QColor("black")) );
01028     p.drawText( x, y + fm.ascent(), tempString );
01029     //------------------------------
01030     //paint photo number
01031     tempString = QString("(Photo %1 / %2)").arg(photoNum).arg(curCollection->getNumPhotos());
01032     x = screenWidth - fm.width(tempString);
01033     y = 0;
01034     p.fillRect( x, y, fm.width(tempString), fm.height(), QBrush(QColor("black")) );
01035     p.drawText(x, y + fm.ascent(), tempString );
01036   }
01037   //------------------------------
01038   //if the mouse is shown paint the control interface
01039   if(mouseShown)
01040   {
01041     QImage* shownInterface;
01042     if(autoPlay)
01043       shownInterface = &pauseInterface;
01044     else
01045       shownInterface = &playInterface;
01046 
01047     x = ( screenWidth - shownInterface->width() ) / 2;
01048     y = screenHeight - shownInterface->height() - TEXT_MARGIN;
01049     p.drawImage( x, y, *shownInterface );
01050 
01051     //paint collection # and photo #
01052     f.setPointSize( 14 );      
01053     fm = QFontMetrics( f );
01054     tempString = QString("%1 / %2").arg(photoNum).arg(curCollection->getNumPhotos());
01055     x = x + (shownInterface->width() / 2) - (fm.width(tempString) / 2);
01056     y = y + 104;
01057     p.setFont( f );
01058     p.setPen(QColor("white"));
01059     p.drawText( x, y, tempString );
01060   }
01061   //------------------------------
01062   //ender painter and flast to screen
01063   p.end();
01064   repaint(false);
01065 }

void SlideshowWidget::exchangePhotos (  )  [protected]

Definition at line 929 of file presentationWidget.cpp.

References animate(), animating, delay, IMMEDIATE, initDelay, lastStep, lastTime, paintBufferCurr, paintBufferPrev, refreshScreen(), showPhoto(), step, and type.

Referenced by advanceCollection(), advancePhoto(), backupCollection(), backupPhoto(), skipToFirstPhoto(), and skipToLastPhoto().

00930 {
00931   //if transition is set to immediate then just show new photo
00932   if(type == IMMEDIATE)
00933   {
00934     refreshScreen();
00935     animating = false;
00936     return;
00937   }
00938   
00939   //setup step counter
00940   lastStep = 0;
00941   step = 0;
00942 
00943   //set initial delay/speed
00944   delay = initDelay;
00945 
00946   //exchange buffers
00947   QPixmap* temp = paintBufferCurr;
00948   paintBufferCurr = paintBufferPrev;
00949   paintBufferPrev = temp;
00950   
00951   //paint new image to curr buffer
00952   showPhoto();
00953   
00954   //find current time, used to decide how many new columns to reveal in first iteration
00955   lastTime.start();
00956   
00957   //begin animation
00958   animate();
00959 }

void SlideshowWidget::endSlideshow (  )  [signal]

Referenced by stop().

void SlideshowWidget::animate (  )  [private, slot]

Definition at line 796 of file presentationWidget.cpp.

References accel, animating, animatingTimer, autoPlay, autoPlayDelay, autoPlayTimer, currentTime, delay, displayDebugMessages, lastStep, lastTime, minDelay, paintBufferCurr, paintBufferPrev, paintOverlaidControls(), refreshScreen(), screenBuffer, screenHeight, screenWidth, SCROLL_DOWN, SCROLL_LEFT, SCROLL_RIGHT, SCROLL_UP, step, and type.

Referenced by exchangePhotos(), and SlideshowWidget().

00797 {
00798   //---------------------------------
00799   //determine new number of columns to be shown
00800     
00801   //determine # of ms that have passed since last redraw
00802   currentTime.start();
00803   double ms = lastTime.msecsTo(currentTime);
00804 
00805   //determine increment
00806   int inc = (int)(ms/delay);
00807 
00808   //if increment is not zero then update last time
00809   if(inc != 0)
00810   {
00811     lastTime = currentTime;
00812   }
00813 
00814   //update number of columns shown
00815   step+=inc;
00816   
00817   //boundary conditions
00818   if( step > screenWidth && (type == SCROLL_LEFT || type == SCROLL_RIGHT) )
00819     step = screenWidth;
00820   if( step > screenHeight && (type == SCROLL_UP || type == SCROLL_DOWN) )
00821     step = screenHeight;
00822   
00823   //if step changed then redraw
00824   if(step != lastStep) 
00825   {
00826     if(type == SCROLL_LEFT)
00827     {
00828       bitBlt( &screenBuffer, 0, 0, 
00829               paintBufferPrev, 
00830               step, 0, 
00831               paintBufferPrev->width() - step, paintBufferPrev->height(), 
00832               CopyROP, true );
00833       bitBlt( &screenBuffer, paintBufferCurr->width() - step, 0, 
00834               paintBufferCurr, 
00835               0, 0, step, paintBufferCurr->height(), 
00836               CopyROP, true );
00837     }
00838     else if(type == SCROLL_RIGHT)
00839     {
00840       bitBlt( &screenBuffer, step, 0, 
00841               paintBufferPrev, 
00842               0, 0, 
00843               paintBufferPrev->width() - step, paintBufferPrev->height(), 
00844               CopyROP, true );
00845       bitBlt( &screenBuffer, 0, 0, 
00846               paintBufferCurr, 
00847               paintBufferCurr->width() - step, 0, step, paintBufferCurr->height(), 
00848               CopyROP, true );
00849     }
00850     else if(type == SCROLL_UP)
00851     {
00852       bitBlt( &screenBuffer, 0, 0, 
00853               paintBufferPrev, 
00854               0, step,  
00855               paintBufferPrev->width(), paintBufferPrev->height() - step, 
00856               CopyROP, true );
00857       bitBlt( &screenBuffer, 0, paintBufferCurr->height() - step,
00858               paintBufferCurr, 
00859               0, 0, paintBufferCurr->width(), step,
00860               CopyROP, true );
00861     }
00862     else if(type == SCROLL_DOWN)
00863     {
00864       bitBlt( &screenBuffer, 0, step,
00865               paintBufferPrev, 
00866               0, 0, 
00867               paintBufferPrev->width(), paintBufferPrev->height() - step, 
00868               CopyROP, true );
00869       bitBlt( &screenBuffer, 0, 0, 
00870               paintBufferCurr, 
00871               0, paintBufferCurr->height() - step, paintBufferCurr->width(), step, 
00872               CopyROP, true );
00873     }
00874   
00875     //paint overlaid controls
00876     paintOverlaidControls();
00877     
00878     //blit to screen
00879     repaint(false);
00880      
00881     lastStep = step;
00882   
00883     //not done animating, reiterate
00884     if( 
00885         (
00886           step < screenWidth && 
00887           (type == SCROLL_LEFT || type == SCROLL_RIGHT) 
00888         ) ||
00889         (
00890           step < screenHeight && 
00891           (type == SCROLL_UP || type == SCROLL_DOWN) 
00892         )
00893       )
00894     {
00895       //update speed
00896       delay = delay * accel;
00897       if(delay < minDelay) delay = minDelay ;
00898 
00899       //restart timer
00900       animatingTimer->start( (int)delay, TRUE );
00901     }
00902     //done animating....
00903     else
00904     {
00905       animating = false;
00906       
00907       //if using debug messages use refreshScreen method which actually displays these.
00908       //such messages are laid on time and thus not shown when transitioning
00909       if(displayDebugMessages)
00910         refreshScreen();  
00911         
00912       //if autoplay is enabled restart timer
00913       if(autoPlay)
00914         autoPlayTimer->start( (int)1000*autoPlayDelay, TRUE );
00915     }
00916   }
00917   else
00918   {
00919     //update speed
00920     delay = delay * accel;
00921     if(delay < minDelay) delay = minDelay;
00922 
00923     //restart timer
00924     animatingTimer->start( (int)delay, TRUE );
00925   }
00926   //---------------------------------------
00927 }

void SlideshowWidget::advancePhoto (  )  [private, slot]

Definition at line 610 of file presentationWidget.cpp.

References advanceCollection(), animating, animatingMutex, autoPlayTimer, curPhoto, exchangePhotos(), Photo::getNext(), IMMEDIATE, loadPhoto(), photoNum, SCROLL_LEFT, type, and USE_ANIMATION.

Referenced by contextMenuEvent(), keyPressEvent(), mousePressEvent(), and SlideshowWidget().

00611 {
00612   //bail if currently animating
00613   animatingMutex.lock();
00614   if(animating)
00615   {
00616     animatingMutex.unlock();      
00617     return;
00618   }
00619   
00620   //stop autoPlay timer so next advance only occur after delay after advance is complete
00621   autoPlayTimer->stop();
00622    
00623   animating = true;
00624   if(USE_ANIMATION)
00625     type = SCROLL_LEFT;
00626   else
00627     type = IMMEDIATE;
00628   animatingMutex.unlock();      
00629   
00630   if(curPhoto->getNext() == NULL) 
00631   {  advanceCollection(); }
00632   else
00633   {
00634     //load and display new photo
00635     curPhoto = curPhoto->getNext();
00636     photoNum++;
00637     loadPhoto();
00638     exchangePhotos();
00639   }
00640 }

void SlideshowWidget::backupPhoto (  )  [private, slot]

Definition at line 642 of file presentationWidget.cpp.

References animating, animatingMutex, backupCollection(), curPhoto, exchangePhotos(), Photo::getPrev(), IMMEDIATE, loadPhoto(), photoNum, SCROLL_RIGHT, type, and USE_ANIMATION.

Referenced by contextMenuEvent(), keyPressEvent(), and mousePressEvent().

00643 {
00644   //bail if currently animating
00645   animatingMutex.lock();
00646   if(animating)
00647   {
00648     animatingMutex.unlock();      
00649     return;
00650   }
00651   
00652   animating = true;
00653   if(USE_ANIMATION)
00654     type = SCROLL_RIGHT;
00655   else
00656     type = IMMEDIATE;
00657   animatingMutex.unlock();      
00658   
00659   if(curPhoto->getPrev() == NULL) 
00660   {  backupCollection(); }
00661   else
00662   {
00663   //load and display new photo
00664   curPhoto = curPhoto->getPrev();
00665   photoNum--;   
00666   loadPhoto();
00667   exchangePhotos();
00668 }
00669 }

void SlideshowWidget::skipToFirstPhoto (  )  [private, slot]

Definition at line 671 of file presentationWidget.cpp.

References animating, animatingMutex, curCollection, curPhoto, exchangePhotos(), Subalbum::getFirst(), IMMEDIATE, loadPhoto(), photoNum, SCROLL_RIGHT, type, and USE_ANIMATION.

Referenced by contextMenuEvent(), and keyPressEvent().

00672 {
00673   //bail if already at first photo in collection
00674   if(curPhoto == curCollection->getFirst())
00675     return;
00676   
00677   //bail if currently animating
00678   animatingMutex.lock();
00679   if(animating)
00680   {
00681     animatingMutex.unlock();      
00682     return;
00683   }
00684   
00685   animating = true;
00686   if(USE_ANIMATION)
00687     type = SCROLL_RIGHT;
00688   else
00689     type = IMMEDIATE;
00690   animatingMutex.unlock();      
00691   
00692   curPhoto = curCollection->getFirst();
00693   photoNum = 1;    
00694   //load and display new photo
00695   loadPhoto();
00696   exchangePhotos();
00697 }

void SlideshowWidget::skipToLastPhoto (  )  [private, slot]

Definition at line 699 of file presentationWidget.cpp.

References animating, animatingMutex, curCollection, curPhoto, exchangePhotos(), Subalbum::getLast(), Subalbum::getNumPhotos(), IMMEDIATE, loadPhoto(), photoNum, SCROLL_LEFT, type, and USE_ANIMATION.

Referenced by contextMenuEvent(), and keyPressEvent().

00700 {
00701   //bail if already at last photo in collection
00702   if(curPhoto == curCollection->getLast())
00703     return;
00704   
00705   //bail if currently animating
00706   animatingMutex.lock();
00707   if(animating)
00708   {
00709     animatingMutex.unlock();      
00710     return;
00711   }
00712   
00713   animating = true;
00714   if(USE_ANIMATION)
00715     type = SCROLL_LEFT;
00716   else
00717     type = IMMEDIATE;
00718   animatingMutex.unlock();      
00719   
00720   curPhoto = curCollection->getLast();
00721   photoNum = curCollection->getNumPhotos();  
00722   
00723   //load and display new photo
00724   loadPhoto();
00725   exchangePhotos();
00726 }

void SlideshowWidget::advanceCollection (  )  [private, slot]

Definition at line 728 of file presentationWidget.cpp.

References collectionNum, curAlbum, curCollection, curPhoto, exchangePhotos(), Subalbum::getFirst(), Album::getFirstSubalbum(), Subalbum::getNext(), IMMEDIATE, loadPhoto(), photoNum, SCROLL_RIGHT, SCROLL_UP, type, and USE_ANIMATION.

Referenced by advancePhoto(), contextMenuEvent(), keyPressEvent(), and mousePressEvent().

00729 {
00730   if(USE_ANIMATION)
00731   {
00732     if(curCollection->getNext() == NULL &&
00733        curCollection == curAlbum->getFirstSubalbum() )
00734       type = SCROLL_RIGHT;
00735     else
00736       type = SCROLL_UP;
00737   }
00738   else
00739     type = IMMEDIATE;
00740 
00741   //keep advancing collections until we find one with a photo in it
00742   curPhoto = NULL;
00743   while(curPhoto == NULL)
00744   {  
00745     curCollection = curCollection->getNext();
00746     collectionNum++;
00747     if(!curCollection)
00748     {
00749       curCollection = curAlbum->getFirstSubalbum();
00750       collectionNum = 1;
00751     }
00752     
00753     curPhoto = curCollection->getFirst();
00754   }
00755   photoNum = 1;
00756   
00757   //load and display new photo
00758   loadPhoto();
00759   exchangePhotos();
00760 }

void SlideshowWidget::backupCollection (  )  [private, slot]

Definition at line 762 of file presentationWidget.cpp.

References collectionNum, curAlbum, curCollection, curPhoto, exchangePhotos(), Subalbum::getLast(), Album::getLastSubalbum(), Subalbum::getNumPhotos(), Album::getNumSubalbums(), Subalbum::getPrev(), IMMEDIATE, loadPhoto(), photoNum, SCROLL_DOWN, SCROLL_RIGHT, type, and USE_ANIMATION.

Referenced by backupPhoto(), contextMenuEvent(), keyPressEvent(), and mousePressEvent().

00763 {
00764   if(USE_ANIMATION)
00765   {
00766     if(curCollection->getPrev() == NULL &&
00767        curCollection == curAlbum->getLastSubalbum() )
00768       type = SCROLL_RIGHT;
00769     else
00770       type = SCROLL_DOWN;
00771   }
00772   else
00773     type = IMMEDIATE;
00774   
00775   //keep backing up collections until we find one with a photo in it
00776   curPhoto = NULL;
00777   while(curPhoto == NULL)
00778   {
00779     curCollection = curCollection->getPrev();
00780     collectionNum--;
00781     if(!curCollection)
00782     {
00783       curCollection = curAlbum->getLastSubalbum();
00784       collectionNum = curAlbum->getNumSubalbums();
00785     } 
00786        
00787     curPhoto = curCollection->getLast();
00788   }
00789   photoNum = curCollection->getNumPhotos();
00790   
00791   //load and display new photo
00792   loadPhoto();
00793   exchangePhotos();
00794 }

void SlideshowWidget::hideMouse (  )  [private, slot]

Definition at line 374 of file presentationWidget.cpp.

References mouseShown, and refreshScreen().

Referenced by SlideshowWidget().

00375 {
00376   qApp->setOverrideCursor( QCursor(Qt::BlankCursor));
00377   mouseShown = false;
00378   refreshScreen();
00379 }

void SlideshowWidget::toggleAutoPlay (  )  [private, slot]

Definition at line 357 of file presentationWidget.cpp.

References autoPlay, autoPlayDelay, autoPlayTimer, displayAutoPlayDelay, and refreshScreen().

Referenced by contextMenuEvent(), keyPressEvent(), and mousePressEvent().

00358 {
00359   if(autoPlay)
00360   {
00361     autoPlayTimer->stop();
00362     autoPlay = false;
00363     refreshScreen(); 
00364   }
00365   else
00366   {
00367     displayAutoPlayDelay = true;
00368     autoPlay = true;      
00369     refreshScreen();
00370     autoPlayTimer->start( (int)1000*autoPlayDelay, TRUE );
00371   }
00372 }

void SlideshowWidget::stop (  )  [private, slot]

Definition at line 116 of file presentationWidget.cpp.

References animatingTimer, autoPlayTimer, endSlideshow(), mouseCursorTimer, mouseShown, and photoLoaded.

Referenced by contextMenuEvent(), and keyPressEvent().

00117 {
00118   //stop auto-advance, animation, and hiding mouse cursor timers
00119   autoPlayTimer->stop();
00120   animatingTimer->stop();
00121   mouseCursorTimer->stop();
00122   
00123   //set the photo loaded bool to false to
00124   //force loading the first photo the next time
00125   //we start a presentation
00126   photoLoaded = false;
00127   
00128   //restore the mouse cursor if it was hidden
00129   if(!mouseShown)
00130   {
00131     qApp->restoreOverrideCursor();
00132     mouseShown = true;
00133   }
00134   
00135   //emit exiting signal indicating to hide 
00136   //this widget and show normal widgets again
00137   emit endSlideshow();
00138 }

void SlideshowWidget::speedUp (  )  [private, slot]

Definition at line 574 of file presentationWidget.cpp.

References autoPlay, autoPlayDelay, autoPlayTimer, displayAutoPlayDelay, and refreshScreen().

Referenced by contextMenuEvent(), and keyPressEvent().

00575 {
00576   if(autoPlay && autoPlayDelay > 1)
00577   {
00578     autoPlayTimer->stop();
00579     autoPlayDelay = autoPlayDelay / 2;
00580     displayAutoPlayDelay = true;
00581     refreshScreen();
00582     autoPlayTimer->start( (int)1000*autoPlayDelay, TRUE );
00583   }
00584 }

void SlideshowWidget::slowDown (  )  [private, slot]

Definition at line 586 of file presentationWidget.cpp.

References autoPlay, autoPlayDelay, autoPlayTimer, displayAutoPlayDelay, and refreshScreen().

Referenced by contextMenuEvent(), and keyPressEvent().

00587 {
00588   if(autoPlay && autoPlayDelay < 8)
00589   {
00590     autoPlayTimer->stop();
00591     autoPlayDelay = autoPlayDelay * 2;
00592     displayAutoPlayDelay = true;
00593     refreshScreen();
00594     autoPlayTimer->start( (int)1000*autoPlayDelay, TRUE );
00595   }
00596 }

void SlideshowWidget::increaseTextSize (  )  [private, slot]

Definition at line 598 of file presentationWidget.cpp.

References fontSize, and refreshScreen().

Referenced by contextMenuEvent(), and keyPressEvent().

00599 {
00600   fontSize++;
00601   refreshScreen();
00602 }

void SlideshowWidget::decreaseTextSize (  )  [private, slot]

Definition at line 604 of file presentationWidget.cpp.

References fontSize, and refreshScreen().

Referenced by contextMenuEvent(), and keyPressEvent().

00605 {
00606   fontSize--;
00607   refreshScreen();
00608 }

void SlideshowWidget::contextMenuHiding (  )  [private, slot]

Definition at line 345 of file presentationWidget.cpp.

References autoPlay, autoPlayDelay, autoPlayTimer, contextMenuHidingBool, HIDE_MOUSE_DELAY, and mouseCursorTimer.

Referenced by contextMenuEvent().

00346 {
00347   contextMenuHidingBool = true;
00348   
00349   //start back up timer for hiding the mouse cursor
00350   mouseCursorTimer->start( (int)HIDE_MOUSE_DELAY, TRUE );  
00351 
00352   //if autoPlay is enabled start that timer back up too
00353   if(autoPlay)
00354     autoPlayTimer->start( (int)1000*autoPlayDelay, TRUE );
00355 }


Member Data Documentation

QString SlideshowWidget::themePath [private]

Definition at line 119 of file presentationWidget.h.

Album* SlideshowWidget::curAlbum [private]

Definition at line 120 of file presentationWidget.h.

Referenced by advanceCollection(), backupCollection(), beginSlideshow(), paintOverlaidControls(), showCoverPage(), and SlideshowWidget().

Subalbum* SlideshowWidget::curCollection [private]

Definition at line 121 of file presentationWidget.h.

Referenced by advanceCollection(), backupCollection(), beginSlideshow(), getCurCollection(), paintOverlaidControls(), showCollectionPage(), skipToFirstPhoto(), skipToLastPhoto(), and SlideshowWidget().

Photo* SlideshowWidget::curPhoto [private]

Definition at line 122 of file presentationWidget.h.

Referenced by advanceCollection(), advancePhoto(), backupCollection(), backupPhoto(), beginSlideshow(), getCurPhoto(), loadPhoto(), showCollectionPage(), showPhoto(), skipToFirstPhoto(), skipToLastPhoto(), and SlideshowWidget().

int SlideshowWidget::photoNum [private]

Definition at line 124 of file presentationWidget.h.

Referenced by advanceCollection(), advancePhoto(), backupCollection(), backupPhoto(), beginSlideshow(), paintOverlaidControls(), showCollectionPage(), skipToFirstPhoto(), skipToLastPhoto(), and SlideshowWidget().

int SlideshowWidget::collectionNum [private]

Definition at line 124 of file presentationWidget.h.

Referenced by advanceCollection(), backupCollection(), beginSlideshow(), paintOverlaidControls(), showCoverPage(), and SlideshowWidget().

bool SlideshowWidget::photoLoaded [private]

Definition at line 126 of file presentationWidget.h.

Referenced by loadPhoto(), mouseMoveEvent(), SlideshowWidget(), and stop().

QImage SlideshowWidget::scaledImage1 [private]

Definition at line 128 of file presentationWidget.h.

Referenced by SlideshowWidget().

QImage SlideshowWidget::scaledImage2 [private]

Definition at line 128 of file presentationWidget.h.

Referenced by SlideshowWidget().

QImage* SlideshowWidget::currImage [private]

Definition at line 129 of file presentationWidget.h.

Referenced by loadPhoto(), showPhoto(), and SlideshowWidget().

QImage* SlideshowWidget::prevImage [private]

Definition at line 130 of file presentationWidget.h.

Referenced by loadPhoto(), and SlideshowWidget().

QImage SlideshowWidget::Top_TextBorder [private]

Definition at line 132 of file presentationWidget.h.

Referenced by beginSlideshow(), and showPhoto().

QImage SlideshowWidget::Bottom_TextBorder [private]

Definition at line 132 of file presentationWidget.h.

Referenced by beginSlideshow(), and showPhoto().

QImage SlideshowWidget::Left_TextBorder [private]

Definition at line 132 of file presentationWidget.h.

Referenced by beginSlideshow(), and showPhoto().

QImage SlideshowWidget::Right_TextBorder [private]

Definition at line 132 of file presentationWidget.h.

Referenced by beginSlideshow(), and showPhoto().

QImage SlideshowWidget::TL_TextBorder [private]

Definition at line 132 of file presentationWidget.h.

Referenced by beginSlideshow(), and showPhoto().

QImage SlideshowWidget::TR_TextBorder [private]

Definition at line 132 of file presentationWidget.h.

Referenced by beginSlideshow(), and showPhoto().

QImage SlideshowWidget::BL_TextBorder [private]

Definition at line 132 of file presentationWidget.h.

Referenced by beginSlideshow(), and showPhoto().

QImage SlideshowWidget::BR_TextBorder [private]

Definition at line 132 of file presentationWidget.h.

Referenced by beginSlideshow(), and showPhoto().

QPixmap* SlideshowWidget::paintBufferPrev [private]

Definition at line 138 of file presentationWidget.h.

Referenced by animate(), exchangePhotos(), and SlideshowWidget().

QPixmap * SlideshowWidget::paintBufferCurr [private]

Definition at line 138 of file presentationWidget.h.

Referenced by animate(), exchangePhotos(), refreshScreen(), showPhoto(), and SlideshowWidget().

QPixmap SlideshowWidget::paintBuffer1 [private]

Definition at line 139 of file presentationWidget.h.

Referenced by SlideshowWidget().

QPixmap SlideshowWidget::paintBuffer2 [private]

Definition at line 139 of file presentationWidget.h.

Referenced by SlideshowWidget().

QPixmap SlideshowWidget::screenBuffer [private]

Definition at line 139 of file presentationWidget.h.

Referenced by animate(), paintEvent(), paintOverlaidControls(), refreshScreen(), and SlideshowWidget().

QImage SlideshowWidget::speed1 [private]

Definition at line 142 of file presentationWidget.h.

Referenced by paintOverlaidControls(), and SlideshowWidget().

QImage SlideshowWidget::speed2 [private]

Definition at line 142 of file presentationWidget.h.

Referenced by paintOverlaidControls(), and SlideshowWidget().

QImage SlideshowWidget::speed4 [private]

Definition at line 142 of file presentationWidget.h.

Referenced by paintOverlaidControls(), and SlideshowWidget().

QImage SlideshowWidget::speed8 [private]

Definition at line 142 of file presentationWidget.h.

Referenced by paintOverlaidControls(), and SlideshowWidget().

QImage SlideshowWidget::pauseInterface [private]

Definition at line 145 of file presentationWidget.h.

Referenced by mousePressEvent(), paintOverlaidControls(), and SlideshowWidget().

QImage SlideshowWidget::playInterface [private]

Definition at line 145 of file presentationWidget.h.

Referenced by paintOverlaidControls(), and SlideshowWidget().

QImage SlideshowWidget::interfaceAlphaMask [private]

Definition at line 145 of file presentationWidget.h.

Referenced by mousePressEvent(), and SlideshowWidget().

int SlideshowWidget::screenWidth [private]

Definition at line 148 of file presentationWidget.h.

Referenced by animate(), loadPhoto(), mousePressEvent(), paintOverlaidControls(), and SlideshowWidget().

int SlideshowWidget::screenHeight [private]

Definition at line 148 of file presentationWidget.h.

Referenced by animate(), loadPhoto(), mousePressEvent(), paintOverlaidControls(), showPhoto(), and SlideshowWidget().

int SlideshowWidget::lastStep [private]

Definition at line 151 of file presentationWidget.h.

Referenced by animate(), and exchangePhotos().

int SlideshowWidget::step [private]

Definition at line 151 of file presentationWidget.h.

Referenced by animate(), and exchangePhotos().

double SlideshowWidget::initDelay [private]

Definition at line 152 of file presentationWidget.h.

Referenced by exchangePhotos(), and SlideshowWidget().

double SlideshowWidget::minDelay [private]

Definition at line 152 of file presentationWidget.h.

Referenced by animate(), and SlideshowWidget().

double SlideshowWidget::delay [private]

Definition at line 152 of file presentationWidget.h.

Referenced by animate(), and exchangePhotos().

double SlideshowWidget::accel [private]

Definition at line 152 of file presentationWidget.h.

Referenced by animate(), and SlideshowWidget().

QTimer* SlideshowWidget::autoPlayTimer [private]

Definition at line 155 of file presentationWidget.h.

Referenced by advancePhoto(), animate(), beginSlideshow(), contextMenuEvent(), contextMenuHiding(), showCollectionPage(), SlideshowWidget(), slowDown(), speedUp(), stop(), and toggleAutoPlay().

int SlideshowWidget::autoPlayDelay [private]

Definition at line 156 of file presentationWidget.h.

Referenced by animate(), beginSlideshow(), contextMenuHiding(), paintOverlaidControls(), showCollectionPage(), SlideshowWidget(), slowDown(), speedUp(), and toggleAutoPlay().

bool SlideshowWidget::autoPlay [private]

Definition at line 157 of file presentationWidget.h.

Referenced by animate(), beginSlideshow(), contextMenuEvent(), contextMenuHiding(), paintOverlaidControls(), showCollectionPage(), SlideshowWidget(), slowDown(), speedUp(), and toggleAutoPlay().

bool SlideshowWidget::displayAutoPlayDelay [private]

Definition at line 158 of file presentationWidget.h.

Referenced by beginSlideshow(), paintOverlaidControls(), SlideshowWidget(), slowDown(), speedUp(), and toggleAutoPlay().

QTimer* SlideshowWidget::animatingTimer [private]

Definition at line 161 of file presentationWidget.h.

Referenced by animate(), SlideshowWidget(), and stop().

QTime SlideshowWidget::lastTime [private]

Definition at line 162 of file presentationWidget.h.

Referenced by animate(), and exchangePhotos().

QTime SlideshowWidget::currentTime [private]

Definition at line 162 of file presentationWidget.h.

Referenced by animate().

bool SlideshowWidget::animating [private]

Definition at line 165 of file presentationWidget.h.

Referenced by advancePhoto(), animate(), backupPhoto(), exchangePhotos(), skipToFirstPhoto(), skipToLastPhoto(), and SlideshowWidget().

ANIMATION_TYPE SlideshowWidget::type [private]

Definition at line 166 of file presentationWidget.h.

Referenced by advanceCollection(), advancePhoto(), animate(), backupCollection(), backupPhoto(), exchangePhotos(), skipToFirstPhoto(), skipToLastPhoto(), and SlideshowWidget().

QMutex SlideshowWidget::animatingMutex [private]

Definition at line 167 of file presentationWidget.h.

Referenced by advancePhoto(), backupPhoto(), skipToFirstPhoto(), and skipToLastPhoto().

bool SlideshowWidget::displayDebugMessages [private]

Definition at line 170 of file presentationWidget.h.

Referenced by animate(), beginSlideshow(), keyPressEvent(), paintOverlaidControls(), and SlideshowWidget().

int SlideshowWidget::fontSize [private]

Definition at line 173 of file presentationWidget.h.

Referenced by beginSlideshow(), decreaseTextSize(), increaseTextSize(), paintOverlaidControls(), and showPhoto().

QTimer* SlideshowWidget::mouseCursorTimer [private]

Definition at line 176 of file presentationWidget.h.

Referenced by contextMenuEvent(), contextMenuHiding(), mouseMoveEvent(), mousePressEvent(), SlideshowWidget(), and stop().

bool SlideshowWidget::mouseShown [private]

Definition at line 177 of file presentationWidget.h.

Referenced by beginSlideshow(), hideMouse(), mouseMoveEvent(), mousePressEvent(), paintOverlaidControls(), and stop().

bool SlideshowWidget::contextMenuShown [private]

Definition at line 180 of file presentationWidget.h.

Referenced by contextMenuEvent(), keyPressEvent(), and SlideshowWidget().

bool SlideshowWidget::contextMenuHidingBool [private]

Definition at line 181 of file presentationWidget.h.

Referenced by contextMenuHiding(), and SlideshowWidget().


The documentation for this class was generated from the following files:
Generated on Thu Jan 3 10:54:44 2008 for AlbumShaper by  doxygen 1.5.4