mirror of
https://git.jami.net/savoirfairelinux/jami-client-qt.git
synced 2025-07-19 06:55:24 +02:00
lrcinstance: represent the selected conversation as a QML property
Change-Id: I01dbfc0d6cfcf407d6636ba59b136830ee0342bc
This commit is contained in:
parent
ac87d33d9f
commit
cc3931b36e
11 changed files with 72 additions and 67 deletions
|
@ -272,7 +272,7 @@ AccountAdapter::setCurrAccDisplayName(const QString& text)
|
|||
void
|
||||
AccountAdapter::setSelectedConvId(const QString& convId)
|
||||
{
|
||||
lrcInstance_->setSelectedConvId(convId);
|
||||
lrcInstance_->set_selectedConvUid(convId);
|
||||
}
|
||||
|
||||
lrc::api::profile::Type
|
||||
|
@ -350,7 +350,7 @@ AccountAdapter::passwordSetStatusMessageBox(bool success, QString title, QString
|
|||
void
|
||||
AccountAdapter::deselectConversation()
|
||||
{
|
||||
if (lrcInstance_->getCurrentConvUid().isEmpty()) {
|
||||
if (lrcInstance_->get_selectedConvUid().isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -361,7 +361,7 @@ AccountAdapter::deselectConversation()
|
|||
return;
|
||||
}
|
||||
|
||||
lrcInstance_->setSelectedConvId();
|
||||
lrcInstance_->set_selectedConvUid();
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -395,7 +395,7 @@ AccountAdapter::connectAccount(const QString& accountId)
|
|||
&lrc::api::ContactModel::contactAdded,
|
||||
[this, accountId](const QString& contactUri) {
|
||||
const auto& convInfo = lrcInstance_->getConversationFromConvUid(
|
||||
lrcInstance_->getCurrentConvUid());
|
||||
lrcInstance_->get_selectedConvUid());
|
||||
if (convInfo.uid.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -214,7 +214,7 @@ QString
|
|||
AvAdapter::getCurrentCallId()
|
||||
{
|
||||
const auto& convInfo = lrcInstance_->getConversationFromConvUid(
|
||||
lrcInstance_->getCurrentConvUid());
|
||||
lrcInstance_->get_selectedConvUid());
|
||||
auto call = lrcInstance_->getCallInfoForConversation(convInfo);
|
||||
return call ? call->id : QString();
|
||||
}
|
||||
|
|
|
@ -125,7 +125,7 @@ CallAdapter::onCallStatusChanged(const QString& accountId, const QString& callId
|
|||
void
|
||||
CallAdapter::placeAudioOnlyCall()
|
||||
{
|
||||
const auto convUid = lrcInstance_->getCurrentConvUid();
|
||||
const auto convUid = lrcInstance_->get_selectedConvUid();
|
||||
if (!convUid.isEmpty()) {
|
||||
lrcInstance_->getCurrentConversationModel()->placeAudioOnlyCall(convUid);
|
||||
}
|
||||
|
@ -134,7 +134,7 @@ CallAdapter::placeAudioOnlyCall()
|
|||
void
|
||||
CallAdapter::placeCall()
|
||||
{
|
||||
const auto convUid = lrcInstance_->getCurrentConvUid();
|
||||
const auto convUid = lrcInstance_->get_selectedConvUid();
|
||||
if (!convUid.isEmpty()) {
|
||||
lrcInstance_->getCurrentConversationModel()->placeCall(convUid);
|
||||
}
|
||||
|
@ -198,7 +198,7 @@ CallAdapter::onShowIncomingCallView(const QString& accountId, const QString& con
|
|||
}
|
||||
|
||||
const auto& currentConvInfo = lrcInstance_->getConversationFromConvUid(
|
||||
lrcInstance_->getCurrentConvUid());
|
||||
lrcInstance_->get_selectedConvUid());
|
||||
|
||||
// Current call
|
||||
auto currentConvHasCall = callModel->hasCall(currentConvInfo.callId);
|
||||
|
@ -216,7 +216,7 @@ CallAdapter::onShowIncomingCallView(const QString& accountId, const QString& con
|
|||
}
|
||||
|
||||
auto call = callModel->getCall(convInfo.callId);
|
||||
auto isCallSelected = lrcInstance_->getCurrentConvUid() == convInfo.uid;
|
||||
auto isCallSelected = lrcInstance_->get_selectedConvUid() == convInfo.uid;
|
||||
|
||||
if (call.isOutgoing) {
|
||||
if (isCallSelected) {
|
||||
|
@ -232,7 +232,7 @@ CallAdapter::onShowIncomingCallView(const QString& accountId, const QString& con
|
|||
}
|
||||
|
||||
const auto& currentConvInfo = lrcInstance_->getConversationFromConvUid(
|
||||
lrcInstance_->getCurrentConvUid());
|
||||
lrcInstance_->get_selectedConvUid());
|
||||
|
||||
// Call in current conversation
|
||||
auto currentConvHasCall = callModel->hasCall(currentConvInfo.callId);
|
||||
|
@ -500,7 +500,7 @@ CallAdapter::connectCallModel(const QString& accountId)
|
|||
/*
|
||||
* Reset the call view corresponding accountId, uid.
|
||||
*/
|
||||
lrcInstance_->setSelectedConvId(otherConv.uid);
|
||||
lrcInstance_->set_selectedConvUid(otherConv.uid);
|
||||
updateCall(otherConv.uid, otherConv.accountId, forceCallOnly);
|
||||
}
|
||||
}
|
||||
|
@ -514,7 +514,7 @@ CallAdapter::connectCallModel(const QString& accountId)
|
|||
case lrc::api::call::Status::CONNECTED:
|
||||
case lrc::api::call::Status::IN_PROGRESS: {
|
||||
const auto& convInfo = lrcInstance_->getConversationFromCallId(callId, accountId);
|
||||
if (!convInfo.uid.isEmpty() && convInfo.uid == lrcInstance_->getCurrentConvUid()) {
|
||||
if (!convInfo.uid.isEmpty() && convInfo.uid == lrcInstance_->get_selectedConvUid()) {
|
||||
accInfo.conversationModel->selectConversation(convInfo.uid);
|
||||
}
|
||||
updateCall(convInfo.uid, accountId);
|
||||
|
@ -633,7 +633,7 @@ CallAdapter::maximizeParticipant(const QString& uri)
|
|||
{
|
||||
auto* callModel = lrcInstance_->getAccountInfo(accountId_).callModel.get();
|
||||
const auto& convInfo
|
||||
= lrcInstance_->getConversationFromConvUid(lrcInstance_->getCurrentConvUid(), accountId_);
|
||||
= lrcInstance_->getConversationFromConvUid(lrcInstance_->get_selectedConvUid(), accountId_);
|
||||
|
||||
auto confId = convInfo.confId;
|
||||
if (confId.isEmpty())
|
||||
|
@ -666,7 +666,7 @@ CallAdapter::minimizeParticipant(const QString& uri)
|
|||
{
|
||||
auto* callModel = lrcInstance_->getAccountInfo(accountId_).callModel.get();
|
||||
const auto& convInfo
|
||||
= lrcInstance_->getConversationFromConvUid(lrcInstance_->getCurrentConvUid(), accountId_);
|
||||
= lrcInstance_->getConversationFromConvUid(lrcInstance_->get_selectedConvUid(), accountId_);
|
||||
auto confId = convInfo.confId;
|
||||
|
||||
if (confId.isEmpty())
|
||||
|
|
|
@ -62,7 +62,7 @@ ContactAdapter::getContactSelectableModel(int type)
|
|||
// Exclude current sip callee and filtered contact.
|
||||
bool match = true;
|
||||
const auto& conv = lrcInstance_->getConversationFromConvUid(
|
||||
lrcInstance_->getCurrentConvUid());
|
||||
lrcInstance_->get_selectedConvUid());
|
||||
if (!conv.participants.isEmpty()) {
|
||||
QString calleeDisplayId = lrcInstance_->getAccountInfo(lrcInstance_->getCurrAccId())
|
||||
.contactModel->bestIdForContact(conv.participants[0]);
|
||||
|
@ -109,7 +109,7 @@ ContactAdapter::contactSelected(int index)
|
|||
auto contactIndex = selectableProxyModel_->index(index, 0);
|
||||
auto* callModel = lrcInstance_->getCurrentCallModel();
|
||||
const auto& convInfo = lrcInstance_->getConversationFromConvUid(
|
||||
lrcInstance_->getCurrentConvUid());
|
||||
lrcInstance_->get_selectedConvUid());
|
||||
if (contactIndex.isValid()) {
|
||||
switch (listModeltype_) {
|
||||
case SmartListModel::Type::CONFERENCE: {
|
||||
|
|
|
@ -40,7 +40,7 @@ ConversationsAdapter::ConversationsAdapter(SystemTray* systemTray,
|
|||
});
|
||||
|
||||
connect(lrcInstance_, &LRCInstance::conversationSelected, [this]() {
|
||||
auto convUid = lrcInstance_->getCurrentConvUid();
|
||||
auto convUid = lrcInstance_->get_selectedConvUid();
|
||||
if (!convUid.isEmpty()) {
|
||||
Q_EMIT showConversation(lrcInstance_->getCurrAccId(), convUid);
|
||||
}
|
||||
|
@ -139,7 +139,7 @@ ConversationsAdapter::selectConversation(const QString& accountId, const QString
|
|||
void
|
||||
ConversationsAdapter::deselectConversation()
|
||||
{
|
||||
if (lrcInstance_->getCurrentConvUid().isEmpty()) {
|
||||
if (lrcInstance_->get_selectedConvUid().isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -149,7 +149,7 @@ ConversationsAdapter::deselectConversation()
|
|||
return;
|
||||
}
|
||||
|
||||
lrcInstance_->setSelectedConvId();
|
||||
lrcInstance_->set_selectedConvUid();
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -170,7 +170,7 @@ ConversationsAdapter::onNewUnreadInteraction(const QString& accountId,
|
|||
{
|
||||
if (!interaction.authorUri.isEmpty()
|
||||
&& (!QApplication::focusWindow() || accountId != lrcInstance_->getCurrAccId()
|
||||
|| convUid != lrcInstance_->getCurrentConvUid())) {
|
||||
|| convUid != lrcInstance_->get_selectedConvUid())) {
|
||||
auto& accountInfo = lrcInstance_->getAccountInfo(accountId);
|
||||
auto from = accountInfo.contactModel->bestNameForContact(interaction.authorUri);
|
||||
#ifdef Q_OS_LINUX
|
||||
|
@ -272,7 +272,7 @@ ConversationsAdapter::connectConversationModel(bool updateFilter)
|
|||
|
||||
auto* convModel = lrcInstance_->getCurrentConversationModel();
|
||||
const auto& convInfo = lrcInstance_->getConversationFromConvUid(
|
||||
lrcInstance_->getCurrentConvUid());
|
||||
lrcInstance_->get_selectedConvUid());
|
||||
|
||||
if (convInfo.uid.isEmpty() || convInfo.participants.isEmpty()) {
|
||||
return;
|
||||
|
@ -307,7 +307,7 @@ ConversationsAdapter::connectConversationModel(bool updateFilter)
|
|||
[this]() {
|
||||
conversationSmartListModel_->fillConversationsList();
|
||||
updateConversationsFilterWidget();
|
||||
if (!lrcInstance_->getCurrentConvUid().isEmpty())
|
||||
if (!lrcInstance_->get_selectedConvUid().isEmpty())
|
||||
Q_EMIT indexRepositionRequested();
|
||||
Q_EMIT updateListViewRequested();
|
||||
});
|
||||
|
@ -331,7 +331,7 @@ ConversationsAdapter::connectConversationModel(bool updateFilter)
|
|||
[this](const QString& convUid) {
|
||||
// If currently selected, switch to welcome screen (deselecting
|
||||
// current smartlist item).
|
||||
if (convUid != lrcInstance_->getCurrentConvUid()) {
|
||||
if (convUid != lrcInstance_->get_selectedConvUid()) {
|
||||
return;
|
||||
}
|
||||
backToWelcomePage();
|
||||
|
@ -391,8 +391,8 @@ ConversationsAdapter::updateConversationForNewContact(const QString& convUid)
|
|||
try {
|
||||
const auto contact = convModel->owner.contactModel->getContact(convInfo.participants[0]);
|
||||
if (!contact.profileInfo.uri.isEmpty()
|
||||
&& contact.profileInfo.uri == lrcInstance_->getCurrentConvUid()) {
|
||||
lrcInstance_->setSelectedConvId(convUid);
|
||||
&& contact.profileInfo.uri == lrcInstance_->get_selectedConvUid()) {
|
||||
lrcInstance_->set_selectedConvUid(convUid);
|
||||
convModel->selectConversation(convUid);
|
||||
}
|
||||
} catch (...) {
|
||||
|
|
|
@ -238,18 +238,6 @@ LRCInstance::setSelectedAccountId(const QString& accountId)
|
|||
Q_EMIT currentAccountChanged();
|
||||
}
|
||||
|
||||
const QString&
|
||||
LRCInstance::getCurrentConvUid()
|
||||
{
|
||||
return selectedConvUid_;
|
||||
}
|
||||
|
||||
void
|
||||
LRCInstance::setSelectedConvId(const QString& convUid)
|
||||
{
|
||||
selectedConvUid_ = convUid;
|
||||
}
|
||||
|
||||
int
|
||||
LRCInstance::getCurrentAccountIndex()
|
||||
{
|
||||
|
@ -384,7 +372,7 @@ LRCInstance::selectConversation(const QString& accountId, const QString& convUid
|
|||
{
|
||||
const auto& convInfo = getConversationFromConvUid(convUid, accountId);
|
||||
|
||||
if (getCurrentConvUid() != convInfo.uid || convInfo.participants.size() > 0) {
|
||||
if (get_selectedConvUid() != convInfo.uid || convInfo.participants.size() > 0) {
|
||||
// If the account is not currently selected, do that first, then
|
||||
// proceed to select the conversation.
|
||||
auto selectConversation = [this, accountId, convUid = convInfo.uid] {
|
||||
|
@ -393,7 +381,7 @@ LRCInstance::selectConversation(const QString& accountId, const QString& convUid
|
|||
return;
|
||||
}
|
||||
auto& accInfo = getAccountInfo(convInfo.accountId);
|
||||
setSelectedConvId(convInfo.uid);
|
||||
set_selectedConvUid(convInfo.uid);
|
||||
accInfo.conversationModel->clearUnreadInteractions(convInfo.uid);
|
||||
|
||||
try {
|
||||
|
@ -408,7 +396,7 @@ LRCInstance::selectConversation(const QString& accountId, const QString& convUid
|
|||
Utils::oneShotConnect(this, &LRCInstance::currentAccountChanged, [selectConversation] {
|
||||
selectConversation();
|
||||
});
|
||||
setSelectedConvId();
|
||||
set_selectedConvUid();
|
||||
setSelectedAccountId(convInfo.accountId);
|
||||
} else {
|
||||
selectConversation();
|
||||
|
|
|
@ -54,6 +54,7 @@ using getConvPredicate = std::function<bool(const conversation::Info& conv)>;
|
|||
class LRCInstance : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
QML_PROPERTY(QString, selectedConvUid)
|
||||
|
||||
public:
|
||||
explicit LRCInstance(migrateCallback willMigrateCb = {},
|
||||
|
@ -95,9 +96,7 @@ public:
|
|||
|
||||
const QString& getCurrAccId();
|
||||
void setSelectedAccountId(const QString& accountId = {});
|
||||
const QString& getCurrentConvUid();
|
||||
void selectConversation(const QString& accountId, const QString& convUid);
|
||||
void setSelectedConvId(const QString& convUid = {});
|
||||
int getCurrentAccountIndex();
|
||||
void setAvatarForAccount(const QPixmap& avatarPixmap, const QString& accountID);
|
||||
void setCurrAccAvatar(const QPixmap& avatarPixmap);
|
||||
|
@ -130,7 +129,6 @@ private:
|
|||
std::unique_ptr<RenderManager> renderer_;
|
||||
std::unique_ptr<UpdateManager> updateManager_;
|
||||
QString selectedAccountId_ {""};
|
||||
QString selectedConvUid_ {""};
|
||||
MapStringString contentDrafts_;
|
||||
MapStringString lastConferences_;
|
||||
|
||||
|
|
|
@ -167,7 +167,7 @@ MessagesAdapter::connectConversationModel()
|
|||
void
|
||||
MessagesAdapter::sendContactRequest()
|
||||
{
|
||||
const auto convUid = lrcInstance_->getCurrentConvUid();
|
||||
const auto convUid = lrcInstance_->get_selectedConvUid();
|
||||
if (!convUid.isEmpty()) {
|
||||
lrcInstance_->getCurrentConversationModel()->makePermanent(convUid);
|
||||
}
|
||||
|
@ -178,7 +178,7 @@ MessagesAdapter::updateConversationForAddedContact()
|
|||
{
|
||||
auto* convModel = lrcInstance_->getCurrentConversationModel();
|
||||
const auto& convInfo = lrcInstance_->getConversationFromConvUid(
|
||||
lrcInstance_->getCurrentConvUid());
|
||||
lrcInstance_->get_selectedConvUid());
|
||||
|
||||
clear();
|
||||
setConversationProfileData(convInfo);
|
||||
|
@ -191,13 +191,13 @@ MessagesAdapter::slotSendMessageContentSaved(const QString& content)
|
|||
if (!LastConvUid_.isEmpty()) {
|
||||
lrcInstance_->setContentDraft(LastConvUid_, lrcInstance_->getCurrAccId(), content);
|
||||
}
|
||||
LastConvUid_ = lrcInstance_->getCurrentConvUid();
|
||||
LastConvUid_ = lrcInstance_->get_selectedConvUid();
|
||||
|
||||
Utils::oneShotConnect(qmlObj_, SIGNAL(messagesCleared()), this, SLOT(slotMessagesCleared()));
|
||||
|
||||
setInvitation(false);
|
||||
clear();
|
||||
auto restoredContent = lrcInstance_->getContentDraft(lrcInstance_->getCurrentConvUid(),
|
||||
auto restoredContent = lrcInstance_->getContentDraft(lrcInstance_->get_selectedConvUid(),
|
||||
lrcInstance_->getCurrAccId());
|
||||
setSendMessageContent(restoredContent);
|
||||
Q_EMIT needToUpdateSmartList();
|
||||
|
@ -217,7 +217,7 @@ MessagesAdapter::slotMessagesCleared()
|
|||
{
|
||||
auto* convModel = lrcInstance_->getCurrentConversationModel();
|
||||
const auto& convInfo = lrcInstance_->getConversationFromConvUid(
|
||||
lrcInstance_->getCurrentConvUid());
|
||||
lrcInstance_->get_selectedConvUid());
|
||||
|
||||
printHistory(*convModel, convInfo.interactions);
|
||||
|
||||
|
@ -236,7 +236,7 @@ void
|
|||
MessagesAdapter::sendMessage(const QString& message)
|
||||
{
|
||||
try {
|
||||
const auto convUid = lrcInstance_->getCurrentConvUid();
|
||||
const auto convUid = lrcInstance_->get_selectedConvUid();
|
||||
lrcInstance_->getCurrentConversationModel()->sendMessage(convUid, message);
|
||||
} catch (...) {
|
||||
qDebug() << "Exception during sendMessage:" << message;
|
||||
|
@ -268,7 +268,7 @@ MessagesAdapter::sendImage(const QString& message)
|
|||
}
|
||||
|
||||
try {
|
||||
auto convUid = lrcInstance_->getCurrentConvUid();
|
||||
auto convUid = lrcInstance_->get_selectedConvUid();
|
||||
lrcInstance_->getCurrentConversationModel()->sendFile(convUid, path, fileName);
|
||||
} catch (...) {
|
||||
qDebug().noquote() << "Exception during sendFile - base64 img"
|
||||
|
@ -291,7 +291,7 @@ MessagesAdapter::sendImage(const QString& message)
|
|||
QString fileName = fi.fileName();
|
||||
|
||||
try {
|
||||
auto convUid = lrcInstance_->getCurrentConvUid();
|
||||
auto convUid = lrcInstance_->get_selectedConvUid();
|
||||
lrcInstance_->getCurrentConversationModel()->sendFile(convUid, msg, fileName);
|
||||
} catch (...) {
|
||||
qDebug().noquote() << "Exception during sendFile - image from path"
|
||||
|
@ -306,7 +306,7 @@ MessagesAdapter::sendFile(const QString& message)
|
|||
QFileInfo fi(message);
|
||||
QString fileName = fi.fileName();
|
||||
try {
|
||||
auto convUid = lrcInstance_->getCurrentConvUid();
|
||||
auto convUid = lrcInstance_->get_selectedConvUid();
|
||||
lrcInstance_->getCurrentConversationModel()->sendFile(convUid, message, fileName);
|
||||
} catch (...) {
|
||||
qDebug() << "Exception during sendFile";
|
||||
|
@ -320,7 +320,7 @@ MessagesAdapter::retryInteraction(const QString& arg)
|
|||
uint64_t interactionUid = arg.toULongLong(&ok);
|
||||
if (ok) {
|
||||
lrcInstance_->getCurrentConversationModel()
|
||||
->retryInteraction(lrcInstance_->getCurrentConvUid(), interactionUid);
|
||||
->retryInteraction(lrcInstance_->get_selectedConvUid(), interactionUid);
|
||||
} else {
|
||||
qDebug() << "retryInteraction - invalid arg" << arg;
|
||||
}
|
||||
|
@ -347,7 +347,7 @@ MessagesAdapter::deleteInteraction(const QString& arg)
|
|||
uint64_t interactionUid = arg.toULongLong(&ok);
|
||||
if (ok) {
|
||||
lrcInstance_->getCurrentConversationModel()
|
||||
->clearInteractionFromConversation(lrcInstance_->getCurrentConvUid(), interactionUid);
|
||||
->clearInteractionFromConversation(lrcInstance_->get_selectedConvUid(), interactionUid);
|
||||
} else {
|
||||
qDebug() << "DeleteInteraction - invalid arg" << arg;
|
||||
}
|
||||
|
@ -375,7 +375,7 @@ MessagesAdapter::acceptFile(const QString& arg)
|
|||
{
|
||||
try {
|
||||
auto interactionUid = arg.toLongLong();
|
||||
auto convUid = lrcInstance_->getCurrentConvUid();
|
||||
auto convUid = lrcInstance_->get_selectedConvUid();
|
||||
lrcInstance_->getCurrentConversationModel()->acceptTransfer(convUid, interactionUid);
|
||||
} catch (...) {
|
||||
qDebug() << "JS bridging - exception during acceptFile: " << arg;
|
||||
|
@ -387,7 +387,7 @@ MessagesAdapter::refuseFile(const QString& arg)
|
|||
{
|
||||
try {
|
||||
auto interactionUid = arg.toLongLong();
|
||||
const auto convUid = lrcInstance_->getCurrentConvUid();
|
||||
const auto convUid = lrcInstance_->get_selectedConvUid();
|
||||
lrcInstance_->getCurrentConversationModel()->cancelTransfer(convUid, interactionUid);
|
||||
} catch (...) {
|
||||
qDebug() << "JS bridging - exception during refuseFile:" << arg;
|
||||
|
@ -447,7 +447,7 @@ MessagesAdapter::onComposing(bool isComposing)
|
|||
if (!settingsManager_->getValue(Settings::Key::EnableTypingIndicator).toBool()) {
|
||||
return;
|
||||
}
|
||||
lrcInstance_->getCurrentConversationModel()->setIsComposing(lrcInstance_->getCurrentConvUid(),
|
||||
lrcInstance_->getCurrentConversationModel()->setIsComposing(lrcInstance_->get_selectedConvUid(),
|
||||
isComposing);
|
||||
}
|
||||
|
||||
|
@ -493,7 +493,7 @@ MessagesAdapter::newInteraction(const QString& accountId,
|
|||
{
|
||||
Q_UNUSED(interactionId);
|
||||
try {
|
||||
if (convUid.isEmpty() || convUid != lrcInstance_->getCurrentConvUid()) {
|
||||
if (convUid.isEmpty() || convUid != lrcInstance_->get_selectedConvUid()) {
|
||||
return;
|
||||
}
|
||||
auto& accountInfo = lrcInstance_->getAccountInfo(accountId);
|
||||
|
@ -656,7 +656,7 @@ MessagesAdapter::setSendMessageContent(const QString& content)
|
|||
void
|
||||
MessagesAdapter::contactIsComposing(const QString& uid, const QString& contactUri, bool isComposing)
|
||||
{
|
||||
if (lrcInstance_->getCurrentConvUid() == uid) {
|
||||
if (lrcInstance_->get_selectedConvUid() == uid) {
|
||||
QString s
|
||||
= QString::fromLatin1("showTypingIndicator(`%1`, %2);").arg(contactUri).arg(isComposing);
|
||||
QMetaObject::invokeMethod(qmlObj_, "webViewRunJavaScript", Q_ARG(QVariant, s));
|
||||
|
@ -666,7 +666,7 @@ MessagesAdapter::contactIsComposing(const QString& uid, const QString& contactUr
|
|||
void
|
||||
MessagesAdapter::acceptInvitation(const QString& convUid)
|
||||
{
|
||||
const auto currentConvUid = convUid.isEmpty() ? lrcInstance_->getCurrentConvUid() : convUid;
|
||||
const auto currentConvUid = convUid.isEmpty() ? lrcInstance_->get_selectedConvUid() : convUid;
|
||||
lrcInstance_->getCurrentConversationModel()->makePermanent(currentConvUid);
|
||||
if (convUid == currentConvUid_)
|
||||
currentConvUid_.clear();
|
||||
|
@ -676,7 +676,7 @@ MessagesAdapter::acceptInvitation(const QString& convUid)
|
|||
void
|
||||
MessagesAdapter::refuseInvitation(const QString& convUid)
|
||||
{
|
||||
const auto currentConvUid = convUid.isEmpty() ? lrcInstance_->getCurrentConvUid() : convUid;
|
||||
const auto currentConvUid = convUid.isEmpty() ? lrcInstance_->get_selectedConvUid() : convUid;
|
||||
lrcInstance_->getCurrentConversationModel()->removeConversation(currentConvUid, false);
|
||||
setInvitation(false);
|
||||
if (convUid == currentConvUid_)
|
||||
|
@ -687,7 +687,7 @@ MessagesAdapter::refuseInvitation(const QString& convUid)
|
|||
void
|
||||
MessagesAdapter::blockConversation(const QString& convUid)
|
||||
{
|
||||
const auto currentConvUid = convUid.isEmpty() ? lrcInstance_->getCurrentConvUid() : convUid;
|
||||
const auto currentConvUid = convUid.isEmpty() ? lrcInstance_->get_selectedConvUid() : convUid;
|
||||
lrcInstance_->getCurrentConversationModel()->removeConversation(currentConvUid, true);
|
||||
setInvitation(false);
|
||||
if (convUid == currentConvUid_)
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/*!
|
||||
/*
|
||||
* Copyright (C) 2015-2020 by Savoir-faire Linux
|
||||
* Author: Edric Ladent Milaret <edric.ladent-milaret@savoirfairelinux.com>
|
||||
* Author: Andreas Traczyk <andreas.traczyk@savoirfairelinux.com>
|
||||
|
@ -24,6 +24,25 @@
|
|||
|
||||
#include <QObject>
|
||||
|
||||
#define QML_PROPERTY(type, prop) \
|
||||
private: \
|
||||
Q_PROPERTY(type prop MEMBER prop##_ NOTIFY prop##Changed); \
|
||||
type prop##_ {}; \
|
||||
\
|
||||
public: \
|
||||
Q_SIGNAL void prop##Changed(); \
|
||||
type get_##prop() \
|
||||
{ \
|
||||
return prop##_; \
|
||||
} \
|
||||
void set_##prop(const type& x = {}) \
|
||||
{ \
|
||||
if (prop##_ != x) { \
|
||||
prop##_ = x; \
|
||||
Q_EMIT prop##Changed(); \
|
||||
} \
|
||||
}
|
||||
|
||||
namespace Utils {
|
||||
|
||||
template<typename Func1, typename Func2>
|
||||
|
|
|
@ -174,7 +174,7 @@ SmartListModel::setConferenceableFilter(const QString& filter)
|
|||
beginResetModel();
|
||||
auto& accountInfo = lrcInstance_->accountModel().getAccountInfo(lrcInstance_->getCurrAccId());
|
||||
auto& convModel = accountInfo.conversationModel;
|
||||
conferenceables_ = convModel->getConferenceableConversations(lrcInstance_->getCurrentConvUid(),
|
||||
conferenceables_ = convModel->getConferenceableConversations(lrcInstance_->get_selectedConvUid(),
|
||||
filter);
|
||||
sectionState_[tr("Calls")] = true;
|
||||
sectionState_[tr("Contacts")] = true;
|
||||
|
@ -242,7 +242,7 @@ SmartListModel::toggleSection(const QString& section)
|
|||
int
|
||||
SmartListModel::currentUidSmartListModelIndex()
|
||||
{
|
||||
const auto convUid = lrcInstance_->getCurrentConvUid();
|
||||
const auto convUid = lrcInstance_->get_selectedConvUid();
|
||||
for (int i = 0; i < rowCount(); i++) {
|
||||
if (convUid == data(index(i, 0), Role::UID))
|
||||
return i;
|
||||
|
|
|
@ -176,13 +176,13 @@ UtilsAdapter::setConversationFilter(const QString& filter)
|
|||
const QString
|
||||
UtilsAdapter::getCurrConvId()
|
||||
{
|
||||
return lrcInstance_->getCurrentConvUid();
|
||||
return lrcInstance_->get_selectedConvUid();
|
||||
}
|
||||
|
||||
void
|
||||
UtilsAdapter::makePermanentCurrentConv()
|
||||
{
|
||||
lrcInstance_->getCurrentConversationModel()->makePermanent(lrcInstance_->getCurrentConvUid());
|
||||
lrcInstance_->getCurrentConversationModel()->makePermanent(lrcInstance_->get_selectedConvUid());
|
||||
}
|
||||
|
||||
const QStringList
|
||||
|
|
Loading…
Add table
Reference in a new issue