umbrello  2.32.3
Umbrello UML Modeller is a Unified Modelling Language (UML) diagram program based on KDE Technology
Todo List
Member UMLCanvasObject::addAssociationEnd (UMLAssociation *assoc)
change param type to UMLRole
Member ToolBarStateArrow::mouseMoveEmpty ()
Fix selection
Member ToolBarStateAssociation::setSecondWidget ()
Why change to the default tool? Shouldn't it better to stay on association and let the user change with a right click? The tool to create widgets doesn't change to default after creating a widget
Class ToolBarStateAssociation
refactor with common code in ToolBarStateMessages?
Class ToolBarStateMessages

refactor with common code in ToolBarStateAssociation?

sequence message lines should be handled by object widgets. Right now, they aren't taken into account in testOnWidget and an explicit check is needed. However, if onWidget in object widgets is changed to also check for the line, a way to give them priority over other widgets in testOnWidget will be needed. For example, when creating a message clicking on an already created message, the message line must be got instead of the message, even if the message is smaller than the line.

Member ToolBarStateOther::newWidget ()
Rename to something more clear. The name is a bit confusing.
Member UMLApp::findMenu (const QString &name)
This is an ugly _HACK_ to allow to compile umbrello. All the menu stuff should be ported to KDE4 (using actions)
Member UMLApp::slotFileExportDocbook ()
Let the user chose the destination directory and name, using network transparency.
Member UMLApp::slotFileExportXhtml ()
Let the user chose the destination directory and name, using network transparency.
Member UMLEntity::createUniqueConstraint (const QString &name=QString())
check parameter
Class ToolBarState
Handle, for example, left press, right press, left release, right release and other similar strange combinations?
Member UMLCanvasObject::removeAssociationEnd (UMLAssociation *assoc)
change param type to UMLRole
Member UMLCanvasObject::m_List
Only a pointer to the appropriate association end object (UMLRole) should be saved here, not the entire UMLAssociation.
Member UMLDoc::saveDocument (const KUrl &url, const char *format=0)
insert some checks in saveToXMI1 to detect a failed save attempt
Member AssociationWidget::operationOwner ()
Move to LinkWidget.
Member AssociationWidget::moveEvent (QGraphicsSceneMouseEvent *me)
avoid trigger of this event during load
Member AssociationWidget::widgetMoved (UMLWidget *widget, qreal x, qreal y)
avoid trigger of this event during load
Member AssociationWidget::findInterceptOnEdge (const QRectF &rect, Uml::Region::Enum region, const QPointF &point)
This is buggy. Try replacing by intersect()
Member MessageWidget::operationOwner ()
Move to LinkWidget.
Member UMLWidget::adjustAssocs (qreal dx, qreal dy)
avoid trigger of this event during load
Member WidgetBase::loadFromXMI1 (QDomElement &qElement)
Add support to load older version.
Member DocbookGenerator::generateDocbookForProjectInto (const KUrl &destDir)
better handling of error conditions
Member ClassifierCodeDocument::syncNamesToParent ()
we cannot make this virtual as long as the ClassifierCodeDocument constructor calls it because that gives a call-before-construction error. Example of the problem: CPPSourceCodeDocument reimplementing syncNamesToParent() CPPCodeGenerator::initFromParentDocument() CodeDocument * codeDoc = new CPPSourceCodeDocument(c); CPPSourceCodeDocument::CPPSourceCodeDocument(UMLClassifier * concept) : ClassifierCodeDocument(concept) ClassifierCodeDocument::ClassifierCodeDocument(concept) init(concept); syncNamesToParent(); dispatches to CPPSourceCodeDocument::syncNamesToParent() but that object is not yet constructed.
Member DCodeGenerationPolicyPage::DCodeGenerationPolicyPage (QWidget *parent=0, const char *name=0, DCodeGenerationPolicy *policy=0)
unclean - CreateANTBuildFile attribute should be in d policy CodeGenerator *codegen = UMLApp::app()->getGenerator(); DCodeGenerator *dcodegen = dynamic_cast<DCodeGenerator*>(codegen); if (dcodegen) form->m_makeANTDocumentCheckBox->setChecked(dcodegen->getCreateANTBuildFile());
Member DCodeGenerationPolicyPage::apply ()
unclean - CreateANTBuildFile attribute should be in d policy CodeGenerator *codegen = UMLApp::app()->getGenerator(); DCodeGenerator *dcodegen = dynamic_cast<DCodeGenerator*>(codegen); if (dcodegen) dcodegen->setCreateANTBuildFile(form->m_makeANTDocumentCheckBox->isChecked());
Member JavaCodeGenerationPolicyPage::JavaCodeGenerationPolicyPage (QWidget *parent=0, const char *name=0, JavaCodeGenerationPolicy *policy=0)
unclean - CreateANTBuildFile attribute should be in java policy CodeGenerator *codegen = UMLApp::app()->getGenerator(); JavaCodeGenerator *javacodegen = dynamic_cast<JavaCodeGenerator*>(codegen); if (javacodegen) form->m_makeANTDocumentCheckBox->setChecked(javacodegen->getCreateANTBuildFile());
Member JavaCodeGenerationPolicyPage::apply ()
unclean - CreateANTBuildFile attribute should be in java policy CodeGenerator *codegen = UMLApp::app()->getGenerator(); JavaCodeGenerator *javacodegen = dynamic_cast<JavaCodeGenerator*>(codegen); if (javacodegen) javacodegen->setCreateANTBuildFile(form->m_makeANTDocumentCheckBox->isChecked());
Member ClassImport::initPerFile ()
check if the default implementation should do anything
Member CppTree2Uml::parseElaboratedTypeSpecifier (ElaboratedTypeSpecifierAST *)
Refine - Currently only handles class forward declarations.
  • Using typeSpec->text() is probably not good, decode the kind() instead.
Member ClassWizard::accept ()
Calling m_pGenPage->apply() twice is ugly, but without the first call the documentation of the class is cleared.
Member DocbookGenerator::generateDocbookForProject ()

change file naming to avoid paths with spaces or non-ASCII chars

better handling of error conditions

Class Umbrello::Configurable
Do we have to delete the plugin object when its unloaded? Is it possible that we can just unload the library and created objects are automatically destroyed? I need some clarification of what actually happens here...
Class DocbookGenerator

Add configure checks for libxml2 and libxslt and use conditional compilation of this library and its callers

allow to specify the destination and ensure that it works with distant ones

Member XhtmlGenerator::generateXhtmlForProject ()

change file naming to avoid paths with spaces or non-ASCII chars

better handling of error conditions

Member XhtmlGenerator::generateXhtmlForProjectInto (const KUrl &destDir)
better handling of error conditions
Class XhtmlGenerator
allow to specify the destination and ensure that it works with distant ones
Member showGUI (KCmdLineArgs *args)
Add options to use the documentation generators from command line.
Member RefactoringAssistant::addInterfaceImplementation ()
not yet implemented, needs addSuperClassifier() first
Member ToolBarState::messageAt (const QPointF &pos)
Better handling for messages at the same point
Member ToolBarState::associationAt (const QPointF &pos)
Better handling for associations at the same point