[squeak-dev] The Trunk: Monticello-bf.535.mcz

Levente Uzonyi leves at elte.hu
Mon Apr 15 06:37:16 UTC 2013


On Sun, 14 Apr 2013, Chris Muller wrote:

> Let me try again.  This is the bug where sometimes clicking "Ok" on
> the MCSaveVersionDialog -- nothing happens and the package doesn't get
> saved..?

That happens when you modify the package after opening the dialog.


Levente

>
> I haven't researched this, is there some reason this dialog must have
> a separate process instead of just a simple callback when OK or Cancel
> is pressed?
>
> On Sun, Apr 14, 2013 at 11:09 AM, Chris Muller <asqueaker at gmail.com> wrote:
>> Arrrgghh!!!   I just don't understand why you seem to LOVE modal
>> warnings and messages don't you?  The problem here is the modality of
>> the dialog in the first place, the solution should be to get rid of
>> that not to layer on more modality.
>>
>> The user should be directing the computer, not vice-versa.
>>
>> On Thu, Apr 11, 2013 at 7:42 PM,  <commits at source.squeak.org> wrote:
>>> Bert Freudenberg uploaded a new version of Monticello to project The Trunk:
>>> http://source.squeak.org/trunk/Monticello-bf.535.mcz
>>>
>>> ==================== Summary ====================
>>>
>>> Name: Monticello-bf.535
>>> Author: bf
>>> Time: 11 April 2013, 5:42:14.486 pm
>>> UUID: 29816693-6d94-4dd7-ab81-c8ede42620ef
>>> Ancestors: Monticello-bf.534
>>>
>>> Warn user about an interrupted modal dialog.
>>>
>>> =============== Diff against Monticello-bf.534 ===============
>>>
>>> Item was changed:
>>>   Model subclass: #MCTool
>>> +       instanceVariableNames: 'morph label modalProcess modalValue'
>>> -       instanceVariableNames: 'morph label modal modalValue'
>>>         classVariableNames: ''
>>>         poolDictionaries: ''
>>>         category: 'Monticello-UI'!
>>>
>>> Item was changed:
>>>   ----- Method: MCTool>>answer: (in category 'morphic ui') -----
>>>   answer: anObject
>>> +       (modalProcess notNil and: [modalProcess ~~ Processor activeProcess])
>>> +               ifTrue: [^self inform: 'This modal dialog was interrupted, please close it'].
>>>         modalValue := anObject.
>>>         self close.!
>>>
>>> Item was changed:
>>>   ----- Method: MCTool>>show (in category 'morphic ui') -----
>>>   show
>>> +       modalProcess := nil.
>>> -       modal := false.
>>>         Smalltalk at: #ToolBuilder ifPresent: [:tb | tb open: self. ^ self].
>>>         ^self window openInWorldExtent: self defaultExtent; yourself!
>>>
>>> Item was changed:
>>>   ----- Method: MCTool>>showLabelled: (in category 'morphic ui') -----
>>>   showLabelled: labelString
>>> +       modalProcess := nil.
>>> -       modal := false.
>>>         self label: labelString.
>>>         ^(self window)
>>>                 openInWorldExtent: self defaultExtent;
>>>                 yourself!
>>>
>>> Item was changed:
>>>   ----- Method: MCTool>>showModally (in category 'morphic ui') -----
>>>   showModally
>>> +       modalProcess := Processor activeProcess.
>>> -       modal := true.
>>>         self window openInWorldExtent: (400 at 400).
>>>         [self window world notNil] whileTrue: [
>>>                 self window outermostWorldMorph doOneCycle.
>>>         ].
>>>         morph := nil.
>>>         ^ modalValue!
>>>
>>>
>
>


More information about the Squeak-dev mailing list