Sun, 30 Mar 2014 15:36:25 +0200
Added capability to check multiple files from the project sources browser.
--- 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