00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #include <qpixmap.h>
00019 #include <qstring.h>
00020 #include <qpainter.h>
00021 #include <qiconview.h>
00022
00023
00024 #include "subalbumPreviewWidget.h"
00025 #include "subalbumsIconView.h"
00026 #include "../backend/subalbum.h"
00027 #include "../backend/photo.h"
00028 #include "subalbumsWidget.h"
00029 #include "layoutWidget.h"
00030 #include "subalbumWidget.h"
00031 #include "photoWidget.h"
00032
00033 SubalbumPreviewWidget::SubalbumPreviewWidget( SubalbumsIconView* parent,
00034 Subalbum* salbum ) :
00035 QIconViewItem(parent,
00036 salbum->getName(),
00037 *salbum->getRepresentativeImage(MEDIUM))
00038 {
00039 this->parent = parent;
00040 subalbum = salbum;
00041 }
00042
00043 Subalbum* SubalbumPreviewWidget::getSubalbum()
00044 {
00045 return subalbum;
00046 }
00047
00048 void SubalbumPreviewWidget::paintItem( QPainter* p,
00049 const QColorGroup& cg)
00050 {
00051 if(isSelected())
00052 {
00053
00054 int align = AlignHCenter;
00055 align |= WordBreak | BreakAnywhere;
00056 p->drawPixmap(pixmapRect(false),*pixmap());
00057 p->drawText(textRect(false),align, text());
00058 p->setPen( red );
00059 p->drawRect(rect());
00060 }
00061 else
00062 {
00063 QIconViewItem::paintItem ( p, cg);
00064 }
00065 }
00066
00067 void SubalbumPreviewWidget::dropped( QDropEvent *e, const QValueList<QIconDragItem> & )
00068 {
00069 if(e->source()->parentWidget() == parent)
00070 {
00071 if(e->pos().y() < (y() + (height()/2)))
00072 {
00073 parent->currentItem()->move(x(), y() - 1);
00074 }
00075 else
00076 {
00077 parent->currentItem()->move(x(), y() + (height()/2) + 1);
00078 }
00079 }
00080 else
00081 {
00082
00083
00084
00085 if(!isSelected() && e->source()->parentWidget() == ((LayoutWidget*)(parent->parentWidget()->parentWidget()))->getSubalbum()->getPhotos())
00086 {
00087
00088
00089
00090 SubalbumWidget* oldSubalbumWidget = ((LayoutWidget*)(parent->parentWidget()->parentWidget()))->getSubalbum();
00091 Subalbum* oldSubalbum = oldSubalbumWidget->getSubalbum();
00092 QIconViewItem* current = oldSubalbumWidget->getPhotos()->firstItem();
00093
00094 while(current != NULL)
00095 {
00096
00097 if(current->isSelected())
00098 {
00099
00100 Photo* photo = ((PhotoWidget*)current)->getPhoto();
00101
00102
00103 oldSubalbum->photoMoved(photo);
00104
00105
00106 subalbum->addPhoto(photo);
00107
00108
00109 QIconViewItem* temp = current;
00110 current = current->nextItem();
00111 delete temp;
00112
00113 oldSubalbumWidget->getPhotos()->arrangeItemsInGrid();
00114 }
00115 else
00116 current = current->nextItem();
00117 }
00118 }
00119 }
00120 }
00121
00122 bool SubalbumPreviewWidget::acceptDrop( const QMimeSource *) const
00123 {
00124 return true;
00125 }
00126
00127 int SubalbumPreviewWidget::compare ( QIconViewItem * i ) const
00128 {
00129 if(pos().y() >= i->pos().y())
00130 { return 1; }
00131 else
00132 { return -1; }
00133 }
00134