projects
/
quassel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Prevent Quassel from crashing upon core dis- and reconnect and make the NickListWidgets
[quassel.git]
/
src
/
qtopia
/
nicklistwidget.cpp
diff --git
a/src/qtopia/nicklistwidget.cpp
b/src/qtopia/nicklistwidget.cpp
index
17c47f1
..
7c8361f
100644
(file)
--- a/
src/qtopia/nicklistwidget.cpp
+++ b/
src/qtopia/nicklistwidget.cpp
@@
-53,6
+53,7
@@
void NickListWidget::setBuffer(Buffer *buf) {
nickViews[buf] = view;
ui.stackedWidget->addWidget(view);
ui.stackedWidget->setCurrentWidget(view);
nickViews[buf] = view;
ui.stackedWidget->addWidget(view);
ui.stackedWidget->setCurrentWidget(view);
+ connect(buf, SIGNAL(destroyed(QObject *)), this, SLOT(bufferDestroyed(QObject *)));
}
}
}
}
}
}
@@
-62,4
+63,14
@@
void NickListWidget::reset() {
ui.stackedWidget->removeWidget(view);
view->deleteLater();
}
ui.stackedWidget->removeWidget(view);
view->deleteLater();
}
+ nickViews.clear();
}
}
+
+void NickListWidget::bufferDestroyed(QObject *buf) {
+ if(nickViews.contains((Buffer *)buf)) {
+ NickView *view = nickViews.take((Buffer *)buf);
+ ui.stackedWidget->removeWidget(view);
+ view->deleteLater();
+ }
+}
+