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

Chris Muller asqueaker at gmail.com
Mon Feb 1 16:45:56 UTC 2016


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