diff --git a/tools/vdatatool.cpp b/tools/vdatatool.cpp index 8d26481cb..987c237d8 100644 --- a/tools/vdatatool.cpp +++ b/tools/vdatatool.cpp @@ -23,6 +23,7 @@ VDataTool &VDataTool::operator =(const VDataTool &tool){ data = tool.getData(); + _referens = tool.referens(); return *this; } diff --git a/tools/vdatatool.h b/tools/vdatatool.h index 11749d364..f6c114121 100644 --- a/tools/vdatatool.h +++ b/tools/vdatatool.h @@ -24,16 +24,21 @@ #include "container/vcontainer.h" +//We need QObject class because we use qobject_cast. class VDataTool : public QObject{ Q_OBJECT public: - explicit VDataTool(VContainer *data, QObject *parent = 0): QObject(parent), data(*data){} + explicit VDataTool(VContainer *data, QObject *parent = 0): QObject(parent), data(*data), _referens(0){} virtual ~VDataTool(){} VDataTool& operator= (const VDataTool &tool); VContainer getData() const { return data; } void setData(const VContainer *value); + qint64 referens() const {return _referens;} + void incrementReferens(){++_referens;} + void decrementReferens(){--_referens;} protected: VContainer data; + qint64 _referens; }; #endif // VDATATOOL_H