kopia lustrzana https://github.com/backface/turtlestitch
Morphic: directly edit properties in inspectors
rodzic
d372e807a5
commit
05c7482688
|
|
@ -2190,4 +2190,5 @@ ______
|
||||||
|
|
||||||
140711
|
140711
|
||||||
------
|
------
|
||||||
* Morphic: keyboard shortcut ctrl/cmd-shift-a for @
|
* Morphic: keyboard shortcut ctrl/cmd-shift-a for ‘@‘
|
||||||
|
* Morphic: allow directly editing properties in inspector widgets
|
||||||
|
|
|
||||||
17
morphic.js
17
morphic.js
|
|
@ -6160,6 +6160,7 @@ InspectorMorph.prototype.init = function (target) {
|
||||||
this.currentProperty = null;
|
this.currentProperty = null;
|
||||||
this.showing = 'attributes';
|
this.showing = 'attributes';
|
||||||
this.markOwnProperties = false;
|
this.markOwnProperties = false;
|
||||||
|
this.hasUserEditedDetails = false;
|
||||||
|
|
||||||
// initialize inherited properties:
|
// initialize inherited properties:
|
||||||
InspectorMorph.uber.init.call(this);
|
InspectorMorph.uber.init.call(this);
|
||||||
|
|
@ -6203,9 +6204,17 @@ InspectorMorph.prototype.setTarget = function (target) {
|
||||||
|
|
||||||
InspectorMorph.prototype.updateCurrentSelection = function () {
|
InspectorMorph.prototype.updateCurrentSelection = function () {
|
||||||
var val, txt, cnts,
|
var val, txt, cnts,
|
||||||
sel = this.list.selected;
|
sel = this.list.selected,
|
||||||
|
currentTxt = this.detail.contents.children[0],
|
||||||
|
root = this.root();
|
||||||
|
|
||||||
if (isNil(sel)) {return; }
|
if (root &&
|
||||||
|
(root.keyboardReceiver instanceof CursorMorph) &&
|
||||||
|
(root.keyboardReceiver.target === currentTxt)) {
|
||||||
|
this.hasUserEditedDetails = true;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (isNil(sel) || this.hasUserEditedDetails) {return; }
|
||||||
val = this.target[sel];
|
val = this.target[sel];
|
||||||
this.currentProperty = val;
|
this.currentProperty = val;
|
||||||
if (isNil(val)) {
|
if (isNil(val)) {
|
||||||
|
|
@ -6215,7 +6224,7 @@ InspectorMorph.prototype.updateCurrentSelection = function () {
|
||||||
} else {
|
} else {
|
||||||
txt = val.toString();
|
txt = val.toString();
|
||||||
}
|
}
|
||||||
if (this.detail.contents.children[0].text === txt) {return; }
|
if (currentTxt.text === txt) {return; }
|
||||||
cnts = new TextMorph(txt);
|
cnts = new TextMorph(txt);
|
||||||
cnts.isEditable = true;
|
cnts.isEditable = true;
|
||||||
cnts.enableSelecting();
|
cnts.enableSelecting();
|
||||||
|
|
@ -6291,6 +6300,7 @@ InspectorMorph.prototype.buildPanes = function () {
|
||||||
);
|
);
|
||||||
|
|
||||||
this.list.action = function () {
|
this.list.action = function () {
|
||||||
|
myself.hasUserEditedDetails = false;
|
||||||
myself.updateCurrentSelection();
|
myself.updateCurrentSelection();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -6539,6 +6549,7 @@ InspectorMorph.prototype.save = function () {
|
||||||
try {
|
try {
|
||||||
// this.target[prop] = evaluate(txt);
|
// this.target[prop] = evaluate(txt);
|
||||||
this.target.evaluateString('this.' + prop + ' = ' + txt);
|
this.target.evaluateString('this.' + prop + ' = ' + txt);
|
||||||
|
this.hasUserEditedDetails = false;
|
||||||
if (this.target.drawNew) {
|
if (this.target.drawNew) {
|
||||||
this.target.changed();
|
this.target.changed();
|
||||||
this.target.drawNew();
|
this.target.drawNew();
|
||||||
|
|
|
||||||
Ładowanie…
Reference in New Issue