#include <subalbumsWidget.h>
Definition at line 36 of file subalbumsWidget.h.
Public Member Functions | |
| SubalbumsWidget (QWidget *parent=0, const char *name=0) | |
| Creates layout. | |
| ~SubalbumsWidget () | |
| Deletes objects. | |
| void | updateSubalbumName (const QString &val) |
| Updates subalbum name. | |
| void | updateSubalbumThumbnail (QPixmap *val) |
| Updates the current subalbums thumbnail. | |
| void | refresh () |
| Refreshes layout. | |
| LayoutWidget * | getParent () |
| Returns parent. | |
| void | updateButtons (bool enable) |
| Activates/Deactives create/delete buttons. | |
Private Slots | |
| void | createAction () |
| Creates new subalbum and adds to layout. | |
| void | deleteAction () |
| Deletes selected subalbum if user selects "yes". | |
| void | updateSubalbumLayout (QIconViewItem *selection) |
| Updates subalbum layout with user selects a differnt subalbum. | |
| void | updateSubalbumLayout (QIconViewItem *selection, bool oldExists) |
| void | reorder () |
Private Attributes | |
| QGridLayout * | grid |
| Grid widgets place in. | |
| QLabel * | subalbumsText |
| "Subalbums:" label | |
| SubalbumsIconView * | subalbums |
| list of subalbums | |
| QPixmap * | createSubalbumImage |
| "Create" image | |
| QPushButton * | createSubalbum |
| "Create" button | |
| QPixmap * | deleteSubalbumImage |
| "Delete" image | |
| QPushButton * | deleteSubalbum |
| "Delete" button | |
| LayoutWidget * | layout |
| Pointer to layoutwidget this widget is in. | |
| bool | buttonsState |
| cached enabled/disabled state of buttons | |
| QIconViewItem * | cachedSelection |
| cached selected subalbum | |
|
||||||||||||
|
Creates layout.
Definition at line 40 of file subalbumsWidget.cpp. References cachedSelection, createAction(), createSubalbum, createSubalbumImage, deleteAction(), deleteSubalbum, deleteSubalbumImage, grid, IMAGE_PATH, layout, reorder(), subalbums, subalbumsText, and updateSubalbumLayout().
00041 :
00042 QWidget(parent,name)
00043 {
00044 //set layout pointer
00045 layout = (LayoutWidget*)parent;
00046
00047 //create subalbums text
00048 subalbumsText = new QLabel( this );
00049 subalbumsText->setText( "Subalbums: " );
00050 subalbumsText->setFont( QFont( "Times", 12, QFont::Bold ) );
00051
00052 //create subalbums iconview
00053 subalbums = new SubalbumsIconView( this );
00054
00055 //establish a top-down view such that the scrollbar is always placed on the right
00056 subalbums->setArrangement( QIconView::LeftToRight );
00057 subalbums->setVScrollBarMode( QScrollView::AlwaysOn );
00058
00059 //only allow one subalbum to be selected at a time
00060 subalbums->setSelectionMode( QIconView::Single ) ;
00061
00062 //set auto-scroll off for drag-n-drop
00063 subalbums->setDragAutoScroll(true);
00064 subalbums->setAcceptDrops(true);
00065
00066 //connect drop event on iconview to reorder slot
00067 connect( subalbums, SIGNAL(itemHasMoved()), SLOT(reorder()) );
00068
00069 //connect selectionChanged signal to updateSubalbumLayout method
00070 connect( subalbums, SIGNAL(selectionChanged(QIconViewItem*)),
00071 SLOT(updateSubalbumLayout(QIconViewItem*)) );
00072
00073 //connect rightButtonClicked signal to updateSubalbumLayout method
00074 connect( subalbums, SIGNAL(rightButtonClicked(QIconViewItem*, const QPoint&)),
00075 SLOT(updateSubalbumLayout(QIconViewItem*)) );
00076
00077 //create create/delete subalbum buttons
00078 createSubalbumImage = new QPixmap( QString(IMAGE_PATH)+"create.png" );
00079
00080 createSubalbum = new QPushButton( this );
00081 createSubalbum->setPixmap( *createSubalbumImage );
00082 createSubalbum->setSizePolicy( QSizePolicy::Maximum, QSizePolicy::Maximum );
00083 connect( createSubalbum, SIGNAL(clicked()), SLOT(createAction()) );
00084
00085 deleteSubalbumImage = new QPixmap( QString(IMAGE_PATH)+"delete.png" );
00086
00087 deleteSubalbum = new QPushButton( this );
00088 deleteSubalbum->setPixmap( *deleteSubalbumImage );
00089 deleteSubalbum->setSizePolicy( QSizePolicy::Maximum, QSizePolicy::Maximum );
00090 deleteSubalbum->setEnabled(false);
00091 connect( deleteSubalbum, SIGNAL(clicked()), SLOT(deleteAction()) );
00092
00093 //place label, listbox, and buttons in grid
00094 grid = new QGridLayout( this, 3, 2, 0 );
00095 grid->addMultiCellWidget( subalbumsText, 0, 0, 0, 1 );
00096 grid->addMultiCellWidget( subalbums, 1, 1, 0, 1 );
00097 grid->addWidget( createSubalbum, 2, 0);
00098 grid->addWidget( deleteSubalbum, 2, 1);
00099
00100 //set listbox to grow
00101 grid->setRowStretch( 1, 1 );
00102
00103 //set the background of the widget to be white
00104 setPaletteBackgroundColor( QColor(255, 255, 255) );
00105
00106 //nothign selected at first
00107 cachedSelection = NULL;
00108 }
|
|
|
Deletes objects.
Definition at line 110 of file subalbumsWidget.cpp. References createSubalbumImage, and deleteSubalbumImage.
00111 {
00112 delete createSubalbumImage;
00113 delete deleteSubalbumImage;
00114 }
|
|
|
Creates new subalbum and adds to layout.
Definition at line 116 of file subalbumsWidget.cpp. References Album::appendSubalbum(), TitleWidget::getAlbum(), Album::getNumSubalbums(), Window::getTitle(), LayoutWidget::getWindow(), layout, and subalbums. Referenced by SubalbumsWidget().
00117 {
00118 Subalbum* n = new Subalbum(layout->getWindow()->getTitle()->getAlbum(),
00119 layout->getWindow()->getTitle()->getAlbum()->getNumSubalbums()+1);
00120 SubalbumPreviewWidget* p = new SubalbumPreviewWidget( subalbums, n );
00121 p->setDropEnabled(true);
00122
00123 layout->getWindow()->getTitle()->getAlbum()->appendSubalbum( n );
00124 }
|
|
|
Deletes selected subalbum if user selects "yes".
Definition at line 126 of file subalbumsWidget.cpp. References deleteSubalbum, TitleWidget::getAlbum(), Window::getTitle(), LayoutWidget::getWindow(), layout, Album::removeSubalbum(), TitleWidget::setSetButtonState(), subalbums, and updateSubalbumLayout(). Referenced by SubalbumsWidget().
00127 {
00128 //if an item is selected it remove it
00129 if(subalbums->currentItem() != NULL)
00130 {
00131 //check if user is sure
00132 QuestionDialog sure( "Delete subalbum?",
00133 "Once deleted a subalbum and it's contents cannot be brought back unless a saved copy of the album exists.",
00134 "warning.png",
00135 this );
00136 //if user say yes then delete subalbum and refresh
00137 if(sure.exec())
00138 {
00139 //delete the subalbum
00140 Subalbum* s = ((SubalbumPreviewWidget*) subalbums->currentItem())->getSubalbum();
00141 delete subalbums->currentItem();
00142
00143 //remove subalbum from backend album object
00144 layout->getWindow()->getTitle()->getAlbum()->removeSubalbum( s );
00145
00146 //rearrange the items in the grid
00147 subalbums->arrangeItemsInGrid();
00148
00149 //update which subalbum is shown in the layout area
00150 updateSubalbumLayout(subalbums->firstItem(), false);
00151
00152 //check if any subalbums selected, if not deactivate delete button
00153 if(subalbums->currentItem() == NULL || !subalbums->currentItem()->isSelected())
00154 {
00155 deleteSubalbum->setEnabled(false);
00156 }
00157
00158 //no images themselves selected so disable set button
00159 layout->getWindow()->getTitle()->setSetButtonState(false);
00160 }
00161 }
00162 }
|
|
|
Returns parent.
Definition at line 266 of file subalbumsWidget.cpp. References layout.
00267 {
00268 return layout;
00269 }
|
|
|
Refreshes layout.
Definition at line 234 of file subalbumsWidget.cpp. References TitleWidget::getAlbum(), Album::getFirstSubalbum(), Subalbum::getNext(), Window::getTitle(), LayoutWidget::getWindow(), layout, subalbums, and updateSubalbumLayout(). Referenced by LayoutWidget::refresh().
00235 {
00236 //delete all previous entries
00237 QIconViewItem* current = subalbums->firstItem();
00238 QIconViewItem* temp;
00239 while(current != NULL)
00240 {
00241 //get next pointer
00242 temp = current->nextItem();
00243
00244 //delete widget
00245 delete current;
00246 current = temp;
00247 }
00248
00249 //insert all new subalums
00250 Subalbum* curSubalbum = layout->getWindow()->getTitle()->getAlbum()->getFirstSubalbum();
00251 while( curSubalbum != NULL)
00252 {
00253 (void) new SubalbumPreviewWidget( subalbums, curSubalbum );
00254 curSubalbum = curSubalbum->getNext();
00255 }
00256
00257 //refresh layout
00258 subalbums->arrangeItemsInGrid();
00259 updateSubalbumLayout( subalbums->firstItem(), false );
00260
00261 //auto select first item
00262 if(subalbums->firstItem() != NULL)
00263 subalbums->setSelected( subalbums->firstItem(), TRUE);
00264 }
|
|
|
Definition at line 221 of file subalbumsWidget.cpp. References TitleWidget::getAlbum(), Window::getTitle(), LayoutWidget::getWindow(), layout, subalbums, and Album::syncSubalbumList(). Referenced by SubalbumsWidget().
00222 {
00223 //so item has been moved, reorder linked list of items as necessary
00224 subalbums->sort( true );
00225 subalbums->arrangeItemsInGrid();
00226
00227 //get handle on backend album object
00228 Album* albm = layout->getWindow()->getTitle()->getAlbum();
00229
00230 //sync lists
00231 albm->syncSubalbumList((SubalbumPreviewWidget*)subalbums->firstItem());
00232 }
|
|
|
Activates/Deactives create/delete buttons.
Definition at line 271 of file subalbumsWidget.cpp. References buttonsState, createSubalbum, and deleteSubalbum. Referenced by SubalbumWidget::addImageAction(), SubalbumWidget::flipHorizontallyImageAction(), SubalbumWidget::flipVerticallyImageAction(), TitleWidget::loadAlbum(), SubalbumWidget::removeImageAction(), SubalbumWidget::rotate270ImageAction(), SubalbumWidget::rotate90ImageAction(), and TitleWidget::saveAlbum().
00272 {
00273 if(!enable)
00274 {
00275 buttonsState = createSubalbum->isEnabled();
00276 createSubalbum->setEnabled(enable);
00277 deleteSubalbum->setEnabled(enable);
00278 }
00279 else
00280 {
00281 createSubalbum->setEnabled(enable);
00282 deleteSubalbum->setEnabled(buttonsState);
00283 }
00284 }
|
|
||||||||||||
|
Definition at line 188 of file subalbumsWidget.cpp. References layout, LayoutWidget::stopEdit(), and LayoutWidget::updateSubalbum().
00189 {
00190 //hide photo edit dialog in case we were just editing a photo
00191 layout->stopEdit(oldExists);
00192
00193 if(selection == NULL)
00194 layout->updateSubalbum( NULL, oldExists );
00195 else
00196 {
00197 layout->updateSubalbum(((SubalbumPreviewWidget*)selection)->getSubalbum(), oldExists);
00198 }
00199 }
|
|
|
Updates subalbum layout with user selects a differnt subalbum.
Definition at line 164 of file subalbumsWidget.cpp. References cachedSelection, deleteSubalbum, TitleWidget::getBusy(), Window::getTitle(), LayoutWidget::getWindow(), layout, and subalbums. Referenced by deleteAction(), refresh(), and SubalbumsWidget().
00165 {
00166 //if application busy ignore action
00167 if(layout->getWindow()->getTitle()->getBusy())
00168 {
00169 if(cachedSelection == NULL)
00170 subalbums->clearSelection();
00171 else
00172 subalbums->setSelected(cachedSelection, true);
00173 return;
00174 }
00175
00176 //cache selection
00177 cachedSelection = selection;
00178
00179 //activate/disable delete button depending on if something is currently selected or not
00180 if(selection == NULL)
00181 deleteSubalbum->setEnabled(false);
00182 else
00183 deleteSubalbum->setEnabled(true);
00184
00185 updateSubalbumLayout(selection, true);
00186 }
|
|
|
Updates subalbum name.
Definition at line 201 of file subalbumsWidget.cpp. References subalbums. Referenced by LayoutWidget::updateSubalbumName().
|
|
|
Updates the current subalbums thumbnail.
Definition at line 211 of file subalbumsWidget.cpp. References subalbums. Referenced by LayoutWidget::updateSubalbumImage().
|
|
|
cached enabled/disabled state of buttons
Definition at line 104 of file subalbumsWidget.h. Referenced by updateButtons(). |
|
|
cached selected subalbum
Definition at line 107 of file subalbumsWidget.h. Referenced by SubalbumsWidget(), and updateSubalbumLayout(). |
|
|
"Create" button
Definition at line 92 of file subalbumsWidget.h. Referenced by SubalbumsWidget(), and updateButtons(). |
|
|
"Create" image
Definition at line 89 of file subalbumsWidget.h. Referenced by SubalbumsWidget(), and ~SubalbumsWidget(). |
|
|
"Delete" button
Definition at line 98 of file subalbumsWidget.h. Referenced by deleteAction(), SubalbumsWidget(), updateButtons(), and updateSubalbumLayout(). |
|
|
"Delete" image
Definition at line 95 of file subalbumsWidget.h. Referenced by SubalbumsWidget(), and ~SubalbumsWidget(). |
|
|
Grid widgets place in.
Definition at line 80 of file subalbumsWidget.h. Referenced by SubalbumsWidget(). |
|
|
Pointer to layoutwidget this widget is in.
Definition at line 101 of file subalbumsWidget.h. Referenced by createAction(), deleteAction(), getParent(), refresh(), reorder(), SubalbumsWidget(), and updateSubalbumLayout(). |
|
|
list of subalbums
Definition at line 86 of file subalbumsWidget.h. Referenced by createAction(), deleteAction(), refresh(), reorder(), SubalbumsWidget(), updateSubalbumLayout(), updateSubalbumName(), and updateSubalbumThumbnail(). |
|
|
"Subalbums:" label
Definition at line 83 of file subalbumsWidget.h. Referenced by SubalbumsWidget(). |
1.3.1