28#include <qguardedptr.h>
33#include <qpushbutton.h>
41#include <kstandarddirs.h>
42#include <kio/previewjob.h>
43#include <kapplication.h>
44#include <kaboutdata.h>
46#include <kiconloader.h>
47#include <kpopupmenu.h>
56#include "imagedialog.moc"
66 : KListViewItem(parent, album.name()),
_album(album) {}
75 : KListViewItem(parent, url.fileName()),
_url(url) {}
96 : KDialogBase(KDialogBase::Plain, i18n(
"Select Image From Album"), Help|Ok|Cancel,
97 Ok, parent,
"album-dialog", true, true)
103 QWidget* box = plainPage();
104 QVBoxLayout *dvlay =
new QVBoxLayout( box, 6 );
110 KAboutData* about =
new KAboutData(
"kipiplugins",
111 I18N_NOOP(
"Image selector dialog"),
113 I18N_NOOP(
"A Kipi dialog for image selection"),
114 KAboutData::License_GPL,
115 "(c) 2004,2007, Kipi development team",
117 "http://www.kipi-plugins.org");
119 QPushButton *helpButton = actionButton( Help );
120 KHelpMenu* helpMenu =
new KHelpMenu(
this, about,
false);
121 helpMenu->menu()->removeItemAt(0);
122 helpMenu->menu()->insertItem(i18n(
"Kipi Plugins Handbooks"),
this, SLOT(slotHelp()), 0, -1, 0);
123 helpButton->setPopup( helpMenu->menu() );
127 QSplitter* splitter =
new QSplitter(box);
132 d->
_albumList->setResizeMode(QListView::LastColumn);
137 d->
_imageList->setSelectionMode(singleSelection ? QListView::Single :
138 QListView::Extended);
139 d->
_imageList->setResizeMode(QListView::LastColumn);
142 d->
_preview->setAlignment(AlignHCenter | AlignVCenter | WordBreak);
144 d->
_preview->setText(i18n(
"No image selected"));
146 dvlay->addWidget( splitter );
149 QValueList<ImageCollection>::ConstIterator it=d->
_albums.begin();
151 for(; it!=d->
_albums.end(); ++it)
155 QTimer::singleShot(0,
this, SLOT(slotInitialShow()));
157 connect(d->
_albumList, SIGNAL(selectionChanged(QListViewItem*)),
158 this, SLOT(fillImageList(QListViewItem*)) );
161 connect(d->
_imageList, SIGNAL(selectionChanged(QListViewItem*)),
162 this, SLOT(slotImageSelected(QListViewItem*)) );
164 connect(d->
_imageList, SIGNAL(selectionChanged()),
165 this, SLOT(slotImagesSelected()));
167 enableButtonOK(
false);
189 if (dlg.exec() == QDialog::Accepted)
202 if (dlg.exec() == QDialog::Accepted)
211void ImageDialog::fillImageList(QListViewItem* item)
217 KURL::List images=album.
images();
219 KURL::List::ConstIterator it=images.begin();
220 for (;it!=images.end(); ++it)
226void ImageDialog::slotImageSelected(QListViewItem* item)
230 enableButtonOK(
false);
231 d->
_preview->setText(i18n(
"No image selected"));
235 enableButtonOK(
true);
236 d->
_url=
static_cast<ImageLVI*
>(item)->_url;
240 connect( thumbJob, SIGNAL(gotPreview(
const KFileItem*,
const QPixmap&)),
241 SLOT(slotGotPreview(
const KFileItem* ,
const QPixmap&)));
244void ImageDialog::slotImagesSelected()
250 QListViewItem* selectedItem = 0;
251 QListViewItem* listItem = d->
_imageList->firstChild();
254 if (listItem->isSelected())
256 selectedItem = listItem;
257 d->
_urls.append(
static_cast<ImageLVI*
>(listItem)->_url);
259 listItem = listItem->nextSibling();
264 enableButtonOK(
false);
265 d->
_preview->setText(i18n(
"No images selected"));
271 enableButtonOK(
true);
273 if (d->
_urls.count() == 1)
278 connect( thumbJob, SIGNAL(gotPreview(
const KFileItem*,
const QPixmap&)),
279 SLOT(slotGotPreview(
const KFileItem* ,
const QPixmap&)));
284 d->
_preview->setText(i18n(
"1 image selected",
"%n images selected", d->
_urls.count()));
288void ImageDialog::slotGotPreview(
const KFileItem*,
const QPixmap& pix)
293void ImageDialog::slotHelp(
void )
295 KApplication::kApplication()->invokeHelp(
"",
"kipi-plugins");
298void ImageDialog::slotInitialShow()
303 while ( it.current() )
305 AlbumLVI* lvi =
static_cast<AlbumLVI*
>( it.current() );
306 if ( lvi->_album == current )
Definition imagecollection.h:53
KURL::List images() const
Definition imagecollection.cpp:95
Definition imagedialog.h:54
static KURL getImageURL(QWidget *, Interface *)
Definition imagedialog.cpp:186
KURL::List urls() const
Definition imagedialog.cpp:181
KURL url() const
Definition imagedialog.cpp:176
~ImageDialog()
Definition imagedialog.cpp:171
static KURL::List getImageURLs(QWidget *, Interface *)
Definition imagedialog.cpp:199
ImageDialog(QWidget *, Interface *, bool singleSelection=false)
Definition imagedialog.cpp:94
Definition interface.h:64
virtual ImageCollection currentAlbum()=0
Definition interface.cpp:184
virtual QValueList< ImageCollection > allAlbums()=0
Definition interface.cpp:204
const int PREVIEW_SIZE
Definition imagedialog.cpp:58
Definition batchprogressdialog.cpp:70
Definition imagedialog.cpp:64
const KIPI::ImageCollection & _album
Definition imagedialog.cpp:68
AlbumLVI(KListView *parent, const KIPI::ImageCollection &album)
Definition imagedialog.cpp:65
Definition imagedialog.cpp:82
QLabel * _preview
Definition imagedialog.cpp:88
KURL::List _urls
Definition imagedialog.cpp:84
KListView * _albumList
Definition imagedialog.cpp:86
KIPI::Interface * _interface
Definition imagedialog.cpp:85
QValueList< ImageCollection > _albums
Definition imagedialog.cpp:89
bool _singleSelection
Definition imagedialog.cpp:90
KListView * _imageList
Definition imagedialog.cpp:87
KURL _url
Definition imagedialog.cpp:83
Definition imagedialog.cpp:73
KURL _url
Definition imagedialog.cpp:77
ImageLVI(KListView *parent, const KURL &url)
Definition imagedialog.cpp:74