[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
|