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 #include <iostream.h>
00034
00035
00036 SubalbumPreviewWidget::SubalbumPreviewWidget( SubalbumsIconView* parent,
00037 Subalbum* salbum ) :
00038 QIconViewItem(parent,
00039 salbum->getName(),
00040 *salbum->getRepresentativeImage(MEDIUM))
00041 {
00042 this->parent = parent;
00043 subalbum = salbum;
00044 }
00045
00046 Subalbum* SubalbumPreviewWidget::getSubalbum()
00047 {
00048 return subalbum;
00049 }
00050
00051 void SubalbumPreviewWidget::paintItem( QPainter* p,
00052 const QColorGroup& cg)
00053 {
00054 if(isSelected())
00055 {
00056
00057 int align = AlignHCenter;
00058 align |= WordBreak | BreakAnywhere;
00059 p->drawPixmap(pixmapRect(false),*pixmap());
00060 p->drawText(textRect(false),align, text());
00061 p->setPen( red );
00062 p->drawRect(rect());
00063 }
00064 else
00065 {
00066 QIconViewItem::paintItem ( p, cg);
00067 }
00068 }
00069
00070 void SubalbumPreviewWidget::dropped( QDropEvent *e, const QValueList<QIconDragItem> & )
00071 {
00072 if(e->source()->parentWidget() == parent)
00073 {
00074 if(e->pos().y() < (y() + (height()/2)))
00075 {
00076 parent->currentItem()->move(x(), y() - 1);
00077 }
00078 else
00079 {
00080 parent->currentItem()->move(x(), y() + (height()/2) + 1);
00081 }
00082 }
00083 else
00084 {
00085
00086
00087
00088 if(!isSelected() && e->source()->parentWidget() == ((LayoutWidget*)(parent->parentWidget()->parentWidget()))->getSubalbum()->getPhotos())
00089 {
00090
00091
00092
00093 SubalbumWidget* oldSubalbumWidget = ((LayoutWidget*)(parent->parentWidget()->parentWidget()))->getSubalbum();
00094 Subalbum* oldSubalbum = oldSubalbumWidget->getSubalbum();
00095 QIconViewItem* current = oldSubalbumWidget->getPhotos()->firstItem();
00096
00097 while(current != NULL)
00098 {
00099
00100 if(current->isSelected())
00101 {
00102
00103 Photo* photo = ((PhotoWidget*)current)->getPhoto();
00104
00105
00106 oldSubalbum->photoMoved(photo);
00107
00108
00109 subalbum->addPhoto(photo);
00110
00111
00112 QIconViewItem* temp = current;
00113 current = current->nextItem();
00114 delete temp;
00115
00116 oldSubalbumWidget->getPhotos()->arrangeItemsInGrid();
00117 }
00118 else
00119 current = current->nextItem();
00120 }
00121 }
00122 }
00123 }
00124
00125 bool SubalbumPreviewWidget::acceptDrop( const QMimeSource *) const
00126 {
00127 return true;
00128 }
00129
00130 int SubalbumPreviewWidget::compare ( QIconViewItem * i ) const
00131 {
00132 if(pos().y() >= i->pos().y())
00133 { return 1; }
00134 else
00135 { return -1; }
00136 }
00137