vymmodel.h
author insilmaril
Mon, 16 Mar 2009 15:40:49 +0000
branchrelease-1-12-maintained
changeset 61 bd98be838da9
parent 57 d045ba89798e
child 62 85683324f94a
permissions -rw-r--r--
updated changelog file
insilmaril@40
     1
#ifndef VYMMODEL_H
insilmaril@40
     2
#define VYMMODEL_H
insilmaril@40
     3
insilmaril@40
     4
#include <QGraphicsScene>
insilmaril@40
     5
insilmaril@40
     6
#include "mapcenterobj.h"
insilmaril@40
     7
#include "mapeditor.h"
insilmaril@40
     8
insilmaril@40
     9
insilmaril@40
    10
/*! \brief This will later be divided into Model/View
insilmaril@40
    11
*/
insilmaril@40
    12
insilmaril@40
    13
class VymModel : public QObject{
insilmaril@40
    14
	Q_OBJECT
insilmaril@40
    15
insilmaril@40
    16
public:
insilmaril@40
    17
	VymModel();
insilmaril@40
    18
	~VymModel ();
insilmaril@40
    19
    void clear();
insilmaril@40
    20
    void init();
insilmaril@40
    21
	void setMapEditor(MapEditor *me);	// FIXME should not be necessary in Model/View
insilmaril@40
    22
	MapEditor* getMapEditor();
insilmaril@40
    23
	void setVersion(const  QString &);
insilmaril@40
    24
	void setAuthor  (const QString &);
insilmaril@40
    25
	QString getAuthor ();
insilmaril@40
    26
	void setComment (const QString &);
insilmaril@40
    27
	QString getComment ();
insilmaril@40
    28
	QString getDate();
insilmaril@40
    29
	void setScene(QGraphicsScene *s);
insilmaril@40
    30
	QGraphicsScene *getScene();
insilmaril@40
    31
	MapCenterObj* addMapCenter();
insilmaril@40
    32
	MapCenterObj* addMapCenter(QPointF absPos);
insilmaril@40
    33
	MapCenterObj* removeMapCenter(MapCenterObj *mco);
insilmaril@57
    34
	MapCenterObj* getMapCenterNum (int i);
insilmaril@57
    35
	int countMapCenters ();
insilmaril@40
    36
insilmaril@40
    37
	BranchObj* first();					// FIXME replaced by ModelIndex later
insilmaril@40
    38
	BranchObj* next(BranchObj *bo);		// FIXME replaced by ModelIndex later
insilmaril@40
    39
insilmaril@40
    40
    LinkableMapObj* findMapObj(QPointF,LinkableMapObj*);	// find MapObj 
insilmaril@40
    41
    LinkableMapObj* findObjBySelect (const QString &s);		// find MapObj by select string
insilmaril@40
    42
    LinkableMapObj* findID (const QString &s);				// find MapObj by previously set ID
insilmaril@40
    43
	QString saveToDir (const QString&,const QString&,int, const QPointF&);// Save data recursivly to tempdir
insilmaril@40
    44
insilmaril@40
    45
insilmaril@40
    46
////////////////////////////////////////// View related
insilmaril@40
    47
    // void updateLink();  FIXME needed?
insilmaril@40
    48
    void updateRelPositions();
insilmaril@40
    49
insilmaril@40
    50
	QRectF getTotalBBox();
insilmaril@40
    51
	void reposition();					//!< Call reposition for all MCOs
insilmaril@40
    52
	void setHideTmp (HideTmpMode mode);	
insilmaril@40
    53
	QPolygonF shape(BranchObj *bo);		//!< Returns arbitrary shape of subtree
insilmaril@40
    54
	void moveAway (LinkableMapObj *lmo);//!< Autolayout: Move all out of the way
insilmaril@40
    55
insilmaril@40
    56
	// Animation  **experimental**
insilmaril@40
    57
private slots:
insilmaril@40
    58
	void animate();						//!< Called by timer to animate stuff
insilmaril@40
    59
public:
insilmaril@40
    60
	void startAnimation (const QPointF &start, const QPointF &dest);
insilmaril@40
    61
	void stopAnimation  (MapObj *mo);
insilmaril@40
    62
private:	
insilmaril@40
    63
	QTimer *animationTimer;
insilmaril@40
    64
	bool animationUse;
insilmaril@40
    65
	uint animationTicks;
insilmaril@40
    66
	uint animationInterval;
insilmaril@40
    67
	int timerId;				// animation timer
insilmaril@40
    68
	QList <MapObj*> animObjList;// list with animated objects
insilmaril@40
    69
insilmaril@40
    70
////////////////////////////////////////// Selection related 
insilmaril@40
    71
public:
insilmaril@40
    72
	LinkableMapObj* getSelection();
insilmaril@40
    73
	BranchObj* getSelectedBranch();
insilmaril@40
    74
	bool select (const QString &s);
insilmaril@40
    75
	QString getSelectString (LinkableMapObj *lmo);
insilmaril@40
    76
insilmaril@40
    77
private:
insilmaril@40
    78
	QGraphicsScene *mapScene;
insilmaril@40
    79
	MapEditor *mapEditor;
insilmaril@40
    80
	QList <MapCenterObj*> mapCenters;
insilmaril@40
    81
	QString version;	//!< version string saved in vym file
insilmaril@40
    82
	QString author;
insilmaril@40
    83
	QString comment;
insilmaril@40
    84
	QDate date;
insilmaril@40
    85
};
insilmaril@40
    86
insilmaril@40
    87
insilmaril@40
    88
#endif