| Summary: | Performance problem with large models | ||
|---|---|---|---|
| Product: | [Applications] umbrello | Reporter: | Oliver Kellogg <okellogg> |
| Component: | general | Assignee: | Umbrello Development Group <umbrello-devel> |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | ||
| Priority: | NOR | ||
| Version First Reported In: | unspecified | ||
| Target Milestone: | --- | ||
| Platform: | Compiled Sources | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed/Implemented In: | ||
| Sentry Crash Report: | |||
|
Description
Oliver Kellogg
2005-03-09 08:36:41 UTC
CVS commit by okellogg:
UMLListView::{slotObjectCreated,childObjectAdded}: It turns out the slowdown
was caused by calling ensureItemVisible() during UMLDoc::resolveTypes().
BUG:101148
M +7 -3 umllistview.cpp 1.150
M +4 -1 umlobject.cpp 1.71
M +5 -0 umlobject.h 1.51
--- kdesdk/umbrello/umbrello/umllistview.cpp #1.149:1.150
@@ -597,4 +597,6 @@ void UMLListView::slotObjectCreated(UMLO
connectNewObjectsSlots(object);
newItem = new UMLListViewItem(parentItem, object->getName(), convert_OT_LVT(type), object);
+ if (m_doc->loading())
+ return;
ensureItemVisible(newItem);
newItem->setOpen(true);
@@ -686,8 +688,10 @@ void UMLListView::childObjectAdded(UMLOb
UMLListViewItem *newItem = new UMLListViewItem(parentItem, text,
convert_OT_LVT(obj->getBaseType()), obj);
+ if (! m_doc->loading()) {
ensureItemVisible(newItem);
clearSelection();
setSelected(newItem, true);
}
+ }
connectNewObjectsSlots(obj);
}
--- kdesdk/umbrello/umbrello/umlobject.cpp #1.70:1.71
@@ -63,4 +63,5 @@ void UMLObject::init() {
m_bStatic = false;
m_bInPaste = false;
+ m_bCreationWasSignalled = false;
m_pSecondary = NULL;
}
@@ -328,9 +329,11 @@ QString UMLObject::getSecondaryId() cons
void UMLObject::maybeSignalObjectCreated() {
- if (m_BaseType != Uml::ot_Stereotype &&
+ if (!m_bCreationWasSignalled &&
+ m_BaseType != Uml::ot_Stereotype &&
m_BaseType != Uml::ot_Association &&
m_BaseType != Uml::ot_Role) {
UMLDoc* umldoc = UMLApp::app()->getDocument();
umldoc->signalUMLObjectCreated(this);
+ m_bCreationWasSignalled = true;
}
}
--- kdesdk/umbrello/umbrello/umlobject.h #1.50:1.51
@@ -414,4 +414,9 @@ protected:
/**
+ * Auxiliary to maybeSignalObjectCreated().
+ */
+ bool m_bCreationWasSignalled;
+
+ /**
* Pointer to an associated object.
* Only a few of the classes inheriting from UMLObject use this.
|