[105ed6]: src / interfaces / component / icomponentitem.h  Maximize  Restore  History

Download this file

82 lines (64 with data), 2.5 kB

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
/*
Copyright (C) 2009-2010 Julian B채ume <julian@svg4all.de>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
#ifndef KTECHLAB_ICOMPONENTITEM_H
#define KTECHLAB_ICOMPONENTITEM_H
#include "../ktlinterfacesexport.h"
#include <QGraphicsSvgItem>
namespace KTechLab {
class IDocumentModel;
/**
* \short Components that are shown on a scene
*
* This is a base-class for components which are rendered onto \ref IDocumentScene.
* Each component needs an id which is unique within a document. Each component needs
* to notify the model after it has been altered by user-interaction.
*/
class KTLINTERFACES_EXPORT IComponentItem : public QGraphicsSvgItem
{
public:
IComponentItem(QGraphicsItem* parentItem = 0);
~IComponentItem();
/**
* Set the document model for this component. This will be used to notify
* the model about changes and to retrieve information about itself.
*/
void setDocumentModel(IDocumentModel* model);
/**
* Get the document model.
*/
IDocumentModel* documentModel() const;
/**
* Get the id of this component.
*/
QString id() const;
public slots:
/**
* Inform the component, that some data has been changed, so it can
* update it's data and take appropriate action.
*
* @param name - tell, which data has been changed
* @param data - some data that is important for the object to know
*/
virtual void updateData( const QString &name, const QVariantMap &data );
signals:
void dataUpdated( const QString &name, const QVariantMap &data );
protected:
virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
virtual QVariant itemChange(GraphicsItemChange change, const QVariant& value);
IDocumentModel *m_document;
QString m_id;
};
}
#endif // KTECHLAB_ICOMPONENTITEM_H

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:





No, thanks