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. release-5.1.0

Wed, 07 Nov 2012 17:41:54 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Wed, 07 Nov 2012 17:41:54 +0100
changeset 11
a8e908641c20
parent 10
398979610d9b
child 12
27c1f0794f7b

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.

ChangeLog file | annotate | diff | comparison | revisions
PluginPyLint.zip file | annotate | diff | comparison | revisions
PyLint/PyLintExecDialog.py file | annotate | diff | comparison | revisions
PyLint/PyLintExecDialog.ui file | annotate | diff | comparison | revisions
PyLint/i18n/pylint_cs.ts file | annotate | diff | comparison | revisions
PyLint/i18n/pylint_de.qm file | annotate | diff | comparison | revisions
PyLint/i18n/pylint_de.ts file | annotate | diff | comparison | revisions
PyLint/i18n/pylint_es.ts file | annotate | diff | comparison | revisions
PyLint/i18n/pylint_fr.ts file | annotate | diff | comparison | revisions
PyLint/i18n/pylint_ru.ts file | annotate | diff | comparison | revisions
--- 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
Binary file PluginPyLint.zip has changed
--- 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>&lt;b>PyLint Execution&lt;/b>
-&lt;p>This shows the results of the PyLint run.&lt;/p></string>
+        <property name="whatsThis">
+         <string>&lt;b&gt;PyLint Execution&lt;/b&gt;
+&lt;p&gt;This shows the results of the PyLint run.&lt;/p&gt;</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>&lt;b>PyLint Execution&lt;/b>
-&lt;p>This shows the errors of the PyLint run.&lt;/p></string>
+        <property name="whatsThis">
+         <string>&lt;b&gt;PyLint Execution&lt;/b&gt;
+&lt;p&gt;This shows the errors of the PyLint run.&lt;/p&gt;</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>&lt;b&gt;PyLint Execution&lt;/b&gt;
 &lt;p&gt;This shows the results of the PyLint run.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Běh PyLintu&lt;/b&gt;
@@ -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>&lt;b&gt;PyLint Execution&lt;/b&gt;
 &lt;p&gt;This shows the errors of the PyLint run.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Běh PyLintu&lt;/b&gt;&lt;p&gt;Zobrazuje výsledky běhu PyLintu.&lt;/p&gt;</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>&lt;p&gt;The PyLint report file &lt;b&gt;{0}&lt;/b&gt; already exists.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Soubor s PyLint reportem &lt;b&gt;{0}&lt;/b&gt; již existuje.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="PyLint/PyLintExecDialog.py" line="336"/>
+        <location filename="PyLint/PyLintExecDialog.py" line="368"/>
         <source>&lt;p&gt;The PyLint report file &lt;b&gt;{0}&lt;/b&gt; could not be written.&lt;br&gt;Reason: {1}&lt;/p&gt;</source>
         <translation>&lt;p&gt;Do souboru s PyLint reportem &lt;b&gt;{0}&lt;/b&gt; nelze zapsat .&lt;br&gt;Důvod: {1}&lt;/p&gt;</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>
Binary file PyLint/i18n/pylint_de.qm has changed
--- 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>&lt;b&gt;PyLint Execution&lt;/b&gt;
 &lt;p&gt;This shows the results of the PyLint run.&lt;/p&gt;</source>
         <translation>&lt;b&gt;PyLint Ausführung&lt;/b&gt;
 &lt;p&gt;Dies zeigt die Resultate eines PyLint Laufes.&lt;/p&gt;</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>&lt;b&gt;PyLint Execution&lt;/b&gt;
 &lt;p&gt;This shows the errors of the PyLint run.&lt;/p&gt;</source>
         <translation>&lt;b&gt;PyLint Ausführung&lt;/b&gt;
 &lt;p&gt;Dies zeigt die Fehler eines PyLint Laufes.&lt;/p&gt;</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>&lt;p&gt;The PyLint report file &lt;b&gt;{0}&lt;/b&gt; already exists.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Die PyLint Berichtsdatei &lt;b&gt;{0}&lt;/b&gt; existiert bereits.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="PyLint/PyLintExecDialog.py" line="336"/>
+        <location filename="PyLint/PyLintExecDialog.py" line="368"/>
         <source>&lt;p&gt;The PyLint report file &lt;b&gt;{0}&lt;/b&gt; could not be written.&lt;br&gt;Reason: {1}&lt;/p&gt;</source>
         <translation>&lt;p&gt;Die Pylint Berichtsdatei &lt;b&gt;{0}&lt;/b&gt; konnte nicht geschrieben werden.&lt;br&gt;Ursache: {1}&lt;/p&gt;</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>&lt;b&gt;PyLint Execution&lt;/b&gt;
 &lt;p&gt;This shows the results of the PyLint run.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Ejecución de PyLint&lt;/b&gt;&lt;p&gt;Muestra los resultados de la ejecución de PyLint.&lt;/p&gt;</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>&lt;b&gt;PyLint Execution&lt;/b&gt;
 &lt;p&gt;This shows the errors of the PyLint run.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Ejecución de PyLint&lt;/b&gt;
 &lt;p&gt;Muestra los errores de la ejecución de PyLint.&lt;/p&gt;</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}.&lt;br&gt;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>&lt;p&gt;The PyLint report file &lt;b&gt;{0}&lt;/b&gt; already exists.&lt;/p&gt;</source>
         <translation>&lt;p&gt;El archivo de informe PyLint &lt;b&gt;{0}&lt;/b&gt; ya existe.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="PyLint/PyLintExecDialog.py" line="336"/>
+        <location filename="PyLint/PyLintExecDialog.py" line="368"/>
         <source>&lt;p&gt;The PyLint report file &lt;b&gt;{0}&lt;/b&gt; could not be written.&lt;br&gt;Reason: {1}&lt;/p&gt;</source>
         <translation>&lt;p&gt;El archivo de informe PyLint &lt;b&gt;{0}&lt;/b&gt; no ha podido guardarse.&lt;br&gt;Causa: {1}&lt;/p&gt;</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>&lt;p&gt;The PyLint report file &lt;b&gt;{0}&lt;/b&gt; already exists.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Le fichier rapport PyLint  &lt;b&gt;{0}&lt;/b&gt; existe déjà.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="PyLint/PyLintExecDialog.py" line="336"/>
+        <location filename="PyLint/PyLintExecDialog.py" line="368"/>
         <source>&lt;p&gt;The PyLint report file &lt;b&gt;{0}&lt;/b&gt; could not be written.&lt;br&gt;Reason: {1}&lt;/p&gt;</source>
         <translation>&lt;p&gt;Impossible d&apos;écrire le fichier rapport PyLint &lt;b&gt;{0}&lt;/b&gt;. Raison : &lt;b&gt;{1}&lt;/b&gt;&lt;/p&gt;</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>&lt;b&gt;PyLint Execution&lt;/b&gt;
 &lt;p&gt;This shows the results of the PyLint run.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Execution PyLint&lt;/b&gt;
@@ -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>&lt;b&gt;PyLint Execution&lt;/b&gt;
 &lt;p&gt;This shows the errors of the PyLint run.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Execution PyLint&lt;/b&gt;
 &lt;p&gt;Affiche les erreurs de l&apos;execution de PyLint.&lt;/p&gt;</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&apos;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>&lt;p&gt;The PyLint report file &lt;b&gt;{0}&lt;/b&gt; already exists.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Отчёт &lt;b&gt;{0}&lt;/b&gt; уже сущеструет.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="PyLint/PyLintExecDialog.py" line="336"/>
+        <location filename="PyLint/PyLintExecDialog.py" line="368"/>
         <source>&lt;p&gt;The PyLint report file &lt;b&gt;{0}&lt;/b&gt; could not be written.&lt;br&gt;Reason: {1}&lt;/p&gt;</source>
         <translation>&lt;p&gt;Невозможно сохранить файл отчёта &lt;b&gt;{0}&lt;/b&gt;.&lt;br&gt; {1}&lt;/p&gt;</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>&lt;b&gt;PyLint Execution&lt;/b&gt;
 &lt;p&gt;This shows the results of the PyLint run.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Выполнение PyLint&lt;/b&gt;
@@ -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>&lt;b&gt;PyLint Execution&lt;/b&gt;
 &lt;p&gt;This shows the errors of the PyLint run.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Выполнение PyLint&lt;/b&gt;
 &lt;p&gt;Отображает ошибки выполнения PyLint.&lt;/p&gt;</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>Не могу запустить процесс &apos;{0}&apos;. Убедитесь, что он находится в пути поиска.</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>

eric ide

mercurial