mirror of
https://gitlab.linphone.org/BC/public/linphone-desktop.git
synced 2026-04-30 15:26:20 +00:00
fix(ui/views/App/MainWindow/ContactEdit): little ui fixes
This commit is contained in:
parent
23f0c85483
commit
b13763e25d
4 changed files with 21 additions and 11 deletions
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue