Fixed an issue causing the editor outline model and the browser model to fail because of referencing a variable before it was created. eric7

Mon, 19 Feb 2024 14:33:08 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Mon, 19 Feb 2024 14:33:08 +0100
branch
eric7
changeset 10588
8edb63666f73
parent 10579
be997a4bd670
child 10593
b7ebfc2e47d4

Fixed an issue causing the editor outline model and the browser model to fail because of referencing a variable before it was created.

src/eric7/QScintilla/EditorOutlineModel.py file | annotate | diff | comparison | revisions
src/eric7/UI/BrowserModel.py file | annotate | diff | comparison | revisions
--- a/src/eric7/QScintilla/EditorOutlineModel.py	Fri Feb 16 19:58:06 2024 +0100
+++ b/src/eric7/QScintilla/EditorOutlineModel.py	Mon Feb 19 14:33:08 2024 +0100
@@ -94,13 +94,18 @@
                     cl = dictionary[key]
                     with contextlib.suppress(AttributeError):
                         if cl.module == self.__module:
-                            if isinstance(cl, ClbrBaseClasses.Class):
+                            if isinstance(
+                                cl, (ClbrBaseClasses.Class, ClbrBaseClasses.Module)
+                            ):
                                 node = BrowserClassItem(parentItem, cl, self.__filename)
                             elif isinstance(cl, ClbrBaseClasses.Function):
                                 node = BrowserMethodItem(
                                     parentItem, cl, self.__filename
                                 )
-                            self._addItem(node, parentItem)
+                            else:
+                                node = None
+                            if node:
+                                self._addItem(node, parentItem)
                 if "@@Coding@@" in dictionary and Preferences.getEditor(
                     "SourceOutlineShowCoding"
                 ):
--- a/src/eric7/UI/BrowserModel.py	Fri Feb 16 19:58:06 2024 +0100
+++ b/src/eric7/UI/BrowserModel.py	Mon Feb 19 14:33:08 2024 +0100
@@ -721,11 +721,16 @@
                 cl = dictionary[key]
                 with contextlib.suppress(AttributeError):
                     if cl.module == moduleName:
-                        if isinstance(cl, ClbrBaseClasses.Class):
+                        if isinstance(
+                            cl, (ClbrBaseClasses.Class, ClbrBaseClasses.Module)
+                        ):
                             node = BrowserClassItem(parentItem, cl, fileName)
                         elif isinstance(cl, ClbrBaseClasses.Function):
                             node = BrowserMethodItem(parentItem, cl, fileName)
-                        self._addItem(node, parentItem)
+                        else:
+                            node = None
+                        if node:
+                            self._addItem(node, parentItem)
             if "@@Coding@@" in dictionary and Preferences.getUI("BrowserShowCoding"):
                 node = BrowserCodingItem(
                     parentItem,

eric ide

mercurial