floatimageobj.cpp
author insilmaril
Tue, 07 Jul 2009 11:21:27 +0000
changeset 780 fe839bdfd10c
parent 776 25e634a7e1dc
child 790 133e2ed6b9c5
permissions -rw-r--r--
vymLinks working again
insilmaril@408
     1
#include <QImageReader>
insilmaril@408
     2
#include <QPixmap>
insilmaril@408
     3
insilmaril@0
     4
#include "floatimageobj.h"
insilmaril@0
     5
#include "branchobj.h"
insilmaril@0
     6
insilmaril@0
     7
/////////////////////////////////////////////////////////////////
insilmaril@0
     8
// FloatImageObj
insilmaril@0
     9
/////////////////////////////////////////////////////////////////
insilmaril@0
    10
insilmaril@0
    11
FloatImageObj::FloatImageObj ():FloatObj()
insilmaril@0
    12
{
insilmaril@0
    13
//    cout << "Const FloatImageObj ()\n";
insilmaril@0
    14
    setParObj (this);	
insilmaril@0
    15
    init();
insilmaril@0
    16
}
insilmaril@0
    17
insilmaril@408
    18
FloatImageObj::FloatImageObj (QGraphicsScene* s):FloatObj(s)
insilmaril@0
    19
{
insilmaril@776
    20
//   cout << "Const FloatImageObj (s)  called from MapCenterObj (s)\n";
insilmaril@0
    21
    setParObj (this);	
insilmaril@0
    22
    init();
insilmaril@0
    23
}
insilmaril@0
    24
insilmaril@408
    25
FloatImageObj::FloatImageObj (QGraphicsScene *s, OrnamentedObj* p):FloatObj(s,p)
insilmaril@0
    26
{
insilmaril@0
    27
 //   cout << "Const FloatImageObj (c,p)\n";
insilmaril@0
    28
    init();
insilmaril@0
    29
}
insilmaril@0
    30
insilmaril@0
    31
FloatImageObj::~FloatImageObj ()
insilmaril@0
    32
{
insilmaril@417
    33
//	cout << "Destr FloatImageObj "<<this<<"\n";
insilmaril@0
    34
	delete(icon);
insilmaril@0
    35
}
insilmaril@0
    36
insilmaril@0
    37
void FloatImageObj::init () 
insilmaril@0
    38
{
insilmaril@408
    39
	icon=new ImageObj (scene);
insilmaril@408
    40
	icon->setPos (absPos.x(), absPos.y() );
insilmaril@0
    41
	icon->setVisibility (true);
insilmaril@408
    42
	setZValue (Z_FLOATIMG);
insilmaril@408
    43
	bbox.setSize (QSizeF(icon->boundingRect().width(), icon->boundingRect().height()));
insilmaril@408
    44
	clickBox.setSize (QSizeF(icon->boundingRect().width(), icon->boundingRect().height()));filename="";
insilmaril@0
    45
	originalFilename="no original name available";
insilmaril@0
    46
	filetype="";
insilmaril@218
    47
	useRelPos=true;
insilmaril@258
    48
insilmaril@258
    49
	//Hide flags
insilmaril@258
    50
	systemFlags->setShowFlags(false);
insilmaril@0
    51
}
insilmaril@0
    52
insilmaril@0
    53
void FloatImageObj::copy (FloatImageObj* other)
insilmaril@0
    54
{					
insilmaril@0
    55
	FloatObj::copy (other);
insilmaril@0
    56
	icon->copy (other->icon);
insilmaril@173
    57
	filetype=other->filetype;
insilmaril@0
    58
	filename=other->filename;
insilmaril@173
    59
	originalFilename=other->originalFilename;
insilmaril@0
    60
    positionBBox();
insilmaril@0
    61
}
insilmaril@0
    62
insilmaril@408
    63
void FloatImageObj::setZValue (const int &i)
insilmaril@0
    64
{
insilmaril@408
    65
	icon->setZValue (i);
insilmaril@0
    66
	zPlane=i;
insilmaril@0
    67
}
insilmaril@0
    68
insilmaril@0
    69
int FloatImageObj::z ()
insilmaril@0
    70
{
insilmaril@408
    71
	return qRound (icon->zValue());
insilmaril@0
    72
}
insilmaril@0
    73
insilmaril@113
    74
void FloatImageObj::load (const QPixmap &pixmap)
insilmaril@113
    75
{
insilmaril@408
    76
	icon->load(pixmap);
insilmaril@408
    77
	bbox.setSize (QSizeF(icon->boundingRect().width()+8, icon->boundingRect().height()+8));
insilmaril@408
    78
	clickBox.setSize (QSizeF(icon->boundingRect().width()+8, icon->boundingRect().height()+8));
insilmaril@408
    79
	positionBBox();
insilmaril@408
    80
	filetype="PNG";
insilmaril@408
    81
	filename="No filename given";
insilmaril@113
    82
}
insilmaril@113
    83
insilmaril@0
    84
bool FloatImageObj::load (const QString &fn)
insilmaril@0
    85
{	
insilmaril@408
    86
	QImageReader reader (fn);
insilmaril@408
    87
	QImage img;
insilmaril@408
    88
insilmaril@408
    89
	if( reader.read (&img))
insilmaril@0
    90
	{
insilmaril@408
    91
		icon->setPixmap(QPixmap::fromImage(img));
insilmaril@408
    92
		bbox.setSize (QSizeF(icon->boundingRect().width()+8, icon->boundingRect().height()+8));
insilmaril@0
    93
		positionBBox();
insilmaril@0
    94
		filename=fn;
insilmaril@408
    95
		filetype=reader.format();
insilmaril@334
    96
		setOriginalFilename (fn);
insilmaril@0
    97
		return true;
insilmaril@0
    98
	} else
insilmaril@0
    99
		return false;
insilmaril@0
   100
	
insilmaril@0
   101
}
insilmaril@0
   102
insilmaril@366
   103
void FloatImageObj::save (const QString &fn, const QString &format)
insilmaril@0
   104
{	
insilmaril@366
   105
	icon->save (fn,qPrintable (format));
insilmaril@0
   106
}
insilmaril@0
   107
insilmaril@0
   108
void FloatImageObj::setOriginalFilename(const QString & fn)
insilmaril@0
   109
{
insilmaril@0
   110
	originalFilename=fn;
insilmaril@334
   111
insilmaril@334
   112
	// Set short name, too. Search from behind:
insilmaril@334
   113
	int i=originalFilename.findRev("/");
insilmaril@334
   114
	if (i>=0) originalFilename=originalFilename.remove (0,i+1);
insilmaril@0
   115
}
insilmaril@0
   116
insilmaril@0
   117
QString FloatImageObj::getOriginalFilename()
insilmaril@0
   118
{
insilmaril@0
   119
	return originalFilename;
insilmaril@0
   120
}
insilmaril@0
   121
insilmaril@0
   122
void FloatImageObj::setVisibility(bool v)
insilmaril@0
   123
{
insilmaril@258
   124
    OrnamentedObj::setVisibility(v);
insilmaril@0
   125
	if (v)
insilmaril@0
   126
	    icon->setVisibility(true);
insilmaril@0
   127
	else
insilmaril@0
   128
	    icon->setVisibility(false);
insilmaril@0
   129
}
insilmaril@0
   130
insilmaril@0
   131
void FloatImageObj::move (double x, double y)
insilmaril@0
   132
{
insilmaril@0
   133
	FloatObj::move(x,y);
insilmaril@408
   134
	icon->setPos (x+4,y+4);
insilmaril@0
   135
    positionBBox();
insilmaril@0
   136
}
insilmaril@0
   137
insilmaril@408
   138
void FloatImageObj::move (QPointF p)
insilmaril@0
   139
{
insilmaril@408
   140
	OrnamentedObj::move (p.x(),p.y());
insilmaril@0
   141
}
insilmaril@0
   142
insilmaril@0
   143
void FloatImageObj::positionBBox()
insilmaril@0
   144
{
insilmaril@173
   145
	clickBox=bbox;
insilmaril@0
   146
}
insilmaril@0
   147
insilmaril@0
   148
void FloatImageObj::calcBBoxSize()
insilmaril@0
   149
{
insilmaril@0
   150
	// TODO
insilmaril@0
   151
}
insilmaril@0
   152
insilmaril@408
   153
QRectF FloatImageObj::getTotalBBox()
insilmaril@0
   154
{
insilmaril@0
   155
	return bbox;
insilmaril@0
   156
}
insilmaril@0
   157
insilmaril@721
   158
QRectF FloatImageObj::getBBoxSizeWithChildren()
insilmaril@0
   159
{
insilmaril@411
   160
	//TODO abstract in linkablemapobj.h, not calculated
insilmaril@0
   161
	return bboxTotal;
insilmaril@0
   162
}
insilmaril@0
   163
insilmaril@721
   164
void FloatImageObj::calcBBoxSizeWithChildren()
insilmaril@0
   165
{
insilmaril@411
   166
	//TODO abstract in linkablemapobj.h
insilmaril@0
   167
}
insilmaril@0
   168