[squeak-dev] The Trunk: Tools-mt.668.mcz

Chris Muller ma.chris.m at gmail.com
Mon Feb 1 19:26:53 UTC 2016


+1.  Marcel, we should really try to remove pop-ups from the system,
not add new ones.  How about rendering the out-of-date stuff in a
different color?

On Mon, Feb 1, 2016 at 1:02 PM, Levente Uzonyi <leves at caesar.elte.hu> wrote:
> I'd hate if Explorers were not able to keep their state when the explored
> obejcts changed. This would make it impossible to explore an object, change
> its structure, then open another explorer on it to compare the old state
> with the new.
> I haven't checked this new "reselect to refresh" feature, but I think it
> breaks what I described above.
>
> Levente
>
> On Mon, 1 Feb 2016, Chris Muller wrote:
>
>> Wouldn't it be better to just silently refresh it FOR the user in that
>> case, rather than bother them with a pop up?
>>
>> On Mon, Feb 1, 2016 at 3:45 AM,  <commits at source.squeak.org> wrote:
>>>
>>> Marcel Taeumel uploaded a new version of Tools to project The Trunk:
>>> http://source.squeak.org/trunk/Tools-mt.668.mcz
>>>
>>> ==================== Summary ====================
>>>
>>> Name: Tools-mt.668
>>> Author: mt
>>> Time: 1 February 2016, 10:44:38.861285 am
>>> UUID: 88b24b27-f952-4e86-9bd5-be64c8e309e2
>>> Ancestors: Tools-mt.667
>>>
>>> Adds support for selective refreshing to object explorer. Just re-select
>>> the current selection to refresh it. Item will get highlighted just like
>>> automatic monitor refresh to indicate inconsistency of displayed
>>> information.
>>>
>>> Make the still existing deficiency with volatile object state more
>>> descriptive with a pop-up instead of a generic assert error. Now that we
>>> support selective refreshing, the user is actually able to refresh and THEN
>>> invoke the context menu again.
>>>
>>> =============== Diff against Tools-mt.667 ===============
>>>
>>> Item was changed:
>>>   ----- Method: ObjectExplorer>>currentSelection: (in category
>>> 'accessing') -----
>>>   currentSelection: anObject
>>>
>>> +       self currentSelection == anObject ifTrue: [
>>> +               self changed: #objectChanged with: anObject.
>>> +               ^ self].
>>> +
>>> -       self currentSelection == anObject ifTrue: [^ self].
>>>         currentSelection := anObject.
>>>
>>>         self changed: #currentSelection.
>>>         self changed: #style.!
>>>
>>> Item was changed:
>>>   ----- Method: ObjectExplorer>>explorerKey:from:event: (in category
>>> 'menus') -----
>>>   explorerKey: aChar from: view event: event
>>>
>>>         event anyModifierKeyPressed ifFalse: [^ false].
>>>
>>>         currentSelection ifNotNil: [
>>> +               self updateInspectorForSelection ifFalse: [^ true].
>>> -               self updateInspectorForSelection.
>>>
>>>                 aChar == $i ifTrue: [self inspector inspectSelection. ^
>>> true].
>>>                 aChar == $I ifTrue: [self inspector exploreSelection. ^
>>> true].
>>>
>>>                 aChar == $b ifTrue:     [self inspector browseMethodFull.
>>> ^ true].
>>>                 aChar == $h ifTrue:     [self inspector classHierarchy. ^
>>> true].
>>>                 aChar == $c ifTrue: [Clipboard clipboardText: self
>>> currentSelection key. ^ true].
>>>                 aChar == $p ifTrue: [self inspector browseFullProtocol. ^
>>> true].
>>>                 aChar == $N ifTrue: [self inspector browseClassRefs. ^
>>> true].
>>>                 aChar == $t ifTrue: [self inspector tearOffTile. ^ true].
>>>                 aChar == $v ifTrue: [self inspector viewerForValue. ^
>>> true]].
>>>
>>>         ^ false!
>>>
>>> Item was changed:
>>>   ----- Method: ObjectExplorer>>genericMenu: (in category 'menus') -----
>>>   genericMenu: aMenu
>>>         "Borrow a menu from my inspector"
>>>
>>>         currentSelection
>>>                 ifNil: [
>>>                         aMenu
>>>                                 add: '*nothing selected*'
>>>                                 target: self
>>>                                 selector: #yourself]
>>>                 ifNotNil: [
>>> +                       self updateInspectorForSelection ifFalse: [^
>>> aMenu].
>>> -                       self updateInspectorForSelection.
>>>                         aMenu defaultTarget: self inspector.
>>>                         self inspector fieldListMenu: aMenu.
>>>
>>>                         aMenu addLine;
>>>                                 add: 'monitor changes'
>>>                                 target: self
>>>                                 selector: #monitor:
>>>                                 argument: currentSelection].
>>>         monitorList isEmptyOrNil
>>>                 ifFalse: [aMenu addLine;
>>>                                 add: 'stop monitoring all'
>>>                                 target: self
>>>                                 selector: #stopMonitoring].
>>>         ^ aMenu!
>>>
>>> Item was changed:
>>>   ----- Method: ObjectExplorer>>updateInspectorForSelection (in category
>>> 'accessing - other') -----
>>>   updateInspectorForSelection
>>>         "Reuse the inspector for some callbacks."
>>>
>>>         self inspector inspect: (self parentObject ifNil: [self object]).
>>>
>>>         self parentObject
>>>                 ifNil: [self inspector toggleIndex: 1. "self"]
>>>                 ifNotNil: [
>>>                         self inspector toggleIndex: (self inspector
>>> fieldList indexOf: self currentSelection key)].
>>> +
>>> +       self inspector selection == self object
>>> +               ifTrue: [
>>> +                       ^ true]
>>> +               ifFalse: [
>>> +                       self inform: 'Object has changed. Please
>>> refresh\before invoking the context menu.' withCRs.
>>> +                       ^ false].!
>>> -       self assert: self inspector selection == self object.!
>>>
>>>
>>
>>
>


More information about the Squeak-dev mailing list