Commit b13763e2 authored by Ronan Abhamon's avatar Ronan Abhamon

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

parent 23f0c854
...@@ -86,7 +86,7 @@ ContactModel *ContactsListModel::mapSipAddressToContact (const QString &sipAddre ...@@ -86,7 +86,7 @@ ContactModel *ContactsListModel::mapSipAddressToContact (const QString &sipAddre
return &friend_->getData<ContactModel>(ContactModel::NAME); return &friend_->getData<ContactModel>(ContactModel::NAME);
} }
void ContactsListModel::addContact (VcardModel *vcard) { ContactModel *ContactsListModel::addContact (VcardModel *vcard) {
ContactModel *contact = new ContactModel(vcard); ContactModel *contact = new ContactModel(vcard);
App::getInstance()->getEngine()->setObjectOwnership(contact, QQmlEngine::CppOwnership); App::getInstance()->getEngine()->setObjectOwnership(contact, QQmlEngine::CppOwnership);
...@@ -98,7 +98,7 @@ void ContactsListModel::addContact (VcardModel *vcard) { ...@@ -98,7 +98,7 @@ void ContactsListModel::addContact (VcardModel *vcard) {
) { ) {
qWarning() << "Unable to add friend from vcard:" << vcard; qWarning() << "Unable to add friend from vcard:" << vcard;
delete contact; delete contact;
return; return nullptr;
} }
int row = rowCount(); int row = rowCount();
...@@ -106,6 +106,8 @@ void ContactsListModel::addContact (VcardModel *vcard) { ...@@ -106,6 +106,8 @@ void ContactsListModel::addContact (VcardModel *vcard) {
beginInsertRows(QModelIndex(), row, row); beginInsertRows(QModelIndex(), row, row);
m_list << contact; m_list << contact;
endInsertRows(); endInsertRows();
return contact;
} }
void ContactsListModel::removeContact (ContactModel *contact) { void ContactsListModel::removeContact (ContactModel *contact) {
......
...@@ -28,7 +28,7 @@ public: ...@@ -28,7 +28,7 @@ public:
public slots: public slots:
ContactModel *mapSipAddressToContact (const QString &sipAddress) const; ContactModel *mapSipAddressToContact (const QString &sipAddress) const;
void addContact (VcardModel *vcard); ContactModel *addContact (VcardModel *vcard);
void removeContact (ContactModel *contact); void removeContact (ContactModel *contact);
private: private:
......
...@@ -3,9 +3,9 @@ import QtQuick 2.7 ...@@ -3,9 +3,9 @@ import QtQuick 2.7
import Common 1.0 import Common 1.0
import Common.Styles 1.0 import Common.Styles 1.0
// =================================================================== // =============================================================================
// A editable text that has a background color on focus. // A editable text that has a background color on focus.
// =================================================================== // =============================================================================
Item { Item {
property alias color: textInput.color property alias color: textInput.color
...@@ -13,11 +13,13 @@ Item { ...@@ -13,11 +13,13 @@ Item {
property alias inputMethodHints: textInput.inputMethodHints property alias inputMethodHints: textInput.inputMethodHints
property alias readOnly: textInput.readOnly property alias readOnly: textInput.readOnly
property alias text: textInput.text property alias text: textInput.text
property bool forceFocus: false
property bool isInvalid: false property bool isInvalid: false
property int padding: TransparentTextInputStyle.padding property int padding: TransparentTextInputStyle.padding
signal editingFinished signal editingFinished
// ----------------------------------------------------------------- // ---------------------------------------------------------------------------
onActiveFocusChanged: { onActiveFocusChanged: {
if (activeFocus) { if (activeFocus) {
...@@ -28,7 +30,7 @@ Item { ...@@ -28,7 +30,7 @@ Item {
Rectangle { Rectangle {
id: background id: background
color: textInput.activeFocus && !textInput.readOnly color: (textInput.activeFocus || parent.forceFocus) && !textInput.readOnly
? TransparentTextInputStyle.backgroundColor ? TransparentTextInputStyle.backgroundColor
: // No Style constant, see component name. : // No Style constant, see component name.
// It's a `transparent` TextInput. // It's a `transparent` TextInput.
......
...@@ -30,10 +30,11 @@ ColumnLayout { ...@@ -30,10 +30,11 @@ ColumnLayout {
function _save () { function _save () {
if (_contact) { if (_contact) {
_contact.endEdit() _contact.endEdit()
_edition = false
} else { } else {
_contact = ContactsListModel.addContact(_vcard) _contact = ContactsListModel.addContact(_vcard)
} }
_edition = false
} }
function _cancel () { function _cancel () {
...@@ -50,8 +51,8 @@ ColumnLayout { ...@@ -50,8 +51,8 @@ ColumnLayout {
descriptionText: qsTr('removeContactDescription'), descriptionText: qsTr('removeContactDescription'),
exitHandler: function (status) { exitHandler: function (status) {
if (status) { if (status) {
window.setView('Contacts')
ContactsListModel.removeContact(_contact) ContactsListModel.removeContact(_contact)
window.setView('Home')
} }
}, },
title: qsTr('removeContactTitle') title: qsTr('removeContactTitle')
...@@ -65,7 +66,7 @@ ColumnLayout { ...@@ -65,7 +66,7 @@ ColumnLayout {
function _setUsername (username) { function _setUsername (username) {
_vcard.username = username _vcard.username = username
// Update current text with new username. // Update current text with new/old username.
usernameInput.text = _vcard.username usernameInput.text = _vcard.username
} }
...@@ -114,6 +115,10 @@ ColumnLayout { ...@@ -114,6 +115,10 @@ ColumnLayout {
} }
Component.onDestruction: { Component.onDestruction: {
if (_edition && _contact) {
_contact.abortEdit()
}
// TODO: Remove photo if contact not created. // TODO: Remove photo if contact not created.
} }
...@@ -174,7 +179,8 @@ ColumnLayout { ...@@ -174,7 +179,8 @@ ColumnLayout {
bold: true bold: true
pointSize: ContactEditStyle.infoBar.username.fontSize pointSize: ContactEditStyle.infoBar.username.fontSize
} }
forceFocus: true
readOnly: !_edition
text: avatar.username text: avatar.username
onEditingFinished: _setUsername(text) onEditingFinished: _setUsername(text)
......
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