diff -r fecc847180b9 -r 680150fd2b8c src/eric7/Debugger/DebugViewer.py --- a/src/eric7/Debugger/DebugViewer.py Sat Sep 28 16:51:48 2024 +0200 +++ b/src/eric7/Debugger/DebugViewer.py Sat Sep 28 17:47:10 2024 +0200 @@ -101,6 +101,8 @@ self.debugServer = debugServer self.debugUI = None + self.__setFocusToWidget = None + self.setWindowIcon(EricPixmapCache.getIcon("eric")) self.__mainLayout = QVBoxLayout() @@ -164,6 +166,9 @@ self.globalsFilterTypeCombo.addItems( [self.tr("Don't Show"), self.tr("Show Only")] ) + self.globalsFilterTypeCombo.setCurrentIndex( + 1 if Preferences.getDebugger("ShowOnlyAsDefault") else 0 + ) self.gvvWidgetHLayout.addWidget(self.globalsFilterTypeCombo) self.globalsFilterEdit = QLineEdit(self.gvvWidget) @@ -201,6 +206,12 @@ self.gvvSourceButton.clicked.connect(self.__showSource) self.setGlobalsFilterButton.clicked.connect(self.setGlobalsFilter) self.globalsFilterEdit.returnPressed.connect(self.setGlobalsFilter) + self.globalsFilterEdit.textEdited.connect( + lambda: self.__filterStringEdited(globalsFilter=True) + ) + self.globalsFilterTypeCombo.currentIndexChanged.connect( + lambda: self.__filterStringEdited(globalsFilter=True) + ) # add the local variables viewer self.lvvWidget = QWidget() @@ -236,6 +247,9 @@ self.localsFilterTypeCombo.addItems( [self.tr("Don't Show"), self.tr("Show Only")] ) + self.localsFilterTypeCombo.setCurrentIndex( + 1 if Preferences.getDebugger("ShowOnlyAsDefault") else 0 + ) self.lvvWidgetHLayout2.addWidget(self.localsFilterTypeCombo) self.localsFilterEdit = QLineEdit(self.lvvWidget) @@ -273,6 +287,12 @@ self.lvvStackComboBox.currentIndexChanged[int].connect(self.__frameSelected) self.setLocalsFilterButton.clicked.connect(self.setLocalsFilter) self.localsFilterEdit.returnPressed.connect(self.setLocalsFilter) + self.localsFilterEdit.textEdited.connect( + lambda: self.__filterStringEdited(globalsFilter=False) + ) + self.localsFilterTypeCombo.currentIndexChanged.connect( + lambda: self.__filterStringEdited(globalsFilter=False) + ) self.preferencesChanged.connect(self.handlePreferencesChanged) self.preferencesChanged.connect(self.globalsViewer.preferencesChanged) @@ -397,6 +417,15 @@ self.lvvSourceButton.setVisible(not self.__autoViewSource) self.gvvSourceButton.setVisible(not self.__autoViewSource) + if not bool(self.globalsFilterEdit.text()): + self.globalsFilterTypeCombo.setCurrentIndex( + 1 if Preferences.getDebugger("ShowOnlyAsDefault") else 0 + ) + if not bool(self.localsFilterEdit.text()): + self.localsFilterTypeCombo.setCurrentIndex( + 1 if Preferences.getDebugger("ShowOnlyAsDefault") else 0 + ) + def setDebugger(self, debugUI): """ Public method to set a reference to the Debug UI. @@ -484,6 +513,10 @@ else: self.localsViewer.showVariables(vlist, self.framenr) + if self.__setFocusToWidget is not None: + self.__setFocusToWidget.setFocus(Qt.FocusReason.MouseFocusReason) + self.__setFocusToWidget = None # reset it + def showVariable(self, vlist, showGlobals): """ Public method to show the variables in the respective window. @@ -710,6 +743,20 @@ self.getSelectedDebuggerId(), 0, self.__localsFilter, self.framenr ) + def __filterStringEdited(self, globalsFilter): + """ + Private method to handle the editing of the a variables filter. + + @param globalsFilter flag indicating the globals filter was edited + @type bool + """ + if globalsFilter: + self.__setFocusToWidget = self.globalsFilterEdit + self.setGlobalsFilter() + else: + self.__setFocusToWidget = self.localsFilterEdit + self.setLocalsFilter() + def refreshVariablesLists(self): """ Public slot to refresh the local and global variables lists.