summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin Smith <git@kismith.co.uk>2010-11-15 15:22:11 (GMT)
committerKevin Smith <git@kismith.co.uk>2010-11-15 15:22:11 (GMT)
commit6625c07d980f0761f64bde24d3b7f63cfc7e21d1 (patch)
treeaff7916a891ff7132f00f95dc1061471eb1dcd0a /Swift/Controllers
parent0c6c79df29c58ff8790941ea40d40f84fae773c6 (diff)
downloadswift-contrib-6625c07d980f0761f64bde24d3b7f63cfc7e21d1.zip
swift-contrib-6625c07d980f0761f64bde24d3b7f63cfc7e21d1.tar.bz2
Sanitise the Roster widget on signout.
This will hopefully avoid crashes in the RosterDelegate due to Qt believing that the RosterItems still exist and that it can read them. Unverified as I can't reproduce the crash on this machine, but hopefully Resolves: #678
Diffstat (limited to 'Swift/Controllers')
-rw-r--r--Swift/Controllers/RosterController.cpp1
-rw-r--r--Swift/Controllers/UIInterfaces/MainWindow.h1
2 files changed, 2 insertions, 0 deletions
diff --git a/Swift/Controllers/RosterController.cpp b/Swift/Controllers/RosterController.cpp
index ed311d9..038a883 100644
--- a/Swift/Controllers/RosterController.cpp
+++ b/Swift/Controllers/RosterController.cpp
@@ -72,6 +72,7 @@ RosterController::RosterController(const JID& jid, XMPPRoster* xmppRoster, Avata
RosterController::~RosterController() {
delete offlineFilter_;
delete expandiness_;
+ mainWindow_->setRosterModel(NULL);
if (mainWindow_->canDelete()) {
delete mainWindow_;
}
diff --git a/Swift/Controllers/UIInterfaces/MainWindow.h b/Swift/Controllers/UIInterfaces/MainWindow.h
index 3f37fc8..0d33466 100644
--- a/Swift/Controllers/UIInterfaces/MainWindow.h
+++ b/Swift/Controllers/UIInterfaces/MainWindow.h
@@ -29,6 +29,7 @@ namespace Swift {
virtual void setMyAvatarPath(const String& path) = 0;
virtual void setMyStatusText(const String& status) = 0;
virtual void setMyStatusType(StatusShow::Type type) = 0;
+ /** Must be able to cope with NULL to clear the roster */
virtual void setRosterModel(Roster* roster) = 0;
virtual void setConnecting() = 0;