selection.h
author insilmaril
Wed, 29 Oct 2008 17:42:34 +0000
changeset 727 96402b172173
parent 726 7f43b93242aa
child 728 a8a98a94899a
permissions -rw-r--r--
subtrees can be deleted now
insilmaril@364
     1
#ifndef SELECTION_H
insilmaril@364
     2
#define SELECTION_H
insilmaril@364
     3
insilmaril@440
     4
#include <QString>
insilmaril@440
     5
#include <QList>
insilmaril@440
     6
#include <QGraphicsScene>
insilmaril@440
     7
insilmaril@726
     8
#include "treeitem.h"
insilmaril@440
     9
insilmaril@440
    10
class BranchObj;
insilmaril@440
    11
class FloatImageObj;
insilmaril@440
    12
class MapCenterObj;
insilmaril@440
    13
class LinkableMapObj;
insilmaril@642
    14
class VymModel;
insilmaril@0
    15
insilmaril@421
    16
insilmaril@0
    17
class Selection 
insilmaril@0
    18
{
insilmaril@0
    19
public:
insilmaril@492
    20
	enum Type {Undefined,Branch,MapCenter,FloatImage};
insilmaril@0
    21
	Selection ();
insilmaril@0
    22
	~Selection();
insilmaril@0
    23
	void copy(const Selection&);
insilmaril@0
    24
	void clear();
insilmaril@642
    25
	void setModel (VymModel *);
insilmaril@440
    26
	void update();
insilmaril@440
    27
	void setColor (QColor c);
insilmaril@440
    28
	QColor getColor ();
insilmaril@0
    29
	bool select (LinkableMapObj*);
insilmaril@364
    30
	bool select (const QString &);
insilmaril@421
    31
	bool reselect ();
insilmaril@364
    32
	void unselect ();
insilmaril@721
    33
	bool isBlocked ();
insilmaril@721
    34
	void block();
insilmaril@721
    35
	void unblock();
insilmaril@0
    36
	bool isEmpty();
insilmaril@0
    37
	uint count();
insilmaril@492
    38
	Type type();
insilmaril@424
    39
	LinkableMapObj * first();		// first in selection list
insilmaril@424
    40
	LinkableMapObj * single();		// NULL, if multiple selected
insilmaril@424
    41
	BranchObj* getBranch();
insilmaril@726
    42
	TreeItem* getBranchItem();		
insilmaril@424
    43
	FloatImageObj* getFloatImage();
insilmaril@0
    44
insilmaril@364
    45
	QString getSelectString();
insilmaril@364
    46
insilmaril@0
    47
private:
insilmaril@364
    48
	void init();
insilmaril@364
    49
	QList <LinkableMapObj*> selectList;
insilmaril@421
    50
	QList <LinkableMapObj*> lastSelectList;
insilmaril@440
    51
	QList <QGraphicsRectItem*> selboxList;
insilmaril@642
    52
	VymModel *model;
insilmaril@440
    53
	QGraphicsScene *scene;
insilmaril@440
    54
insilmaril@440
    55
	QColor color;
insilmaril@721
    56
	bool blocked;					//!< if true, no new selection possible
insilmaril@0
    57
};
insilmaril@721
    58
insilmaril@0
    59
#endif
insilmaril@0
    60