#include <subalbumsWidget.h>
Inheritance diagram for SubalbumsWidget:


Definition at line 35 of file subalbumsWidget.h.
Public Member Functions | |
| SubalbumsWidget (QWidget *parent=0, const char *name=0) | |
| Creates layout. | |
| 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 | |
| QToolButton * | createSubalbum |
| "Create" button | |
| QToolButton * | deleteSubalbum |
| "Delete" button | |
| LayoutWidget * | layout |
| Pointer to layoutwidget this widget is in. | |
| bool | buttonsState |
| cached enabled/disabled state of buttons | |
|
||||||||||||
|
Creates layout.
Definition at line 40 of file subalbumsWidget.cpp. References createAction(), createSubalbum, deleteAction(), deleteSubalbum, 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( tr("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 buttons 00078 QFont buttonFont( qApp->font() ); 00079 buttonFont.setBold(true); 00080 buttonFont.setPointSize( 11 ); 00081 00082 createSubalbum = new QToolButton( this ); 00083 createSubalbum->setTextLabel(tr("Create")); 00084 createSubalbum->setIconSet( QPixmap(QString(IMAGE_PATH)+"create.png") ); 00085 createSubalbum->setTextPosition(QToolButton::Right); 00086 createSubalbum->setFont( buttonFont ); 00087 createSubalbum->setUsesTextLabel( true ); 00088 QToolTip::add( createSubalbum, tr("Create a subalbum and append to subalbum list") ); 00089 connect( createSubalbum, SIGNAL(clicked()), SLOT(createAction()) ); 00090 00091 deleteSubalbum = new QToolButton( this ); 00092 deleteSubalbum->setTextLabel(tr("Delete")); 00093 deleteSubalbum->setIconSet( QPixmap(QString(IMAGE_PATH)+"delete.png") ); 00094 deleteSubalbum->setTextPosition(QToolButton::Right); 00095 deleteSubalbum->setFont( buttonFont ); 00096 deleteSubalbum->setUsesTextLabel( true ); 00097 deleteSubalbum->setEnabled(false); 00098 QToolTip::add( deleteSubalbum, tr("Delete selected subalbum and all conents") ); 00099 connect( deleteSubalbum, SIGNAL(clicked()), SLOT(deleteAction()) ); 00100 00101 //place label, listbox, and buttons in grid 00102 grid = new QGridLayout( this, 3, 5, 0 ); 00103 grid->addMultiCellWidget( subalbumsText, 0, 0, 0, 4 ); 00104 grid->addMultiCellWidget( subalbums, 1, 1, 0, 4 ); 00105 grid->addWidget( createSubalbum, 2, 1); 00106 grid->addWidget( deleteSubalbum, 2, 3); 00107 00108 grid->setColStretch( 0, 1 ); 00109 grid->setColStretch( 2, 1 ); 00110 grid->setColStretch( 4, 1 ); 00111 00112 //set listbox to grow 00113 grid->setRowStretch( 1, 1 ); 00114 00115 //set the background of the widget to be white 00116 setPaletteBackgroundColor( QColor(255, 255, 255) ); 00117 } |
|
|
Creates new subalbum and adds to layout.
Definition at line 119 of file subalbumsWidget.cpp. References Album::appendSubalbum(), TitleWidget::getAlbum(), Album::getNumSubalbums(), Window::getTitle(), LayoutWidget::getWindow(), layout, and subalbums. Referenced by SubalbumsWidget().
00120 {
00121 Subalbum* n = new Subalbum(layout->getWindow()->getTitle()->getAlbum(),
00122 layout->getWindow()->getTitle()->getAlbum()->getNumSubalbums()+1);
00123 SubalbumPreviewWidget* p = new SubalbumPreviewWidget( subalbums, n );
00124 p->setDropEnabled(true);
00125
00126 layout->getWindow()->getTitle()->getAlbum()->appendSubalbum( n );
00127 }
|
|
|
Deletes selected subalbum if user selects "yes".
Definition at line 129 of file subalbumsWidget.cpp. References deleteSubalbum, TitleWidget::getAlbum(), Window::getTitle(), LayoutWidget::getWindow(), layout, Album::removeSubalbum(), TitleWidget::setSetButtonState(), subalbums, and updateSubalbumLayout(). Referenced by SubalbumsWidget().
00130 {
00131 //if an item is selected it remove it
00132 if(subalbums->currentItem() != NULL)
00133 {
00134 //check if user is sure
00135 QuestionDialog sure( tr("Delete subalbum?"),
00136 tr("Once deleted a subalbum and it's contents cannot be brought back unless a saved copy of the album exists."),
00137 "warning.png",
00138 this );
00139 //if user say yes then delete subalbum and refresh
00140 if(sure.exec())
00141 {
00142 //delete the subalbum
00143 Subalbum* s = ((SubalbumPreviewWidget*) subalbums->currentItem())->getSubalbum();
00144 delete subalbums->currentItem();
00145
00146 //remove subalbum from backend album object
00147 layout->getWindow()->getTitle()->getAlbum()->removeSubalbum( s );
00148
00149 //rearrange the items in the grid
00150 subalbums->arrangeItemsInGrid();
00151
00152 //update which subalbum is shown in the layout area
00153 updateSubalbumLayout(subalbums->firstItem(), false);
00154
00155 //check if any subalbums selected, if not deactivate delete button
00156 if(subalbums->currentItem() == NULL || !subalbums->currentItem()->isSelected())
00157 {
00158 deleteSubalbum->setEnabled(false);
00159 }
00160
00161 //no images themselves selected so disable set button
00162 layout->getWindow()->getTitle()->setSetButtonState(false);
00163 }
00164 }
00165 }
|
|
|
Returns parent.
Definition at line 262 of file subalbumsWidget.cpp. References layout.
00263 {
00264 return layout;
00265 }
|
|
|
Refreshes layout.
Definition at line 230 of file subalbumsWidget.cpp. References TitleWidget::getAlbum(), Album::getFirstSubalbum(), Subalbum::getNext(), Window::getTitle(), LayoutWidget::getWindow(), layout, subalbums, and updateSubalbumLayout(). Referenced by LayoutWidget::refresh().
00231 {
00232 //delete all previous entries
00233 QIconViewItem* current = subalbums->firstItem();
00234 QIconViewItem* temp;
00235 while(current != NULL)
00236 {
00237 //get next pointer
00238 temp = current->nextItem();
00239
00240 //delete widget
00241 delete current;
00242 current = temp;
00243 }
00244
00245 //insert all new subalums
00246 Subalbum* curSubalbum = layout->getWindow()->getTitle()->getAlbum()->getFirstSubalbum();
00247 while( curSubalbum != NULL)
00248 {
00249 (void) new SubalbumPreviewWidget( subalbums, curSubalbum );
00250 curSubalbum = curSubalbum->getNext();
00251 }
00252
00253 //refresh layout
00254 subalbums->arrangeItemsInGrid();
00255 updateSubalbumLayout( subalbums->firstItem(), false );
00256
00257 //auto select first item
00258 if(subalbums->firstItem() != NULL)
00259 subalbums->setSelected( subalbums->firstItem(), true);
00260 }
|
|
|
Definition at line 217 of file subalbumsWidget.cpp. References TitleWidget::getAlbum(), Window::getTitle(), LayoutWidget::getWindow(), layout, subalbums, and Album::syncSubalbumList(). Referenced by SubalbumsWidget().
00218 {
00219 //so item has been moved, reorder linked list of items as necessary
00220 subalbums->sort( true );
00221 subalbums->arrangeItemsInGrid();
00222
00223 //get handle on backend album object
00224 Album* albm = layout->getWindow()->getTitle()->getAlbum();
00225
00226 //sync lists
00227 albm->syncSubalbumList((SubalbumPreviewWidget*)subalbums->firstItem());
00228 }
|
|
|
Activates/Deactives create/delete buttons.
Definition at line 267 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(), TitleWidget::saveAlbum(), and TitleWidget::saveAsAlbum().
00268 {
00269 if(!enable)
00270 {
00271 buttonsState = createSubalbum->isEnabled();
00272 createSubalbum->setEnabled(enable);
00273 deleteSubalbum->setEnabled(enable);
00274 }
00275 else
00276 {
00277 createSubalbum->setEnabled(enable);
00278 deleteSubalbum->setEnabled(buttonsState);
00279 }
00280 }
|
|
||||||||||||
|
Definition at line 184 of file subalbumsWidget.cpp. References layout, LayoutWidget::stopEdit(), and LayoutWidget::updateSubalbum().
00185 {
00186 //hide photo edit dialog in case we were just editing a photo
00187 layout->stopEdit(oldExists);
00188
00189 if(selection == NULL)
00190 layout->updateSubalbum( NULL, oldExists );
00191 else
00192 {
00193 layout->updateSubalbum(((SubalbumPreviewWidget*)selection)->getSubalbum(), oldExists);
00194 }
00195 }
|
|
|
Updates subalbum layout with user selects a differnt subalbum.
Definition at line 167 of file subalbumsWidget.cpp. References deleteSubalbum, TitleWidget::getBusy(), Window::getTitle(), LayoutWidget::getWindow(), and layout. Referenced by deleteAction(), refresh(), and SubalbumsWidget().
00168 {
00169 //if application busy ignore action
00170 if(layout->getWindow()->getTitle()->getBusy())
00171 {
00172 return;
00173 }
00174
00175 //activate/disable delete button depending on if something is currently selected or not
00176 if(selection == NULL)
00177 deleteSubalbum->setEnabled(false);
00178 else
00179 deleteSubalbum->setEnabled(true);
00180
00181 updateSubalbumLayout(selection, true);
00182 }
|
|
|
Updates subalbum name.
Definition at line 197 of file subalbumsWidget.cpp. References subalbums. Referenced by LayoutWidget::updateSubalbumName().
|
|
|
Updates the current subalbums thumbnail.
Definition at line 207 of file subalbumsWidget.cpp. References subalbums. Referenced by LayoutWidget::updateSubalbumImage().
|
|
|
cached enabled/disabled state of buttons
Definition at line 94 of file subalbumsWidget.h. Referenced by updateButtons(). |
|
|
"Create" button
Definition at line 85 of file subalbumsWidget.h. Referenced by SubalbumsWidget(), and updateButtons(). |
|
|
"Delete" button
Definition at line 88 of file subalbumsWidget.h. Referenced by deleteAction(), SubalbumsWidget(), updateButtons(), and updateSubalbumLayout(). |
|
|
Grid widgets place in.
Definition at line 76 of file subalbumsWidget.h. Referenced by SubalbumsWidget(). |
|
|
Pointer to layoutwidget this widget is in.
Definition at line 91 of file subalbumsWidget.h. Referenced by createAction(), deleteAction(), getParent(), refresh(), reorder(), SubalbumsWidget(), and updateSubalbumLayout(). |
|
|
list of subalbums
Definition at line 82 of file subalbumsWidget.h. Referenced by createAction(), deleteAction(), refresh(), reorder(), SubalbumsWidget(), updateSubalbumName(), and updateSubalbumThumbnail(). |
|
|
"Subalbums:" label
Definition at line 79 of file subalbumsWidget.h. Referenced by SubalbumsWidget(). |
1.3.4