mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-11-05 13:26:48 +08:00
Fixed #1002: Inherited dependency properties with value false are not inherited down the visual tree.
This commit is contained in:
@@ -264,6 +264,14 @@ var inheritanceTestProperty = new dependensyObservable.Property(
|
|||||||
new proxy.PropertyMetadata(inheritanceTestDefaultValue, dependensyObservable.PropertyMetadataSettings.Inheritable)
|
new proxy.PropertyMetadata(inheritanceTestDefaultValue, dependensyObservable.PropertyMetadataSettings.Inheritable)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
var booleanInheritanceTestDefaultValue = true;
|
||||||
|
|
||||||
|
var booleanInheritanceTestProperty = new dependensyObservable.Property(
|
||||||
|
"booleanInheritanceTest",
|
||||||
|
"TestView",
|
||||||
|
new proxy.PropertyMetadata(booleanInheritanceTestDefaultValue, dependensyObservable.PropertyMetadataSettings.Inheritable)
|
||||||
|
);
|
||||||
|
|
||||||
var dummyProperty = new dependensyObservable.Property(
|
var dummyProperty = new dependensyObservable.Property(
|
||||||
"dummy",
|
"dummy",
|
||||||
"TestView",
|
"TestView",
|
||||||
@@ -293,6 +301,13 @@ class TestView extends layoutModule.Layout {
|
|||||||
this._setValue(inheritanceTestProperty, value);
|
this._setValue(inheritanceTestProperty, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
get booleanInheritanceTest(): boolean {
|
||||||
|
return this._getValue(booleanInheritanceTestProperty);
|
||||||
|
}
|
||||||
|
set booleanInheritanceTest(value: boolean) {
|
||||||
|
this._setValue(booleanInheritanceTestProperty, value);
|
||||||
|
}
|
||||||
|
|
||||||
get dummy(): number {
|
get dummy(): number {
|
||||||
return this._getValue(dummyProperty);
|
return this._getValue(dummyProperty);
|
||||||
}
|
}
|
||||||
@@ -328,6 +343,25 @@ export var test_InheritableProperties_getValuesFromParent = function () {
|
|||||||
helper.do_PageTest(test, firstView, secondView, thirdView);
|
helper.do_PageTest(test, firstView, secondView, thirdView);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export var test_BooleanInheritableProperties_getValuesFromParent = function () {
|
||||||
|
var testValue = false;
|
||||||
|
var test = function (views: Array<viewModule.View>) {
|
||||||
|
var bottomView = <TestView>views[3]
|
||||||
|
|
||||||
|
TKUnit.assert(bottomView.booleanInheritanceTest === testValue, "Expected: " + testValue + " Actual: " + bottomView.booleanInheritanceTest);
|
||||||
|
}
|
||||||
|
|
||||||
|
var firstView = new TestView("firstView");
|
||||||
|
firstView.booleanInheritanceTest = testValue;
|
||||||
|
var secondView = new TestView("secondView");
|
||||||
|
var thirdView = new TestView("thirdView");
|
||||||
|
|
||||||
|
firstView.addChild(secondView);
|
||||||
|
secondView.addChild(thirdView);
|
||||||
|
|
||||||
|
helper.do_PageTest(test, firstView, secondView, thirdView);
|
||||||
|
}
|
||||||
|
|
||||||
export var test_InheritableProperties_resetValuesOnRemoveFromVisualTree = function () {
|
export var test_InheritableProperties_resetValuesOnRemoveFromVisualTree = function () {
|
||||||
var testValue = 35;
|
var testValue = 35;
|
||||||
var test = function (views: Array<viewModule.View>) {
|
var test = function (views: Array<viewModule.View>) {
|
||||||
|
|||||||
@@ -977,9 +977,7 @@ export class View extends proxy.ProxyObject implements definition.View {
|
|||||||
}
|
}
|
||||||
if (property.metadata && property.metadata.inheritable) {
|
if (property.metadata && property.metadata.inheritable) {
|
||||||
var baseValue = parentView._getValue(property);
|
var baseValue = parentView._getValue(property);
|
||||||
if (baseValue) {
|
that._setValue(property, baseValue, dependencyObservable.ValueSource.Inherited);
|
||||||
that._setValue(property, baseValue, dependencyObservable.ValueSource.Inherited);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user