Fix for segfault when deleting MCO (invalid QModelIndex needs to be returned in index(TreeItem*) )
3 #include "branchitem.h"
4 #include "mapobj.h" // z-values
10 ImageItem::ImageItem()
15 ImageItem::ImageItem (const QList<QVariant> &data, TreeItem *parent):MapItem (data,parent)
20 ImageItem::~ImageItem()
22 //cout <<"Destr ImageItem\n";
26 void ImageItem::init()
30 hideLinkUnselected=true;
31 originalFilename="no original name available";
36 ImageItem::ImageType ImageItem::getImageType()
41 bool ImageItem::load(const QString &fname)
43 bool ok=pixmap.load (fname);
46 setOriginalFilename (fname);
47 setHeading (originalFilename);
48 ((FloatImageObj*)lmo)->load (pixmap);
53 FloatImageObj* ImageItem::createMapObj(QGraphicsScene *scene)
55 FloatImageObj *fio=new FloatImageObj (scene);
56 fio->setTreeItem (this);
58 fio->setParObj ( ((MapItem*)parentItem)->getLMO());
59 if (((BranchItem*)parentItem)->isScrolled() || !((MapItem*)parentItem)->getLMO()->isVisibleObj() )
60 fio->setVisibility (false);
62 fio->setZValue(zValue);
67 void ImageItem::setZValue(int z)
70 if (lmo) ((FloatImageObj*)lmo)->setZValue(z);
73 void ImageItem::setOriginalFilename(const QString & fn)
77 // Set short name. Search from behind:
78 int i=originalFilename.findRev("/");
79 if (i>=0) originalFilename=originalFilename.remove (0,i+1);
80 setHeading (originalFilename);
83 QString ImageItem::getOriginalFilename()
85 return originalFilename;
88 void ImageItem::save(const QString &fn, const QString &format)
90 pixmap.save (fn,qPrintable (format));
93 QString ImageItem::saveToDir (const QString &tmpdir,const QString &prefix)
95 if (hidden) return "";
97 QString zAttr=attribut ("zValue",QString().setNum(zValue));
100 ulong n=reinterpret_cast <ulong> (this);
102 url="images/"+prefix+"image-" + QString().number(n,10) + ".png" ;
104 // And really save the image
105 pixmap.save (tmpdir +"/"+ url, "PNG");
107 QString nameAttr=attribut ("originalName",originalFilename);
109 return singleElement ("floatimage",
113 +attribut ("href",QString ("file:")+url)