1
0
Fork 0
mirror of https://git.jami.net/savoirfairelinux/jami-client-qt.git synced 2025-08-03 22:35:45 +02:00

smartlist: show all swarm and draw items

Change-Id: Ib3e01a0af51736727b8056ed9eaa8ce9170c2d6c
GitLab: #438
This commit is contained in:
Sébastien Blin 2021-06-02 15:24:36 -04:00 committed by Andreas Traczyk
parent 4e3cf29eb6
commit 6439832824
7 changed files with 17 additions and 18 deletions

View file

@ -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(

View file

@ -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:

View file

@ -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) \

View file

@ -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()) {

View file

@ -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

View file

@ -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

View file

@ -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 {