3 #include "branchitem.h"
4 #include "mapobj.h" // z-values
10 bool isImage (const QString &fname)
12 QRegExp rx("(jpg|jpeg|png|xmp|gif|svg)$");
13 rx.setCaseSensitivity (Qt::CaseInsensitive);
14 return fname.contains (rx);
17 ImageItem::ImageItem()
19 //qDebug()<<"Constr ImageItem";
23 ImageItem::ImageItem (const QList<QVariant> &data, TreeItem *parent):MapItem (data,parent)
28 ImageItem::~ImageItem()
30 //qDebug()<<"Destr ImageItem";
34 void ImageItem::init()
38 hideLinkUnselected=true;
39 originalFilename="no original name available";
46 void ImageItem::clear()
50 ImageItem::ImageType ImageItem::getImageType()
55 void ImageItem::load(const QImage &img)
58 if (mo) ((FloatImageObj*)mo)->load (originalImage);
61 bool ImageItem::load(const QString &fname)
63 bool ok = originalImage.load (fname);
66 setOriginalFilename (fname);
67 setHeadingPlainText (originalFilename);
68 ((FloatImageObj*)mo)->load (originalImage);
70 qWarning() << "ImageItem::load failed for " << fname;
74 FloatImageObj* ImageItem::createMapObj()
76 FloatImageObj *fio=new FloatImageObj ( ((MapItem*)parentItem)->getMO(),this);
78 if (((BranchItem*)parentItem)->isScrolled() || !((MapItem*)parentItem)->getMO()->isVisibleObj() )
79 fio->setVisibility (false);
80 initLMO(); // set rel/abs position in mapitem
81 fio->setZValue(zValue);
83 fio->updateVisibility();
87 void ImageItem::setScale (qreal sx, qreal sy)
91 int w=originalImage.width()*scaleX;
92 int h=originalImage.height()*scaleY;
93 if (mo) ((FloatImageObj*)mo)->load (originalImage.scaled (w,h));
96 qreal ImageItem::getScaleX ()
101 qreal ImageItem::getScaleY ()
106 void ImageItem::setZValue(int z)
109 if (mo) ((FloatImageObj*)mo)->setZValue(z);
112 void ImageItem::setOriginalFilename(const QString & fn)
116 // Set short name. Search from behind:
117 int i=originalFilename.lastIndexOf("/");
118 if (i>=0) originalFilename=originalFilename.remove (0,i+1);
119 setHeadingPlainText (originalFilename);
122 QString ImageItem::getOriginalFilename()
124 return originalFilename;
127 bool ImageItem::save(const QString &fn, const QString &format)
129 return originalImage.save (fn,qPrintable (format));
132 QString ImageItem::saveToDir (const QString &tmpdir,const QString &prefix)
134 if (hidden) return "";
137 QString idAttr=attribut("uuid",uuid.toString());
139 QString zAttr=attribut ("zValue",QString().setNum(zValue));
142 ulong n=reinterpret_cast <ulong> (this);
144 url="images/"+prefix+"image-" + QString().number(n,10) + ".png" ;
146 // And really save the image
147 originalImage.save (tmpdir +"/"+ url, "PNG");
149 QString nameAttr=attribut ("originalName",originalFilename);
152 attribut ("scaleX",QString().setNum(scaleX))+
153 attribut ("scaleY",QString().setNum(scaleY));
155 return singleElement ("floatimage",
159 +attribut ("href",QString ("file:")+url)