imageitem.cpp
author insilmaril
Mon, 29 Jun 2009 10:28:28 +0000
changeset 778 7b4e73ac247e
child 779 1fb50e79661c
permissions -rw-r--r--
added imageitem.*
     1 #include "imageitem.h"
     2 
     3 #include "branchitem.h"
     4 #include "mapobj.h"		// z-values
     5 
     6 #include <QString>
     7 #include <iostream>
     8 using namespace std;
     9 
    10 uint ImageItem::saveCounter=0;		// create instance 
    11 
    12 ImageItem::ImageItem()
    13 {
    14 	init();
    15 }
    16 
    17 ImageItem::ImageItem (const QList<QVariant> &data, TreeItem *parent):TreeItem (data,parent)
    18 {
    19 	init();
    20 }
    21 
    22 ImageItem::~ImageItem()
    23 {
    24 	//cout <<"Destr ImageItem\n";
    25 	if (lmo) delete lmo;
    26 }
    27 
    28 void ImageItem::init()
    29 {
    30 	type=Image;
    31 	imageType=Undefined;
    32 	originalFilename="no original name available";
    33 	zValue=Z_FLOATIMG;
    34 	posMode=Relative;
    35 }
    36 
    37 ImageItem::ImageType ImageItem::getImageType()
    38 {
    39 	return imageType;
    40 }
    41 
    42 bool ImageItem::load(const QString &fname)
    43 {
    44 	bool ok=pixmap.load (fname);
    45 	if (lmo && ok)
    46 	{
    47 		setOriginalFilename (fname);
    48 		setHeading (originalFilename);
    49 		((FloatImageObj*)lmo)->load (pixmap);
    50 	}	
    51 	return ok;	
    52 }
    53 
    54 FloatImageObj* ImageItem::createMapObj(QGraphicsScene *scene)
    55 {
    56 	FloatImageObj *fio=new FloatImageObj (scene);
    57 	fio->setTreeItem (this);
    58 	lmo=fio;
    59 	fio->setParObj ( parentItem->getLMO());
    60 	if (((BranchItem*)parentItem)->isScrolled() || !parentItem->getLMO()->isVisibleObj() )
    61 			fio->setVisibility (false);
    62 	initLMO();
    63 	fio->setZValue(zValue);
    64 	fio->setRelPos (pos);
    65 	return fio;
    66 }
    67 
    68 void ImageItem::setZValue(int z)
    69 {
    70 	zValue=z;
    71 	if (lmo) ((FloatImageObj*)lmo)->setZValue(z);
    72 }
    73 
    74 void ImageItem::setOriginalFilename(const QString & fn)
    75 {
    76 	originalFilename=fn;
    77 
    78 	// Set short name. Search from behind:
    79 	int i=originalFilename.findRev("/");
    80 	if (i>=0) originalFilename=originalFilename.remove (0,i+1);
    81 	setHeading (originalFilename);
    82 }
    83 
    84 QString ImageItem::getOriginalFilename()
    85 {
    86 	return originalFilename;
    87 }
    88 
    89 void ImageItem::resetSaveCounter()
    90 {
    91 	saveCounter=0;
    92 }
    93 
    94 void ImageItem::save(const QString &fn, const QString &format)
    95 {
    96 	pixmap.save (fn,qPrintable (format));
    97 }
    98 
    99 QString ImageItem::saveToDir (const QString &tmpdir,const QString &prefix) 
   100 {
   101 	if (hidden) return "";
   102 
   103 	saveCounter++;
   104 	
   105 	/* FIXME-3 QString useOrientAttr;
   106 	if (useOrientation)
   107 		useOrientAttr=attribut ("useOrientation","true");
   108 	else	
   109 		useOrientAttr=attribut ("useOrientation","false");
   110 		*/
   111 		
   112 	/*FIXME-3 QString saveInMapAttr;
   113 	if (saveInMap)
   114 		saveInMapAttr=attribut ("saveInMap","true");
   115 	else	
   116 		
   117 		saveInMapAttr=attribut ("saveInMap","false");
   118 		*/
   119 
   120 	/* FIXME-3 QString exportAttr;
   121 	if (floatExport)
   122 		exportAttr=attribut ("floatExport","true");
   123 	else	
   124 		exportAttr=attribut ("floatExport","false");
   125 	*/	
   126 
   127 
   128 	QString zAttr=attribut ("zValue",QString().setNum(zValue));
   129 	QString url;
   130 
   131 	url="images/"+prefix+"image-" + QString().number(saveCounter,10) + ".png" ;
   132 
   133 	// And really save the image
   134 	pixmap.save (tmpdir +"/"+ url, "PNG");
   135  
   136 	QString nameAttr=attribut ("originalName",originalFilename);
   137 
   138     return singleElement ("floatimage",  
   139 		getAttr() 
   140 //		+useOrientAttr 
   141 //		+saveInMapAttr 
   142 //		+exportAttr  
   143 		+zAttr  
   144 		+attribut ("href",QString ("file:")+url)
   145 		+nameAttr
   146 	);	
   147 }
   148