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():MapItem(nullptr)
19 //qDebug() << "Constr ImageItem";
24 ImageItem::~ImageItem()
26 // qDebug()<<"Destr ImageItem";
31 void ImageItem::init()
34 hideLinkUnselected = true;
35 originalFilename = "no original name available";
40 void ImageItem::clear()
42 // pure virtual in parent treeitem
43 // not used here currently
46 bool ImageItem::load(const QString &fname)
48 FloatImageObj *fio = (FloatImageObj *)mo;
49 if (!fio->load(fname))
52 setOriginalFilename(fname);
53 setHeadingPlainText(originalFilename);
58 FloatImageObj *ImageItem::createMapObj()
61 new FloatImageObj(((MapItem *)parentItem)->getMO(), this);
63 if (((BranchItem *)parentItem)->isScrolled() ||
64 !((MapItem *)parentItem)->getMO()->isVisibleObj())
65 fio->setVisibility(false);
66 initLMO(); // set rel/abs position in mapitem
67 fio->setZValue(zValue);
69 fio->updateVisibility();
74 void ImageItem::setScaleFactor(qreal f)
77 ((FloatImageObj *)mo)->setScaleFactor(f);
80 qreal ImageItem::getScaleFactor()
83 return ((FloatImageObj *)mo)->getScaleFactor();
87 qreal ImageItem::width()
95 qreal ImageItem::height()
103 void ImageItem::setZValue(int z)
107 ((FloatImageObj *)mo)->setZValue(z);
110 void ImageItem::setOriginalFilename(const QString &fn)
112 originalFilename = fn;
114 // Set short name. Search from behind:
115 int i = originalFilename.lastIndexOf("/");
117 originalFilename = originalFilename.remove(0, i + 1);
118 setHeadingPlainText(originalFilename);
121 QString ImageItem::getOriginalFilename() { return originalFilename; }
123 QString ImageItem::getUniqueFilename()
125 FloatImageObj *fio = (FloatImageObj *)mo;
126 return "image-" + getUuid().toString() + fio->getExtension();
129 bool ImageItem::saveImage(const QString &fn)
131 // This is used when exporting maps or saving selection
132 FloatImageObj *fio = (FloatImageObj *)mo;
133 return fio->save(fn);
136 QString ImageItem::saveToDir(const QString &tmpdir, const QString &prefix)
142 QString idAttr = attribut("uuid", uuid.toString());
144 QString zAttr = attribut("zValue", QString().setNum(zValue));
147 FloatImageObj *fio = (FloatImageObj *)mo;
149 url = "images/" + prefix + "image-" + QString().number(itemID) +
152 // And really save the image (svgs will be copied from cache!)
153 fio->save(tmpdir + "/" + url);
155 QString nameAttr = attribut("originalName", originalFilename);
158 attribut("scaleFactor", QString().setNum(fio->getScaleFactor()));
160 return singleElement("floatimage",
161 getMapAttr() + getGeneralAttr() + zAttr +
162 attribut("href", QString("file:") + url) +
163 nameAttr + scaleAttr + idAttr);