src/eric7/Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py

branch
eric7
changeset 10520
dd95c3cbb35e
parent 10439
21c28b0f9e41
child 10582
8264ea1f42e5
child 10690
fab36645aa7d
--- a/src/eric7/Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py	Mon Jan 22 08:19:03 2024 +0100
+++ b/src/eric7/Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py	Mon Jan 22 11:47:06 2024 +0100
@@ -173,6 +173,7 @@
             itm = QTreeWidgetItem(self.__errorItem, [msg])
             itm.setForeground(0, Qt.GlobalColor.red)
             itm.setFirstColumnSpanned(True)
+            itm.setData(0, self.filenameRole, filename)
 
     def __createHeaderItem(self, filename, fileStatistics=None):
         """
@@ -414,6 +415,7 @@
             return
 
         self.__lastFileItem = None
+        self.__finished = False
 
         if codestring:
             self.source = Utilities.normalizeCode(codestring)
@@ -435,7 +437,6 @@
                 self.check()
                 return
 
-        self.__finished = False
         self.syntaxCheckService.syntaxCheck(
             None, self.filename, self.source, *self.__arguments
         )
@@ -447,6 +448,7 @@
         The results are reported to the __processResult slot.
         """
         self.__lastFileItem = None
+        self.__finished = False
 
         argumentsList = []
         for progress, filename in enumerate(self.files, start=1):
@@ -475,7 +477,6 @@
         self.checkProgress.setValue(self.progress)
         QApplication.processEvents()
 
-        self.__finished = False
         self.syntaxCheckService.syntaxBatchCheck(argumentsList)
 
     def __batchFinished(self):
@@ -679,7 +680,7 @@
         @param col column the item was activated in
         @type int
         """
-        if self.noResults:
+        if self.noResults or itm.data(0, self.filenameRole) is None:
             return
 
         vm = ericApp().getObject("ViewManager")
@@ -729,31 +730,31 @@
             selectedIndexes = list(range(self.resultList.topLevelItemCount()))
         for index in selectedIndexes:
             itm = self.resultList.topLevelItem(index)
-            fn = os.path.abspath(itm.data(0, self.filenameRole))
-            vm.openSourceFile(fn, 1)
-            editor = vm.getOpenEditor(fn)
-            editor.clearSyntaxError()
-            editor.clearFlakesWarnings()
-            for cindex in range(itm.childCount()):
-                citm = itm.child(cindex)
-                lineno = citm.data(0, self.lineRole)
-                index = citm.data(0, self.indexRole)
-                error = citm.data(0, self.errorRole)
-                if citm.data(0, self.warningRole):
-                    editor.toggleWarning(lineno, 0, True, error)
-                else:
-                    editor.toggleSyntaxError(lineno, index, True, error, show=True)
+            if itm.data(0, self.filenameRole) is not None:
+                fn = os.path.abspath(itm.data(0, self.filenameRole))
+                vm.openSourceFile(fn, 1)
+                editor = vm.getOpenEditor(fn)
+                editor.clearSyntaxError()
+                editor.clearFlakesWarnings()
+                for cindex in range(itm.childCount()):
+                    citm = itm.child(cindex)
+                    lineno = citm.data(0, self.lineRole)
+                    index = citm.data(0, self.indexRole)
+                    error = citm.data(0, self.errorRole)
+                    if citm.data(0, self.warningRole):
+                        editor.toggleWarning(lineno, 0, True, error)
+                    else:
+                        editor.toggleSyntaxError(lineno, index, True, error, show=True)
 
         # go through the list again to clear syntax error and
         # flakes warning markers for files, that are ok
-        openFiles = vm.getOpenFilenames()
         errorFiles = []
         for index in range(self.resultList.topLevelItemCount()):
             itm = self.resultList.topLevelItem(index)
             errorFiles.append(os.path.abspath(itm.data(0, self.filenameRole)))
-        for file in openFiles:
-            if file not in errorFiles:
-                editor = vm.getOpenEditor(file)
+        for fn in vm.getOpenFilenames():
+            if fn not in errorFiles:
+                editor = vm.getOpenEditor(fn)
                 editor.clearSyntaxError()
                 editor.clearFlakesWarnings()
 

eric ide

mercurial