AlbumShaper
1.0a3
|
#include <photoDescEdit.h>
Public Slots | |
void | hide () |
Public Member Functions | |
PhotoDescEdit (PhotoPreviewWidget *ppw, bool useAnimation, QWidget *parent=0, const char *name=0) | |
~PhotoDescEdit () | |
Private Slots | |
void | animate () |
this method is iteratively called and animates the opening/closing of the image | |
void | disappear () |
this method is called by the acceptAndClose and rejectAndClose slots and actually initiates the closing process | |
Private Attributes | |
bool | useAnimation |
actually animate the opening/closing process? | |
PhotoPreviewWidget * | ppw |
photo preview widget pointer | |
QImage * | imageLarge |
beginning and end pixmaps | |
QImage * | textRectangle |
text area widget used to computing painting surface | |
QPoint | initPos |
QPoint | finalPos |
int | left |
bounaries of entire animation | |
int | right |
int | top |
int | bottom |
int | idealTextSize |
ultimate text dimension | |
QPixmap * | backgroundImage |
this pixmap contains the screen contents for the entire region which we will be painting on top of | |
int | smallWidth |
small size | |
int | smallHeight |
QGridLayout * | mainGrid |
QLabel * | animationLabel |
label which shows moving and expanding photo on background | |
QPixmap * | buffer |
buffer we'll iteratively update and use for the label which shows the animation taking place | |
QGridLayout * | staticGrid |
grid static widgets placed in | |
QWidget * | staticFrame |
frame which contains static widget | |
QLabel * | staticPhoto |
photo being displayed | |
TextEdit * | photoDesc |
photo description | |
int | initDelay |
int | accel |
int | minDelay |
int | step |
int | delay |
int | mode |
bool | dropShadowsEnabled |
are drop shadows enabled in windows (xp)? | |
QTimer * | timer |
QTime | lastTime |
QTime | currentTime |
Definition at line 35 of file photoDescEdit.h.
PhotoDescEdit::PhotoDescEdit | ( | PhotoPreviewWidget * | ppw, |
bool | useAnimation, | ||
QWidget * | parent = 0 , |
||
const char * | name = 0 |
||
) |
Definition at line 47 of file photoDescEdit.cpp.
References accel, animate(), animationLabel, APPEARING, backgroundImage, bottom, buffer, calcScaledImageDimensions(), delay, disappear(), dropShadowsEnabled, EDIT_MARGIN, finalPos, Photo::getDescription(), Photo::getImageFilename(), getImageSize(), PhotoPreviewWidget::getPhoto(), PhotoPreviewWidget::getPhotoPos(), Photo::getSlideshowFilename(), Photo::getThumbnailFilename(), idealTextSize, imageLarge, initDelay, initPos, lastTime, left, mainGrid, minDelay, mode, TextEdit::paintNow(), photoDesc, ppw, right, smallHeight, smallWidth, STATIC, staticFrame, staticGrid, staticPhoto, step, textRectangle, timer, top, and useAnimation.
: QWidget(parent,name, Qt::WStyle_Customize | #if defined(Q_OS_MACX) Qt::WStyle_Splash ) #else Qt::WStyle_NoBorder | Qt::WType_Popup ) #endif { //PLATFORM_SPECIFIC_CODE //disable drop shadow on mac os x #if defined(Q_OS_MACX) ChangeWindowAttributes( (OpaqueWindowPtr*)winId(), kWindowNoShadowAttribute, kWindowNoAttributes ); #endif //PLATFORM_SPECIFIC_CODE //disable drop shadow on win xp #if defined(Q_OS_WIN) SystemParametersInfo( SPI_GETDROPSHADOW, 0, &dropShadowsEnabled, 0 ); SystemParametersInfo( SPI_SETDROPSHADOW, 0, NULL, 0 ); #endif this->ppw = ppw; //----------------------------------------------- //don't erase before painting, avoids flicker setWFlags(WNoAutoErase); //----------------------------------------------- //determine small image size getImageSize( ppw->getPhoto()->getThumbnailFilename(), smallWidth, smallHeight ); //------------------------------------------- QRect appRec = qApp->mainWidget()->frameGeometry(); int finalWidth, finalHeight; int actualFinalWidth, actualFinalHeight; //image is wider than tall, place text and buttons below image if(smallWidth > smallHeight ) { finalWidth = 400; finalHeight = (finalWidth * smallHeight) / smallWidth; //fix width if(finalWidth +2*EDIT_MARGIN> appRec.width()) { finalWidth = appRec.width() - 2*EDIT_MARGIN; finalHeight = (finalWidth * smallHeight) / smallWidth; } //fix height QFontMetrics fm( qApp->font() ); idealTextSize = 4*fm.height() + 5*fm.leading() + 4; if(finalHeight + idealTextSize + 2*EDIT_MARGIN > appRec.height() ) { finalHeight = appRec.height() - idealTextSize - 2*EDIT_MARGIN; finalWidth = (finalHeight * smallWidth) / smallHeight; } //sanity check if(finalHeight < 0) { finalHeight = (appRec.height() - 2*EDIT_MARGIN) / 2; finalWidth = (finalHeight * smallWidth) / smallHeight; idealTextSize = finalHeight; } actualFinalWidth = finalWidth + 2*EDIT_MARGIN; actualFinalHeight = finalHeight + idealTextSize + 2*EDIT_MARGIN; //an additional fudge is necessary for MacOSX, not sure why #if defined(Q_OS_MACX) actualFinalHeight+=2; #endif } //image is taller than wide, text and buttons will be placed to the right else { finalHeight = 300; finalWidth = (finalHeight * smallWidth) / smallHeight; //fix height if(finalHeight + 2*EDIT_MARGIN > appRec.height()) { finalHeight = appRec.height() - 2*EDIT_MARGIN; finalWidth = (finalHeight * smallWidth) / smallHeight; } //fix width QString calibrationString( qApp->translate("PhotoDescEdit", "This is the photo description calibration string.") ); QFontMetrics fm( qApp->font() ); idealTextSize = fm.width( calibrationString ); if(finalWidth + idealTextSize + 2*EDIT_MARGIN > appRec.width() ) { finalWidth = appRec.width() - idealTextSize - 2*EDIT_MARGIN; finalHeight = (finalWidth * smallHeight) / smallWidth; } //sanity check if(finalWidth < 0) { finalWidth = (appRec.width() - 2*EDIT_MARGIN) / 2; finalHeight = (finalWidth * smallHeight) / smallWidth; idealTextSize = finalWidth; } actualFinalWidth = finalWidth + idealTextSize + 2*EDIT_MARGIN; actualFinalHeight = finalHeight + 2*EDIT_MARGIN; } //----------------------------------------------- //setup scaled up image //find full size photo dimensions, if unable to then use scaled up thumbnail image int fullWidth, fullHeight; if(!getImageSize( ppw->getPhoto()->getImageFilename(), fullWidth, fullHeight ) ) { imageLarge = new QImage( QImage( ppw->getPhoto()->getThumbnailFilename()). scale(finalWidth,finalHeight, QImage::ScaleFree )); } //else find cropped region of slideshow image using these dimensions else { //load padded slideshow image QImage paddedSSImage( ppw->getPhoto()->getSlideshowFilename() ); //unpadded dimensions int actualWidth, actualHeight; calcScaledImageDimensions( fullWidth, fullHeight, paddedSSImage.width(), paddedSSImage.height(), actualWidth, actualHeight ); //construct new image with padding removed int leftOffset = (paddedSSImage.width() - actualWidth) / 2; int topOffset = (paddedSSImage.height() - actualHeight) / 2; QImage SSImage( actualWidth, actualHeight, paddedSSImage.depth() ); int x, y; for(x=0; x<actualWidth; x++) { for(y=0; y<actualHeight; y++) { SSImage.setPixel( x, y, red.rgb() ); SSImage.setPixel( x, y, paddedSSImage.pixel(x+leftOffset, y+topOffset) ); } } imageLarge = new QImage(SSImage.smoothScale(finalWidth,finalHeight, QImage::ScaleFree )); } //----------------------------------------------- //construct final text area pixmap used for morphing text region TextEdit tmpTextEdit; tmpTextEdit.setText( ppw->getPhoto()->getDescription() ); if(smallWidth > smallHeight ) tmpTextEdit.resize( finalWidth, idealTextSize ); else tmpTextEdit.resize( idealTextSize, finalHeight ); tmpTextEdit.setLineWidth( 0 ); tmpTextEdit.setMargin( 0 ); tmpTextEdit.setMidLineWidth( 0 ); tmpTextEdit.setFrameStyle( QFrame::NoFrame | QFrame::Plain ); tmpTextEdit.setWrapPolicy( QTextEdit::AtWordOrDocumentBoundary ); tmpTextEdit.constPolish(); tmpTextEdit.polish(); tmpTextEdit.setWordWrap( QTextEdit::FixedPixelWidth ); if(smallWidth > smallHeight ) tmpTextEdit.setWrapColumnOrWidth( finalWidth ); else tmpTextEdit.setWrapColumnOrWidth( idealTextSize ); tmpTextEdit.updateScrollBars(); tmpTextEdit.constPolish(); tmpTextEdit.polish(); if(smallWidth > smallHeight ) { if(tmpTextEdit.lines() > 4) { tmpTextEdit.setWrapColumnOrWidth( finalWidth - tmpTextEdit.verticalScrollBar()->width() ); tmpTextEdit.updateScrollBars(); tmpTextEdit.constPolish(); tmpTextEdit.polish(); } } else { QFontMetrics fm( qApp->font() ); if(tmpTextEdit.lines() > idealTextSize / (fm.leading() + fm.height()) ) { tmpTextEdit.setWrapColumnOrWidth( idealTextSize - tmpTextEdit.verticalScrollBar()->width() ); tmpTextEdit.updateScrollBars(); tmpTextEdit.constPolish(); tmpTextEdit.polish(); } } //paint to pixmap tmpTextEdit.paintNow(); textRectangle = new QImage( QPixmap::grabWidget(&tmpTextEdit).convertToImage() ); //----------------------------------------------- //set beginning and end positions initPos = ppw->getPhotoPos(); //offset by margin initPos += QPoint( -EDIT_MARGIN, -EDIT_MARGIN ); int initCenterX = initPos.x() + smallWidth/2; int initCenterY = initPos.y() + smallHeight/2; finalPos = QPoint( initCenterX - actualFinalWidth/2, initCenterY - actualFinalHeight/2 ); if(finalPos.x() < appRec.x() ) finalPos.setX( appRec.x() ); if(finalPos.x() + actualFinalWidth > appRec.x() + appRec.width() ) finalPos.setX( appRec.x() + appRec.width()- actualFinalWidth ); if(finalPos.y() < appRec.y() ) finalPos.setY( appRec.y() ); if(finalPos.y() + actualFinalHeight > appRec.y() + appRec.height() ) finalPos.setY( appRec.y() + appRec.height()- actualFinalHeight ); //----------------------------------------------- //find bounding rectangle left = QMIN( finalPos.x(), initPos.x() ); top = QMIN( finalPos.y(), initPos.y() ); right = QMAX( finalPos.x() + actualFinalWidth, initPos.x() + smallWidth ); bottom = QMAX( finalPos.y() + actualFinalHeight, initPos.y() + smallHeight ); //----------------------------------------------- //grab window in region of interest, setup label and use this image backgroundImage = new QPixmap( QPixmap::grabWindow(QApplication::desktop()->winId(), left, top, right-left, bottom-top) ); setBackgroundMode( Qt::NoBackground ); //----------------------------------------------- //Setup animation widgets and place in main grid animationLabel = new QLabel(this, "animationLabel", WNoAutoErase); animationLabel->setPixmap( *backgroundImage ); animationLabel->setBackgroundMode( Qt::NoBackground ); buffer = new QPixmap( backgroundImage->width(), backgroundImage->height() ); mainGrid = new QGridLayout( this, 1, 2, 0 ); mainGrid->addWidget(animationLabel, 0, 0 ); //----------------------------------------------- //Setup static widgets staticFrame = new QWidget(this); staticFrame->hide(); staticFrame->setBackgroundMode( Qt::NoBackground ); mainGrid->addWidget(staticFrame, 0, 1 ); staticPhoto = new QLabel( staticFrame, "staticPhoto", WNoAutoErase); staticPhoto->setPixmap( QPixmap( *imageLarge) ); staticPhoto->setBackgroundMode( Qt::NoBackground ); photoDesc = new TextEdit( staticFrame ); photoDesc->setText( ppw->getPhoto()->getDescription() ); photoDesc->setWrapPolicy( QTextEdit::AtWordOrDocumentBoundary ); photoDesc->setFrameStyle( QFrame::NoFrame ); photoDesc->setLineWidth( 0 ); photoDesc->setMargin( 0 ); photoDesc->setMidLineWidth( 0 ); photoDesc->setFrameStyle( QFrame::MenuBarPanel | QFrame::Plain ); //start disappearing once the text edit reports the user is finished connect( photoDesc, SIGNAL( finished() ), this, SLOT( disappear() ) ); QWidget* bw1 = new QWidget(staticFrame); QWidget* bw2 = new QWidget(staticFrame); QWidget* bw3 = new QWidget(staticFrame); QWidget* bw4 = new QWidget(staticFrame); QColor darkBlue(35, 75, 139); bw1->setPaletteBackgroundColor( darkBlue ); bw2->setPaletteBackgroundColor( darkBlue ); bw3->setPaletteBackgroundColor( darkBlue ); bw4->setPaletteBackgroundColor( darkBlue ); //image is wider than tall, place text and buttons below image if(smallWidth > smallHeight ) { staticGrid = new QGridLayout( staticFrame, 4, 3); staticGrid->addWidget( staticPhoto, 1, 1 ); staticGrid->addWidget( photoDesc, 2, 1 ); staticGrid->setColSpacing( 2, staticPhoto->width() ); staticGrid->setRowSpacing( 2, idealTextSize ); staticGrid->addMultiCellWidget( bw1, 0, 0, 0, 2 ); staticGrid->addMultiCellWidget( bw2, 1, 2, 0, 0 ); staticGrid->addMultiCellWidget( bw3, 1, 2, 2, 2 ); staticGrid->addMultiCellWidget( bw4, 3, 3, 0, 2 ); staticGrid->setRowSpacing( 0, EDIT_MARGIN ); staticGrid->setRowSpacing( 3, EDIT_MARGIN ); staticGrid->setColSpacing( 0, EDIT_MARGIN ); staticGrid->setColSpacing( 2, EDIT_MARGIN ); } else { staticGrid = new QGridLayout( staticFrame, 3, 4); staticGrid->addWidget( staticPhoto, 1, 1 ); staticGrid->addWidget( photoDesc, 1, 2 ); staticGrid->setRowSpacing( 1, staticPhoto->height() ); staticGrid->setColSpacing( 2, idealTextSize ); staticGrid->addMultiCellWidget( bw1, 0, 0, 0, 3 ); staticGrid->addWidget( bw2, 1, 0 ); staticGrid->addWidget( bw3, 1, 3 ); staticGrid->addMultiCellWidget( bw4, 2, 2, 0, 3 ); staticGrid->setRowSpacing( 0, EDIT_MARGIN ); staticGrid->setRowSpacing( 2, EDIT_MARGIN ); staticGrid->setColSpacing( 0, EDIT_MARGIN ); staticGrid->setColSpacing( 3, EDIT_MARGIN ); } //----------------------------------------------- //set delay defaults initDelay = 130; accel = 50; minDelay = 1; this->useAnimation = useAnimation; if(useAnimation) step = 0; else step = 100; mode = STATIC; //create timer object and setup signals timer = new QTimer(); connect(timer, SIGNAL(timeout()), this, SLOT(animate()) ); //--------------------------- //place widget in intial position move( left, top ); show(); //start appearing process mode = APPEARING; delay = initDelay; lastTime.start(); animate(); }
PhotoDescEdit::~PhotoDescEdit | ( | ) |
Definition at line 389 of file photoDescEdit.cpp.
References backgroundImage, buffer, imageLarge, textRectangle, and timer.
{ delete textRectangle; delete timer; delete buffer; delete backgroundImage; delete imageLarge; }
void PhotoDescEdit::animate | ( | ) | [private, slot] |
this method is iteratively called and animates the opening/closing of the image
Definition at line 398 of file photoDescEdit.cpp.
References accel, animationLabel, APPEARING, backgroundImage, buffer, currentTime, delay, DISAPPEARED, dropShadowsEnabled, EDIT_MARGIN, finalPos, hide(), idealTextSize, imageLarge, initPos, lastTime, left, minDelay, mode, photoDesc, smallHeight, smallWidth, STATIC, staticFrame, step, textRectangle, timer, and top.
Referenced by disappear(), and PhotoDescEdit().
{ //--------------------------------- //determine # of ms that have passed since last redraw currentTime.start(); double ms = lastTime.msecsTo(currentTime); //determine increment int inc = (int)(ms/(delay+1)); //if increment is not zero then update last time if(inc != 0) { lastTime = currentTime; //update step step = step + inc; if(step > 100) step = 100; //update position and size double alpha = ((double)step) / 100.0; int newX, newY; int imageW, imageH; int textDim; QColor darkBlue(35, 75, 139); if(mode == APPEARING) { newX = (int)((1-alpha)*initPos.x() + alpha*finalPos.x()); newY = (int)((1-alpha)*initPos.y() + alpha*finalPos.y()); imageW = (int)((1-alpha)*smallWidth + alpha*imageLarge->width()); imageH = (int)((1-alpha)*smallHeight + alpha*imageLarge->height()); textDim = (int) (alpha * idealTextSize); } else { newX = (int)(alpha*initPos.x() + (1-alpha)*finalPos.x()); newY = (int)(alpha*initPos.y() + (1-alpha)*finalPos.y()); imageW = (int)(alpha*smallWidth + (1-alpha)*imageLarge->width()); imageH = (int)(alpha*smallHeight + (1-alpha)*imageLarge->height()); textDim = (int) ((1-alpha) * idealTextSize); } //draw background image to buffer QPainter bufferPainter( buffer ); bufferPainter.drawPixmap(0,0, *backgroundImage ); //draw selection and white text rectangles if(smallWidth > smallHeight ) { bufferPainter.fillRect( newX - left, newY - top, imageW + 2*EDIT_MARGIN, imageH + 2*EDIT_MARGIN + textDim, darkBlue ); bufferPainter.drawPixmap( newX - left + EDIT_MARGIN, newY - top + EDIT_MARGIN + imageH, QPixmap( textRectangle->scale( imageW, textDim ) ) ); } else { bufferPainter.fillRect( newX - left, newY - top, imageW + 2*EDIT_MARGIN + textDim, imageH + 2*EDIT_MARGIN, darkBlue ); bufferPainter.drawPixmap( newX - left + EDIT_MARGIN + imageW, newY - top + EDIT_MARGIN, QPixmap( textRectangle->scale( textDim, imageH ) ) ); } //draw scaled moved image to buffer bufferPainter.drawPixmap( newX - left + EDIT_MARGIN, newY - top + EDIT_MARGIN, QPixmap( imageLarge->scale( imageW, imageH ) ) ); //set label to use buffer pixmap animationLabel->setPixmap( *buffer ); } //not done restart timer if(step < 100) { //update speed delay = delay - accel; if(delay < minDelay) delay = minDelay; //restart timer timer->start( delay, TRUE ); } else { if(mode == APPEARING) { animationLabel->hide(); staticFrame->show(); //auto focus text area, put cursor at very end photoDesc->setFocus(); mode = STATIC; } else { //reenable drop shadows on windows xp if they were previously enabled #if defined(Q_OS_WIN) if(dropShadowsEnabled) SystemParametersInfo( SPI_SETDROPSHADOW, 0, &dropShadowsEnabled, 0 ); else SystemParametersInfo( SPI_SETDROPSHADOW, 0, NULL, 0 ); #endif //Q_OS_WIN mode = DISAPPEARED; hide(); qApp->mainWidget()->repaint(false); } } }
void PhotoDescEdit::disappear | ( | ) | [private, slot] |
this method is called by the acceptAndClose and rejectAndClose slots and actually initiates the closing process
Definition at line 518 of file photoDescEdit.cpp.
References accel, animate(), animationLabel, DISAPPEARING, PhotoPreviewWidget::getPhoto(), initDelay, lastTime, minDelay, mode, photoDesc, ppw, Photo::setDescription(), PhotoPreviewWidget::setText(), staticFrame, step, textRectangle, and useAnimation.
Referenced by hide(), and PhotoDescEdit().
{ delete textRectangle; textRectangle = new QImage( QPixmap::grabWidget(photoDesc).convertToImage() ); ppw->getPhoto()->setDescription( photoDesc->text() ); ppw->setText( photoDesc->text() ); //start disappearing process staticFrame->hide(); animationLabel->show(); initDelay = 130; accel = 50; minDelay = 1; if(useAnimation) step = 0; else step = 100; mode = DISAPPEARING; lastTime.start(); animate(); }
void PhotoDescEdit::hide | ( | ) | [slot] |
Definition at line 544 of file photoDescEdit.cpp.
References disappear(), DISAPPEARED, mode, ppw, and STATIC.
Referenced by animate().
{ if(mode == DISAPPEARED ) { QWidget::hide(); //check to see if mouse is over a new item, //if so immediately set it as being moused over QIconView* iconView = ppw->iconView(); QIconViewItem* item = iconView->findItem( iconView->viewport()->mapFromGlobal( QCursor::pos() )+=QPoint( iconView->contentsX(), iconView->contentsY() ) ); if(item != NULL && item != ppw ) { ((PhotosIconView*)item->iconView())->repaintGroup( item ); } } else if(mode == STATIC) { disappear(); } }
int PhotoDescEdit::accel [private] |
Definition at line 111 of file photoDescEdit.h.
Referenced by animate(), disappear(), and PhotoDescEdit().
QLabel* PhotoDescEdit::animationLabel [private] |
label which shows moving and expanding photo on background
------------------------------------- Animating Widgets
Definition at line 89 of file photoDescEdit.h.
Referenced by animate(), disappear(), and PhotoDescEdit().
QPixmap* PhotoDescEdit::backgroundImage [private] |
this pixmap contains the screen contents for the entire region which we will be painting on top of
Definition at line 78 of file photoDescEdit.h.
Referenced by animate(), PhotoDescEdit(), and ~PhotoDescEdit().
int PhotoDescEdit::bottom [private] |
Definition at line 71 of file photoDescEdit.h.
Referenced by PhotoDescEdit().
QPixmap* PhotoDescEdit::buffer [private] |
buffer we'll iteratively update and use for the label which shows the animation taking place
Definition at line 92 of file photoDescEdit.h.
Referenced by animate(), PhotoDescEdit(), and ~PhotoDescEdit().
QTime PhotoDescEdit::currentTime [private] |
Definition at line 121 of file photoDescEdit.h.
Referenced by animate().
int PhotoDescEdit::delay [private] |
Definition at line 111 of file photoDescEdit.h.
Referenced by animate(), and PhotoDescEdit().
bool PhotoDescEdit::dropShadowsEnabled [private] |
are drop shadows enabled in windows (xp)?
Definition at line 117 of file photoDescEdit.h.
Referenced by animate(), and PhotoDescEdit().
QPoint PhotoDescEdit::finalPos [private] |
Definition at line 68 of file photoDescEdit.h.
Referenced by animate(), and PhotoDescEdit().
int PhotoDescEdit::idealTextSize [private] |
ultimate text dimension
Definition at line 74 of file photoDescEdit.h.
Referenced by animate(), and PhotoDescEdit().
QImage* PhotoDescEdit::imageLarge [private] |
beginning and end pixmaps
Definition at line 62 of file photoDescEdit.h.
Referenced by animate(), PhotoDescEdit(), and ~PhotoDescEdit().
int PhotoDescEdit::initDelay [private] |
------------------------------------- Animation Stuff
Definition at line 111 of file photoDescEdit.h.
Referenced by disappear(), and PhotoDescEdit().
QPoint PhotoDescEdit::initPos [private] |
Definition at line 68 of file photoDescEdit.h.
Referenced by animate(), and PhotoDescEdit().
QTime PhotoDescEdit::lastTime [private] |
Definition at line 121 of file photoDescEdit.h.
Referenced by animate(), disappear(), and PhotoDescEdit().
int PhotoDescEdit::left [private] |
bounaries of entire animation
Definition at line 71 of file photoDescEdit.h.
Referenced by animate(), and PhotoDescEdit().
QGridLayout* PhotoDescEdit::mainGrid [private] |
-------------------------------------
Definition at line 84 of file photoDescEdit.h.
Referenced by PhotoDescEdit().
int PhotoDescEdit::minDelay [private] |
Definition at line 111 of file photoDescEdit.h.
Referenced by animate(), disappear(), and PhotoDescEdit().
int PhotoDescEdit::mode [private] |
Definition at line 114 of file photoDescEdit.h.
Referenced by animate(), disappear(), hide(), and PhotoDescEdit().
TextEdit* PhotoDescEdit::photoDesc [private] |
photo description
Definition at line 106 of file photoDescEdit.h.
Referenced by animate(), disappear(), and PhotoDescEdit().
PhotoPreviewWidget* PhotoDescEdit::ppw [private] |
photo preview widget pointer
Definition at line 59 of file photoDescEdit.h.
Referenced by disappear(), hide(), and PhotoDescEdit().
int PhotoDescEdit::right [private] |
Definition at line 71 of file photoDescEdit.h.
Referenced by PhotoDescEdit().
int PhotoDescEdit::smallHeight [private] |
Definition at line 81 of file photoDescEdit.h.
Referenced by animate(), and PhotoDescEdit().
int PhotoDescEdit::smallWidth [private] |
small size
Definition at line 81 of file photoDescEdit.h.
Referenced by animate(), and PhotoDescEdit().
QWidget* PhotoDescEdit::staticFrame [private] |
frame which contains static widget
Definition at line 100 of file photoDescEdit.h.
Referenced by animate(), disappear(), and PhotoDescEdit().
QGridLayout* PhotoDescEdit::staticGrid [private] |
grid static widgets placed in
------------------------------------- Static Widgets
Definition at line 97 of file photoDescEdit.h.
Referenced by PhotoDescEdit().
QLabel* PhotoDescEdit::staticPhoto [private] |
photo being displayed
Definition at line 103 of file photoDescEdit.h.
Referenced by PhotoDescEdit().
int PhotoDescEdit::step [private] |
Definition at line 111 of file photoDescEdit.h.
Referenced by animate(), disappear(), and PhotoDescEdit().
QImage* PhotoDescEdit::textRectangle [private] |
text area widget used to computing painting surface
Definition at line 65 of file photoDescEdit.h.
Referenced by animate(), disappear(), PhotoDescEdit(), and ~PhotoDescEdit().
QTimer* PhotoDescEdit::timer [private] |
Definition at line 120 of file photoDescEdit.h.
Referenced by animate(), PhotoDescEdit(), and ~PhotoDescEdit().
int PhotoDescEdit::top [private] |
Definition at line 71 of file photoDescEdit.h.
Referenced by animate(), and PhotoDescEdit().
bool PhotoDescEdit::useAnimation [private] |
actually animate the opening/closing process?
Definition at line 56 of file photoDescEdit.h.
Referenced by disappear(), and PhotoDescEdit().