fix(ui/views/App/MainWindow/ContactEdit): little ui fixes

This commit is contained in:
Ronan Abhamon 2016-12-15 15:56:42 +01:00
parent 23f0c85483
commit b13763e25d
4 changed files with 21 additions and 11 deletions

View file

@ -86,7 +86,7 @@ ContactModel *ContactsListModel::mapSipAddressToContact (const QString &sipAddre
return &friend_->getData<ContactModel>(ContactModel::NAME);
}
void ContactsListModel::addContact (VcardModel *vcard) {
ContactModel *ContactsListModel::addContact (VcardModel *vcard) {
ContactModel *contact = new ContactModel(vcard);
App::getInstance()->getEngine()->setObjectOwnership(contact, QQmlEngine::CppOwnership);
@ -98,7 +98,7 @@ void ContactsListModel::addContact (VcardModel *vcard) {
) {
qWarning() << "Unable to add friend from vcard:" << vcard;
delete contact;
return;
return nullptr;
}
int row = rowCount();
@ -106,6 +106,8 @@ void ContactsListModel::addContact (VcardModel *vcard) {
beginInsertRows(QModelIndex(), row, row);
m_list << contact;
endInsertRows();
return contact;
}
void ContactsListModel::removeContact (ContactModel *contact) {

View file

@ -28,7 +28,7 @@ public:
public slots:
ContactModel *mapSipAddressToContact (const QString &sipAddress) const;
void addContact (VcardModel *vcard);
ContactModel *addContact (VcardModel *vcard);
void removeContact (ContactModel *contact);
private:

View file

@ -3,9 +3,9 @@ import QtQuick 2.7
import Common 1.0
import Common.Styles 1.0
// ===================================================================
// =============================================================================
// A editable text that has a background color on focus.
// ===================================================================
// =============================================================================
Item {
property alias color: textInput.color
@ -13,11 +13,13 @@ Item {
property alias inputMethodHints: textInput.inputMethodHints
property alias readOnly: textInput.readOnly
property alias text: textInput.text
property bool forceFocus: false
property bool isInvalid: false
property int padding: TransparentTextInputStyle.padding
signal editingFinished
// -----------------------------------------------------------------
// ---------------------------------------------------------------------------
onActiveFocusChanged: {
if (activeFocus) {
@ -28,7 +30,7 @@ Item {
Rectangle {
id: background
color: textInput.activeFocus && !textInput.readOnly
color: (textInput.activeFocus || parent.forceFocus) && !textInput.readOnly
? TransparentTextInputStyle.backgroundColor
: // No Style constant, see component name.
// It's a `transparent` TextInput.

View file

@ -30,10 +30,11 @@ ColumnLayout {
function _save () {
if (_contact) {
_contact.endEdit()
_edition = false
} else {
_contact = ContactsListModel.addContact(_vcard)
}
_edition = false
}
function _cancel () {
@ -50,8 +51,8 @@ ColumnLayout {
descriptionText: qsTr('removeContactDescription'),
exitHandler: function (status) {
if (status) {
window.setView('Contacts')
ContactsListModel.removeContact(_contact)
window.setView('Home')
}
},
title: qsTr('removeContactTitle')
@ -65,7 +66,7 @@ ColumnLayout {
function _setUsername (username) {
_vcard.username = username
// Update current text with new username.
// Update current text with new/old username.
usernameInput.text = _vcard.username
}
@ -114,6 +115,10 @@ ColumnLayout {
}
Component.onDestruction: {
if (_edition && _contact) {
_contact.abortEdit()
}
// TODO: Remove photo if contact not created.
}
@ -174,7 +179,8 @@ ColumnLayout {
bold: true
pointSize: ContactEditStyle.infoBar.username.fontSize
}
forceFocus: true
readOnly: !_edition
text: avatar.username
onEditingFinished: _setUsername(text)