insilmaril@778: #include "imageitem.h" insilmaril@778: insilmaril@778: #include "branchitem.h" insilmaril@778: #include "mapobj.h" // z-values insilmaril@778: insilmaril@778: #include insilmaril@778: #include insilmaril@778: using namespace std; insilmaril@778: insilmaril@778: ImageItem::ImageItem() insilmaril@778: { insilmaril@778: init(); insilmaril@778: } insilmaril@778: insilmaril@779: ImageItem::ImageItem (const QList &data, TreeItem *parent):MapItem (data,parent) insilmaril@778: { insilmaril@778: init(); insilmaril@778: } insilmaril@778: insilmaril@778: ImageItem::~ImageItem() insilmaril@778: { insilmaril@778: //cout <<"Destr ImageItem\n"; insilmaril@778: if (lmo) delete lmo; insilmaril@778: } insilmaril@778: insilmaril@778: void ImageItem::init() insilmaril@778: { insilmaril@788: setType (Image); insilmaril@778: imageType=Undefined; insilmaril@779: hideLinkUnselected=true; insilmaril@778: originalFilename="no original name available"; insilmaril@778: zValue=Z_FLOATIMG; insilmaril@778: posMode=Relative; insilmaril@778: } insilmaril@778: insilmaril@778: ImageItem::ImageType ImageItem::getImageType() insilmaril@778: { insilmaril@778: return imageType; insilmaril@778: } insilmaril@778: insilmaril@791: void ImageItem::load(const QPixmap &pm) insilmaril@791: { insilmaril@791: pixmap=pm; insilmaril@791: if (lmo) ((FloatImageObj*)lmo)->load (pixmap); insilmaril@791: } insilmaril@791: insilmaril@778: bool ImageItem::load(const QString &fname) insilmaril@778: { insilmaril@778: bool ok=pixmap.load (fname); insilmaril@778: if (lmo && ok) insilmaril@778: { insilmaril@778: setOriginalFilename (fname); insilmaril@778: setHeading (originalFilename); insilmaril@778: ((FloatImageObj*)lmo)->load (pixmap); insilmaril@778: } insilmaril@778: return ok; insilmaril@778: } insilmaril@778: insilmaril@778: FloatImageObj* ImageItem::createMapObj(QGraphicsScene *scene) insilmaril@778: { insilmaril@790: FloatImageObj *fio=new FloatImageObj (scene,this); insilmaril@778: lmo=fio; insilmaril@779: fio->setParObj ( ((MapItem*)parentItem)->getLMO()); insilmaril@779: if (((BranchItem*)parentItem)->isScrolled() || !((MapItem*)parentItem)->getLMO()->isVisibleObj() ) insilmaril@778: fio->setVisibility (false); insilmaril@778: initLMO(); insilmaril@778: fio->setZValue(zValue); insilmaril@778: fio->setRelPos (pos); insilmaril@798: //cout << "II::createMO fio="<=0) originalFilename=originalFilename.remove (0,i+1); insilmaril@778: setHeading (originalFilename); insilmaril@778: } insilmaril@778: insilmaril@778: QString ImageItem::getOriginalFilename() insilmaril@778: { insilmaril@778: return originalFilename; insilmaril@778: } insilmaril@778: insilmaril@778: void ImageItem::save(const QString &fn, const QString &format) insilmaril@778: { insilmaril@778: pixmap.save (fn,qPrintable (format)); insilmaril@778: } insilmaril@778: insilmaril@778: QString ImageItem::saveToDir (const QString &tmpdir,const QString &prefix) insilmaril@778: { insilmaril@778: if (hidden) return ""; insilmaril@778: insilmaril@778: QString zAttr=attribut ("zValue",QString().setNum(zValue)); insilmaril@778: QString url; insilmaril@778: insilmaril@788: ulong n=reinterpret_cast (this); insilmaril@788: insilmaril@788: url="images/"+prefix+"image-" + QString().number(n,10) + ".png" ; insilmaril@778: insilmaril@778: // And really save the image insilmaril@778: pixmap.save (tmpdir +"/"+ url, "PNG"); insilmaril@778: insilmaril@778: QString nameAttr=attribut ("originalName",originalFilename); insilmaril@778: insilmaril@778: return singleElement ("floatimage", insilmaril@779: getMapAttr() insilmaril@779: +getGeneralAttr() insilmaril@778: +zAttr insilmaril@778: +attribut ("href",QString ("file:")+url) insilmaril@778: +nameAttr insilmaril@778: ); insilmaril@778: } insilmaril@778: