diff -r 8acac4fade1b -r 7b4e73ac247e imageitem.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/imageitem.cpp Mon Jun 29 10:28:28 2009 +0000 @@ -0,0 +1,148 @@ +#include "imageitem.h" + +#include "branchitem.h" +#include "mapobj.h" // z-values + +#include +#include +using namespace std; + +uint ImageItem::saveCounter=0; // create instance + +ImageItem::ImageItem() +{ + init(); +} + +ImageItem::ImageItem (const QList &data, TreeItem *parent):TreeItem (data,parent) +{ + init(); +} + +ImageItem::~ImageItem() +{ + //cout <<"Destr ImageItem\n"; + if (lmo) delete lmo; +} + +void ImageItem::init() +{ + type=Image; + imageType=Undefined; + originalFilename="no original name available"; + zValue=Z_FLOATIMG; + posMode=Relative; +} + +ImageItem::ImageType ImageItem::getImageType() +{ + return imageType; +} + +bool ImageItem::load(const QString &fname) +{ + bool ok=pixmap.load (fname); + if (lmo && ok) + { + setOriginalFilename (fname); + setHeading (originalFilename); + ((FloatImageObj*)lmo)->load (pixmap); + } + return ok; +} + +FloatImageObj* ImageItem::createMapObj(QGraphicsScene *scene) +{ + FloatImageObj *fio=new FloatImageObj (scene); + fio->setTreeItem (this); + lmo=fio; + fio->setParObj ( parentItem->getLMO()); + if (((BranchItem*)parentItem)->isScrolled() || !parentItem->getLMO()->isVisibleObj() ) + fio->setVisibility (false); + initLMO(); + fio->setZValue(zValue); + fio->setRelPos (pos); + return fio; +} + +void ImageItem::setZValue(int z) +{ + zValue=z; + if (lmo) ((FloatImageObj*)lmo)->setZValue(z); +} + +void ImageItem::setOriginalFilename(const QString & fn) +{ + originalFilename=fn; + + // Set short name. Search from behind: + int i=originalFilename.findRev("/"); + if (i>=0) originalFilename=originalFilename.remove (0,i+1); + setHeading (originalFilename); +} + +QString ImageItem::getOriginalFilename() +{ + return originalFilename; +} + +void ImageItem::resetSaveCounter() +{ + saveCounter=0; +} + +void ImageItem::save(const QString &fn, const QString &format) +{ + pixmap.save (fn,qPrintable (format)); +} + +QString ImageItem::saveToDir (const QString &tmpdir,const QString &prefix) +{ + if (hidden) return ""; + + saveCounter++; + + /* FIXME-3 QString useOrientAttr; + if (useOrientation) + useOrientAttr=attribut ("useOrientation","true"); + else + useOrientAttr=attribut ("useOrientation","false"); + */ + + /*FIXME-3 QString saveInMapAttr; + if (saveInMap) + saveInMapAttr=attribut ("saveInMap","true"); + else + + saveInMapAttr=attribut ("saveInMap","false"); + */ + + /* FIXME-3 QString exportAttr; + if (floatExport) + exportAttr=attribut ("floatExport","true"); + else + exportAttr=attribut ("floatExport","false"); + */ + + + QString zAttr=attribut ("zValue",QString().setNum(zValue)); + QString url; + + url="images/"+prefix+"image-" + QString().number(saveCounter,10) + ".png" ; + + // And really save the image + pixmap.save (tmpdir +"/"+ url, "PNG"); + + QString nameAttr=attribut ("originalName",originalFilename); + + return singleElement ("floatimage", + getAttr() +// +useOrientAttr +// +saveInMapAttr +// +exportAttr + +zAttr + +attribut ("href",QString ("file:")+url) + +nameAttr + ); +} +