Wed, 07 Nov 2012 17:41:54 +0100
Extended functionality to show the pylint message in the editor, when an entry is double clicked, and to show all message of a file, when the file entry is double clicked.
--- a/ChangeLog Wed Nov 07 16:46:31 2012 +0100 +++ b/ChangeLog Wed Nov 07 17:41:54 2012 +0100 @@ -3,6 +3,9 @@ Version 5.1.0: - bug fixes - adjusted list of available checkers to pylint 0.23 and newer +- extended functionality to show the pylint message in the editor, when + an entry is double clicked, and to show all message of a file, when the + file entry is double clicked Version 5.0.2: - bug fixes
--- a/PyLint/PyLintExecDialog.py Wed Nov 07 16:46:31 2012 +0100 +++ b/PyLint/PyLintExecDialog.py Wed Nov 07 17:41:54 2012 +0100 @@ -29,6 +29,8 @@ This class starts a QProcess and displays a dialog that shows the results of the PyLint command process. """ + filenameRole = Qt.UserRole + 1 + def __init__(self, parent=None): """ Constructor @@ -131,6 +133,7 @@ self.noResults = True self.buf = "" + self.__lastFileItem = None self.process.start(program, args) procStarted = self.process.waitForStarted() @@ -239,10 +242,25 @@ @param type_ type of message (string) @param message message text (string) """ - itm = QTreeWidgetItem(self.messageList, [ - file, str(line), type_, message]) - itm.setTextAlignment(1, Qt.AlignRight) - itm.setTextAlignment(2, Qt.AlignHCenter) + if self.__lastFileItem is None or self.__lastFileItem.text(0) != file: + matchFlags = Qt.MatchFixedString + if not Utilities.isWindowsPlatform(): + matchFlags |= Qt.MatchCaseSensitive + + itmList = self.messageList.findItems(file, matchFlags) + if itmList: + self.__lastFileItem = itmList[0] + else: + # It's a new file + self.__lastFileItem = QTreeWidgetItem(self.messageList, [file]) + self.__lastFileItem.setFirstColumnSpanned(True) + self.__lastFileItem.setExpanded(True) + self.__lastFileItem.setData(0, self.filenameRole, file) + + itm = QTreeWidgetItem(self.__lastFileItem, [str(line), type_, message]) + itm.setTextAlignment(0, Qt.AlignRight) + itm.setTextAlignment(1, Qt.AlignHCenter) + itm.setData(0, self.filenameRole, file) def __readParseStdout(self): """ @@ -304,11 +322,25 @@ if self.noResults: return - fn = os.path.join(self.pathname, itm.text(0)) - lineno = int(itm.text(1)) - - e5App().getObject("ViewManager").openSourceFile(fn, lineno) - # TODO: set warning markers + if itm.parent(): + fn = os.path.join(self.pathname, itm.data(0, self.filenameRole)) + lineno = int(itm.text(0)) + + vm = e5App().getObject("ViewManager") + vm.openSourceFile(fn, lineno) + editor = vm.getOpenEditor(fn) + editor.toggleFlakesWarning(lineno, True, + "{0} | {1}".format(itm.text(1), itm.text(2))) + else: + fn = os.path.join(self.pathname, itm.data(0, self.filenameRole)) + vm = e5App().getObject("ViewManager") + vm.openSourceFile(fn) + editor = vm.getOpenEditor(fn) + for index in range(itm.childCount()): + citm = itm.child(index) + lineno = int(citm.text(0)) + editor.toggleFlakesWarning(lineno, True, + "{0} | {1}".format(citm.text(1), citm.text(2))) def __writeReport(self): """
--- a/PyLint/PyLintExecDialog.ui Wed Nov 07 16:46:31 2012 +0100 +++ b/PyLint/PyLintExecDialog.ui Wed Nov 07 17:41:54 2012 +0100 @@ -1,7 +1,8 @@ -<ui version="4.0" > +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> <class>PyLintExecDialog</class> - <widget class="QWidget" name="PyLintExecDialog" > - <property name="geometry" > + <widget class="QWidget" name="PyLintExecDialog"> + <property name="geometry"> <rect> <x>0</x> <y>0</y> @@ -9,90 +10,85 @@ <height>605</height> </rect> </property> - <property name="sizePolicy" > - <sizepolicy vsizetype="Expanding" hsizetype="Expanding" > + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Expanding"> <horstretch>0</horstretch> <verstretch>3</verstretch> </sizepolicy> </property> - <property name="windowTitle" > + <property name="windowTitle"> <string>PyLint Results</string> </property> - <layout class="QVBoxLayout" name="verticalLayout_3" > + <layout class="QVBoxLayout" name="verticalLayout_3"> <item> - <widget class="QGroupBox" name="resultsGroup" > - <property name="sizePolicy" > - <sizepolicy vsizetype="Preferred" hsizetype="Preferred" > + <widget class="QGroupBox" name="resultsGroup"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> <horstretch>0</horstretch> <verstretch>3</verstretch> </sizepolicy> </property> - <property name="title" > + <property name="title"> <string>Results</string> </property> - <layout class="QVBoxLayout" name="verticalLayout" > + <layout class="QVBoxLayout" name="verticalLayout"> <item> - <widget class="QTextEdit" name="contents" > - <property name="sizePolicy" > - <sizepolicy vsizetype="Expanding" hsizetype="Expanding" > + <widget class="QTextEdit" name="contents"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Expanding"> <horstretch>0</horstretch> <verstretch>3</verstretch> </sizepolicy> </property> - <property name="whatsThis" > - <string><b>PyLint Execution</b> -<p>This shows the results of the PyLint run.</p></string> + <property name="whatsThis"> + <string><b>PyLint Execution</b> +<p>This shows the results of the PyLint run.</p></string> </property> - <property name="tabChangesFocus" > + <property name="tabChangesFocus"> <bool>true</bool> </property> - <property name="readOnly" > + <property name="readOnly"> <bool>true</bool> </property> </widget> </item> <item> - <widget class="QTreeWidget" name="messageList" > - <property name="sizePolicy" > - <sizepolicy vsizetype="Expanding" hsizetype="Expanding" > + <widget class="QTreeWidget" name="messageList"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Expanding"> <horstretch>0</horstretch> <verstretch>3</verstretch> </sizepolicy> </property> - <property name="alternatingRowColors" > + <property name="alternatingRowColors"> <bool>true</bool> </property> - <property name="rootIsDecorated" > + <property name="rootIsDecorated"> <bool>false</bool> </property> - <property name="itemsExpandable" > + <property name="itemsExpandable"> <bool>false</bool> </property> - <property name="sortingEnabled" > + <property name="sortingEnabled"> <bool>true</bool> </property> <column> - <property name="text" > - <string>File</string> + <property name="text"> + <string>File/Line</string> </property> </column> <column> - <property name="text" > - <string>Line</string> - </property> - </column> - <column> - <property name="text" > + <property name="text"> <string>Type</string> </property> </column> <column> - <property name="text" > + <property name="text"> <string>Message</string> </property> </column> <column> - <property name="text" > + <property name="text"> <string/> </property> </column> @@ -102,33 +98,33 @@ </widget> </item> <item> - <widget class="QGroupBox" name="errorGroup" > - <property name="sizePolicy" > - <sizepolicy vsizetype="Preferred" hsizetype="Preferred" > + <widget class="QGroupBox" name="errorGroup"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> <horstretch>0</horstretch> <verstretch>1</verstretch> </sizepolicy> </property> - <property name="title" > + <property name="title"> <string>Errors</string> </property> - <layout class="QVBoxLayout" name="verticalLayout_2" > + <layout class="QVBoxLayout" name="verticalLayout_2"> <item> - <widget class="QTextEdit" name="errors" > - <property name="sizePolicy" > - <sizepolicy vsizetype="Preferred" hsizetype="Expanding" > + <widget class="QTextEdit" name="errors"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Preferred"> <horstretch>0</horstretch> <verstretch>1</verstretch> </sizepolicy> </property> - <property name="whatsThis" > - <string><b>PyLint Execution</b> -<p>This shows the errors of the PyLint run.</p></string> + <property name="whatsThis"> + <string><b>PyLint Execution</b> +<p>This shows the errors of the PyLint run.</p></string> </property> - <property name="tabChangesFocus" > + <property name="tabChangesFocus"> <bool>true</bool> </property> - <property name="readOnly" > + <property name="readOnly"> <bool>true</bool> </property> </widget> @@ -137,18 +133,18 @@ </widget> </item> <item> - <widget class="QDialogButtonBox" name="buttonBox" > - <property name="orientation" > + <widget class="QDialogButtonBox" name="buttonBox"> + <property name="orientation"> <enum>Qt::Horizontal</enum> </property> - <property name="standardButtons" > + <property name="standardButtons"> <set>QDialogButtonBox::Cancel|QDialogButtonBox::Close</set> </property> </widget> </item> </layout> </widget> - <layoutdefault spacing="6" margin="11" /> + <layoutdefault spacing="6" margin="11"/> <pixmapfunction>qPixmapFromMimeSource</pixmapfunction> <tabstops> <tabstop>contents</tabstop>
--- a/PyLint/i18n/pylint_cs.ts Wed Nov 07 16:46:31 2012 +0100 +++ b/PyLint/i18n/pylint_cs.ts Wed Nov 07 17:41:54 2012 +0100 @@ -318,12 +318,12 @@ <context> <name>PyLintExecDialog</name> <message> - <location filename="PyLint/PyLintExecDialog.ui" line="19"/> + <location filename="PyLint/PyLintExecDialog.ui" line="20"/> <source>PyLint Results</source> <translation>PyLint výsledky</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.ui" line="43"/> + <location filename="PyLint/PyLintExecDialog.ui" line="44"/> <source><b>PyLint Execution</b> <p>This shows the results of the PyLint run.</p></source> <translation><b>Běh PyLintu</b> @@ -332,124 +332,129 @@ <message> <location filename="PyLint/PyLintExecDialog.ui" line="76"/> <source>File</source> - <translation>Soubor</translation> + <translation type="obsolete">Soubor</translation> </message> <message> <location filename="PyLint/PyLintExecDialog.ui" line="81"/> <source>Line</source> - <translation>Řádek</translation> + <translation type="obsolete">Řádek</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.ui" line="86"/> + <location filename="PyLint/PyLintExecDialog.ui" line="82"/> <source>Type</source> <translation>Typ</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.ui" line="91"/> + <location filename="PyLint/PyLintExecDialog.ui" line="87"/> <source>Message</source> <translation>Zpráva</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.ui" line="125"/> + <location filename="PyLint/PyLintExecDialog.ui" line="121"/> <source><b>PyLint Execution</b> <p>This shows the errors of the PyLint run.</p></source> <translation><b>Běh PyLintu</b><p>Zobrazuje výsledky běhu PyLintu.</p></translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="41"/> + <location filename="PyLint/PyLintExecDialog.py" line="43"/> <source>Save Report...</source> <translation>Uložit report...</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="43"/> + <location filename="PyLint/PyLintExecDialog.py" line="45"/> <source>Press to save the report to a file</source> <translation>Stisknout pro uložení reportu do souboru</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="64"/> + <location filename="PyLint/PyLintExecDialog.py" line="66"/> <source>Convention</source> <translation>Konvence</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="65"/> + <location filename="PyLint/PyLintExecDialog.py" line="67"/> <source>Refactor</source> <translation></translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="66"/> + <location filename="PyLint/PyLintExecDialog.py" line="68"/> <source>Warning</source> <translation>Varování</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="67"/> + <location filename="PyLint/PyLintExecDialog.py" line="69"/> <source>Error</source> <translation>Chyba</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="68"/> + <location filename="PyLint/PyLintExecDialog.py" line="70"/> <source>Fatal</source> <translation>Fatální</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="138"/> + <location filename="PyLint/PyLintExecDialog.py" line="141"/> <source>Process Generation Error</source> <translation>Chyba v procesu generování</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="207"/> + <location filename="PyLint/PyLintExecDialog.py" line="210"/> <source>No PyLint errors found.</source> <translation>PyLint chyby nebyly nalezeny.</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="351"/> + <location filename="PyLint/PyLintExecDialog.py" line="383"/> <source>PyLint Report</source> <translation>PyLint report</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="319"/> + <location filename="PyLint/PyLintExecDialog.py" line="351"/> <source><p>The PyLint report file <b>{0}</b> already exists.</p></source> <translation><p>Soubor s PyLint reportem <b>{0}</b> již existuje.</p></translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="336"/> + <location filename="PyLint/PyLintExecDialog.py" line="368"/> <source><p>The PyLint report file <b>{0}</b> could not be written.<br>Reason: {1}</p></source> <translation><p>Do souboru s PyLint reportem <b>{0}</b> nelze zapsat .<br>Důvod: {1}</p></translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="347"/> + <location filename="PyLint/PyLintExecDialog.py" line="379"/> <source>HTML Files (*.html);;All Files (*)</source> <translation>HTML soubory (*.html);;Všechny soubory (*)</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="349"/> + <location filename="PyLint/PyLintExecDialog.py" line="381"/> <source>Text Files (*.txt);;All Files (*)</source> <translation>Textové soubory (*.txt);;Všechny soubory (*)</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="138"/> + <location filename="PyLint/PyLintExecDialog.py" line="141"/> <source>The process {0} could not be started. Ensure, that it is in the search path.</source> <translation>Proces {0} nelze spustit. Ověřte, že je umístěn v požadované cestě.</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.ui" line="31"/> + <location filename="PyLint/PyLintExecDialog.ui" line="32"/> <source>Results</source> <translation>Výsledky</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.ui" line="113"/> + <location filename="PyLint/PyLintExecDialog.ui" line="109"/> <source>Errors</source> <translation>Chyby</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="47"/> + <location filename="PyLint/PyLintExecDialog.py" line="49"/> <source>Refresh</source> <translation type="unfinished"></translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="49"/> + <location filename="PyLint/PyLintExecDialog.py" line="51"/> <source>Press to refresh the result display</source> <translation type="unfinished"></translation> </message> + <message> + <location filename="PyLint/PyLintExecDialog.ui" line="77"/> + <source>File/Line</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>PyLintPlugin</name>
--- a/PyLint/i18n/pylint_de.ts Wed Nov 07 16:46:31 2012 +0100 +++ b/PyLint/i18n/pylint_de.ts Wed Nov 07 17:41:54 2012 +0100 @@ -313,139 +313,134 @@ <context> <name>PyLintExecDialog</name> <message> - <location filename="PyLint/PyLintExecDialog.py" line="138"/> + <location filename="PyLint/PyLintExecDialog.py" line="141"/> <source>Process Generation Error</source> <translation>Fehler beim Prozessstart</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="351"/> + <location filename="PyLint/PyLintExecDialog.py" line="383"/> <source>PyLint Report</source> <translation>PyLint Bericht</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="347"/> + <location filename="PyLint/PyLintExecDialog.py" line="379"/> <source>HTML Files (*.html);;All Files (*)</source> <translation>HTML Dateien (*.html);;Alle Dateien (*)</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="349"/> + <location filename="PyLint/PyLintExecDialog.py" line="381"/> <source>Text Files (*.txt);;All Files (*)</source> <translation>Textdateien (*.txt);;Alle Dateien (*)</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="64"/> + <location filename="PyLint/PyLintExecDialog.py" line="66"/> <source>Convention</source> <translation>Konvention</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="65"/> + <location filename="PyLint/PyLintExecDialog.py" line="67"/> <source>Refactor</source> <translation>Refaktorierung</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="66"/> + <location filename="PyLint/PyLintExecDialog.py" line="68"/> <source>Warning</source> <translation>Warnung</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="67"/> + <location filename="PyLint/PyLintExecDialog.py" line="69"/> <source>Error</source> <translation>Fehler</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="68"/> + <location filename="PyLint/PyLintExecDialog.py" line="70"/> <source>Fatal</source> <translation>Fatal</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.ui" line="19"/> + <location filename="PyLint/PyLintExecDialog.ui" line="20"/> <source>PyLint Results</source> <translation>PyLint Resultate</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.ui" line="43"/> + <location filename="PyLint/PyLintExecDialog.ui" line="44"/> <source><b>PyLint Execution</b> <p>This shows the results of the PyLint run.</p></source> <translation><b>PyLint Ausführung</b> <p>Dies zeigt die Resultate eines PyLint Laufes.</p></translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.ui" line="76"/> - <source>File</source> - <translation>Datei</translation> - </message> - <message> - <location filename="PyLint/PyLintExecDialog.ui" line="81"/> - <source>Line</source> - <translation>Zeile</translation> - </message> - <message> - <location filename="PyLint/PyLintExecDialog.ui" line="86"/> + <location filename="PyLint/PyLintExecDialog.ui" line="82"/> <source>Type</source> <translation>Typ</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.ui" line="91"/> + <location filename="PyLint/PyLintExecDialog.ui" line="87"/> <source>Message</source> <translation>Nachricht</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.ui" line="125"/> + <location filename="PyLint/PyLintExecDialog.ui" line="121"/> <source><b>PyLint Execution</b> <p>This shows the errors of the PyLint run.</p></source> <translation><b>PyLint Ausführung</b> <p>Dies zeigt die Fehler eines PyLint Laufes.</p></translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="43"/> + <location filename="PyLint/PyLintExecDialog.py" line="45"/> <source>Press to save the report to a file</source> <translation>Drücken, um eine Berichtsdatei zu schreiben</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="207"/> + <location filename="PyLint/PyLintExecDialog.py" line="210"/> <source>No PyLint errors found.</source> <translation>Keine PyLint Fehler gefunden.</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="41"/> + <location filename="PyLint/PyLintExecDialog.py" line="43"/> <source>Save Report...</source> <translation>Bericht speichern...</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.ui" line="31"/> + <location filename="PyLint/PyLintExecDialog.ui" line="32"/> <source>Results</source> <translation>Resultate</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.ui" line="113"/> + <location filename="PyLint/PyLintExecDialog.ui" line="109"/> <source>Errors</source> <translation>Fehler</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="47"/> + <location filename="PyLint/PyLintExecDialog.py" line="49"/> <source>Refresh</source> <translation>Erneuern</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="49"/> + <location filename="PyLint/PyLintExecDialog.py" line="51"/> <source>Press to refresh the result display</source> <translation>Drücken, um die Ergebnisanzeige zu erneuern</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="138"/> + <location filename="PyLint/PyLintExecDialog.py" line="141"/> <source>The process {0} could not be started. Ensure, that it is in the search path.</source> <translation>Der Prozess {0} konnte nicht gestartet werden. Stellen Sie sicher, dass er sich im Suchpfad befindet.</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="319"/> + <location filename="PyLint/PyLintExecDialog.py" line="351"/> <source><p>The PyLint report file <b>{0}</b> already exists.</p></source> <translation><p>Die PyLint Berichtsdatei <b>{0}</b> existiert bereits.</p></translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="336"/> + <location filename="PyLint/PyLintExecDialog.py" line="368"/> <source><p>The PyLint report file <b>{0}</b> could not be written.<br>Reason: {1}</p></source> <translation><p>Die Pylint Berichtsdatei <b>{0}</b> konnte nicht geschrieben werden.<br>Ursache: {1}</p></translation> </message> + <message> + <location filename="PyLint/PyLintExecDialog.ui" line="77"/> + <source>File/Line</source> + <translation>Datei/Zeile</translation> + </message> </context> <context> <name>PyLintPlugin</name>
--- a/PyLint/i18n/pylint_es.ts Wed Nov 07 16:46:31 2012 +0100 +++ b/PyLint/i18n/pylint_es.ts Wed Nov 07 17:41:54 2012 +0100 @@ -323,12 +323,12 @@ <context> <name>PyLintExecDialog</name> <message> - <location filename="PyLint/PyLintExecDialog.ui" line="19"/> + <location filename="PyLint/PyLintExecDialog.ui" line="20"/> <source>PyLint Results</source> <translation>Resultados de PyLint</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.ui" line="43"/> + <location filename="PyLint/PyLintExecDialog.ui" line="44"/> <source><b>PyLint Execution</b> <p>This shows the results of the PyLint run.</p></source> <translation><b>Ejecución de PyLint</b><p>Muestra los resultados de la ejecución de PyLint.</p></translation> @@ -336,125 +336,130 @@ <message> <location filename="PyLint/PyLintExecDialog.ui" line="76"/> <source>File</source> - <translation>Archivo</translation> + <translation type="obsolete">Archivo</translation> </message> <message> <location filename="PyLint/PyLintExecDialog.ui" line="81"/> <source>Line</source> - <translation>Línea</translation> + <translation type="obsolete">Línea</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.ui" line="86"/> + <location filename="PyLint/PyLintExecDialog.ui" line="82"/> <source>Type</source> <translation>Tipo</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.ui" line="91"/> + <location filename="PyLint/PyLintExecDialog.ui" line="87"/> <source>Message</source> <translation>Mensaje</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.ui" line="125"/> + <location filename="PyLint/PyLintExecDialog.ui" line="121"/> <source><b>PyLint Execution</b> <p>This shows the errors of the PyLint run.</p></source> <translation><b>Ejecución de PyLint</b> <p>Muestra los errores de la ejecución de PyLint.</p></translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="41"/> + <location filename="PyLint/PyLintExecDialog.py" line="43"/> <source>Save Report...</source> <translation>Gaurdar Informe...</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="43"/> + <location filename="PyLint/PyLintExecDialog.py" line="45"/> <source>Press to save the report to a file</source> <translation>Pulse para guardar el informe a un archivo</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="64"/> + <location filename="PyLint/PyLintExecDialog.py" line="66"/> <source>Convention</source> <translation>Convención</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="65"/> + <location filename="PyLint/PyLintExecDialog.py" line="67"/> <source>Refactor</source> <translation>Refactorizar</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="66"/> + <location filename="PyLint/PyLintExecDialog.py" line="68"/> <source>Warning</source> <translation>Advertencia</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="67"/> + <location filename="PyLint/PyLintExecDialog.py" line="69"/> <source>Error</source> <translation>Error</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="68"/> + <location filename="PyLint/PyLintExecDialog.py" line="70"/> <source>Fatal</source> <translation>Fatal</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="138"/> + <location filename="PyLint/PyLintExecDialog.py" line="141"/> <source>Process Generation Error</source> <translation>Error de Generación de Proceso</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="138"/> + <location filename="PyLint/PyLintExecDialog.py" line="141"/> <source>The process {0} could not be started. Ensure, that it is in the search path.</source> <translation>No se ha podido ejecutar el proceso {0}.<br>Asegúrese de que está en la ruta de búsqueda.</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="207"/> + <location filename="PyLint/PyLintExecDialog.py" line="210"/> <source>No PyLint errors found.</source> <translation>No se han encontrado errores de PyLint.</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="351"/> + <location filename="PyLint/PyLintExecDialog.py" line="383"/> <source>PyLint Report</source> <translation>Informe de PyLint</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="319"/> + <location filename="PyLint/PyLintExecDialog.py" line="351"/> <source><p>The PyLint report file <b>{0}</b> already exists.</p></source> <translation><p>El archivo de informe PyLint <b>{0}</b> ya existe.</p></translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="336"/> + <location filename="PyLint/PyLintExecDialog.py" line="368"/> <source><p>The PyLint report file <b>{0}</b> could not be written.<br>Reason: {1}</p></source> <translation><p>El archivo de informe PyLint <b>{0}</b> no ha podido guardarse.<br>Causa: {1}</p></translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="347"/> + <location filename="PyLint/PyLintExecDialog.py" line="379"/> <source>HTML Files (*.html);;All Files (*)</source> <translation>Archivos HTML (*.html);;Todos los Archivos (*)</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="349"/> + <location filename="PyLint/PyLintExecDialog.py" line="381"/> <source>Text Files (*.txt);;All Files (*)</source> <translation>Archivos de Texto (*.txt);;Todos los Archivos (*)</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.ui" line="31"/> + <location filename="PyLint/PyLintExecDialog.ui" line="32"/> <source>Results</source> <translation>Resultados</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.ui" line="113"/> + <location filename="PyLint/PyLintExecDialog.ui" line="109"/> <source>Errors</source> <translation>Errores</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="47"/> + <location filename="PyLint/PyLintExecDialog.py" line="49"/> <source>Refresh</source> <translation type="unfinished"></translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="49"/> + <location filename="PyLint/PyLintExecDialog.py" line="51"/> <source>Press to refresh the result display</source> <translation type="unfinished"></translation> </message> + <message> + <location filename="PyLint/PyLintExecDialog.ui" line="77"/> + <source>File/Line</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>PyLintPlugin</name>
--- a/PyLint/i18n/pylint_fr.ts Wed Nov 07 16:46:31 2012 +0100 +++ b/PyLint/i18n/pylint_fr.ts Wed Nov 07 17:41:54 2012 +0100 @@ -323,67 +323,67 @@ <context> <name>PyLintExecDialog</name> <message> - <location filename="PyLint/PyLintExecDialog.py" line="138"/> + <location filename="PyLint/PyLintExecDialog.py" line="141"/> <source>Process Generation Error</source> <translation>Erreur dans la génération du processus</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="351"/> + <location filename="PyLint/PyLintExecDialog.py" line="383"/> <source>PyLint Report</source> <translation>Rapport PyLint</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="319"/> + <location filename="PyLint/PyLintExecDialog.py" line="351"/> <source><p>The PyLint report file <b>{0}</b> already exists.</p></source> <translation><p>Le fichier rapport PyLint <b>{0}</b> existe déjà.</p></translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="336"/> + <location filename="PyLint/PyLintExecDialog.py" line="368"/> <source><p>The PyLint report file <b>{0}</b> could not be written.<br>Reason: {1}</p></source> <translation><p>Impossible d'écrire le fichier rapport PyLint <b>{0}</b>. Raison : <b>{1}</b></p></translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="347"/> + <location filename="PyLint/PyLintExecDialog.py" line="379"/> <source>HTML Files (*.html);;All Files (*)</source> <translation>Fichiers HTML (*.html);;Tous les fichiers (*)</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="349"/> + <location filename="PyLint/PyLintExecDialog.py" line="381"/> <source>Text Files (*.txt);;All Files (*)</source> <translation>Fichiers texte (*.txt);;Tous fichiers (*)</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="64"/> + <location filename="PyLint/PyLintExecDialog.py" line="66"/> <source>Convention</source> <translation>Convention</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="65"/> + <location filename="PyLint/PyLintExecDialog.py" line="67"/> <source>Refactor</source> <translation>Restructuration</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="66"/> + <location filename="PyLint/PyLintExecDialog.py" line="68"/> <source>Warning</source> <translation>Warning</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="67"/> + <location filename="PyLint/PyLintExecDialog.py" line="69"/> <source>Error</source> <translation>Erreur</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="68"/> + <location filename="PyLint/PyLintExecDialog.py" line="70"/> <source>Fatal</source> <translation>Fatal</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.ui" line="19"/> + <location filename="PyLint/PyLintExecDialog.ui" line="20"/> <source>PyLint Results</source> <translation>Résultats PyLint</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.ui" line="43"/> + <location filename="PyLint/PyLintExecDialog.ui" line="44"/> <source><b>PyLint Execution</b> <p>This shows the results of the PyLint run.</p></source> <translation><b>Execution PyLint</b> @@ -392,70 +392,75 @@ <message> <location filename="PyLint/PyLintExecDialog.ui" line="76"/> <source>File</source> - <translation>Fichier</translation> + <translation type="obsolete">Fichier</translation> </message> <message> <location filename="PyLint/PyLintExecDialog.ui" line="81"/> <source>Line</source> - <translation>Ligne</translation> + <translation type="obsolete">Ligne</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.ui" line="86"/> + <location filename="PyLint/PyLintExecDialog.ui" line="82"/> <source>Type</source> <translation>Type</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.ui" line="91"/> + <location filename="PyLint/PyLintExecDialog.ui" line="87"/> <source>Message</source> <translation>Message</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.ui" line="125"/> + <location filename="PyLint/PyLintExecDialog.ui" line="121"/> <source><b>PyLint Execution</b> <p>This shows the errors of the PyLint run.</p></source> <translation><b>Execution PyLint</b> <p>Affiche les erreurs de l'execution de PyLint.</p></translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="43"/> + <location filename="PyLint/PyLintExecDialog.py" line="45"/> <source>Press to save the report to a file</source> <translation>Cliquer pour enregistrer le rapport dans un fichier</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="207"/> + <location filename="PyLint/PyLintExecDialog.py" line="210"/> <source>No PyLint errors found.</source> <translation>Aucune erreur PyLint.</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="41"/> + <location filename="PyLint/PyLintExecDialog.py" line="43"/> <source>Save Report...</source> <translation>Enregistrer le rapport...</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="138"/> + <location filename="PyLint/PyLintExecDialog.py" line="141"/> <source>The process {0} could not be started. Ensure, that it is in the search path.</source> <translation>Impossible de lancer le processus {0}. Assurez-vous qu'il est bien dans le chemin de recherche.</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.ui" line="31"/> + <location filename="PyLint/PyLintExecDialog.ui" line="32"/> <source>Results</source> <translation>Résultats</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.ui" line="113"/> + <location filename="PyLint/PyLintExecDialog.ui" line="109"/> <source>Errors</source> <translation>Erreurs</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="47"/> + <location filename="PyLint/PyLintExecDialog.py" line="49"/> <source>Refresh</source> <translation type="unfinished"></translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="49"/> + <location filename="PyLint/PyLintExecDialog.py" line="51"/> <source>Press to refresh the result display</source> <translation type="unfinished"></translation> </message> + <message> + <location filename="PyLint/PyLintExecDialog.ui" line="77"/> + <source>File/Line</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>PyLintPlugin</name>
--- a/PyLint/i18n/pylint_ru.ts Wed Nov 07 16:46:31 2012 +0100 +++ b/PyLint/i18n/pylint_ru.ts Wed Nov 07 17:41:54 2012 +0100 @@ -323,67 +323,67 @@ <context> <name>PyLintExecDialog</name> <message> - <location filename="PyLint/PyLintExecDialog.py" line="138"/> + <location filename="PyLint/PyLintExecDialog.py" line="141"/> <source>Process Generation Error</source> <translation>Ошибка процесса генерации</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="351"/> + <location filename="PyLint/PyLintExecDialog.py" line="383"/> <source>PyLint Report</source> <translation>Отчёт PyLint</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="319"/> + <location filename="PyLint/PyLintExecDialog.py" line="351"/> <source><p>The PyLint report file <b>{0}</b> already exists.</p></source> <translation><p>Отчёт <b>{0}</b> уже сущеструет.</p></translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="336"/> + <location filename="PyLint/PyLintExecDialog.py" line="368"/> <source><p>The PyLint report file <b>{0}</b> could not be written.<br>Reason: {1}</p></source> <translation><p>Невозможно сохранить файл отчёта <b>{0}</b>.<br> {1}</p></translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="347"/> + <location filename="PyLint/PyLintExecDialog.py" line="379"/> <source>HTML Files (*.html);;All Files (*)</source> <translation>Файлы разметки HTML (*.html);;Все файлы (*)</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="349"/> + <location filename="PyLint/PyLintExecDialog.py" line="381"/> <source>Text Files (*.txt);;All Files (*)</source> <translation>Текстовые файлы (*.txt);;Все файлы (*)</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="64"/> + <location filename="PyLint/PyLintExecDialog.py" line="66"/> <source>Convention</source> <translation>Соглашение</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="65"/> + <location filename="PyLint/PyLintExecDialog.py" line="67"/> <source>Refactor</source> <translation>Переработка</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="66"/> + <location filename="PyLint/PyLintExecDialog.py" line="68"/> <source>Warning</source> <translation>Предупреждение</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="67"/> + <location filename="PyLint/PyLintExecDialog.py" line="69"/> <source>Error</source> <translation>Ошибка</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="68"/> + <location filename="PyLint/PyLintExecDialog.py" line="70"/> <source>Fatal</source> <translation>Критическая</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.ui" line="19"/> + <location filename="PyLint/PyLintExecDialog.ui" line="20"/> <source>PyLint Results</source> <translation>Результаты PyLint</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.ui" line="43"/> + <location filename="PyLint/PyLintExecDialog.ui" line="44"/> <source><b>PyLint Execution</b> <p>This shows the results of the PyLint run.</p></source> <translation><b>Выполнение PyLint</b> @@ -392,70 +392,75 @@ <message> <location filename="PyLint/PyLintExecDialog.ui" line="76"/> <source>File</source> - <translation>Файл</translation> + <translation type="obsolete">Файл</translation> </message> <message> <location filename="PyLint/PyLintExecDialog.ui" line="81"/> <source>Line</source> - <translation>Строка</translation> + <translation type="obsolete">Строка</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.ui" line="86"/> + <location filename="PyLint/PyLintExecDialog.ui" line="82"/> <source>Type</source> <translation>Тип</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.ui" line="91"/> + <location filename="PyLint/PyLintExecDialog.ui" line="87"/> <source>Message</source> <translation>Сообщение</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.ui" line="125"/> + <location filename="PyLint/PyLintExecDialog.ui" line="121"/> <source><b>PyLint Execution</b> <p>This shows the errors of the PyLint run.</p></source> <translation><b>Выполнение PyLint</b> <p>Отображает ошибки выполнения PyLint.</p></translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="43"/> + <location filename="PyLint/PyLintExecDialog.py" line="45"/> <source>Press to save the report to a file</source> <translation>Сохранить отчёт в файл</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="207"/> + <location filename="PyLint/PyLintExecDialog.py" line="210"/> <source>No PyLint errors found.</source> <translation>Ошибки PyLint не найдены.</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="41"/> + <location filename="PyLint/PyLintExecDialog.py" line="43"/> <source>Save Report...</source> <translation>Сохранить отчёт...</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="138"/> + <location filename="PyLint/PyLintExecDialog.py" line="141"/> <source>The process {0} could not be started. Ensure, that it is in the search path.</source> <translation>Не могу запустить процесс '{0}'. Убедитесь, что он находится в пути поиска.</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.ui" line="31"/> + <location filename="PyLint/PyLintExecDialog.ui" line="32"/> <source>Results</source> <translation>Результаты</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.ui" line="113"/> + <location filename="PyLint/PyLintExecDialog.ui" line="109"/> <source>Errors</source> <translation>Ошибки</translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="47"/> + <location filename="PyLint/PyLintExecDialog.py" line="49"/> <source>Refresh</source> <translation type="unfinished"></translation> </message> <message> - <location filename="PyLint/PyLintExecDialog.py" line="49"/> + <location filename="PyLint/PyLintExecDialog.py" line="51"/> <source>Press to refresh the result display</source> <translation type="unfinished"></translation> </message> + <message> + <location filename="PyLint/PyLintExecDialog.ui" line="77"/> + <source>File/Line</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>PyLintPlugin</name>