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

View file

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

View file

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