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 qApp->restoreOverrideCursor();
00371 }
00372
00373 layout->getWindow()->getTitle()->setBusy(false);
00374 layout->getSubalbums()->updateButtons(true);
00375 updateButtons(true);
00376 photos->setSelectionMode( QIconView::Extended ) ;
00377
00378
00379 selectionChangedEvent();
00380 }
00381
00382 void SubalbumWidget::revertSelectedPhotos()
00383 {
00384
00385 QIconViewItem* current = photos->firstItem();
00386 while(current != NULL)
00387 {
00388
00389 if(current->isSelected())
00390 {
00391 ((PhotoPreviewWidget*)current)->getPhoto()->revertPhoto();
00392 photos->ensureItemVisible(((PhotoPreviewWidget*)current));
00393 ((PhotoPreviewWidget*)current)->updateImage();
00394 qApp->processEvents();
00395 }
00396
00397
00398 current = current->nextItem();
00399 }
00400
00401
00402 emit selectedPhotoStateChanged();
00403 }
00404
00405 void SubalbumWidget::setWallpaperAction()
00406 {
00407
00408 Photo* phto = getSelectedPhoto();
00409 if(phto == NULL) return;
00410
00411
00412 setWallpaper( phto );
00413 }
00414
00415 void SubalbumWidget::rotate90ImageAction()
00416 {
00417
00418 qApp->setOverrideCursor( QCursor(Qt::WaitCursor));
00419 layout->getWindow()->getTitle()->setBusy(true);
00420 layout->getSubalbums()->updateButtons(false);
00421 photos->setSelectionMode( QIconView::NoSelection ) ;
00422 updateButtons(false);
00423
00424
00425 QString statusMessage = tr("Rotating %1 photos:");
00426 layout->getWindow()->getStatus()->showProgressBar( statusMessage.arg(photos->numSelected()), photos->numSelected() );
00427 qApp->processEvents();
00428
00429
00430 int num = 0;
00431 QIconViewItem* current = photos->firstItem();
00432 while(current != NULL)
00433 {
00434 if(current->isSelected())
00435 {
00436
00437 layout->getWindow()->getStatus()->updateProgress( num, statusMessage.arg(photos->numSelected() - num) );
00438
00439 ((PhotoPreviewWidget*)current)->getPhoto()->rotate90();
00440 photos->ensureItemVisible(((PhotoPreviewWidget*)current));
00441 ((PhotoPreviewWidget*)current)->updateImage();
00442 num++;
00443 layout->getWindow()->getStatus()->updateProgress( num );
00444 qApp->processEvents();
00445 }
00446
00447
00448 current = current->nextItem();
00449 }
00450
00451
00452 emit selectedPhotoStateChanged();
00453
00454
00455 layout->getWindow()->getStatus()->setStatus( tr("Rotating complete.") );
00456
00457
00458 layout->getWindow()->getTitle()->setBusy(false);
00459 layout->getSubalbums()->updateButtons(true);
00460 updateButtons(true);
00461 photos->setSelectionMode( QIconView::Extended ) ;
00462
00463 qApp->restoreOverrideCursor();
00464 }
00465
00466 void SubalbumWidget::rotate270ImageAction()
00467 {
00468
00469 qApp->setOverrideCursor( QCursor(Qt::WaitCursor));
00470 layout->getWindow()->getTitle()->setBusy(true);
00471 layout->getSubalbums()->updateButtons(false);
00472 photos->setSelectionMode( QIconView::NoSelection ) ;
00473 updateButtons(false);
00474
00475
00476 QString statusMessage = tr("Rotating %1 photos:");
00477 layout->getWindow()->getStatus()->showProgressBar( statusMessage.arg(photos->numSelected()), photos->numSelected() );
00478 qApp->processEvents();
00479
00480
00481 int num = 0;
00482 QIconViewItem* current = photos->firstItem();
00483 while(current != NULL)
00484 {
00485 if(current->isSelected())
00486 {
00487
00488 layout->getWindow()->getStatus()->updateProgress( num, statusMessage.arg(photos->numSelected() - num) );
00489
00490 ((PhotoPreviewWidget*)current)->getPhoto()->rotate270();
00491 photos->ensureItemVisible(((PhotoPreviewWidget*)current));
00492 ((PhotoPreviewWidget*)current)->updateImage();
00493 num++;
00494 layout->getWindow()->getStatus()->updateProgress( num );
00495 qApp->processEvents();
00496 }
00497
00498
00499 current = current->nextItem();
00500 }
00501
00502
00503 emit selectedPhotoStateChanged();
00504
00505
00506 layout->getWindow()->getStatus()->setStatus( tr("Rotating complete.") );
00507
00508
00509 layout->getWindow()->getTitle()->setBusy(false);
00510 layout->getSubalbums()->updateButtons(true);
00511 updateButtons(true);
00512 photos->setSelectionMode( QIconView::Extended ) ;
00513 qApp->restoreOverrideCursor();
00514 }
00515
00516 void SubalbumWidget::refreshPhotos()
00517 {
00518
00519 photos->clear();
00520
00521 if(subalbum != NULL)
00522 {
00523
00524 Photo* currentPhoto = subalbum->getFirst();
00525 while(currentPhoto != NULL)
00526 {
00527 new PhotoPreviewWidget( photos, currentPhoto );
00528 currentPhoto = currentPhoto->getNext();
00529 }
00530
00531 photos->arrangeItemsInGrid();
00532 }
00533 }
00534
00535 void SubalbumWidget::refreshAllPhotos()
00536 {
00537 QIconViewItem* current = photos->firstItem();
00538 while(current != NULL)
00539 {
00540 ((PhotoPreviewWidget*)current)->updateImage();
00541 ((PhotoPreviewWidget*)current)->updateDescription();
00542 current = current->nextItem();
00543 }
00544 }
00545
00546 void SubalbumWidget::refreshSelectedPhotos()
00547 {
00548 QIconViewItem* current = photos->firstItem();
00549 while(current != NULL)
00550 {
00551
00552 if(current->isSelected())
00553 {
00554 ((PhotoPreviewWidget*)current)->updateImage();
00555 ((PhotoPreviewWidget*)current)->updateDescription();
00556 }
00557
00558
00559 current = current->nextItem();
00560 }
00561 }
00562
00563 void SubalbumWidget::stripDescriptionsFromSelectedPhotos()
00564 {
00565 QIconViewItem* current = photos->firstItem();
00566 while(current != NULL)
00567 {
00568
00569 if(current->isSelected())
00570 {
00571 ((PhotoPreviewWidget*)current)->getPhoto()->setDescription("");
00572 ((PhotoPreviewWidget*)current)->setText( "" );
00573 }
00574
00575
00576 current = current->nextItem();
00577 }
00578 }
00579
00580 Subalbum* SubalbumWidget::getSubalbum()
00581 {
00582 return subalbum;
00583 }
00584
00585 Photo* SubalbumWidget::getSelectedPhoto()
00586 {
00587
00588 int numSelected = 0;
00589 QIconViewItem* current = photos->firstItem();
00590 QIconViewItem* selected = NULL;
00591 while(current != NULL)
00592 {
00593
00594 if(current->isSelected())
00595 {
00596 numSelected++;
00597 selected = current;
00598 }
00599
00600
00601 if(numSelected > 1) return NULL;
00602
00603
00604 current = current->nextItem();
00605 }
00606
00607
00608 if(numSelected == 1) { return ((PhotoPreviewWidget*)selected)->getPhoto(); }
00609 else { return NULL; }
00610 }
00611
00612 Photo* SubalbumWidget::getFirstSelectedPhoto()
00613 {
00614
00615 QIconViewItem* current = photos->firstItem();
00616 while(current != NULL)
00617 {
00618
00619 if(current->isSelected())
00620 { return ((PhotoPreviewWidget*)current)->getPhoto(); }
00621
00622
00623 current = current->nextItem();
00624 }
00625
00626
00627 return NULL;
00628 }
00629
00630 void SubalbumWidget::setSelectedPhoto(Photo* selection)
00631 {
00632
00633 QIconViewItem* current = photos->firstItem();
00634 while(current != NULL)
00635 {
00636 if( ((PhotoPreviewWidget*)current)->getPhoto() == selection )
00637 {
00638
00639 photos->selectAll(false);
00640
00641
00642 current->setSelected(true);
00643 photos->ensureItemVisible( current );
00644
00645 return;
00646 }
00647
00648
00649 current = current->nextItem();
00650 }
00651 }
00652
00653 bool SubalbumWidget::anyPhotosSelected()
00654 {
00655 QIconViewItem* current = photos->firstItem();
00656 while(current != NULL)
00657 {
00658 if(current->isSelected())
00659 return true;
00660 current = current->nextItem();
00661 }
00662 return false;
00663 }
00664
00665 bool SubalbumWidget::anySelectedPhotosRevertable()
00666 {
00667 QIconViewItem* current = photos->firstItem();
00668 while(current != NULL)
00669 {
00670 if(current->isSelected())
00671 {
00672 if( ((PhotoPreviewWidget*)current)->getPhoto()->revertPossible() )
00673 return true;
00674 }
00675 current = current->nextItem();
00676 }
00677 return false;
00678 }
00679
00680 void SubalbumWidget::resizeEvent( QResizeEvent * )
00681 {
00682 photos->arrangeItemsInGrid();
00683 }
00684
00685 QIconView* SubalbumWidget::getPhotos()
00686 {
00687 return photos;
00688 }
00689
00690 void SubalbumWidget::reorder()
00691 {
00692
00693 photos->sort( true );
00694 photos->arrangeItemsInGrid();
00695
00696
00697 subalbum->syncPhotoList((PhotoPreviewWidget*)photos->firstItem());
00698 }
00699
00700 void SubalbumWidget::selectionChangedEvent()
00701 {
00702
00703 updateButtons();
00704
00705
00706 emit selectedPhotoStateChanged();
00707 }
00708
00709 void SubalbumWidget::updateButtons()
00710 {
00711 int numSelected = 0;
00712 QIconViewItem* current = photos->firstItem();
00713 while(current != NULL)
00714 {
00715 if(current->isSelected())
00716 {
00717 numSelected++;
00718
00719
00720
00721
00722
00723
00724 if(numSelected > 1)
00725 break;
00726 }
00727
00728
00729 current = current->nextItem();
00730 }
00731
00732 if(numSelected == 0)
00733 {
00734 removeImage->setEnabled(false);
00735 rotate90Image->setEnabled(false);
00736 rotate270Image->setEnabled(false);
00737 if(setDesktopBtn) { setDesktopBtn->setEnabled(false); }
00738 layout->setEditTabEnabled(false);
00739 }
00740 else
00741 {
00742 removeImage->setEnabled(true);
00743 rotate90Image->setEnabled(true);
00744 rotate270Image->setEnabled(true);
00745 if(setDesktopBtn) { setDesktopBtn->setEnabled(true); }
00746 layout->setEditTabEnabled(true);
00747 }
00748
00749 if(setDesktopBtn) { setDesktopBtn->setEnabled( numSelected == 1 ); }
00750 }
00751
00752 void SubalbumWidget::updateButtons(bool enable)
00753 {
00754 if(!enable)
00755 {
00756 buttonsState = rotate90Image->isEnabled();
00757 addImage->setEnabled(enable && true);
00758 removeImage->setEnabled(enable && true);
00759 rotate90Image->setEnabled(enable);
00760 rotate270Image->setEnabled(enable);
00761 if(setDesktopBtn)
00762 {
00763 wallpaperButtonState = setDesktopBtn->isEnabled();
00764 setDesktopBtn->setEnabled(enable);
00765 }
00766 layout->setEditTabEnabled(enable);
00767 }
00768 else
00769 {
00770 addImage->setEnabled(enable && true);
00771 removeImage->setEnabled(buttonsState && true);
00772 rotate90Image->setEnabled(buttonsState);
00773 rotate270Image->setEnabled(buttonsState);
00774 if(setDesktopBtn) { setDesktopBtn->setEnabled(wallpaperButtonState); }
00775 layout->setEditTabEnabled(buttonsState);
00776 }
00777 }
00778
00779 void SubalbumWidget::deselectAll()
00780 {
00781 photos->selectAll(false);
00782 }
00783