--- a/Debugger/CallTraceViewer.py Sun Sep 04 17:28:37 2016 +0200 +++ b/Debugger/CallTraceViewer.py Mon Sep 05 19:47:54 2016 +0200 @@ -64,6 +64,10 @@ self.__projectMode = False self.__project = None + stopOnExit = Preferences.toBool( + Preferences.Prefs.settings.value("CallTrace/StopOnExit", True)) + self.stopCheckBox.setChecked(stopOnExit) + self.__callTraceEnabled = Preferences.toBool( Preferences.Prefs.settings.value("CallTrace/Enabled", False)) if self.__callTraceEnabled: @@ -72,6 +76,7 @@ self.stopTraceButton.setEnabled(False) self.__dbs.callTraceInfo.connect(self.__addCallTraceInfo) + self.__dbs.clientExit.connect(self.__clientExit) def __setCallTraceEnabled(self, enabled): """ @@ -84,6 +89,20 @@ self.startTraceButton.setEnabled(not enabled) self.__callTraceEnabled = enabled Preferences.Prefs.settings.setValue("CallTrace/Enabled", enabled) + + if not enabled: + for column in range(self.callTrace.columnCount()): + self.callTrace.resizeColumnToContents(column) + + @pyqtSlot(bool) + def on_stopCheckBox_clicked(self, checked): + """ + Private slot to handle a click on the stop check box. + + @param checked state of the check box + @type bool + """ + Preferences.Prefs.settings.setValue("CallTrace/StopOnExit", checked) @pyqtSlot() def on_startTraceButton_clicked(self): @@ -254,3 +273,11 @@ @return flag indicating the state of the call trace function (boolean) """ return self.__callTraceEnabled + + @pyqtSlot() + def __clientExit(self): + """ + Private slot handling a client exiting. + """ + if self.stopCheckBox.isChecked(): + self.__setCallTraceEnabled(False)