mapcenterobj.cpp
author insilmaril
Thu, 07 May 2009 08:48:53 +0000
changeset 766 7a71a914afdb
parent 760 59614eaf5fbb
child 767 6d2b32f305f9
permissions -rw-r--r--
Started to reanimate flags
     1 #include <QDateTime>
     2 
     3 #include "floatimageobj.h"
     4 #include "geometry.h"
     5 #include "mapcenterobj.h"
     6 
     7 /////////////////////////////////////////////////////////////////
     8 // MapCenterObj
     9 /////////////////////////////////////////////////////////////////
    10 MapCenterObj::MapCenterObj() : BranchObj ()
    11 {
    12 //    cout << "Const MapCenterObj\n";
    13     init();
    14 }
    15 
    16 MapCenterObj::MapCenterObj(QGraphicsScene* s) : BranchObj (s)
    17 {
    18 //    cout << "Const MapCenterObj   canvas="<<s<<"\n";
    19     init();
    20 }
    21 
    22 MapCenterObj::MapCenterObj(QGraphicsScene* s,VymModel *m) : BranchObj (s)
    23 {
    24 //    cout << "Const MapCenterObj   canvas="<<s<<"\n";
    25 	model=m;
    26     init();
    27 }
    28 
    29 MapCenterObj::~MapCenterObj() 
    30 {
    31 //    cout << "Destr MapCenterObj\n";
    32 	clear();
    33 }	
    34 
    35 void MapCenterObj::clear() 
    36 {
    37 	BranchObj::clear();
    38 }
    39 
    40 void MapCenterObj::init () 
    41 {
    42 	BranchObj::init();
    43     orientation=LinkableMapObj::UndefinedOrientation;
    44 
    45 	// TODO this should be done in TextObj later...
    46 	//QFont font ("Sans Serif,16,-1,5,50,0,0,0,0,0");		
    47 	//heading->setFont(font);
    48 	//FIXME-2 no treeitem yet:  setDefAttr(MovedBranch);
    49 
    50 	frame->setFrameType (FrameObj::Rectangle);
    51 }
    52 
    53 void MapCenterObj::move (double x, double y)
    54 {
    55 	BranchObj::move(x,y);
    56 }
    57 
    58 void MapCenterObj::move (QPointF absPos)
    59 {
    60 	BranchObj::move(absPos);
    61 }
    62 
    63 void MapCenterObj::moveBy (double x, double y)
    64 {
    65 	BranchObj::moveBy(x,y);
    66 }
    67 
    68 void MapCenterObj::moveAll (double x, double y)
    69 {
    70 	// Get rel. position
    71 	double dx=x-absPos.x();
    72 	double dy=y-absPos.y();
    73 
    74 	// Move myself and branches
    75 	moveAllBy (dx,dy);
    76 }
    77 
    78 void MapCenterObj::moveAllBy (double dx, double dy)
    79 {
    80 	// Move myself and children
    81 	BranchObj::moveBy(dx,dy);
    82 }
    83 
    84 void MapCenterObj::updateLink()
    85 {
    86 	// set childPos to middle of MapCenterObj
    87 	childPos.setX( clickBox.topLeft().x() + (int)(clickBox.width())/2 );
    88 	childPos.setY( clickBox.topLeft().y() + (int)(clickBox.height())/2 );
    89 	parPos=childPos;		
    90 	for (int i=0; i<treeItem->branchCount(); ++i)
    91 		treeItem->getBranchObjNum(i)->updateLink();
    92 }
    93 
    94 void MapCenterObj::updateRelPositions()
    95 {
    96 	if (repositionRequest) unsetAllRepositionRequests();
    97 
    98 	// update relative Positions of branches and floats
    99 	for (int i=0; i<treeItem->branchCount(); ++i)
   100 	{
   101 		treeItem->getBranchObjNum(i)->setRelPos();
   102 		treeItem->getBranchObjNum(i)->setOrientation();
   103 	}
   104 	
   105 	for (int i=0; i<floatimage.size(); ++i)
   106 		floatimage.at(i)->setRelPos();
   107 
   108 	if (repositionRequest) reposition();
   109 }
   110 
   111 QString MapCenterObj::saveToDir (const QString &tmpdir,const QString &prefix, int verbose, const QPointF &offset)
   112 {
   113     QString s,a;
   114 
   115 /*
   116 	// save area, if not scrolled
   117 	QString areaAttr=
   118 		attribut("x1",QString().setNum(absPos.x()-offset.x())) +
   119 		attribut("y1",QString().setNum(absPos.y()-offset.y())) +
   120 		attribut("x2",QString().setNum(absPos.x()+width()-offset.x())) +
   121 		attribut("y2",QString().setNum(absPos.y()+height()-offset.y()));
   122 	
   123 	// Providing an ID for a branch makes export to XHTML easier
   124 	// FIXME-3
   125 	QString idAttr;
   126 	if (treeItem->xlinkCount()>0)
   127 		idAttr=attribut ("id",mapEditor->getModel()->getSelectString(this)); //TODO directly access model
   128 
   129 	else
   130 		idAttr="";
   131 	
   132 
   133 	QString linkAttr=getLinkAttr();
   134 
   135     s=beginElement ("mapcenter" 
   136 		+getOrnXMLAttr() 
   137 		+areaAttr 
   138 //		+idAttr 
   139 		+getIncludeImageAttr() );
   140     incIndent();
   141     if (heading->getColor()!=QColor("black"))
   142 		a=attribut ("textColor",QColor(heading->getColor()).name() );
   143     else	
   144 		a="";
   145     
   146 	// Save flags. If verbose is set (export to xml dir), also write
   147 	// the flags as picture
   148 	s+=standardFlags->saveToDir(tmpdir+"/flags", "/standardFlag-", verbose);
   149 
   150 	// Save heading
   151     s+=valueElement("heading", treeItem->getHeading(),a);
   152 
   153 	// Save frame
   154 	s+=frame->saveToDir ();
   155 
   156 	// Update of note is usually done while unselecting a branch
   157 	//if (isNoteInEditor) getNoteFromTextEditor();  FIXME-3
   158 
   159 	// save note
   160 	if (!treeItem->getNoteObj().isEmpty() )
   161 		s+=treeItem->getNoteObj().saveToDir();
   162 	
   163 	// Save branches
   164 	for (int i=0; i<treeItem->branchCount(); ++i)
   165 		s+=treeItem->getBranchObjNum(i)->saveToDir(tmpdir,prefix, offset);
   166 
   167 	// Save FloatImages
   168 	for (int i=0; i<floatimage.size(); ++i)
   169 		s+=floatimage.at(i)->saveToDir (tmpdir,prefix);
   170 
   171 	// Save XLinks
   172 	for (int i=0;i<xlink.size(); ++i)
   173 		s+=xlink.at(i)->saveToDir();
   174 
   175     decIndent();
   176     s+=endElement   ("mapcenter");
   177 	*/
   178     return s;
   179 }
   180 
   181 void MapCenterObj::setVersion (const QString &s)
   182 {
   183 	version=s;
   184 }
   185 
   186 void MapCenterObj::setAuthor (const QString &s)
   187 {
   188 	author=s;
   189 }
   190 
   191 QString MapCenterObj::getAuthor()
   192 {
   193 	return author;
   194 }
   195 
   196 void MapCenterObj::setComment (const QString &s)
   197 {
   198 	comment=s;
   199 }
   200 
   201 QString MapCenterObj::getComment ()
   202 {
   203 	return comment;
   204 }
   205 
   206 QString MapCenterObj::getDate ()
   207 {
   208 	return QDate::currentDate().toString ("yyyy-MM-dd");
   209 }
   210