Compare commits

...

1 commit

Author SHA1 Message Date
Nicolas Fella
884be30598 Simplify ConversationsDbusInterface
We have one ConversationsDbusInterface per plugin, and one plugin per device

So each interface is always bound to one device and we don't need to maintain an internal list
2024-10-20 00:15:19 +02:00

View file

@ -17,8 +17,6 @@
#include "kdeconnect_conversations_debug.h" #include "kdeconnect_conversations_debug.h"
QMap<QString, ConversationsDbusInterface *> ConversationsDbusInterface::liveConversationInterfaces;
ConversationsDbusInterface::ConversationsDbusInterface(KdeConnectPlugin *plugin) ConversationsDbusInterface::ConversationsDbusInterface(KdeConnectPlugin *plugin)
: QDBusAbstractAdaptor(const_cast<Device *>(plugin->device())) : QDBusAbstractAdaptor(const_cast<Device *>(plugin->device()))
, m_device(plugin->device()->id()) , m_device(plugin->device()->id())
@ -26,17 +24,6 @@ ConversationsDbusInterface::ConversationsDbusInterface(KdeConnectPlugin *plugin)
, m_smsInterface(m_device) , m_smsInterface(m_device)
{ {
ConversationMessage::registerDbusType(); ConversationMessage::registerDbusType();
// Check for an existing interface for the same device
// If there is already an interface for this device, we can safely delete is since we have just replaced it
const auto &oldInterfaceItr = ConversationsDbusInterface::liveConversationInterfaces.find(m_device);
if (oldInterfaceItr != ConversationsDbusInterface::liveConversationInterfaces.end()) {
ConversationsDbusInterface *oldInterface = oldInterfaceItr.value();
oldInterface->deleteLater();
ConversationsDbusInterface::liveConversationInterfaces.erase(oldInterfaceItr);
}
ConversationsDbusInterface::liveConversationInterfaces[m_device] = this;
} }
ConversationsDbusInterface::~ConversationsDbusInterface() ConversationsDbusInterface::~ConversationsDbusInterface()
@ -47,10 +34,6 @@ ConversationsDbusInterface::~ConversationsDbusInterface()
conversationsWaitingForMessages.clear(); conversationsWaitingForMessages.clear();
waitingForMessages.wakeAll(); waitingForMessages.wakeAll();
waitingForMessagesLock.unlock(); waitingForMessagesLock.unlock();
// Erase this interface from the list of known interfaces
const auto myIterator = ConversationsDbusInterface::liveConversationInterfaces.find(m_device);
ConversationsDbusInterface::liveConversationInterfaces.erase(myIterator);
} }
QVariantList ConversationsDbusInterface::activeConversations() QVariantList ConversationsDbusInterface::activeConversations()