[kde-doc-english] [trojita] src/Gui: GUI: when clearing the logs, remove the contents as well as the actual tabs
Jan Kundrát
jkt at flaska.net
Thu Nov 15 18:08:44 UTC 2012
Git commit d07d09757b0e813c2b6e83ea3059f1ba9cf5a1b0 by Jan Kundrát.
Committed on 15/11/2012 at 15:08.
Pushed by jkt into branch 'master'.
GUI: when clearing the logs, remove the contents as well as the actual tabs
M +12 -2 src/Gui/ProtocolLoggerWidget.cpp
http://commits.kde.org/trojita/d07d09757b0e813c2b6e83ea3059f1ba9cf5a1b0
diff --git a/src/Gui/ProtocolLoggerWidget.cpp b/src/Gui/ProtocolLoggerWidget.cpp
index 156dd5e..9e78667 100644
--- a/src/Gui/ProtocolLoggerWidget.cpp
+++ b/src/Gui/ProtocolLoggerWidget.cpp
@@ -116,9 +116,19 @@ void ProtocolLoggerWidget::closeTab(int index)
void ProtocolLoggerWidget::clearLogDisplay()
{
- for (QMap<uint, QPlainTextEdit *>::iterator it = loggerWidgets.begin(); it != loggerWidgets.end(); ++it) {
- (*it)->document()->clear();
+ // These will be freed from the GUI
+ loggerWidgets.clear();
+
+ // We use very different indexing internally, to an extent where QTabWidget's ints are not easily obtainable from that,
+ // so it's much better to clean up the GUI at first and only after that purge the underlying data
+ while (tabs->count()) {
+ QWidget *w = tabs->widget(0);
+ Q_ASSERT(w);
+ tabs->removeTab(0);
+ w->deleteLater();
}
+
+ buffers.clear();
}
void ProtocolLoggerWidget::showEvent(QShowEvent *e)
More information about the kde-doc-english
mailing list