insilmaril@0: #include "floatimageobj.h" insilmaril@0: #include "branchobj.h" insilmaril@2: //Added by qt3to4: insilmaril@2: #include insilmaril@0: insilmaril@0: insilmaril@0: ///////////////////////////////////////////////////////////////// insilmaril@0: // FloatImageObj insilmaril@0: ///////////////////////////////////////////////////////////////// insilmaril@0: insilmaril@2: uint FloatImageObj::saveCounter=0; // make instance insilmaril@0: insilmaril@0: insilmaril@0: FloatImageObj::FloatImageObj ():FloatObj() insilmaril@0: { insilmaril@0: // cout << "Const FloatImageObj ()\n"; insilmaril@0: setParObj (this); insilmaril@0: init(); insilmaril@0: depth=-1; insilmaril@0: } insilmaril@0: insilmaril@2: FloatImageObj::FloatImageObj (Q3Canvas* c):FloatObj(c) insilmaril@0: { insilmaril@0: // cout << "Const FloatImageObj (c) called from MapCenterObj (c)\n"; insilmaril@0: setParObj (this); insilmaril@0: init(); insilmaril@0: depth=-1; insilmaril@0: } insilmaril@0: insilmaril@2: FloatImageObj::FloatImageObj (Q3Canvas* c, OrnamentedObj* p):FloatObj(c,p) insilmaril@0: { insilmaril@0: // cout << "Const FloatImageObj (c,p)\n"; insilmaril@0: init(); insilmaril@0: } insilmaril@0: insilmaril@0: FloatImageObj::~FloatImageObj () insilmaril@0: { insilmaril@0: // cout << "Destr FloatImageObj "<move (absPos.x(), absPos.y() ); insilmaril@0: icon->setVisibility (true); insilmaril@2: setZ (Z_FLOATIMG); insilmaril@0: bbox.setSize (QSize(icon->size().width(), icon->size().height())); insilmaril@2: clickBox.setSize (QSize(icon->size().width(), icon->size().height())); insilmaril@0: filename=""; insilmaril@0: originalFilename="no original name available"; insilmaril@0: filetype=""; insilmaril@0: saveInMap=true; insilmaril@2: useRelPos=true; insilmaril@2: insilmaril@2: //Hide flags insilmaril@2: systemFlags->setShowFlags(false); insilmaril@0: } insilmaril@0: insilmaril@0: void FloatImageObj::copy (FloatImageObj* other) insilmaril@0: { insilmaril@0: FloatObj::copy (other); insilmaril@0: icon->copy (other->icon); insilmaril@2: filetype=other->filetype; insilmaril@0: filename=other->filename; insilmaril@2: originalFilename=other->originalFilename; insilmaril@0: saveInMap=other->saveInMap; insilmaril@0: positionBBox(); insilmaril@0: } insilmaril@0: insilmaril@0: void FloatImageObj::setZ (const int &i) insilmaril@0: { insilmaril@0: icon->setZ (i); insilmaril@0: zPlane=i; insilmaril@0: } insilmaril@0: insilmaril@0: int FloatImageObj::z () insilmaril@0: { insilmaril@2: return qRound (icon->z()); insilmaril@2: } insilmaril@2: insilmaril@2: void FloatImageObj::load (const QPixmap &pixmap) insilmaril@2: { insilmaril@2: icon->load(pixmap); insilmaril@2: bbox.setSize (QSize(icon->size().width()+8, icon->size().height()+8)); insilmaril@2: clickBox.setSize (QSize(icon->size().width()+8, icon->size().height()+8)); insilmaril@2: positionBBox(); insilmaril@2: filetype="PNG"; insilmaril@2: filename="noname.png"; insilmaril@0: } insilmaril@0: insilmaril@0: bool FloatImageObj::load (const QString &fn) insilmaril@0: { insilmaril@0: if( icon->load (fn)) insilmaril@0: { insilmaril@0: bbox.setSize (QSize(icon->size().width()+8, icon->size().height()+8)); insilmaril@0: positionBBox(); insilmaril@0: filename=fn; insilmaril@2: //FIXME QT3 was filetype=QPixmap::imageFormat (fn); insilmaril@2: setOriginalFilename (fn); insilmaril@0: return true; insilmaril@0: } else insilmaril@0: return false; insilmaril@0: insilmaril@0: } insilmaril@0: insilmaril@0: void FloatImageObj::save (const QString &fn, const char *format) insilmaril@0: { insilmaril@0: icon->save (fn,format); insilmaril@0: } insilmaril@0: insilmaril@0: void FloatImageObj::setOriginalFilename(const QString & fn) insilmaril@0: { insilmaril@0: originalFilename=fn; insilmaril@2: insilmaril@2: // Set short name, too. Search from behind: insilmaril@2: int i=originalFilename.findRev("/"); insilmaril@2: if (i>=0) originalFilename=originalFilename.remove (0,i+1); insilmaril@0: } insilmaril@0: insilmaril@0: QString FloatImageObj::getOriginalFilename() insilmaril@0: { insilmaril@0: return originalFilename; insilmaril@0: } insilmaril@0: insilmaril@0: void FloatImageObj::setVisibility(bool v) insilmaril@0: { insilmaril@2: OrnamentedObj::setVisibility(v); insilmaril@0: if (v) insilmaril@0: icon->setVisibility(true); insilmaril@0: else insilmaril@0: icon->setVisibility(false); insilmaril@0: } insilmaril@0: insilmaril@0: void FloatImageObj::move (double x, double y) insilmaril@0: { insilmaril@0: FloatObj::move(x,y); insilmaril@0: icon->move (x+4,y+4); insilmaril@0: positionBBox(); insilmaril@0: } insilmaril@0: insilmaril@0: void FloatImageObj::move (QPoint p) insilmaril@0: { insilmaril@0: move (p.x(), p.y()); insilmaril@0: } insilmaril@0: insilmaril@0: void FloatImageObj::positionBBox() insilmaril@0: { insilmaril@2: clickBox=bbox; insilmaril@0: } insilmaril@0: insilmaril@0: void FloatImageObj::calcBBoxSize() insilmaril@0: { insilmaril@0: // TODO insilmaril@0: } insilmaril@0: insilmaril@2: QString FloatImageObj::saveToDir (const QString &tmpdir,const QString &prefix, const QPoint &p) insilmaril@0: { insilmaril@2: if (hidden) return ""; insilmaril@0: insilmaril@2: saveCounter++; insilmaril@2: insilmaril@0: QString useOrientAttr; insilmaril@0: if (useOrientation) insilmaril@0: useOrientAttr=attribut ("useOrientation","true"); insilmaril@0: else insilmaril@0: useOrientAttr=attribut ("useOrientation","false"); insilmaril@0: insilmaril@0: QString saveInMapAttr; insilmaril@0: if (saveInMap) insilmaril@0: saveInMapAttr=attribut ("saveInMap","true"); insilmaril@0: else insilmaril@0: insilmaril@0: saveInMapAttr=attribut ("saveInMap","false"); insilmaril@0: insilmaril@0: QString exportAttr; insilmaril@0: if (floatExport) insilmaril@0: exportAttr=attribut ("floatExport","true"); insilmaril@0: else insilmaril@0: exportAttr=attribut ("floatExport","false"); insilmaril@0: insilmaril@0: QString zAttr=attribut ("zPlane",QString().setNum(zPlane)); insilmaril@0: QString url; insilmaril@0: insilmaril@0: // prevent saving as GIF insilmaril@0: if (filetype=="GIF") insilmaril@0: filetype="PNG"; insilmaril@0: insilmaril@2: url="images/"+prefix+"image-" + QString().number(saveCounter,10) + "." +filetype; insilmaril@0: insilmaril@0: // And really save the image insilmaril@0: icon->save (tmpdir + "/" + url, filetype); insilmaril@2: insilmaril@2: QString nameAttr=attribut ("orgName",originalFilename); insilmaril@0: insilmaril@0: return singleElement ("floatimage", insilmaril@2: getOrnAttr() insilmaril@2: +useOrientAttr insilmaril@2: +saveInMapAttr insilmaril@2: +exportAttr insilmaril@2: +zAttr insilmaril@2: +attribut ("href",QString ("file:")+url) insilmaril@2: +nameAttr insilmaril@0: ); insilmaril@0: } insilmaril@0: insilmaril@0: void FloatImageObj::resetSaveCounter() insilmaril@0: { insilmaril@2: saveCounter=0; insilmaril@0: } insilmaril@0: insilmaril@0: insilmaril@0: QRect FloatImageObj::getTotalBBox() insilmaril@0: { insilmaril@0: return bbox; insilmaril@0: } insilmaril@0: insilmaril@0: QRect FloatImageObj::getBBoxSizeWithChilds() insilmaril@0: { insilmaril@0: //FIXME abstract in linkablemapobj.h, not calculated insilmaril@0: return bboxTotal; insilmaril@0: } insilmaril@0: insilmaril@0: void FloatImageObj::calcBBoxSizeWithChilds() insilmaril@0: { insilmaril@0: //FIXME abstract in linkablemapobj.h insilmaril@0: } insilmaril@0: insilmaril@0: QString FloatImageObj::getSelectString() insilmaril@0: { insilmaril@0: QString s; insilmaril@0: if (parObj) insilmaril@0: { insilmaril@0: if (parObj->getDepth()==0) insilmaril@0: s= "fi:" + QString("%1").arg( ((BranchObj*)(parObj))->getFloatImageNum(this)); insilmaril@0: else insilmaril@0: s= ((BranchObj*)(parObj))->getSelectString() + ",fi:" + QString("%1").arg( ((BranchObj*)(parObj))->getFloatImageNum(this)); insilmaril@0: } else insilmaril@0: s="mc:"; insilmaril@0: insilmaril@0: return s; insilmaril@0: insilmaril@0: } insilmaril@0: