summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin Smith <git@kismith.co.uk>2012-04-26 09:44:51 (GMT)
committerKevin Smith <git@kismith.co.uk>2012-04-26 09:44:51 (GMT)
commit4fc14f392e953ee2309312d9d8a07dc01303c838 (patch)
tree95717b7751b0ed573d430886e2ebb0758a809b36
parent47b1febe15092532fec41ebf077eccd9a2e45484 (diff)
downloadswift-4fc14f392e953ee2309312d9d8a07dc01303c838.zip
swift-4fc14f392e953ee2309312d9d8a07dc01303c838.tar.bz2
Mark recent chats offline when Swift is offline.
Resolves: #999
-rw-r--r--Swift/Controllers/Chat/ChatsManager.cpp9
-rw-r--r--Swift/Controllers/Chat/ChatsManager.h1
2 files changed, 10 insertions, 0 deletions
diff --git a/Swift/Controllers/Chat/ChatsManager.cpp b/Swift/Controllers/Chat/ChatsManager.cpp
index aea5ef4..b0aef95 100644
--- a/Swift/Controllers/Chat/ChatsManager.cpp
+++ b/Swift/Controllers/Chat/ChatsManager.cpp
@@ -403,6 +403,14 @@ void ChatsManager::handleUIEvent(boost::shared_ptr<UIEvent> event) {
}
}
+void ChatsManager::markAllRecentsOffline() {
+ foreach (ChatListWindow::Chat& chat, recentChats_) {
+ chat.setStatusType(StatusShow::None);
+ }
+
+ chatListWindow_->setRecents(recentChats_);
+}
+
/**
* If a resource goes offline, release bound chatdialog to that resource.
*/
@@ -477,6 +485,7 @@ void ChatsManager::setOnline(bool enabled) {
delete mucBookmarkManager_;
mucBookmarkManager_ = NULL;
chatListWindow_->setBookmarksEnabled(false);
+ markAllRecentsOffline();
} else {
setupBookmarks();
}
diff --git a/Swift/Controllers/Chat/ChatsManager.h b/Swift/Controllers/Chat/ChatsManager.h
index e6666fa..a8c69c4 100644
--- a/Swift/Controllers/Chat/ChatsManager.h
+++ b/Swift/Controllers/Chat/ChatsManager.h
@@ -88,6 +88,7 @@ namespace Swift {
void handleJIDUpdatedInRoster(const JID&);
void handleRosterCleared();
void handleSettingChanged(const std::string& settingPath);
+ void markAllRecentsOffline();
void updatePresenceReceivingStateOnChatController(const JID&);