7 changes: 7 additions & 0 deletions umbrello/umldoc.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@
#include "version.h"
#include "worktoolbar.h"
#include "models/diagramsmodel.h"
#include "models/objectsmodel.h"
#include "models/stereotypesmodel.h"

// kde includes
Expand Down Expand Up @@ -117,6 +118,7 @@ UMLDoc::UMLDoc()
m_pCurrentRoot(0),
m_bClosing(false),
m_diagramsModel(new DiagramsModel),
m_objectsModel(new ObjectsModel),
m_stereotypesModel(new StereotypesModel(&m_stereoList))
{
for (int i = 0; i < Uml::ModelType::N_MODELTYPES; ++i)
Expand Down Expand Up @@ -2457,6 +2459,11 @@ DiagramsModel *UMLDoc::diagramsModel()
return m_diagramsModel;
}

ObjectsModel *UMLDoc::objectsModel()
{
return m_objectsModel;
}

StereotypesModel *UMLDoc::stereotypesModel()
{
return m_stereotypesModel;
Expand Down
3 changes: 3 additions & 0 deletions umbrello/umldoc.h
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ class QPrinter;

class IDChangeLog;
class DiagramsModel;
class ObjectsModel;
class StereotypesModel;
class UMLPackage;
class UMLFolder;
Expand Down Expand Up @@ -237,6 +238,7 @@ class UMLDoc : public QObject

DiagramsModel *diagramsModel();
StereotypesModel *stereotypesModel();
ObjectsModel *objectsModel();

private:
void initSaveTimer();
Expand Down Expand Up @@ -314,6 +316,7 @@ class UMLDoc : public QObject
bool m_bClosing;

DiagramsModel *m_diagramsModel;
ObjectsModel *m_objectsModel;
StereotypesModel *m_stereotypesModel;

public slots:
Expand Down
6 changes: 6 additions & 0 deletions umbrello/umlmodel/umlobject.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
#include "uml.h"
#include "umldoc.h"
#include "umllistview.h"
#include "models/objectsmodel.h"
#include "package.h"
#include "folder.h"
#include "stereotype.h"
Expand Down Expand Up @@ -47,6 +48,7 @@ UMLObject::UMLObject(const UMLObject &other)
: QObject(other.umlParent())
{
other.copyInto(this);
UMLApp::app()->document()->objectsModel()->add(this);
}

/**
Expand All @@ -64,6 +66,7 @@ UMLObject::UMLObject(UMLObject* parent, const QString& name, ID::Type id)
init();
if (id == Uml::ID::None)
m_nId = UniqueID::gen();
UMLApp::app()->document()->objectsModel()->add(this);
}

/**
Expand All @@ -80,6 +83,7 @@ UMLObject::UMLObject(const QString& name, ID::Type id)
init();
if (id == Uml::ID::None)
m_nId = UniqueID::gen();
UMLApp::app()->document()->objectsModel()->add(this);
}

/**
Expand All @@ -92,6 +96,7 @@ UMLObject::UMLObject(UMLObject * parent)
m_name(QString())
{
init();
UMLApp::app()->document()->objectsModel()->add(this);
}

/**
Expand All @@ -106,6 +111,7 @@ UMLObject::~UMLObject()
if (stereotype)
stereotype->decrRefCount();
}
UMLApp::app()->document()->objectsModel()->remove(this);
}

/**
Expand Down