Commit 54f28831 authored by Ronan Abhamon's avatar Ronan Abhamon

feat(ui/views/App/Main/ContactEdit): display correctly background color

parent 3e6d15f5
......@@ -215,243 +215,244 @@ ColumnLayout {
// Info list.
// ---------------------------------------------------------------------------
Loader {
Rectangle {
Layout.fillHeight: true
Layout.fillWidth: true
active: _vcard != null
sourceComponent: Flickable {
id: flick
color: ContactEditStyle.content.color
// -----------------------------------------------------------------------
Loader {
anchors.fill: parent
function _handleSipAddressChanged (index, defaultValue, newValue) {
if (newValue === defaultValue) {
return
}
active: _vcard != null
sourceComponent: Flickable {
id: flick
// ---------------------------------------------------------------------
var so_far_so_good = (defaultValue.length === 0)
? _vcard.addSipAddress(newValue)
: _vcard.updateSipAddress(defaultValue, newValue)
function _handleSipAddressChanged (index, defaultValue, newValue) {
if (newValue === defaultValue) {
return
}
addresses.setInvalid(index, !so_far_so_good)
}
var so_far_so_good = (defaultValue.length === 0)
? _vcard.addSipAddress(newValue)
: _vcard.updateSipAddress(defaultValue, newValue)
function _handleCompanyChanged (index, defaultValue, newValue) {
var so_far_so_good = (defaultValue.length === 0)
? _vcard.addCompany(newValue)
: _vcard.updateCompany(defaultValue, newValue)
addresses.setInvalid(index, !so_far_so_good)
}
function _handleCompanyChanged (index, defaultValue, newValue) {
var so_far_so_good = (defaultValue.length === 0)
? _vcard.addCompany(newValue)
: _vcard.updateCompany(defaultValue, newValue)
companies.setInvalid(index, !so_far_so_good)
}
}
function _handleEmailChanged (index, defaultValue, newValue) {
var so_far_so_good = (defaultValue.length === 0)
? _vcard.addEmail(newValue)
: _vcard.updateEmail(defaultValue, newValue)
function _handleEmailChanged (index, defaultValue, newValue) {
var so_far_so_good = (defaultValue.length === 0)
? _vcard.addEmail(newValue)
: _vcard.updateEmail(defaultValue, newValue)
emails.setInvalid(index, !so_far_so_good)
}
function _handleUrlChanged (index, defaultValue, newValue) {
var url = Utils.extractFirstUri(newValue)
if (url === defaultValue) {
return
}
var so_far_so_good = url && (
function _handleUrlChanged (index, defaultValue, newValue) {
var url = Utils.extractFirstUri(newValue)
if (url === defaultValue) {
return
}
var so_far_so_good = url && (
defaultValue.length === 0
? _vcard.addUrl(newValue)
: _vcard.updateUrl(defaultValue, newValue)
)
)
urls.setInvalid(index, !so_far_so_good)
}
urls.setInvalid(index, !so_far_so_good)
}
function _handleAddressChanged (index, value) {
if (index === 0) { // Street.
_vcard.setStreet(value)
} else if (index === 1) { // Locality.
_vcard.setLocality(value)
} else if (index === 2) { // Postal code.
_vcard.setPostalCode(value)
} else if (index === 3) { // Country.
_vcard.setCountry(value)
function _handleAddressChanged (index, value) {
if (index === 0) { // Street.
_vcard.setStreet(value)
} else if (index === 1) { // Locality.
_vcard.setLocality(value)
} else if (index === 2) { // Postal code.
_vcard.setPostalCode(value)
} else if (index === 3) { // Country.
_vcard.setCountry(value)
}
}
}
// -----------------------------------------------------------------------
// ---------------------------------------------------------------------
ScrollBar.vertical: ForceScrollBar {}
ScrollBar.vertical: ForceScrollBar {}
boundsBehavior: Flickable.StopAtBounds
clip: true
contentHeight: infoList.height
contentWidth: width - ScrollBar.vertical.width
flickableDirection: Flickable.VerticalFlick
boundsBehavior: Flickable.StopAtBounds
clip: true
contentHeight: infoList.height
contentWidth: width - ScrollBar.vertical.width
flickableDirection: Flickable.VerticalFlick
// -----------------------------------------------------------------------
// ---------------------------------------------------------------------
Connections {
target: _vcard
Connections {
target: _vcard
onVcardUpdated: {
addresses.setData(_vcard.sipAddresses)
companies.setData(_vcard.companies)
emails.setData(_vcard.emails)
urls.setData(_vcard.urls)
onVcardUpdated: {
addresses.setData(_vcard.sipAddresses)
companies.setData(_vcard.companies)
emails.setData(_vcard.emails)
urls.setData(_vcard.urls)
}
}
}
// -----------------------------------------------------------------------
Rectangle {
anchors.fill: parent
color: ContactEditStyle.content.color
}
ColumnLayout {
id: infoList
// ---------------------------------------------------------------------
width: flick.contentWidth
ColumnLayout {
id: infoList
ListForm {
id: addresses
width: flick.contentWidth
Layout.leftMargin: ContactEditStyle.values.leftMargin
Layout.rightMargin: ContactEditStyle.values.rightMargin
Layout.topMargin: ContactEditStyle.values.topMargin
ListForm {
id: addresses
defaultData: _vcard.sipAddresses
minValues: _contact ? 1 : 0
placeholder: qsTr('sipAccountsPlaceholder')
readOnly: !_edition
title: qsTr('sipAccounts')
Layout.leftMargin: ContactEditStyle.values.leftMargin
Layout.rightMargin: ContactEditStyle.values.rightMargin
Layout.topMargin: ContactEditStyle.values.topMargin
onChanged: _handleSipAddressChanged(index, defaultValue, newValue)
onRemoved: _vcard.removeSipAddress(value)
}
defaultData: _vcard.sipAddresses
minValues: _contact ? 1 : 0
placeholder: qsTr('sipAccountsPlaceholder')
readOnly: !_edition
title: qsTr('sipAccounts')
Rectangle {
Layout.fillWidth: true
Layout.preferredHeight: ContactEditStyle.values.separator.height
color: ContactEditStyle.values.separator.color
}
onChanged: _handleSipAddressChanged(index, defaultValue, newValue)
onRemoved: _vcard.removeSipAddress(value)
}
ListForm {
id: companies
Rectangle {
Layout.fillWidth: true
Layout.preferredHeight: ContactEditStyle.values.separator.height
color: ContactEditStyle.values.separator.color
}
Layout.leftMargin: ContactEditStyle.values.leftMargin
Layout.rightMargin: ContactEditStyle.values.rightMargin
ListForm {
id: companies
defaultData: _vcard.companies
placeholder: qsTr('companiesPlaceholder')
readOnly: !_edition
title: qsTr('companies')
Layout.leftMargin: ContactEditStyle.values.leftMargin
Layout.rightMargin: ContactEditStyle.values.rightMargin
onChanged: _handleCompanyChanged(index, defaultValue, newValue)
onRemoved: _vcard.removeCompany(value)
}
defaultData: _vcard.companies
placeholder: qsTr('companiesPlaceholder')
readOnly: !_edition
title: qsTr('companies')
Rectangle {
Layout.fillWidth: true
Layout.preferredHeight: ContactEditStyle.values.separator.height
color: ContactEditStyle.values.separator.color
}
onChanged: _handleCompanyChanged(index, defaultValue, newValue)
onRemoved: _vcard.removeCompany(value)
}
ListForm {
id: emails
Rectangle {
Layout.fillWidth: true
Layout.preferredHeight: ContactEditStyle.values.separator.height
color: ContactEditStyle.values.separator.color
}
Layout.leftMargin: ContactEditStyle.values.leftMargin
Layout.rightMargin: ContactEditStyle.values.rightMargin
ListForm {
id: emails
defaultData: _vcard.emails
inputMethodHints: Qt.ImhEmailCharactersOnly
placeholder: qsTr('emailsPlaceholder')
readOnly: !_edition
title: qsTr('emails')
Layout.leftMargin: ContactEditStyle.values.leftMargin
Layout.rightMargin: ContactEditStyle.values.rightMargin
onChanged: _handleEmailChanged(index, defaultValue, newValue)
onRemoved: _vcard.removeEmail(value)
}
defaultData: _vcard.emails
inputMethodHints: Qt.ImhEmailCharactersOnly
placeholder: qsTr('emailsPlaceholder')
readOnly: !_edition
title: qsTr('emails')
Rectangle {
Layout.fillWidth: true
Layout.preferredHeight: ContactEditStyle.values.separator.height
color: ContactEditStyle.values.separator.color
}
ListForm {
id: urls
onChanged: _handleEmailChanged(index, defaultValue, newValue)
onRemoved: _vcard.removeEmail(value)
}
Layout.leftMargin: ContactEditStyle.values.leftMargin
Layout.rightMargin: ContactEditStyle.values.rightMargin
Rectangle {
Layout.fillWidth: true
Layout.preferredHeight: ContactEditStyle.values.separator.height
color: ContactEditStyle.values.separator.color
}
defaultData: _vcard.urls
inputMethodHints: Qt.ImhUrlCharactersOnly
placeholder: qsTr('webSitesPlaceholder')
readOnly: !_edition
title: qsTr('webSites')
ListForm {
id: urls
onChanged: _handleUrlChanged(index, defaultValue, newValue)
onRemoved: _vcard.removeUrl(value)
}
Layout.leftMargin: ContactEditStyle.values.leftMargin
Layout.rightMargin: ContactEditStyle.values.rightMargin
Rectangle {
Layout.fillWidth: true
Layout.preferredHeight: ContactEditStyle.values.separator.height
color: ContactEditStyle.values.separator.color
}
defaultData: _vcard.urls
inputMethodHints: Qt.ImhUrlCharactersOnly
placeholder: qsTr('webSitesPlaceholder')
readOnly: !_edition
title: qsTr('webSites')
StaticListForm {
Layout.leftMargin: ContactEditStyle.values.leftMargin
Layout.rightMargin: ContactEditStyle.values.rightMargin
fields: {
var address = _vcard.address
return [{
placeholder: qsTr('street'),
text: address.street
}, {
placeholder: qsTr('locality'),
text: address.locality
}, {
placeholder: qsTr('postalCode'),
text: address.postalCode
}, {
placeholder: qsTr('country'),
text: address.country
}]
onChanged: _handleUrlChanged(index, defaultValue, newValue)
onRemoved: _vcard.removeUrl(value)
}
readOnly: !_edition
title: qsTr('address')
Rectangle {
Layout.fillWidth: true
Layout.preferredHeight: ContactEditStyle.values.separator.height
color: ContactEditStyle.values.separator.color
}
onChanged: _handleAddressChanged(index, value)
}
StaticListForm {
Layout.leftMargin: ContactEditStyle.values.leftMargin
Layout.rightMargin: ContactEditStyle.values.rightMargin
fields: {
var address = _vcard.address
return [{
placeholder: qsTr('street'),
text: address.street
}, {
placeholder: qsTr('locality'),
text: address.locality
}, {
placeholder: qsTr('postalCode'),
text: address.postalCode
}, {
placeholder: qsTr('country'),
text: address.country
}]
}
readOnly: !_edition
title: qsTr('address')
onChanged: _handleAddressChanged(index, value)
}
// ---------------------------------------------------------------------
// Edition buttons.
// ---------------------------------------------------------------------
// -------------------------------------------------------------------
// Edition buttons.
// -------------------------------------------------------------------
Row {
Layout.alignment: Qt.AlignHCenter
Layout.bottomMargin: ContactEditStyle.values.bottomMargin
Layout.topMargin: ContactEditStyle.buttons.topMargin
Row {
Layout.alignment: Qt.AlignHCenter
Layout.bottomMargin: ContactEditStyle.values.bottomMargin
Layout.topMargin: ContactEditStyle.buttons.topMargin
spacing: ContactEditStyle.buttons.spacing
visible: _edition
spacing: ContactEditStyle.buttons.spacing
visible: _edition
TextButtonA {
text: qsTr('cancel')
onClicked: _cancel()
}
TextButtonA {
text: qsTr('cancel')
onClicked: _cancel()
}
TextButtonB {
enabled: usernameInput.text.length > 0 && _vcard.sipAddresses.length > 0
text: qsTr('save')
onClicked: _save()
TextButtonB {
enabled: usernameInput.text.length > 0 && _vcard.sipAddresses.length > 0
text: qsTr('save')
onClicked: _save()
}
}
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment