Added capability to check multiple files from the project sources browser.

Sun, 30 Mar 2014 15:36:25 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sun, 30 Mar 2014 15:36:25 +0200
changeset 3450
2f7c8fd8e3f5
parent 3449
aa2bd0199c64
child 3451
e9ee3ea73db4

Added capability to check multiple files from the project sources browser.

Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py file | annotate | diff | comparison | revisions
Plugins/PluginCodeStyleChecker.py file | annotate | diff | comparison | revisions
Plugins/PluginSyntaxChecker.py file | annotate | diff | comparison | revisions
Plugins/PluginTabnanny.py file | annotate | diff | comparison | revisions
Project/ProjectSourcesBrowser.py file | annotate | diff | comparison | revisions
UI/Browser.py file | annotate | diff | comparison | revisions
changelog file | annotate | diff | comparison | revisions
--- a/Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py	Sun Mar 30 15:34:40 2014 +0200
+++ b/Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py	Sun Mar 30 15:36:25 2014 +0200
@@ -235,7 +235,11 @@
                     nok, fname, line, error = \
                         Utilities.jsCheckSyntax(file, source)
                     index = 0
-                    code = source.splitlines()[int(line) - 1] if nok else ""
+                    if nok:
+                        cline = min(len(source.splitlines()), int(line)) - 1
+                        code = source.splitlines()[cline]
+                    else:
+                        code = ""
                 else:
                     isPy3 = True
                     nok, fname, line, index, code, error = \
--- a/Plugins/PluginCodeStyleChecker.py	Sun Mar 30 15:34:40 2014 +0200
+++ b/Plugins/PluginCodeStyleChecker.py	Sun Mar 30 15:36:25 2014 +0200
@@ -12,8 +12,9 @@
 from PyQt4.QtCore import QObject
 
 from E5Gui.E5Application import e5App
+from E5Gui.E5Action import E5Action
 
-from E5Gui.E5Action import E5Action
+from Project.ProjectBrowserModel import ProjectBrowserFileItem
 
 import Preferences
 
@@ -212,13 +213,19 @@
         """
         browser = e5App().getObject("ProjectBrowser")\
             .getProjectBrowser("sources")
-        itm = browser.model().item(browser.currentIndex())
-        try:
-            fn = itm.fileName()
+        if browser.getSelectedItemsCount([ProjectBrowserFileItem]) > 1:
+            fn = []
+            for itm in browser.getSelectedItems([ProjectBrowserFileItem]):
+                fn.append(itm.fileName())
             isDir = False
-        except AttributeError:
-            fn = itm.dirName()
-            isDir = True
+        else:
+            itm = browser.model().item(browser.currentIndex())
+            try:
+                fn = itm.fileName()
+                isDir = False
+            except AttributeError:
+                fn = itm.dirName()
+                isDir = True
         
         from CheckerPlugins.CodeStyleChecker.CodeStyleCheckerDialog import \
             CodeStyleCheckerDialog
--- a/Plugins/PluginSyntaxChecker.py	Sun Mar 30 15:34:40 2014 +0200
+++ b/Plugins/PluginSyntaxChecker.py	Sun Mar 30 15:36:25 2014 +0200
@@ -12,8 +12,9 @@
 from PyQt4.QtCore import QObject
 
 from E5Gui.E5Application import e5App
+from E5Gui.E5Action import E5Action
 
-from E5Gui.E5Action import E5Action
+from Project.ProjectBrowserModel import ProjectBrowserFileItem
 
 import Preferences
 
@@ -205,11 +206,16 @@
         """
         browser = e5App().getObject("ProjectBrowser").getProjectBrowser(
             "sources")
-        itm = browser.model().item(browser.currentIndex())
-        try:
-            fn = itm.fileName()
-        except AttributeError:
-            fn = itm.dirName()
+        if browser.getSelectedItemsCount([ProjectBrowserFileItem]) > 1:
+            fn = []
+            for itm in browser.getSelectedItems([ProjectBrowserFileItem]):
+                fn.append(itm.fileName())
+        else:
+            itm = browser.model().item(browser.currentIndex())
+            try:
+                fn = itm.fileName()
+            except AttributeError:
+                fn = itm.dirName()
         
         from CheckerPlugins.SyntaxChecker.SyntaxCheckerDialog import \
             SyntaxCheckerDialog
--- a/Plugins/PluginTabnanny.py	Sun Mar 30 15:34:40 2014 +0200
+++ b/Plugins/PluginTabnanny.py	Sun Mar 30 15:36:25 2014 +0200
@@ -12,8 +12,9 @@
 from PyQt4.QtCore import QObject
 
 from E5Gui.E5Application import e5App
+from E5Gui.E5Action import E5Action
 
-from E5Gui.E5Action import E5Action
+from Project.ProjectBrowserModel import ProjectBrowserFileItem
 
 import Preferences
 
@@ -206,11 +207,16 @@
         """
         browser = e5App().getObject("ProjectBrowser").getProjectBrowser(
             "sources")
-        itm = browser.model().item(browser.currentIndex())
-        try:
-            fn = itm.fileName()
-        except AttributeError:
-            fn = itm.dirName()
+        if browser.getSelectedItemsCount([ProjectBrowserFileItem]) > 1:
+            fn = []
+            for itm in browser.getSelectedItems([ProjectBrowserFileItem]):
+                fn.append(itm.fileName())
+        else:
+            itm = browser.model().item(browser.currentIndex())
+            try:
+                fn = itm.fileName()
+            except AttributeError:
+                fn = itm.dirName()
         
         from CheckerPlugins.Tabnanny.TabnannyDialog import TabnannyDialog
         self.__projectBrowserTabnannyDialog = TabnannyDialog()
--- a/Project/ProjectSourcesBrowser.py	Sun Mar 30 15:34:40 2014 +0200
+++ b/Project/ProjectSourcesBrowser.py	Sun Mar 30 15:36:25 2014 +0200
@@ -115,7 +115,6 @@
         """
         Privat method to generate the popup menus for a Python project.
         """
-        # TODO: add this to the multi files menu
         self.checksMenu = QMenu(self.tr('Check'))
         self.checksMenu.aboutToShow.connect(self.__showContextMenuCheck)
         
@@ -242,6 +241,8 @@
             self.tr('Delete'), self.__deleteFile)
         self.multiMenuActions.append(act)
         self.multiMenu.addSeparator()
+        self.multiMenu.addMenu(self.checksMenu)
+        self.multiMenu.addSeparator()
         self.multiMenu.addAction(
             self.tr('Expand all directories'), self._expandAllDirs)
         self.multiMenu.addAction(
@@ -528,6 +529,8 @@
             self.tr('Delete'), self.__deleteFile)
         self.multiMenuActions.append(act)
         self.multiMenu.addSeparator()
+        self.multiMenu.addMenu(self.checksMenu)
+        self.multiMenu.addSeparator()
         self.multiMenu.addAction(
             self.tr('Expand all directories'), self._expandAllDirs)
         self.multiMenu.addAction(
--- a/UI/Browser.py	Sun Mar 30 15:34:40 2014 +0200
+++ b/UI/Browser.py	Sun Mar 30 15:36:25 2014 +0200
@@ -606,8 +606,8 @@
         @param filter list of classes to check against
         @return a dictionary containing the counts of items belonging
             to the individual filter classes. The keys of the dictionary
-            are the unicode representation of the classes given in the
-            filter (i.e. unicode(filterClass)). The dictionary contains
+            are the string representation of the classes given in the
+            filter (i.e. str(filterClass)). The dictionary contains
             an additional entry with key "sum", that stores the sum of
             all selected entries fulfilling the filter criteria.
         """
--- a/changelog	Sun Mar 30 15:34:40 2014 +0200
+++ b/changelog	Sun Mar 30 15:36:25 2014 +0200
@@ -8,6 +8,7 @@
 - Checkers
   -- updated pyflakes to version 0.7.3
   -- added syntax checker for JavaScript files
+  -- added capability to check multiple files from the project sources browser
 - Editor
   -- added a scrolling map like display showing all markers
   -- added a context menu entry to reload a file with a given encoding

eric ide

mercurial