umbrello 2.34.70-5524f40e1
Umbrello UML Modeller is a Unified Modelling Language (UML) diagram program based on KDE Technology
Todo List
Member AssociationWidget::moveEvent (QGraphicsSceneMouseEvent *me)
avoid trigger of this event during load
Member AssociationWidget::operationOwner ()
Move to LinkWidget.
Member AssociationWidget::setUMLObject (UMLObject *obj)
Change WidgetBase::setUMLObject and reimplementers to return bool where `false` indicates failure. Currently, if setting the UML object fails the callers have no immediate way of knowing.
Member AssociationWidget::widgetMoved (UMLWidget *widget, qreal x, qreal y)
avoid trigger of this event during load
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 ClassImport::initPerFile ()
check if the default implementation should do anything
Member ClassWizard::accept ()
Calling m_pGenPage->apply() twice is ugly, but without the first call the documentation of the class is cleared.
Member CppTree2Uml::parseElaboratedTypeSpecifier (ElaboratedTypeSpecifierAST *)
Refine - Currently only handles class forward declarations.
  • Using typeSpec->text() is probably not good, decode the kind() instead.
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 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());
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 DocbookGenerator::generateDocbookForProject ()

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

better handling of error conditions

Member DocbookGenerator::generateDocbookForProjectInto (const KUrl &destDir)
better handling of error conditions
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 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 MessageWidget::operationOwner ()
Move to LinkWidget.
Member RefactoringAssistant::addInterfaceImplementation ()
not yet implemented, needs addSuperClassifier() first
Member showGUI (KCmdLineArgs *args)
Add options to use the documentation generators from command line.
Class ToolBarState
Handle, for example, left press, right press, left release, right release and other similar strange combinations?
Member ToolBarState::associationAt (const QPointF &pos)
Better handling for associations at the same point
Member ToolBarState::messageAt (const QPointF &pos)
Better handling for messages at the same point
Member ToolBarStateArrow::mouseMoveEmpty ()
Fix selection
Class ToolBarStateAssociation
refactor with common code in ToolBarStateMessages?
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 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.
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...
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::logDebug (const QString &s)
This is not yet hooked up. Hooking it up entails vast changes because currently Umbrello uses the uDebug() stream and the stream usages (<<) need to be changed to normal function call syntax.
Member UMLApp::logInfo (const QString &s)
This is not yet hooked up but only because Umbrello does not have a uInfo() stream analogous to uDebug / uWarning / uError, i.e. hooking up does not imply a change avalanche in the existing code and can be done as needed.
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 UMLCanvasObject::addAssociationEnd (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 UMLCanvasObject::removeAssociationEnd (UMLAssociation *assoc)
change param type to UMLRole
Member UMLDoc::saveDocument (const KUrl &url, const char *format=0)
insert some checks in saveToXMI to detect a failed save attempt
Member UMLEntity::createUniqueConstraint (const QString &name=QString())
check parameter
Member UMLWidget::adjustAssocs (qreal dx, qreal dy)
avoid trigger of this event during load
Member WidgetBase::loadFromXMI (QDomElement &qElement)
Add support to load older version.
Class XhtmlGenerator
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