Version: 1.3.90 (using KDE 3.3.91 (beta1), compiled sources) Compiler: gcc version 3.3.4 (Debian 1:3.3.4-13) OS: Linux (i686) release 2.6.8.1 In the visibility selector, in class properties dialog, which actually is composed by public, protected and private options, need 'Implementation option' which means that the class is not visible to the specification (header in c++). The code generator will write the class declaration in a implementation file. The same for attributes and operations, the code generator would write the declarations in the implementation file (cpp for c++) rather than in the spec file. (.h) The same for dependency relationships (in this case two optins: public,implementation), the code generator would write the include directive in the cpp when 'implementation' and in the header when 'public'
Created attachment 9399 [details] Added the new scope item, and replaced enum uml::scope for a class uml::scope code generators need to be updated later. I hope you understand and are happy with this improvement, and then apply it to the repository. (I say that because I haven't received any feedback since I posted the bug)
Created attachment 9400 [details] Image 1/4 to picts directory
Created attachment 9401 [details] Image 2/4 to picts directory
Created attachment 9402 [details] Image 3/4 to picts directory
Created attachment 9403 [details] Image 4/4 to picts directory
Looks interesting. (umbrello-1.5)
Is this part of the UML spec at all? (That doesn't mean we shouldn't accept it, just that we should be careful to do it to the spec if it does).
I don't know if UML spec say anything about it. My intention was to do a clone of Rational Rose functionality which is very useful, nevertheless i will consult the spec to know what it says.
For a dependency relationship, methods and attributes: I think the best is to leave the three well-known visibility options, and, separately, when the selected item is 'private', a checkbox can be used to specify 'implementation'. Regards
> ------- Additional Comment #1 From Marcos Mayorga > Created an attachment (id=9399) > Added the new scope item, and replaced enum uml::scope for a class uml::scope > code generators need to be updated later. > I hope you understand and are happy with this improvement, and then apply it > to the repository. Looks okay to me. Could you also attach the required new pixmaps, > umbrello/pics/CVimplementation_meth.png > umbrello/pics/CVimplementation_signal.png > umbrello/pics/CVimplementation_slot.png > umbrello/pics/CVimplementation_var.png
Oh, stupid me. Here they are already :-)
SVN commit 466510 by okellogg: CCBUG:98022 - Apply attachment (id=9399) from Marcos Mayorga. Also renamed 'Scope' to 'Visibility' as the former was a longstanding misnomer in Umbrello. > code generators need to be updated later. M +4 -4 adaimport.cpp M +4 -4 association.cpp M +4 -4 association.h M +14 -14 associationwidget.cpp M +3 -3 associationwidget.h M +5 -10 attribute.cpp M +7 -7 attribute.h M +5 -5 classifier.cpp M +1 -1 classifier.h M +2 -2 classifiercodedocument.cpp M +2 -2 classifiercodedocument.h M +32 -32 classifierwidget.cpp M +9 -9 classifierwidget.h M +8 -19 classparser/cpptree2uml.cpp M +1 -1 classparser/cpptree2uml.h M +5 -5 codegenerators/adawriter.cpp M +4 -4 codegenerators/aswriter.cpp M +7 -6 codegenerators/classifierinfo.cpp M +2 -1 codegenerators/cppheaderclassdeclarationblock.cpp M +1 -1 codegenerators/cppheadercodeaccessormethod.cpp M +22 -22 codegenerators/cppheadercodedocument.cpp M +17 -17 codegenerators/cppsourcecodeclassfielddeclarationblock.cpp M +54 -50 codegenerators/cppwriter.cpp M +11 -11 codegenerators/cppwriter.h M +5 -5 codegenerators/idlwriter.cpp M +1 -1 codegenerators/javaclassdeclarationblock.cpp M +6 -5 codegenerators/javaclassifiercodedocument.cpp M +1 -1 codegenerators/javaclassifiercodedocument.h M +1 -1 codegenerators/javacodeaccessormethod.cpp M +2 -2 codegenerators/javacodeclassfielddeclarationblock.cpp M +2 -2 codegenerators/javacodeoperation.cpp M +27 -27 codegenerators/javawriter.cpp M +6 -6 codegenerators/javawriter.h M +8 -8 codegenerators/perlwriter.cpp M +24 -24 codegenerators/php5writer.cpp M +16 -16 codegenerators/phpwriter.cpp M +4 -4 codegenerators/pythonwriter.cpp M +26 -26 codegenerators/rubyclassifiercodedocument.cpp M +1 -1 codegenerators/rubyclassifiercodedocument.h M +1 -1 codegenerators/rubycodeaccessormethod.cpp M +2 -2 codegenerators/rubycodeclassfielddeclarationblock.cpp M +2 -2 codegenerators/rubycodeoperation.cpp M +16 -16 codegenerators/rubywriter.cpp M +2 -2 codegenerators/rubywriter.h M +4 -4 codegenerators/sqlwriter.cpp M +52 -52 codegenerators/tclwriter.cpp M +4 -4 codegenerators/tclwriter.h M +8 -8 codegenerators/xmlschemawriter.cpp M +2 -2 codeparameter.cpp M +1 -1 codeparameter.h M +30 -16 dialogs/assocrolepage.cpp M +2 -2 dialogs/assocrolepage.h M +17 -9 dialogs/classgenpage.cpp M +1 -1 dialogs/classgenpage.h M +1 -1 dialogs/classifierlistpage.cpp M +10 -10 dialogs/classoptionspage.cpp M +1 -1 dialogs/classoptionspage.h M +1 -1 dialogs/selectopdlg.cpp M +7 -7 dialogs/settingsdlg.cpp M +1 -1 dialogs/settingsdlg.h M +19 -11 dialogs/umlattributedialog.cpp M +1 -1 dialogs/umlattributedialog.h M +20 -12 dialogs/umloperationdialog.cpp M +1 -1 dialogs/umloperationdialog.h M +12 -8 dialogs/umlroleproperties.cpp M +176 -135 dialogs/umlrolepropertiesbase.ui M +2 -2 dialogs/umlviewdialog.cpp M +1 -1 entity.cpp M +5 -10 entityattribute.cpp M +6 -6 entityattribute.h M +3 -3 idlimport.cpp M +3 -3 import_utils.cpp M +2 -2 import_utils.h M +2 -2 linkwidget.cpp M +4 -4 listpopupmenu.cpp M +2 -2 listpopupmenu.h M +1 -1 messagewidget.cpp M +0 -15 model_utils.cpp M +7 -17 model_utils.h M +1 -1 nativeimportbase.cpp M +1 -1 nativeimportbase.h M +10 -16 operation.cpp M +5 -5 operation.h M +3 -3 optionstate.h AM pics/CVimplementation_meth.png AM pics/CVimplementation_signal.png AM pics/CVimplementation_slot.png AM pics/CVimplementation_var.png M +4 -0 pics/Makefile.am M +9 -4 refactoring/refactoringassistant.cpp M +1 -0 refactoring/refactoringassistant.h M +4 -4 uml.cpp M +7 -7 umllistview.cpp M +15 -11 umllistviewitem.cpp M +48 -0 umlnamespace.cpp M +25 -7 umlnamespace.h M +20 -16 umlobject.cpp M +8 -8 umlobject.h M +3 -20 umlrole.cpp M +0 -14 umlrole.h M +6 -6 umlview.cpp M +1 -1 umlwidget.cpp
SVN commit 466936 by okellogg: Implement new 'Implementation' visibility for the old C++ code generator. CCBUG:98022 M +283 -320 cppwriter.cpp M +1 -1 cppwriter.h
Candidate for Junior Job: Follow the CPPWriter example (SVN commit 466936) for updating the further code generators.
What should be updated ? Only the new C++ code generator (in this case, I suppose the bug #84739 will be fixed soon) ? Or all the other code generators ?
> What should be updated ? Nobody has volunteered so far to fix bug #84739, and I'm afraid it's not an easy one to fix (IMHO. But maybe it's just my small mind.) So that leaves us with *Writer, i.e. the old code generators. And of those, only the ones that generate implementation files (not sure which ones do.)
> So that leaves us with *Writer, i.e. the old code generators. > And of those, only the ones that generate implementation files On checking, I see that only the CPPWriter generates implementation files so as far a I'm concerned we can close this.