Skip to content
Snippets Groups Projects
Commit 8b2512c5 authored by Ming Rui Zhang's avatar Ming Rui Zhang Committed by Ming Rui Zhang
Browse files

messagesadapter: clear conversation uid cache if it is currently selected

For clearConversationHistory and removeConversation

Gitlab: #252

Change-Id: I3008cf20ddace5d3395465bd328a460c72e4c07f
parent 9ef94561
No related branches found
No related tags found
No related merge requests found
...@@ -59,7 +59,7 @@ Item { ...@@ -59,7 +59,7 @@ Item {
ContextMenuGenerator.addMenuItem(qsTr("Clear conversation"), ContextMenuGenerator.addMenuItem(qsTr("Clear conversation"),
"qrc:/images/icons/ic_clear_24px.svg", "qrc:/images/icons/ic_clear_24px.svg",
function (){ function (){
UtilsAdapter.clearConversationHistory( MessagesAdapter.clearConversationHistory(
responsibleAccountId, responsibleAccountId,
responsibleConvUid) responsibleConvUid)
}) })
...@@ -68,7 +68,7 @@ Item { ...@@ -68,7 +68,7 @@ Item {
ContextMenuGenerator.addMenuItem(qsTr("Remove contact"), ContextMenuGenerator.addMenuItem(qsTr("Remove contact"),
"qrc:/images/icons/round-remove_circle-24px.svg", "qrc:/images/icons/round-remove_circle-24px.svg",
function (){ function (){
UtilsAdapter.removeConversation( MessagesAdapter.removeConversation(
responsibleAccountId, responsibleAccountId,
responsibleConvUid) responsibleConvUid)
}) })
......
...@@ -119,11 +119,10 @@ ListView { ...@@ -119,11 +119,10 @@ ListView {
sequence: "Ctrl+Shift+L" sequence: "Ctrl+Shift+L"
context: Qt.ApplicationShortcut context: Qt.ApplicationShortcut
enabled: root.visible enabled: root.visible
onActivated: { onActivated: MessagesAdapter.clearConversationHistory(
UtilsAdapter.clearConversationHistory(AccountAdapter.currentAccountId, AccountAdapter.currentAccountId,
UtilsAdapter.getCurrConvId()) UtilsAdapter.getCurrConvId())
} }
}
Shortcut { Shortcut {
sequence: "Ctrl+Shift+B" sequence: "Ctrl+Shift+B"
...@@ -138,12 +137,11 @@ ListView { ...@@ -138,12 +137,11 @@ ListView {
sequence: "Ctrl+Shift+Delete" sequence: "Ctrl+Shift+Delete"
context: Qt.ApplicationShortcut context: Qt.ApplicationShortcut
enabled: root.visible enabled: root.visible
onActivated: { onActivated: MessagesAdapter.removeConversation(
UtilsAdapter.removeConversation(AccountAdapter.currentAccountId, AccountAdapter.currentAccountId,
UtilsAdapter.getCurrConvId(), UtilsAdapter.getCurrConvId(),
false) false)
} }
}
Shortcut { Shortcut {
sequence: "Ctrl+Down" sequence: "Ctrl+Down"
......
...@@ -665,6 +665,8 @@ MessagesAdapter::refuseInvitation(const QString& convUid) ...@@ -665,6 +665,8 @@ MessagesAdapter::refuseInvitation(const QString& convUid)
const auto currentConvUid = convUid.isEmpty() ? LRCInstance::getCurrentConvUid() : convUid; const auto currentConvUid = convUid.isEmpty() ? LRCInstance::getCurrentConvUid() : convUid;
LRCInstance::getCurrentConversationModel()->removeConversation(currentConvUid, false); LRCInstance::getCurrentConversationModel()->removeConversation(currentConvUid, false);
setInvitation(false); setInvitation(false);
if (convUid == currentConvUid_)
currentConvUid_.clear();
emit navigateToWelcomePageRequested(); emit navigateToWelcomePageRequested();
} }
...@@ -674,6 +676,25 @@ MessagesAdapter::blockConversation(const QString& convUid) ...@@ -674,6 +676,25 @@ MessagesAdapter::blockConversation(const QString& convUid)
const auto currentConvUid = convUid.isEmpty() ? LRCInstance::getCurrentConvUid() : convUid; const auto currentConvUid = convUid.isEmpty() ? LRCInstance::getCurrentConvUid() : convUid;
LRCInstance::getCurrentConversationModel()->removeConversation(currentConvUid, true); LRCInstance::getCurrentConversationModel()->removeConversation(currentConvUid, true);
setInvitation(false); setInvitation(false);
if (convUid == currentConvUid_)
currentConvUid_.clear();
emit contactBanned(); emit contactBanned();
emit navigateToWelcomePageRequested(); emit navigateToWelcomePageRequested();
} }
void
MessagesAdapter::clearConversationHistory(const QString& accountId, const QString& uid)
{
LRCInstance::getAccountInfo(accountId).conversationModel->clearHistory(uid);
if (uid == currentConvUid_)
currentConvUid_.clear();
}
void
MessagesAdapter::removeConversation(const QString& accountId, const QString& uid, bool banContact)
{
LRCInstance::getAccountInfo(accountId).conversationModel->removeConversation(uid, banContact);
if (uid == currentConvUid_)
currentConvUid_.clear();
emit navigateToWelcomePageRequested();
}
...@@ -41,6 +41,10 @@ protected: ...@@ -41,6 +41,10 @@ protected:
Q_INVOKABLE void connectConversationModel(); Q_INVOKABLE void connectConversationModel();
Q_INVOKABLE void sendContactRequest(); Q_INVOKABLE void sendContactRequest();
Q_INVOKABLE void updateConversationForAddedContact(); Q_INVOKABLE void updateConversationForAddedContact();
Q_INVOKABLE void removeConversation(const QString& accountId,
const QString& uid,
bool banContact = false);
Q_INVOKABLE void clearConversationHistory(const QString& accountId, const QString& uid);
/* /*
* JS Q_INVOKABLE. * JS Q_INVOKABLE.
......
...@@ -157,18 +157,6 @@ UtilsAdapter::setConversationFilter(const QString& filter) ...@@ -157,18 +157,6 @@ UtilsAdapter::setConversationFilter(const QString& filter)
LRCInstance::getCurrentConversationModel()->setFilter(filter); LRCInstance::getCurrentConversationModel()->setFilter(filter);
} }
void
UtilsAdapter::clearConversationHistory(const QString& accountId, const QString& uid)
{
LRCInstance::getAccountInfo(accountId).conversationModel->clearHistory(uid);
}
void
UtilsAdapter::removeConversation(const QString& accountId, const QString& uid, bool banContact)
{
LRCInstance::getAccountInfo(accountId).conversationModel->removeConversation(uid, banContact);
}
const QString const QString
UtilsAdapter::getCurrConvId() UtilsAdapter::getCurrConvId()
{ {
......
...@@ -43,10 +43,6 @@ public: ...@@ -43,10 +43,6 @@ public:
Q_INVOKABLE bool createStartupLink(); Q_INVOKABLE bool createStartupLink();
Q_INVOKABLE QString GetRingtonePath(); Q_INVOKABLE QString GetRingtonePath();
Q_INVOKABLE bool checkStartupLink(); Q_INVOKABLE bool checkStartupLink();
Q_INVOKABLE void removeConversation(const QString& accountId,
const QString& uid,
bool banContact = false);
Q_INVOKABLE void clearConversationHistory(const QString& accountId, const QString& uid);
Q_INVOKABLE void setConversationFilter(const QString& filter); Q_INVOKABLE void setConversationFilter(const QString& filter);
Q_INVOKABLE int getTotalUnreadMessages(); Q_INVOKABLE int getTotalUnreadMessages();
Q_INVOKABLE int getTotalPendingRequest(); Q_INVOKABLE int getTotalPendingRequest();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment