You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
158 lines
4.0 KiB
158 lines
4.0 KiB
/***************************************************************************
|
|
imageslistview.cpp - description
|
|
-------------------
|
|
begin : Weg Feb 26 2003
|
|
copyright : (C) 2003 by Jan Schäfer
|
|
email : janschaefer@users.sourceforge.net
|
|
***************************************************************************/
|
|
|
|
/***************************************************************************
|
|
* *
|
|
* This program is free software; you can redistribute it and/or modify *
|
|
* it under the terms of the GNU General Public License as published by *
|
|
* the Free Software Foundation; either version 2 of the License, or *
|
|
* (at your option) any later version. *
|
|
* *
|
|
***************************************************************************/
|
|
|
|
// QT
|
|
#include <qptrlist.h>
|
|
|
|
|
|
// KDE
|
|
#include <klocale.h>
|
|
#include <kdebug.h>
|
|
|
|
// locale
|
|
#include "imageslistview.h"
|
|
|
|
ImagesListViewItem::ImagesListViewItem(ImagesListView* parent, ImageTag* tag)
|
|
: QListViewItem(parent)
|
|
{
|
|
_imageTag = tag;
|
|
update();
|
|
}
|
|
|
|
|
|
void ImagesListViewItem::update() {
|
|
QString src="";
|
|
QString usemap="";
|
|
if (_imageTag->find("src"))
|
|
src=*_imageTag->find("src");
|
|
if (_imageTag->find("usemap"))
|
|
usemap=*_imageTag->find("usemap");
|
|
|
|
setText(0,src);
|
|
setText(1,usemap);
|
|
}
|
|
|
|
ImageTag* ImagesListViewItem::imageTag() {
|
|
return _imageTag;
|
|
}
|
|
|
|
|
|
ImagesListView::ImagesListView(QWidget *parent, const char *name)
|
|
: KListView(parent, name)
|
|
{
|
|
addColumn(i18n("Images"));
|
|
addColumn(i18n("Usemap"));
|
|
//addColumn(i18n("Preview"));
|
|
setFullWidth(true);
|
|
|
|
|
|
connect( this, SIGNAL( selectionChanged(QListViewItem*)),
|
|
this, SLOT( slotSelectionChanged(QListViewItem*)));
|
|
}
|
|
|
|
|
|
ImagesListView::~ImagesListView()
|
|
{
|
|
}
|
|
|
|
void ImagesListView::addImage(ImageTag* tag)
|
|
{
|
|
if (!tag) {
|
|
kdDebug() << "ImageListView::addImage: Parameter is null !" << endl;
|
|
return;
|
|
}
|
|
|
|
new ImagesListViewItem(this, tag);
|
|
}
|
|
|
|
void ImagesListView::addImages(QPtrList<ImageTag> * images)
|
|
{
|
|
for (ImageTag *tag = images->first(); tag!=0L; tag=images->next()) {
|
|
addImage(tag);
|
|
}
|
|
}
|
|
|
|
void ImagesListView::clear() {
|
|
QListView::clear();
|
|
}
|
|
|
|
void ImagesListView::removeImage(ImageTag* tag) {
|
|
ImagesListViewItem *item = findListViewItem(tag);
|
|
if (item) {
|
|
takeItem(item);
|
|
setSelected(currentItem(),true);
|
|
}
|
|
else {
|
|
kdDebug() << "ImageListView::removeImage: ListViewItem was not found !" << endl;
|
|
}
|
|
}
|
|
|
|
void ImagesListView::updateImage(ImageTag* tag) {
|
|
ImagesListViewItem *item = findListViewItem(tag);
|
|
if (item)
|
|
item->update();
|
|
else {
|
|
kdDebug() << "ImageListView::updateImage: ListViewItem was not found !" << endl;
|
|
}
|
|
}
|
|
|
|
ImagesListViewItem* ImagesListView::findListViewItem(ImageTag* tag) {
|
|
|
|
kdDebug() << "ImageListView::findListViewItem: start searching ... " << endl;
|
|
|
|
for (QListViewItem* item = firstChild(); item ; item = item->nextSibling()) {
|
|
ImagesListViewItem *imageItem = static_cast<ImagesListViewItem*>(item);
|
|
if (imageItem->imageTag() == tag) {
|
|
kdDebug() << "ImageListView::findListViewItem: found it " << endl;
|
|
|
|
return imageItem;
|
|
}
|
|
}
|
|
|
|
kdDebug() << "ImageListView::findListViewItem: found nothing " << endl;
|
|
return 0L;
|
|
|
|
}
|
|
|
|
void ImagesListView::slotSelectionChanged(QListViewItem* item) {
|
|
QString src = item->text(0);
|
|
|
|
emit imageSelected(KURL(_baseUrl,src));
|
|
}
|
|
|
|
ImageTag* ImagesListView::selectedImage() {
|
|
ImagesListViewItem* item = static_cast<ImagesListViewItem*>(selectedItem());
|
|
if ( ! item) {
|
|
kdDebug() << "ImagesListView::selectedImage: No Image is selected !" << endl;
|
|
return 0L;
|
|
}
|
|
|
|
return item->imageTag();
|
|
|
|
|
|
}
|
|
|
|
void ImagesListView::selectImage(ImageTag* tag) {
|
|
ImagesListViewItem* item = findListViewItem(tag);
|
|
if (item) {
|
|
setSelected(item, true);
|
|
}
|
|
}
|
|
|
|
#include "imageslistview.moc"
|
|
|