From 6439832824a57bad079bc9b650292d3d7d6e6610 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Blin?= <sebastien.blin@savoirfairelinux.com> Date: Wed, 2 Jun 2021 15:24:36 -0400 Subject: [PATCH] smartlist: show all swarm and draw items Change-Id: Ib3e01a0af51736727b8056ed9eaa8ce9170c2d6c GitLab: #438 --- src/contactadapter.cpp | 2 +- src/conversationlistmodelbase.cpp | 5 ++--- src/conversationlistmodelbase.h | 2 +- src/conversationsadapter.cpp | 1 - .../components/ContactPickerItemDelegate.qml | 4 ++-- .../components/SmartListItemDelegate.qml | 2 +- src/messagesadapter.cpp | 19 ++++++++++--------- 7 files changed, 17 insertions(+), 18 deletions(-) diff --git a/src/contactadapter.cpp b/src/contactadapter.cpp index 354b4745f..2a7169c6d 100644 --- a/src/contactadapter.cpp +++ b/src/contactadapter.cpp @@ -93,7 +93,7 @@ ContactAdapter::setSearchFilter(const QString& filter) selectableProxyModel_->setPredicate( [this, filter](const QModelIndex& index, const QRegExp&) { return (!defaultModerators_.contains(index.data(Role::URI).toString()) - && index.data(Role::BestName).toString().contains(filter)); + && index.data(Role::Title).toString().contains(filter)); }); } selectableProxyModel_->setFilterRegExp( diff --git a/src/conversationlistmodelbase.cpp b/src/conversationlistmodelbase.cpp index 7a0537409..6921dafbb 100644 --- a/src/conversationlistmodelbase.cpp +++ b/src/conversationlistmodelbase.cpp @@ -59,14 +59,13 @@ ConversationListModelBase::dataForItem(item_t item, int role) const contactModel = accountInfo.contactModel.get(); contact = contactModel->getContact(peerUri); } catch (...) { - return QVariant(false); } // Since we are using image provider right now, image url representation should be unique to // be able to use the image cache, account avatar will only be updated once PictureUid changed switch (role) { - case Role::BestName: - return QVariant(contactModel->bestNameForContact(peerUri)); + case Role::Title: + return QVariant(model_->title(item.uid)); case Role::BestId: return QVariant(contactModel->bestIdForContact(peerUri)); case Role::Presence: diff --git a/src/conversationlistmodelbase.h b/src/conversationlistmodelbase.h index 45ef4c912..9a988bbdc 100644 --- a/src/conversationlistmodelbase.h +++ b/src/conversationlistmodelbase.h @@ -23,7 +23,7 @@ // TODO: many of these roles should probably be factored out #define CONV_ROLES \ - X(BestName) \ + X(Title) \ X(BestId) \ X(Presence) \ X(Alias) \ diff --git a/src/conversationsadapter.cpp b/src/conversationsadapter.cpp index 7967b63ac..8bda692be 100644 --- a/src/conversationsadapter.cpp +++ b/src/conversationsadapter.cpp @@ -384,7 +384,6 @@ ConversationsAdapter::getConvInfoMap(const QString& convId) contactModel = accountInfo.contactModel.get(); contact = contactModel->getContact(peerUri); } catch (...) { - return {}; } bool isAudioOnly {false}; if (!convInfo.uid.isEmpty()) { diff --git a/src/mainview/components/ContactPickerItemDelegate.qml b/src/mainview/components/ContactPickerItemDelegate.qml index e92d6ae56..0714f7f48 100644 --- a/src/mainview/components/ContactPickerItemDelegate.qml +++ b/src/mainview/components/ContactPickerItemDelegate.qml @@ -68,7 +68,7 @@ ItemDelegate { font: contactPickerContactName.font elide: Text.ElideMiddle elideWidth: contactPickerContactInfoRect.width - text: BestName + text: Title } color: JamiTheme.textColor @@ -90,7 +90,7 @@ ItemDelegate { font: contactPickerContactId.font elide: Text.ElideMiddle elideWidth: contactPickerContactInfoRect.width - text: BestId == BestName ? "" : BestId + text: BestId == Title ? "" : BestId } text: textMetricsContactPickerContactId.elidedText diff --git a/src/mainview/components/SmartListItemDelegate.qml b/src/mainview/components/SmartListItemDelegate.qml index 263d9981d..28ac45cb8 100644 --- a/src/mainview/components/SmartListItemDelegate.qml +++ b/src/mainview/components/SmartListItemDelegate.qml @@ -83,7 +83,7 @@ ItemDelegate { Layout.preferredHeight: 20 Layout.alignment: Qt.AlignVCenter elide: Text.ElideRight - text: BestName === undefined ? "" : BestName + text: Title === undefined ? "" : Title font.pointSize: JamiTheme.smartlistItemFontSize font.weight: UnreadMessagesCount ? Font.Bold : Font.Normal color: JamiTheme.textColor diff --git a/src/messagesadapter.cpp b/src/messagesadapter.cpp index f36293b5b..0a9dc2158 100644 --- a/src/messagesadapter.cpp +++ b/src/messagesadapter.cpp @@ -90,7 +90,7 @@ MessagesAdapter::setupChatView(const QString& convUid) QMetaObject::invokeMethod(qmlObj_, "setSendContactRequestButtonVisible", - Q_ARG(QVariant, convInfo.isNotASwarm() && isPending)); + Q_ARG(QVariant, convInfo.isNotASwarm() && convInfo.isRequest)); QMetaObject::invokeMethod(qmlObj_, "setMessagingHeaderButtonsVisible", Q_ARG(QVariant, @@ -510,13 +510,7 @@ MessagesAdapter::setConversationProfileData(const lrc::api::conversation::Info& return; } try { - auto& contact = accInfo->contactModel->getContact(contactUri); - auto bestName = accInfo->contactModel->bestNameForContact(contactUri); - bool isPending = contact.profileInfo.type == profile::Type::TEMPORARY; - - QMetaObject::invokeMethod(qmlObj_, - "setSendContactRequestButtonVisible", - Q_ARG(QVariant, convInfo.isNotASwarm() && isPending)); + auto title = accInfo->conversationModel->title(convInfo.uid); QMetaObject::invokeMethod(qmlObj_, "setMessagingHeaderButtonsVisible", Q_ARG(QVariant, @@ -524,10 +518,17 @@ MessagesAdapter::setConversationProfileData(const lrc::api::conversation::Info& && (convInfo.isRequest || convInfo.needsSyncing)))); setInvitation(convInfo.isRequest or convInfo.needsSyncing, - bestName, + title, contactUri, !convInfo.isNotASwarm(), convInfo.needsSyncing); + if (!convInfo.isNotASwarm()) + return; + auto& contact = accInfo->contactModel->getContact(contactUri); + bool isPending = contact.profileInfo.type == profile::Type::TEMPORARY; + QMetaObject::invokeMethod(qmlObj_, + "setSendContactRequestButtonVisible", + Q_ARG(QVariant, isPending)); if (!contact.profileInfo.avatar.isEmpty()) { setSenderImage(contactUri, contact.profileInfo.avatar); } else { -- GitLab