diff -r 91ec771207a2 -r 613c56ad49d9 MenuEditor.st --- a/MenuEditor.st Tue Sep 03 17:23:22 2002 +0200 +++ b/MenuEditor.st Wed Sep 04 12:27:09 2002 +0200 @@ -3475,8 +3475,8 @@ ! doCreateMenu - |node| + node := self nodeLabel:'Submenu'. node parent: self selectedNode. node add:(self nodeLabel:'Item 1'). @@ -3590,37 +3590,43 @@ addElement: aNode "add something after selection" - |label sel| - - self askForItemModification ifTrue:[ - self selectedNodeAdd:aNode. - (aNode isCollection not - and: [aNode name = 'Item']) - ifTrue:[ - sel := self selectedNode. - label := aNode name , ' ', - (sel parent notNil - ifTrue: - [ - (((sel children size = 0 - ifTrue: [sel parent children] - ifFalse: [sel children]) - select:[:node| - |lab| - lab := node contents label. - ((node children size = 0) & - node contents submenuChannel isNil & - (lab ~= '-') & (lab ~= '=') & (lab ~= '')) - ]) size) printString - ] - ifFalse: ['1']). - - aNode name: label string asBoldText. - aNode contents label: label string. - ]. - aNode isCollection ifFalse: [self selectNode: aNode] ifTrue: [self selection: (aNode collect: [:node| self indexOfNode: node])]. - self setModified. - ] + |label sel selParent| + + self askForItemModification ifFalse:[^ self]. + + self selectedNodeAdd:aNode. + (aNode isCollection not and:[aNode name = 'Item']) + ifTrue:[ + sel := self selectedNode. + selParent := sel parent. + label := aNode name + , + ' ' + , + (selParent notNil + ifTrue:[ + (((sel children size = 0 + ifTrue: [selParent children] + ifFalse: [sel children]) + select:[:node| + |lab| + lab := node contents label. + ((node children size = 0) & + node contents submenuChannel isNil & + (lab ~= '-') & (lab ~= '=') & (lab ~= '')) + ]) size) printString + ] + ifFalse: ['1']). + + aNode name: label string asBoldText. + aNode contents label: label string. + ]. + aNode isCollection ifFalse: [ + self selectNode: aNode + ] ifTrue: [ + self selection: (aNode collect: [:node| self indexOfNode: node]) + ]. + self setModified. ! askForItemModification