00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #include <qlayout.h>
00013 #include <qfont.h>
00014 #include <qframe.h>
00015 #include <qpushbutton.h>
00016 #include <qtoolbutton.h>
00017 #include <qpixmap.h>
00018 #include <qfiledialog.h>
00019 #include <qcursor.h>
00020 #include <qapplication.h>
00021 #include <qtooltip.h>
00022 #include <qfileinfo.h>
00023 #include <qaccel.h>
00024
00025
00026 #include "window.h"
00027 #include "titleWidget.h"
00028 #include "layoutWidget.h"
00029 #include "subalbumWidget.h"
00030 #include "subalbumsWidget.h"
00031 #include "photoPreviewWidget.h"
00032 #include "photosIconView.h"
00033 #include "statusWidget.h"
00034
00035 #include "dialogs/addPhotosDialog.h"
00036 #include "dialogs/questionDialog.h"
00037 #include "dialogs/alertDialog.h"
00038
00039 #include "../config.h"
00040 #include "../backend/subalbum.h"
00041 #include "../backend/photo.h"
00042 #include "../backend/tools/guiTools.h"
00043 #include "../backend/tools/wallpaperTools.h"
00044 #include "../configuration/configuration.h"
00045
00046 #include "../backend/album.h"
00047
00048
00049 SubalbumWidget::SubalbumWidget(Subalbum* salbum,
00050 QWidget *parent,
00051 const char* name ) :
00052 QWidget(parent,name)
00053 {
00054 setWFlags(WNoAutoErase);
00055
00056
00057 subalbum = salbum;
00058
00059
00060 layout = (LayoutWidget*)parent;
00061
00062
00063 photos = new PhotosIconView( this );
00064
00065
00066 photos->setArrangement( QIconView::LeftToRight );
00067 photos->setVScrollBarMode( QScrollView::Auto );
00068
00069
00070 photos->setSelectionMode( QIconView::Extended ) ;
00071
00072
00073 photos->setDragAutoScroll(true);
00074 photos->setAcceptDrops(true);
00075
00076
00077 connect( photos, SIGNAL(selectionChanged()),
00078 this, SLOT( selectionChangedEvent()) );
00079
00080
00081 connect( photos, SIGNAL(rightButtonClicked(QIconViewItem*, const QPoint&)),
00082 this, SLOT(selectionChangedEvent()) );
00083
00084
00085 connect( photos, SIGNAL(itemHasMoved()), SLOT(reorder()) );
00086
00087
00088 connect( photos, SIGNAL(addPhotos(QStringList)), SLOT(addImageAction(QStringList)) );
00089
00090
00091 connect( photos, SIGNAL(removeSelectedPhotos()), SLOT(removeImageAction()) );
00092 connect( photos, SIGNAL(rotate90SelectedPhotos()), SLOT(rotate90ImageAction()) );
00093 connect( photos, SIGNAL(rotate270SelectedPhotos()), SLOT(rotate270ImageAction()) );
00094
00095
00096 connect( photos, SIGNAL(editSelectedPhoto()),
00097 layout, SLOT(editSelectedPhoto()) );
00098
00099 connect( photos, SIGNAL( doubleClicked(QIconViewItem*) ),
00100 layout, SLOT(editSelectedPhoto()) );
00101
00102
00103 buttonsFrame = new QFrame(this);
00104 if(subalbum == NULL) buttonsFrame->hide();
00105
00106 QFont buttonFont( qApp->font() );
00107 buttonFont.setBold(true);
00108 buttonFont.setPointSize( 11 );
00109
00110 addImage = new QToolButton( buttonsFrame );
00111 addImage->setTextLabel(tr("Add Photo"));
00112 addImage->setIconSet( QPixmap(QString(IMAGE_PATH)+"buttonIcons/add.png") );
00113 addImage->setTextPosition(QToolButton::Right);
00114 addImage->setFont( buttonFont );
00115 addImage->setUsesTextLabel( true );
00116 addImage->setEnabled( true );
00117 QToolTip::add( addImage, tr("Add photos to selected collection") );
00118 connect( addImage, SIGNAL(clicked()), SLOT(addImageAction()) );
00119
00120 removeImage = new QToolButton( buttonsFrame );
00121 removeImage->setTextLabel(tr("Remove Photo"));
00122 removeImage->setIconSet( QPixmap(QString(IMAGE_PATH)+"buttonIcons/remove.png") );
00123 removeImage->setTextPosition(QToolButton::Right);
00124 removeImage->setFont( buttonFont );
00125 removeImage->setUsesTextLabel( true );
00126 removeImage->setEnabled( true );
00127 QToolTip::add( removeImage, tr("Remove selected photos from collection") );
00128 connect( removeImage, SIGNAL(clicked()), SLOT(removeImageAction()) );
00129
00130 rotate90Image = new QToolButton( buttonsFrame );
00131 rotate90Image->setTextLabel(tr("Rotate Right") );
00132 QIconSet rotate90Icon;
00133 rotate90Icon.setPixmap( QString(IMAGE_PATH)+"buttonIcons/rotate90.png",
00134 QIconSet::Automatic,
00135 QIconSet::Normal );
00136 rotate90Icon.setPixmap( QString(IMAGE_PATH)+"buttonIcons/rotate90_disabled.png",
00137 QIconSet::Automatic,
00138 QIconSet::Disabled );
00139 rotate90Image->setIconSet( rotate90Icon );
00140
00141 rotate90Image->setTextPosition(QToolButton::Right);
00142 rotate90Image->setFont( buttonFont );
00143 rotate90Image->setUsesTextLabel( true );
00144 QToolTip::add( rotate90Image, tr("Rotate selected photos clockwise") );
00145 connect( rotate90Image, SIGNAL(clicked()), SLOT(rotate90ImageAction()) );
00146
00147 rotate270Image = new QToolButton( buttonsFrame );
00148 rotate270Image->setTextLabel(tr("Rotate Left") );
00149 QIconSet rotate270Icon;
00150 rotate270Icon.setPixmap( QString(IMAGE_PATH)+"buttonIcons/rotate270.png",
00151 QIconSet::Automatic,
00152 QIconSet::Normal );
00153 rotate270Icon.setPixmap( QString(IMAGE_PATH)+"buttonIcons/rotate270_disabled.png",
00154 QIconSet::Automatic,
00155 QIconSet::Disabled );
00156 rotate270Image->setIconSet( rotate270Icon );
00157
00158 rotate270Image->setTextPosition(QToolButton::Right);
00159 rotate270Image->setFont( buttonFont );
00160 rotate270Image->setUsesTextLabel( true );
00161 QToolTip::add( rotate270Image, tr("Rotate selected photos counterclockwise") );
00162 connect( rotate270Image, SIGNAL(clicked()), SLOT(rotate270ImageAction()) );
00163
00164
00165 buttonsGrid = new QGridLayout( buttonsFrame, 1, 7, 0 );
00166 buttonsGrid->addWidget( addImage, 0, 1, Qt::AlignLeft );
00167 buttonsGrid->addWidget( removeImage, 0, 2, Qt::AlignLeft );
00168 buttonsGrid->addWidget( rotate90Image, 0, 3, Qt::AlignLeft );
00169 buttonsGrid->addWidget( rotate270Image, 0, 4, Qt::AlignLeft );
00170 buttonsGrid->setColStretch( 0, 1 );
00171 buttonsGrid->setColStretch( 6, 1 );
00172
00173
00174 if( setWallpaperSupported() )
00175 {
00176 setDesktopBtn = new QToolButton( buttonsFrame );
00177 setDesktopBtn->setUsesTextLabel( true );
00178 setDesktopBtn->setTextLabel(tr("Wallpaper") );
00179 QIconSet setDesktopIcon;
00180 setDesktopIcon.setPixmap( QString(IMAGE_PATH)+"buttonIcons/setDesktopWallpaper.png",
00181 QIconSet::Automatic,
00182 QIconSet::Normal );
00183 setDesktopIcon.setPixmap( QString(IMAGE_PATH)+"buttonIcons/setDesktopWallpaper_disabled.png",
00184 QIconSet::Automatic,
00185 QIconSet::Disabled );
00186 setDesktopBtn->setIconSet( setDesktopIcon );
00187
00188 setDesktopBtn->setTextPosition(QToolButton::Right);
00189 setDesktopBtn->setFont( buttonFont );
00190 setDesktopBtn->setUsesTextLabel( true );
00191
00192 QToolTip::add( setDesktopBtn, tr("Set desktop wallpaper to selected photo") );
00193 connect( setDesktopBtn, SIGNAL( clicked() ), this, SLOT( setWallpaperAction() ) );
00194 buttonsGrid->addWidget( setDesktopBtn, 0, 5, Qt::AlignLeft );
00195 }
00196 else
00197 { setDesktopBtn = NULL; }
00198
00199 mainGrid = new QGridLayout( this, 2, 1, 0 );
00200 mainGrid->addMultiCellWidget( photos, 0, 0, 0, 1 );
00201 mainGrid->addMultiCellWidget( buttonsFrame, 1, 1, 0, 1 );
00202 mainGrid->setRowStretch( 0, 1 );
00203
00204
00205 setPaletteBackgroundColor( QColor(193, 210, 238) );
00206
00207
00208 removeImage->setEnabled(false);
00209 rotate90Image->setEnabled(false);
00210 rotate270Image->setEnabled(false);
00211
00212
00213
00214 QAccel *keyAccel = new QAccel( this );
00215 keyAccel->connectItem( keyAccel->insertItem( CTRL + SHIFT + Key_A ),
00216 this, SLOT(deselectAll()) );
00217 }
00218
00219 void SubalbumWidget::setSubalbum(Subalbum* salbum)
00220 {
00221
00222 subalbum = salbum;
00223
00224
00225 refreshPhotos();
00226
00227 if(subalbum == NULL) { buttonsFrame->hide(); }
00228 else
00229 {
00230
00231 buttonsFrame->show();
00232 selectionChangedEvent();
00233 }
00234 }
00235
00236 void SubalbumWidget::addImageAction()
00237 {
00238
00239
00240
00241 Configuration* config = ((Window*)qApp->mainWidget())->getConfig();
00242 QString path = config->getString( "loadSave", "addPhotoDir" );
00243 QDir testPath(path);
00244 if(!testPath.exists())
00245 {
00246 config->resetSetting( "loadSave", "addPhotoDir" );
00247 path = config->getString( "loadSave", "addPhotoDir" );
00248 }
00249
00250 AddPhotosDialog* fileDialog = new AddPhotosDialog( path );
00251 bool setDescriptions;
00252 QStringList fileNames = fileDialog->getFilenames( setDescriptions );
00253
00254 if(!fileNames.empty())
00255 {
00256
00257 QDir lastDir = QDir( QFileInfo(*fileNames.begin()).dirPath() );
00258 config->setString( "loadSave", "addPhotoDir", lastDir.path() );
00259 addImageAction( fileNames, setDescriptions );
00260 }
00261 }
00262
00263 void SubalbumWidget::addImageAction(QStringList fileNames, bool setDescriptions)
00264 {
00265 if(fileNames.empty())
00266 return;
00267
00268
00269
00270 layout->getWindow()->getTitle()->setBusy(true);
00271 layout->getSubalbums()->updateButtons(false);
00272 updateButtons(false);
00273 photos->setSelectionMode( QIconView::NoSelection ) ;
00274
00275 qApp->setOverrideCursor( QCursor(Qt::WaitCursor));
00276
00277
00278 QString statusMessage = tr("Adding %1 photos:");
00279
00280 layout->getWindow()->getStatus()->showProgressBar( statusMessage.arg(fileNames.count()), fileNames.count() );
00281 qApp->processEvents();
00282
00283
00284 QStringList::iterator it;
00285 int num=0;
00286 for(it = fileNames.begin(); it != fileNames.end(); it++ )
00287 {
00288
00289 layout->getWindow()->getStatus()->updateProgress( num, statusMessage.arg(fileNames.count() - num) );
00290
00291
00292 if(QFileInfo(*it).isFile() && subalbum->addPhoto(*it, setDescriptions))
00293 {
00294 PhotoPreviewWidget* p = new PhotoPreviewWidget( photos, subalbum->getLast() );
00295 photos->ensureItemVisible(p);
00296 }
00297 num++;
00298 qApp->processEvents();
00299 }
00300 photos->arrangeItemsInGrid();
00301
00302
00303 layout->getWindow()->getStatus()->setStatus( tr("Adding photos complete.") );
00304
00305
00306 layout->getWindow()->getTitle()->updateMenus();
00307
00308
00309 layout->getWindow()->getTitle()->setBusy(false);
00310 layout->getSubalbums()->updateButtons(true);
00311 updateButtons(true);
00312 photos->setSelectionMode( QIconView::Extended ) ;
00313
00314 qApp->restoreOverrideCursor();
00315 }
00316
00317 void SubalbumWidget::removeImageAction()
00318 {
00319
00320 layout->getWindow()->getTitle()->setBusy(true);
00321 layout->getSubalbums()->updateButtons(false);
00322 updateButtons(false);
00323 photos->setSelectionMode( QIconView::NoSelection ) ;
00324
00325
00326
00327 bool proceed = !((Window*)qApp->mainWidget())->getConfig()->getBool( "alerts", "showDestructiveAlerts" );
00328 if(!proceed)
00329 {
00330 QuestionDialog sure( tr("Remove selected photos?"),
00331 tr("Once removed photos cannot be restored. Furthermore upon resaving they are physically removed from your album."),
00332 "alertIcons/warning.png",
00333 this );
00334 proceed = sure.exec();
00335 }
00336 if(proceed)
00337 {
00338 qApp->setOverrideCursor( QCursor(Qt::WaitCursor));
00339
00340 QIconViewItem* current = photos->firstItem();
00341 QIconViewItem* temp;
00342
00343 while(current != NULL)
00344 {
00345
00346 if(!current->isSelected())
00347 {
00348 current = current->nextItem();
00349 continue;
00350 }
00351
00352
00353 temp = current->nextItem();
00354
00355
00356 Photo* phto = ((PhotoPreviewWidget*)current)->getPhoto();
00357
00358
00359 delete current;
00360 current = temp;
00361
00362
00363 subalbum->removePhoto(phto);
00364 }
00365
00366
00367 photos->arrangeItemsInGrid();
00368
00369
00370 selectionChangedEvent();
00371
00372
00373 qApp->restoreOverrideCursor();
00374 }
00375
00376
00377 emit selectedPhotoStateChanged();
00378
00379 layout->getWindow()->getTitle()->setBusy(false);
00380 layout->getSubalbums()->updateButtons(true);
00381 updateButtons(true);
00382 photos->setSelectionMode( QIconView::Extended ) ;
00383 }
00384
00385 void SubalbumWidget::revertSelectedPhotos()
00386 {
00387
00388 QIconViewItem* current = photos->firstItem();
00389 while(current != NULL)
00390 {
00391
00392 if(current->isSelected())
00393 {
00394 ((PhotoPreviewWidget*)current)->getPhoto()->revertPhoto();
00395 photos->ensureItemVisible(((PhotoPreviewWidget*)current));
00396 ((PhotoPreviewWidget*)current)->updateImage();
00397 qApp->processEvents();
00398 }
00399
00400
00401 current = current->nextItem();
00402 }
00403
00404
00405 emit selectedPhotoStateChanged();
00406 }
00407
00408 void SubalbumWidget::setWallpaperAction()
00409 {
00410
00411 Photo* phto = getSelectedPhoto();
00412 if(phto == NULL) return;
00413
00414
00415 setWallpaper( phto );
00416 }
00417
00418 void SubalbumWidget::rotate90ImageAction()
00419 {
00420
00421 qApp->setOverrideCursor( QCursor(Qt::WaitCursor));
00422 layout->getWindow()->getTitle()->setBusy(true);
00423 layout->getSubalbums()->updateButtons(false);
00424 photos->setSelectionMode( QIconView::NoSelection ) ;
00425 updateButtons(false);
00426
00427
00428 QString statusMessage = tr("Rotating %1 photos:");
00429 layout->getWindow()->getStatus()->showProgressBar( statusMessage.arg(photos->numSelected()), photos->numSelected() );
00430 qApp->processEvents();
00431
00432
00433 int num = 0;
00434 QIconViewItem* current = photos->firstItem();
00435 while(current != NULL)
00436 {
00437 if(current->isSelected())
00438 {
00439
00440 layout->getWindow()->getStatus()->updateProgress( num, statusMessage.arg(photos->numSelected() - num) );
00441
00442 ((PhotoPreviewWidget*)current)->getPhoto()->rotate90();
00443 photos->ensureItemVisible(((PhotoPreviewWidget*)current));
00444 ((PhotoPreviewWidget*)current)->updateImage();
00445 num++;
00446 layout->getWindow()->getStatus()->updateProgress( num );
00447 qApp->processEvents();
00448 }
00449
00450
00451 current = current->nextItem();
00452 }
00453
00454
00455 emit selectedPhotoStateChanged();
00456
00457
00458 layout->getWindow()->getStatus()->setStatus( tr("Rotating complete.") );
00459
00460
00461 layout->getWindow()->getTitle()->setBusy(false);
00462 layout->getSubalbums()->updateButtons(true);
00463 updateButtons(true);
00464 photos->setSelectionMode( QIconView::Extended ) ;
00465
00466 qApp->restoreOverrideCursor();
00467 }
00468
00469 void SubalbumWidget::rotate270ImageAction()
00470 {
00471
00472 qApp->setOverrideCursor( QCursor(Qt::WaitCursor));
00473 layout->getWindow()->getTitle()->setBusy(true);
00474 layout->getSubalbums()->updateButtons(false);
00475 photos->setSelectionMode( QIconView::NoSelection ) ;
00476 updateButtons(false);
00477
00478
00479 QString statusMessage = tr("Rotating %1 photos:");
00480 layout->getWindow()->getStatus()->showProgressBar( statusMessage.arg(photos->numSelected()), photos->numSelected() );
00481 qApp->processEvents();
00482
00483
00484 int num = 0;
00485 QIconViewItem* current = photos->firstItem();
00486 while(current != NULL)
00487 {
00488 if(current->isSelected())
00489 {
00490
00491 layout->getWindow()->getStatus()->updateProgress( num, statusMessage.arg(photos->numSelected() - num) );
00492
00493 ((PhotoPreviewWidget*)current)->getPhoto()->rotate270();
00494 photos->ensureItemVisible(((PhotoPreviewWidget*)current));
00495 ((PhotoPreviewWidget*)current)->updateImage();
00496 num++;
00497 layout->getWindow()->getStatus()->updateProgress( num );
00498 qApp->processEvents();
00499 }
00500
00501
00502 current = current->nextItem();
00503 }
00504
00505
00506 emit selectedPhotoStateChanged();
00507
00508
00509 layout->getWindow()->getStatus()->setStatus( tr("Rotating complete.") );
00510
00511
00512 layout->getWindow()->getTitle()->setBusy(false);
00513 layout->getSubalbums()->updateButtons(true);
00514 updateButtons(true);
00515 photos->setSelectionMode( QIconView::Extended ) ;
00516 qApp->restoreOverrideCursor();
00517 }
00518
00519 void SubalbumWidget::refreshPhotos()
00520 {
00521
00522 photos->clear();
00523
00524 if(subalbum != NULL)
00525 {
00526
00527 Photo* currentPhoto = subalbum->getFirst();
00528 while(currentPhoto != NULL)
00529 {
00530 new PhotoPreviewWidget( photos, currentPhoto );
00531 currentPhoto = currentPhoto->getNext();
00532 }
00533
00534 photos->arrangeItemsInGrid();
00535 }
00536 }
00537
00538 void SubalbumWidget::refreshAllPhotos()
00539 {
00540 QIconViewItem* current = photos->firstItem();
00541 while(current != NULL)
00542 {
00543 ((PhotoPreviewWidget*)current)->updateImage();
00544 ((PhotoPreviewWidget*)current)->updateDescription();
00545 current = current->nextItem();
00546 }
00547 }
00548
00549 void SubalbumWidget::refreshSelectedPhotos()
00550 {
00551 QIconViewItem* current = photos->firstItem();
00552 while(current != NULL)
00553 {
00554
00555 if(current->isSelected())
00556 {
00557 ((PhotoPreviewWidget*)current)->updateImage();
00558 ((PhotoPreviewWidget*)current)->updateDescription();
00559 }
00560
00561
00562 current = current->nextItem();
00563 }
00564 }
00565
00566 void SubalbumWidget::stripDescriptionsFromSelectedPhotos()
00567 {
00568 QIconViewItem* current = photos->firstItem();
00569 while(current != NULL)
00570 {
00571
00572 if(current->isSelected())
00573 {
00574 ((PhotoPreviewWidget*)current)->getPhoto()->setDescription("");
00575 ((PhotoPreviewWidget*)current)->setText( "" );
00576 }
00577
00578
00579 current = current->nextItem();
00580 }
00581 }
00582
00583 Subalbum* SubalbumWidget::getSubalbum()
00584 {
00585 return subalbum;
00586 }
00587
00588 Photo* SubalbumWidget::getSelectedPhoto()
00589 {
00590
00591 int numSelected = 0;
00592 QIconViewItem* current = photos->firstItem();
00593 QIconViewItem* selected = NULL;
00594 while(current != NULL)
00595 {
00596
00597 if(current->isSelected())
00598 {
00599 numSelected++;
00600 selected = current;
00601 }
00602
00603
00604 if(numSelected > 1) return NULL;
00605
00606
00607 current = current->nextItem();
00608 }
00609
00610
00611 if(numSelected == 1) { return ((PhotoPreviewWidget*)selected)->getPhoto(); }
00612 else { return NULL; }
00613 }
00614
00615 Photo* SubalbumWidget::getFirstSelectedPhoto()
00616 {
00617
00618 QIconViewItem* current = photos->firstItem();
00619 while(current != NULL)
00620 {
00621
00622 if(current->isSelected())
00623 { return ((PhotoPreviewWidget*)current)->getPhoto(); }
00624
00625
00626 current = current->nextItem();
00627 }
00628
00629
00630 return NULL;
00631 }
00632
00633 void SubalbumWidget::setSelectedPhoto(Photo* selection)
00634 {
00635
00636 QIconViewItem* current = photos->firstItem();
00637 while(current != NULL)
00638 {
00639 if( ((PhotoPreviewWidget*)current)->getPhoto() == selection )
00640 {
00641
00642 photos->selectAll(false);
00643
00644
00645 current->setSelected(true);
00646 photos->ensureItemVisible( current );
00647
00648 return;
00649 }
00650
00651
00652 current = current->nextItem();
00653 }
00654 }
00655
00656 bool SubalbumWidget::anyPhotosSelected()
00657 {
00658 QIconViewItem* current = photos->firstItem();
00659 while(current != NULL)
00660 {
00661 if(current->isSelected())
00662 return true;
00663 current = current->nextItem();
00664 }
00665 return false;
00666 }
00667
00668 bool SubalbumWidget::anySelectedPhotosRevertable()
00669 {
00670 QIconViewItem* current = photos->firstItem();
00671 while(current != NULL)
00672 {
00673 if(current->isSelected())
00674 {
00675 if( ((PhotoPreviewWidget*)current)->getPhoto()->revertPossible() )
00676 return true;
00677 }
00678 current = current->nextItem();
00679 }
00680 return false;
00681 }
00682
00683 void SubalbumWidget::resizeEvent( QResizeEvent * )
00684 {
00685 photos->arrangeItemsInGrid();
00686 }
00687
00688 QIconView* SubalbumWidget::getPhotos()
00689 {
00690 return photos;
00691 }
00692
00693 void SubalbumWidget::reorder()
00694 {
00695
00696 photos->sort( true );
00697 photos->arrangeItemsInGrid();
00698
00699
00700 subalbum->syncPhotoList((PhotoPreviewWidget*)photos->firstItem());
00701 }
00702
00703 void SubalbumWidget::selectionChangedEvent()
00704 {
00705
00706 updateButtons();
00707
00708
00709 emit selectedPhotoStateChanged();
00710 }
00711
00712 void SubalbumWidget::updateButtons()
00713 {
00714 int numSelected = 0;
00715 QIconViewItem* current = photos->firstItem();
00716 while(current != NULL)
00717 {
00718 if(current->isSelected())
00719 {
00720 numSelected++;
00721
00722
00723
00724
00725
00726
00727 if(numSelected > 1)
00728 break;
00729 }
00730
00731
00732 current = current->nextItem();
00733 }
00734
00735 if(numSelected == 0)
00736 {
00737 removeImage->setEnabled(false);
00738 rotate90Image->setEnabled(false);
00739 rotate270Image->setEnabled(false);
00740 if(setDesktopBtn) { setDesktopBtn->setEnabled(false); }
00741 layout->setEditTabEnabled(false);
00742 }
00743 else
00744 {
00745 removeImage->setEnabled(true);
00746 rotate90Image->setEnabled(true);
00747 rotate270Image->setEnabled(true);
00748 if(setDesktopBtn) { setDesktopBtn->setEnabled(true); }
00749 layout->setEditTabEnabled(true);
00750 }
00751
00752 if(setDesktopBtn) { setDesktopBtn->setEnabled( numSelected == 1 ); }
00753 }
00754
00755 void SubalbumWidget::updateButtons(bool enable)
00756 {
00757 if(!enable)
00758 {
00759 buttonsState = rotate90Image->isEnabled();
00760 addImage->setEnabled(enable && true);
00761 removeImage->setEnabled(enable && true);
00762 rotate90Image->setEnabled(enable);
00763 rotate270Image->setEnabled(enable);
00764 if(setDesktopBtn)
00765 {
00766 wallpaperButtonState = setDesktopBtn->isEnabled();
00767 setDesktopBtn->setEnabled(enable);
00768 }
00769 layout->setEditTabEnabled(enable);
00770 }
00771 else
00772 {
00773 addImage->setEnabled(enable && true);
00774 removeImage->setEnabled(buttonsState && true);
00775 rotate90Image->setEnabled(buttonsState);
00776 rotate270Image->setEnabled(buttonsState);
00777 if(setDesktopBtn) { setDesktopBtn->setEnabled(wallpaperButtonState); }
00778 layout->setEditTabEnabled(buttonsState);
00779 }
00780 }
00781
00782 void SubalbumWidget::deselectAll()
00783 {
00784 photos->selectAll(false);
00785 }
00786