mapcenteritem.cpp
author insilmaril
Mon, 18 May 2009 11:22:41 +0000
changeset 771 01f2f6d6789d
parent 770 57ce1ba6d1cb
child 772 e3f722759c7e
permissions -rw-r--r--
Fixed addBranchBefore
insilmaril@749
     1
#include "mapcenteritem.h"
insilmaril@749
     2
#include "mapcenterobj.h"
insilmaril@749
     3
insilmaril@749
     4
#include <iostream>
insilmaril@749
     5
using namespace std;
insilmaril@749
     6
insilmaril@749
     7
MapCenterItem::MapCenterItem(const QList<QVariant> &data, TreeItem *parent):BranchItem (data,parent)
insilmaril@749
     8
{
insilmaril@770
     9
	//cout << "Constr. MapCenterItem\n";
insilmaril@760
    10
	type=MapCenter;
insilmaril@749
    11
}
insilmaril@749
    12
insilmaril@749
    13
MapCenterItem::~MapCenterItem()
insilmaril@749
    14
{
insilmaril@749
    15
	cout << "Destr. MapCenterItem\n";
insilmaril@749
    16
    qDeleteAll(childItems);
insilmaril@749
    17
}
insilmaril@749
    18
insilmaril@771
    19
QString MapCenterItem::saveToDir (const QString &tmpdir,const QString &prefix, const QPointF& offset)	//FIXME-3 Check if everything is saved...
insilmaril@749
    20
{
insilmaril@749
    21
	// Cloudy stuff can be hidden during exports
insilmaril@749
    22
	if (hidden) return QString();
insilmaril@749
    23
insilmaril@749
    24
    QString s,a;
insilmaril@749
    25
	BranchObj *bo=(BranchObj*)lmo;
insilmaril@749
    26
insilmaril@749
    27
	QString scrolledAttr;
insilmaril@749
    28
	if (scrolled) 
insilmaril@749
    29
		scrolledAttr=attribut ("scrolled","yes");
insilmaril@749
    30
	else
insilmaril@749
    31
		scrolledAttr="";
insilmaril@749
    32
insilmaril@769
    33
	/* 
insilmaril@749
    34
	// save area, if not scrolled
insilmaril@749
    35
	QString areaAttr;
insilmaril@749
    36
	if (!((BranchObj*)(parObj))->isScrolled() )
insilmaril@749
    37
	{
insilmaril@749
    38
		areaAttr=
insilmaril@749
    39
			attribut("x1",QString().setNum(absPos.x()-offset.x())) +
insilmaril@749
    40
			attribut("y1",QString().setNum(absPos.y()-offset.y())) +
insilmaril@749
    41
			attribut("x2",QString().setNum(absPos.x()+width()-offset.x())) +
insilmaril@749
    42
			attribut("y2",QString().setNum(absPos.y()+height()-offset.y()));
insilmaril@749
    43
insilmaril@749
    44
	} else
insilmaril@749
    45
		areaAttr="";
insilmaril@749
    46
	
insilmaril@749
    47
	// Providing an ID for a branch makes export to XHTML easier
insilmaril@749
    48
	QString idAttr;
insilmaril@749
    49
	if (countXLinks()>0)
insilmaril@749
    50
		idAttr=attribut ("id",model->getSelectString(this)); //TODO directly access model
insilmaril@749
    51
	else
insilmaril@749
    52
		idAttr="";
insilmaril@749
    53
insilmaril@749
    54
	*/
insilmaril@760
    55
    s=beginElement ("mapcenter" 
insilmaril@762
    56
		+getAttr()
insilmaril@749
    57
	//	+getOrnXMLAttr() 
insilmaril@769
    58
		+scrolledAttr 
insilmaril@749
    59
	//	+areaAttr 
insilmaril@749
    60
	//	+idAttr 
insilmaril@749
    61
	//	+getIncludeImageAttr() 
insilmaril@749
    62
		);
insilmaril@749
    63
    incIndent();
insilmaril@749
    64
insilmaril@749
    65
	// save heading
insilmaril@749
    66
    s+=valueElement("heading", getHeading(),
insilmaril@749
    67
		attribut ("textColor",QColor( bo->getColor()).name()));
insilmaril@749
    68
insilmaril@749
    69
/*
insilmaril@749
    70
	// Save frame
insilmaril@749
    71
	if (frame->getFrameType()!=FrameObj::NoFrame) 
insilmaril@749
    72
		s+=frame->saveToDir ();
insilmaril@749
    73
insilmaril@749
    74
	// save names of flags set
insilmaril@749
    75
	s+=standardFlags->saveToDir(tmpdir,prefix,0);
insilmaril@749
    76
	
insilmaril@749
    77
	// Save FloatImages
insilmaril@749
    78
	for (int i=0; i<floatimage.size(); ++i)
insilmaril@749
    79
		s+=floatimage.at(i)->saveToDir (tmpdir,prefix);
insilmaril@749
    80
*/
insilmaril@749
    81
insilmaril@749
    82
	// save note
insilmaril@749
    83
	if (!note.isEmpty() )
insilmaril@749
    84
		s+=note.saveToDir();
insilmaril@749
    85
	
insilmaril@749
    86
	// Save branches
insilmaril@760
    87
	int i=0;
insilmaril@760
    88
	TreeItem *ti=getBranchNum(i);
insilmaril@760
    89
	while (ti)
insilmaril@760
    90
	{
insilmaril@760
    91
		s+=getBranchNum(i)->saveToDir(tmpdir,prefix,offset);
insilmaril@760
    92
		i++;
insilmaril@760
    93
		ti=getBranchNum(i);
insilmaril@760
    94
	}	
insilmaril@760
    95
insilmaril@749
    96
insilmaril@749
    97
	/*
insilmaril@749
    98
	// Save XLinks
insilmaril@749
    99
	QString ol;	// old link
insilmaril@749
   100
	QString cl;	// current link
insilmaril@749
   101
	for (int i=0; i<xlink.size(); ++i)
insilmaril@749
   102
	{
insilmaril@749
   103
		cl=xlink.at(i)->saveToDir();
insilmaril@749
   104
		if (cl!=ol)
insilmaril@749
   105
		{
insilmaril@749
   106
			s+=cl;
insilmaril@749
   107
			ol=cl;
insilmaril@749
   108
		} else
insilmaril@749
   109
		{
insilmaril@749
   110
			qWarning (QString("Ignoring of duplicate xLink in %1").arg(getHeading()));
insilmaril@749
   111
		}
insilmaril@749
   112
	}	
insilmaril@749
   113
	*/
insilmaril@749
   114
insilmaril@749
   115
    decIndent();
insilmaril@760
   116
    s+=endElement   ("mapcenter");
insilmaril@749
   117
    return s;
insilmaril@749
   118
}
insilmaril@749
   119
insilmaril@760
   120
BranchObj* MapCenterItem::createMapObj(QGraphicsScene *scene)	
insilmaril@760
   121
{
insilmaril@760
   122
	// Initialize MapCenterObj, order of things is important...
insilmaril@760
   123
    MapCenterObj* mco=new MapCenterObj(scene);
insilmaril@760
   124
	lmo=mco;
insilmaril@760
   125
    mco->setParObj(NULL);
insilmaril@760
   126
	mco->setModel (model);
insilmaril@760
   127
	mco->setTreeItem (this);
insilmaril@760
   128
	mco->setDefAttr(BranchObj::NewBranch);
insilmaril@749
   129
insilmaril@760
   130
	initLMO();
insilmaril@749
   131
insilmaril@760
   132
	if (!getHeading().isEmpty() ) 
insilmaril@760
   133
	{
insilmaril@767
   134
		mco->updateData();	//FIXME-3 better call model->emitDataHasChanged(treeItem);
insilmaril@760
   135
		mco->setColor (headingColor);
insilmaril@760
   136
	}	
insilmaril@760
   137
		
insilmaril@760
   138
	//mco->updateLink();	//FIXME-3
insilmaril@760
   139
insilmaril@760
   140
	return mco;
insilmaril@760
   141
}
insilmaril@760
   142
insilmaril@760
   143