void ChatWidgetContainerHandlerMapper::chatWidgetContainerHandlerUnregistered(ChatWidgetContainerHandler *chatWidgetContainerHandler) { disconnect(chatWidgetContainerHandler, SIGNAL(chatAcceptanceChanged(Chat)), this, SLOT(chatAcceptanceChanged(Chat))); auto chats = m_mapping.keys(chatWidgetContainerHandler); for (auto chat : chats) chatAcceptanceChanged(chat); }
void ChatWidgetContainerHandlerMapper::chatWidgetContainerHandlerRegistered(ChatWidgetContainerHandler *chatWidgetContainerHandler) { connect(chatWidgetContainerHandler, SIGNAL(chatAcceptanceChanged(Chat)), this, SLOT(chatAcceptanceChanged(Chat))); auto chats = m_mapping.keys(); for (auto chat : chats) if (chatWidgetContainerHandler->acceptChat(chat)) { unmap(chat); if (m_chatWidgetRepository) m_chatWidgetRepository->removeChatWidget(chat); map(chatWidgetContainerHandler, chat); createHandledChatWidget(chat, OpenChatActivation::Ignore); } }
void TabsManager::attachChat(ChatWidget *chatWidget) { auto chat = chatWidget->chat(); chat.removeProperty("tabs:detached"); chat.addProperty("tabs:attached", true, CustomProperties::Storable); emit chatAcceptanceChanged(chat); }
void TabsManager::detachChat(ChatWidget *chatWidget) { kdebugf(); if (TabDialog->indexOf(chatWidget) == -1) return; auto chat = chatWidget->chat(); chat.addProperty("tabs:detached", true, CustomProperties::Storable); chat.removeProperty("tabs:attached"); emit chatAcceptanceChanged(chat); }