Only the first checkbox in a group has vertical space before it

This commit is contained in:
David Rowe 2016-03-03 17:51:14 +13:00
parent a41f409e33
commit 2d250e2f64
3 changed files with 29 additions and 3 deletions

View file

@ -14,7 +14,7 @@ import "../../controls-uit"
Preference {
id: root
height: checkBox.implicitHeight
height: spacer.height + Math.max(hifi.dimensions.controlLineHeight, checkBox.implicitHeight)
Component.onCompleted: {
checkBox.checked = preference.value;
@ -26,9 +26,24 @@ Preference {
preference.save();
}
Item {
id: spacer
anchors {
top: parent.top
left: parent.left
right: parent.right
}
height: isFirstCheckBox ? hifi.dimensions.controlInterlineHeight : 0
}
CheckBox {
id: checkBox
anchors.fill: parent
anchors {
top: spacer.bottom
left: parent.left
right: parent.right
bottom: parent.bottom
}
text: root.label
colorScheme: hifi.colorSchemes.dark
}

View file

@ -16,6 +16,7 @@ Item {
anchors { left: parent.left; right: parent.right }
property var preference;
property string label: preference ? preference.name : "";
property bool isFirstCheckBox;
Component.onCompleted: {
if (preference) {
preference.load();

View file

@ -73,6 +73,7 @@ Preference {
property var buttonBuilder: Component { ButtonPreference { } }
property var comboBoxBuilder: Component { ComboBoxPreference { } }
property var preferences: []
property int checkBoxCount: 0
function buildPreferences() {
var categoryPreferences = Preferences.preferencesByCategory[root.name];
@ -89,40 +90,49 @@ Preference {
var builder;
switch (preference.type) {
case Preference.Editable:
checkBoxCount = 0;
builder = editableBuilder;
break;
case Preference.Browsable:
checkBoxCount = 0;
builder = browsableBuilder;
break;
case Preference.Spinner:
checkBoxCount = 0;
builder = spinnerBuilder;
break;
case Preference.Slider:
checkBoxCount = 0;
builder = sliderBuilder;
break;
case Preference.Checkbox:
checkBoxCount++;
console.log("####### checkBoxCount = " + checkBoxCount);
builder = checkboxBuilder;
break;
case Preference.Avatar:
checkBoxCount = 0;
builder = avatarBuilder;
break;
case Preference.Button:
checkBoxCount = 0;
builder = buttonBuilder;
break;
case Preference.ComboBox:
checkBoxCount = 0;
builder = comboBoxBuilder;
break;
};
if (builder) {
preferences.push(builder.createObject(contentContainer, { preference: preference }));
preferences.push(builder.createObject(contentContainer, { preference: preference, isFirstCheckBox: (checkBoxCount === 1) }));
}
}
}