30#include <qpushbutton.h>
32#include <qvgroupbox.h>
37#include <kbuttonbox.h>
42#include <kio/previewjob.h>
51#include "imagecollectionselector.moc"
62 : QCheckListItem( parent, collection.name(), QCheckListItem::CheckBox),
63 _imageCollection(collection), _selector(selector)
72 QCheckListItem::stateChange(val);
73 _selector->emitSelectionChanged();
92 : QWidget(parent, name)
98 d->_list=
new KListView(
this);
99 d->_list->setResizeMode( QListView::LastColumn );
100 d->_list->addColumn(
"");
101 d->_list->header()->hide();
104 SLOT(slotSelectionChanged(QListViewItem*)));
106 QHBoxLayout* mainLayout=
new QHBoxLayout(
this, 0, KDialog::spacingHint());
107 mainLayout->addWidget(d->_list);
109 QVBoxLayout* rightLayout =
new QVBoxLayout(mainLayout, 0);
111 KButtonBox* box=
new KButtonBox(
this, Vertical);
112 rightLayout->addWidget(box);
113 QPushButton* selectAll=box->addButton(i18n(
"Select All"));
114 QPushButton* invertSelection=box->addButton(i18n(
"Invert Selection"));
115 QPushButton* selectNone=box->addButton(i18n(
"Select None"));
118 connect(selectAll, SIGNAL(clicked()),
119 this, SLOT(slotSelectAll()) );
120 connect(invertSelection, SIGNAL(clicked()),
121 this, SLOT(slotInvertSelection()) );
122 connect(selectNone, SIGNAL(clicked()),
123 this, SLOT(slotSelectNone()) );
125 rightLayout->addItem(
new QSpacerItem(10,20,QSizePolicy::Fixed,
126 QSizePolicy::Expanding));
128 QVGroupBox* rightBox =
new QVGroupBox(
this);
129 rightBox->setInsideMargin(KDialog::marginHint());
130 rightBox->setInsideSpacing(KDialog::spacingHint());
131 rightLayout->addWidget(rightBox);
135 d->_thumbLabel =
new QLabel(rightBox);
136 d->_thumbLabel->setFixedSize(QSize(128,128));
137 d->_thumbLabel->setAlignment(AlignHCenter | AlignVCenter);
143 d->_textLabel =
new QLabel(rightBox);
146 QTimer::singleShot(0,
this, SLOT(slotInitialShow()));
156void ImageCollectionSelector::fillList()
161 bool currentWasInList =
false;
168 for( QValueList<ImageCollection>::Iterator it = collections.begin() ;
169 it != collections.end() ; ++it )
172 if (!currentWasInList && *it == current)
175 currentWasInList =
true;
181 if (!currentWasInList)
184 d->_itemToSelect = d->_list->firstChild();
189void ImageCollectionSelector::emitSelectionChanged()
196 QValueList<ImageCollection> list;
198 QListViewItemIterator it( d->_list );
200 for (; it.current(); ++it)
213void ImageCollectionSelector::slotSelectAll()
215 QListViewItemIterator it( d->
_list );
221 for (; it.current(); ++it)
232void ImageCollectionSelector::slotInvertSelection()
234 QListViewItemIterator it( d->_list );
240 for (; it.current(); ++it)
243 item->setOn(!item->isOn());
251void ImageCollectionSelector::slotSelectNone()
253 QListViewItemIterator it( d->_list );
259 for (; it.current(); ++it)
269void ImageCollectionSelector::slotSelectionChanged(QListViewItem* listItem)
272 d->_thumbLabel->clear();
273 d->_textLabel->clear();
282 KURL::List images(imcollItem->imageCollection().images());
283 if (!images.isEmpty())
285 KIO::PreviewJob* thumbJob = KIO::filePreview(images.first(), 128);
286 connect( thumbJob, SIGNAL(gotPreview(
const KFileItem*,
const QPixmap&)),
287 SLOT(slotGotPreview(
const KFileItem* ,
const QPixmap&)));
293 QString cellBeg(
"<tr><td><nobr><font size=-1><i>");
294 QString cellMid(
"</i></font></nobr></td><td><font size=-1>");
295 QString cellEnd(
"</font></td></tr>");
297 QString text(
"<table cellspacing=0 cellpadding=0>");
300 text += cellBeg + i18n(
"Images:") +
301 cellMid + QString::number(imcollItem->imageCollection().images().count()) +
310 QString comments = imcollItem->imageCollection().comment();
311 if (!comments.isEmpty())
313 comments.truncate(20);
314 comments.append(
"...");
317 text += cellBeg + i18n(
"Caption:") +
325 text += cellBeg + i18n(
"Category:") +
326 cellMid + imcollItem->imageCollection().category() +
333 QDate date(imcollItem->imageCollection().date());
334 text += cellBeg + i18n(
"Date:") +
335 cellMid + KGlobal::locale()->formatDate(date) +
341 d->_textLabel->setText(text);
346void ImageCollectionSelector::slotGotPreview(
const KFileItem*,
const QPixmap& pix)
348 d->_thumbLabel->setPixmap(pix);
351void ImageCollectionSelector::slotInitialShow()
353 if (d->_itemToSelect)
355 d->_list->setSelected(d->_itemToSelect,
true);
356 d->_list->ensureItemVisible(d->_itemToSelect);
357 d->_itemToSelect = 0;
Definition imagecollectionselector.cpp:57
ImageCollection imageCollection() const
Definition imagecollectionselector.cpp:66
ImageCollectionItem(ImageCollectionSelector *selector, QListView *parent, ImageCollection collection)
Definition imagecollectionselector.cpp:60
virtual void stateChange(bool val)
Definition imagecollectionselector.cpp:70
Definition imagecollectionselector.h:49
ImageCollectionSelector(QWidget *parent, Interface *, const char *name=0)
Definition imagecollectionselector.cpp:91
friend class ImageCollectionItem
Definition imagecollectionselector.h:80
QValueList< ImageCollection > selectedImageCollections() const
Definition imagecollectionselector.cpp:194
void selectionChanged(void)
~ImageCollectionSelector()
Definition imagecollectionselector.cpp:150
Definition imagecollection.h:53
Definition interface.h:64
virtual ImageCollection currentAlbum()=0
Definition interface.cpp:184
virtual QValueList< ImageCollection > allAlbums()=0
Definition interface.cpp:204
bool hasFeature(KIPI::Features feature)
Definition interface.cpp:129
Definition batchprogressdialog.cpp:70
@ AlbumsHaveCategory
Definition interface.h:56
@ AlbumsUseFirstImagePreview
Definition interface.h:58
@ AlbumsHaveComments
Definition interface.h:50
@ AlbumsHaveCreationDate
Definition interface.h:57
Definition imagecollectionselector.cpp:83
QLabel * _thumbLabel
Definition imagecollectionselector.cpp:86
Interface * _interface
Definition imagecollectionselector.cpp:84
QLabel * _textLabel
Definition imagecollectionselector.cpp:87
QListViewItem * _itemToSelect
Definition imagecollectionselector.cpp:88
KListView * _list
Definition imagecollectionselector.cpp:85