Skip to content
Snippets Groups Projects
Commit 64398328 authored by Sébastien Blin's avatar Sébastien Blin Committed by Andreas Traczyk
Browse files

smartlist: show all swarm and draw items

Change-Id: Ib3e01a0af51736727b8056ed9eaa8ce9170c2d6c
GitLab: #438
parent 4e3cf29e
No related branches found
No related tags found
No related merge requests found
......@@ -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(
......
......@@ -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:
......
......@@ -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) \
......
......@@ -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()) {
......
......@@ -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
......
......@@ -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
......
......@@ -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 {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment