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