ProgramsDialog: added filter capability to the dialog.

Wed, 19 Feb 2020 19:38:36 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Wed, 19 Feb 2020 19:38:36 +0100
changeset 7426
dc171b1d8261
parent 7425
bd0eff406c6b
child 7427
362cd1b6f81a

ProgramsDialog: added filter capability to the dialog.

eric6/APIs/Python3/eric6.api file | annotate | diff | comparison | revisions
eric6/Documentation/Help/source.qch file | annotate | diff | comparison | revisions
eric6/Documentation/Help/source.qhp file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Preferences.ProgramsDialog.html file | annotate | diff | comparison | revisions
eric6/Preferences/ProgramsDialog.py file | annotate | diff | comparison | revisions
eric6/Preferences/ProgramsDialog.ui file | annotate | diff | comparison | revisions
eric6/i18n/eric6_cs.ts file | annotate | diff | comparison | revisions
eric6/i18n/eric6_de.qm file | annotate | diff | comparison | revisions
eric6/i18n/eric6_de.ts file | annotate | diff | comparison | revisions
eric6/i18n/eric6_empty.ts file | annotate | diff | comparison | revisions
eric6/i18n/eric6_en.ts file | annotate | diff | comparison | revisions
eric6/i18n/eric6_es.ts file | annotate | diff | comparison | revisions
eric6/i18n/eric6_fr.ts file | annotate | diff | comparison | revisions
eric6/i18n/eric6_it.ts file | annotate | diff | comparison | revisions
eric6/i18n/eric6_pt.ts file | annotate | diff | comparison | revisions
eric6/i18n/eric6_ru.ts file | annotate | diff | comparison | revisions
eric6/i18n/eric6_tr.ts file | annotate | diff | comparison | revisions
eric6/i18n/eric6_zh_CN.ts file | annotate | diff | comparison | revisions
--- a/eric6/APIs/Python3/eric6.api	Tue Feb 18 19:38:58 2020 +0100
+++ b/eric6/APIs/Python3/eric6.api	Wed Feb 19 19:38:36 2020 +0100
@@ -6453,8 +6453,10 @@
 eric6.Preferences.Prefs.vcsDefaults?7
 eric6.Preferences.Prefs.webBrowserDefaults?7
 eric6.Preferences.Prefs.webEngineSettingsIntitialized?7
+eric6.Preferences.ProgramsDialog.ProgramsDialog.ToolAvailableRole?7
 eric6.Preferences.ProgramsDialog.ProgramsDialog.on_buttonBox_clicked?4(button)
 eric6.Preferences.ProgramsDialog.ProgramsDialog.on_programsSearchButton_clicked?4()
+eric6.Preferences.ProgramsDialog.ProgramsDialog.on_showComboBox_currentIndexChanged?4(index)
 eric6.Preferences.ProgramsDialog.ProgramsDialog.show?4()
 eric6.Preferences.ProgramsDialog.ProgramsDialog?1(parent=None)
 eric6.Preferences.ShortcutDialog.ShortcutDialog.eventFilter?4(watched, event)
Binary file eric6/Documentation/Help/source.qch has changed
--- a/eric6/Documentation/Help/source.qhp	Tue Feb 18 19:38:58 2020 +0100
+++ b/eric6/Documentation/Help/source.qhp	Wed Feb 19 19:38:36 2020 +0100
@@ -11036,6 +11036,7 @@
       <keyword name="ProgramsDialog.__createProgramEntry" id="ProgramsDialog.__createProgramEntry" ref="eric6.Preferences.ProgramsDialog.html#ProgramsDialog.__createProgramEntry" />
       <keyword name="ProgramsDialog.on_buttonBox_clicked" id="ProgramsDialog.on_buttonBox_clicked" ref="eric6.Preferences.ProgramsDialog.html#ProgramsDialog.on_buttonBox_clicked" />
       <keyword name="ProgramsDialog.on_programsSearchButton_clicked" id="ProgramsDialog.on_programsSearchButton_clicked" ref="eric6.Preferences.ProgramsDialog.html#ProgramsDialog.on_programsSearchButton_clicked" />
+      <keyword name="ProgramsDialog.on_showComboBox_currentIndexChanged" id="ProgramsDialog.on_showComboBox_currentIndexChanged" ref="eric6.Preferences.ProgramsDialog.html#ProgramsDialog.on_showComboBox_currentIndexChanged" />
       <keyword name="ProgramsDialog.show" id="ProgramsDialog.show" ref="eric6.Preferences.ProgramsDialog.html#ProgramsDialog.show" />
       <keyword name="Project" id="Project" ref="eric6.Project.Project.html#Project" />
       <keyword name="Project (Constructor)" id="Project (Constructor)" ref="eric6.Project.Project.html#Project.__init__" />
--- a/eric6/Documentation/Source/eric6.Preferences.ProgramsDialog.html	Tue Feb 18 19:38:58 2020 +0100
+++ b/eric6/Documentation/Source/eric6.Preferences.ProgramsDialog.html	Wed Feb 19 19:38:36 2020 +0100
@@ -57,7 +57,7 @@
 <h3>Class Attributes</h3>
 
 <table>
-<tr><td>None</td></tr>
+<tr><td>ToolAvailableRole</td></tr>
 </table>
 <h3>Class Methods</h3>
 
@@ -89,6 +89,10 @@
 <td>Private slot to search for all supported/required programs.</td>
 </tr>
 <tr>
+<td><a href="#ProgramsDialog.on_showComboBox_currentIndexChanged">on_showComboBox_currentIndexChanged</a></td>
+<td>Private slot to apply the selected show criteria.</td>
+</tr>
+<tr>
 <td><a href="#ProgramsDialog.show">show</a></td>
 <td>Public slot to show the dialog.</td>
 </tr>
@@ -215,6 +219,20 @@
 <p>
         Private slot to search for all supported/required programs.
 </p>
+<a NAME="ProgramsDialog.on_showComboBox_currentIndexChanged" ID="ProgramsDialog.on_showComboBox_currentIndexChanged"></a>
+<h4>ProgramsDialog.on_showComboBox_currentIndexChanged</h4>
+<b>on_showComboBox_currentIndexChanged</b>(<i>index</i>)
+
+<p>
+        Private slot to apply the selected show criteria.
+</p>
+<dl>
+
+<dt><i>index</i> (int)</dt>
+<dd>
+index of the show criterium
+</dd>
+</dl>
 <a NAME="ProgramsDialog.show" ID="ProgramsDialog.show"></a>
 <h4>ProgramsDialog.show</h4>
 <b>show</b>(<i></i>)
--- a/eric6/Preferences/ProgramsDialog.py	Tue Feb 18 19:38:58 2020 +0100
+++ b/eric6/Preferences/ProgramsDialog.py	Wed Feb 19 19:38:36 2020 +0100
@@ -53,6 +53,12 @@
         self.searchButton.setToolTip(
             self.tr("Press to search for programs"))
         
+        self.showComboBox.addItems([
+            self.tr("All Supported Tools"),
+            self.tr("Available Tools Only"),
+            self.tr("Unavailable Tools Only"),
+        ])
+        
     def show(self):
         """
         Public slot to show the dialog.
@@ -336,8 +342,8 @@
                 )
         
         self.programsList.sortByColumn(0, Qt.AscendingOrder)
-        self.on_showUnavailableCheckBox_toggled(
-            self.showUnavailableCheckBox.isChecked())
+        self.on_showComboBox_currentIndexChanged(
+            self.showComboBox.currentIndex())
         QApplication.restoreOverrideCursor()
         
         self.__hasSearched = True
@@ -378,7 +384,6 @@
         font.setBold(True)
         itm.setFont(0, font)
         rememberedExe = exe
-        available = True
         if not exe:
             itm.setText(1, self.tr("(not configured)"))
         else:
@@ -388,6 +393,7 @@
             else:
                 exe = Utilities.getExecutablePath(exe)
             if exe:
+                available = True
                 if (
                     versionCommand and
                     (versionStartsWith != "" or
@@ -440,21 +446,21 @@
                         version = self.tr("(not executable)")
                         available = False
                 if exeModule:
-                    QTreeWidgetItem(itm, [
+                    citm = QTreeWidgetItem(itm, [
                         "{0} {1}".format(exe, " ".join(exeModule)),
                         version])
                 else:
-                    QTreeWidgetItem(itm, [exe, version])
+                    citm = QTreeWidgetItem(itm, [exe, version])
+                citm.setData(0, self.ToolAvailableRole, available)
                 itm.setExpanded(True)
             else:
                 if itm.childCount() == 0:
                     itm.setText(1, self.tr("(not found)"))
                 else:
-                    QTreeWidgetItem(itm, [rememberedExe,
-                                          self.tr("(not found)")])
+                    citm = QTreeWidgetItem(
+                        itm, [rememberedExe, self.tr("(not found)")])
+                    citm.setData(0, self.ToolAvailableRole, False)
                     itm.setExpanded(True)
-                available = False
-        itm.setData(0, self.ToolAvailableRole, available)
         QApplication.processEvents()
         self.programsList.header().resizeSections(QHeaderView.ResizeToContents)
         self.programsList.header().setStretchLastSection(True)
@@ -472,39 +478,52 @@
         font = itm.font(0)
         font.setBold(True)
         itm.setFont(0, font)
-        available = True
         
         if len(entryVersion):
-            QTreeWidgetItem(itm, [entryText, entryVersion])
+            citm = QTreeWidgetItem(itm, [entryText, entryVersion])
             itm.setExpanded(True)
-            if entryVersion.startswith("("):
-                # assume version starting with '(' is an unavailability
-                # indicator
-                available = False
+            citm.setData(0, self.ToolAvailableRole,
+                         not entryVersion.startswith("("))
+            # assume version starting with '(' is an unavailability
         else:
             itm.setText(1, self.tr("(not found)"))
-            available =  False
-        itm.setData(0, self.ToolAvailableRole, available)
         QApplication.processEvents()
         self.programsList.header().resizeSections(QHeaderView.ResizeToContents)
         self.programsList.header().setStretchLastSection(True)
     
-    @pyqtSlot(bool)
-    def on_showUnavailableCheckBox_toggled(self, checked):
+    @pyqtSlot(int)
+    def on_showComboBox_currentIndexChanged(self, index):
         """
-        Private slot show or hide entries belonging to unavailable but
-        supported tools.
+        Private slot to apply the selected show criteria.
         
-        @param checked state of the check box
-        @type bool
+        @param index index of the show criterium
+        @type int
         """
-        for index in range(self.programsList.topLevelItemCount()):
-            itm = self.programsList.topLevelItem(index)
-            itm.setHidden(not checked and
-                          not itm.data(0, self.ToolAvailableRole))
-# TODO: change filter to a selection combo with
-#       All Supported Tools
-#       Found Tools Only
-#       Unavailable Tools Only
-# TODO: add available flag to each child item and derive parent status from
-#       them
+        if index == 0:
+            # All Supported Tools
+            for topIndex in range(self.programsList.topLevelItemCount()):
+                topItem = self.programsList.topLevelItem(topIndex)
+                for childIndex in range(topItem.childCount()):
+                    topItem.child(childIndex).setHidden(False)
+                topItem.setHidden(False)
+        else:
+            # 1 = Available Tools Only
+            # 2 = Unavailable Tools Only
+            for topIndex in range(self.programsList.topLevelItemCount()):
+                topItem = self.programsList.topLevelItem(topIndex)
+                if topItem.childCount() == 0:
+                    topItem.setHidden(index == 1)
+                else:
+                    availabilityList = []
+                    for childIndex in range(topItem.childCount()):
+                        childItem = topItem.child(childIndex)
+                        available = childItem.data(0, self.ToolAvailableRole)
+                        if index == 1:
+                            childItem.setHidden(not available)
+                        else:
+                            childItem.setHidden(available)
+                        availabilityList.append(available)
+                    if index == 1:
+                        topItem.setHidden(not any(availabilityList))
+                    else:
+                        topItem.setHidden(all(availabilityList))
--- a/eric6/Preferences/ProgramsDialog.ui	Tue Feb 18 19:38:58 2020 +0100
+++ b/eric6/Preferences/ProgramsDialog.ui	Wed Feb 19 19:38:36 2020 +0100
@@ -37,15 +37,16 @@
    <item>
     <layout class="QHBoxLayout" name="horizontalLayout">
      <item>
-      <widget class="QCheckBox" name="showUnavailableCheckBox">
-       <property name="toolTip">
-        <string>Select to show unavailable but supported tools as well</string>
-       </property>
+      <widget class="QLabel" name="label">
        <property name="text">
-        <string>Show unavailable tools</string>
+        <string>Show:</string>
        </property>
-       <property name="checked">
-        <bool>true</bool>
+      </widget>
+     </item>
+     <item>
+      <widget class="QComboBox" name="showComboBox">
+       <property name="toolTip">
+        <string>Select the kind of tools to show</string>
        </property>
       </widget>
      </item>
--- a/eric6/i18n/eric6_cs.ts	Tue Feb 18 19:38:58 2020 +0100
+++ b/eric6/i18n/eric6_cs.ts	Wed Feb 19 19:38:36 2020 +0100
@@ -51183,62 +51183,62 @@
 <context>
     <name>PluginManager</name>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="627"/>
+        <location filename="../PluginManager/PluginManager.py" line="631"/>
         <source>Incompatible plugin activation method.</source>
         <translation>Nekompatibilní metoda aktivace pluginu.</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="405"/>
+        <location filename="../PluginManager/PluginManager.py" line="409"/>
         <source>Module is missing the &apos;autoactivate&apos; attribute.</source>
         <translation>Modulu chybí atribut &apos;autoaktivace&apos;.</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="416"/>
+        <location filename="../PluginManager/PluginManager.py" line="420"/>
         <source>Module is missing the &apos;pluginType&apos; and/or &apos;pluginTypename&apos; attributes.</source>
         <translation>Modulu chybí atributy &apos;pluginType&apos; a/nebo &apos;pluginTypename&apos;.</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="1210"/>
+        <location filename="../PluginManager/PluginManager.py" line="1214"/>
         <source>Plugin Manager Error</source>
         <translation>Chyba plugin manažeru</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="211"/>
+        <location filename="../PluginManager/PluginManager.py" line="212"/>
         <source>Could not create a package for {0}.</source>
         <translation>Nelze vytvořit balíček pro {0}.</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="244"/>
+        <location filename="../PluginManager/PluginManager.py" line="245"/>
         <source>The internal plugin directory &lt;b&gt;{0}&lt;/b&gt; does not exits.</source>
         <translation>Interní adresář zásuvných modulů &lt;b&gt;{0}&lt;/b&gt; neexistuje.</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="440"/>
+        <location filename="../PluginManager/PluginManager.py" line="444"/>
         <source>Module failed to load. Error: {0}</source>
         <translation>Modul se nepodařilo načíst. Chyba: {0}</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="1210"/>
+        <location filename="../PluginManager/PluginManager.py" line="1214"/>
         <source>&lt;p&gt;The plugin download directory &lt;b&gt;{0}&lt;/b&gt; could not be created. Please configure it via the configuration dialog.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
         <translation>&lt;p&gt;Download plugin adresář &lt;b&gt;{0}&lt;/b&gt; se nepodařilo vytvořit. Prosím, upravte nastavení přes konfigurační dialog.&lt;/p&gt;&lt;p&gt;Důvod: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="1291"/>
+        <location filename="../PluginManager/PluginManager.py" line="1295"/>
         <source>Error downloading file</source>
         <translation type="unfinished">Chyba při stahování souboru</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="1291"/>
+        <location filename="../PluginManager/PluginManager.py" line="1295"/>
         <source>&lt;p&gt;Could not download the requested file from {0}.&lt;/p&gt;&lt;p&gt;Error: {1}&lt;/p&gt;</source>
         <translation type="unfinished">&lt;p&gt;Nelze stáhnout požadovaný soubor z {0}.&lt;/p&gt;&lt;p&gt;Chyba: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="1328"/>
+        <location filename="../PluginManager/PluginManager.py" line="1332"/>
         <source>New plugin versions available</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="1328"/>
+        <location filename="../PluginManager/PluginManager.py" line="1332"/>
         <source>&lt;p&gt;There are new plug-ins or plug-in updates available. Use the plug-in repository dialog to get them.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
@@ -51738,7 +51738,7 @@
         <translation>Globální adresář s pluginy</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginUninstallDialog.py" line="198"/>
+        <location filename="../PluginManager/PluginUninstallDialog.py" line="200"/>
         <source>Plugin Uninstallation</source>
         <translation>Odinstalace pluginu</translation>
     </message>
@@ -51748,17 +51748,17 @@
         <translation>&lt;p&gt;Plugin &lt;b&gt;{0}&lt;/b&gt; nemůže být nenačten. Zrušeno...&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginUninstallDialog.py" line="121"/>
+        <location filename="../PluginManager/PluginUninstallDialog.py" line="123"/>
         <source>&lt;p&gt;The plugin &lt;b&gt;{0}&lt;/b&gt; has no &apos;packageName&apos; attribute. Aborting...&lt;/p&gt;</source>
         <translation>&lt;p&gt;Pluginu &lt;b&gt;{0}&lt;/b&gt; chybí atribut &apos;packageName&apos;. Zrušeno...&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginUninstallDialog.py" line="177"/>
+        <location filename="../PluginManager/PluginUninstallDialog.py" line="179"/>
         <source>&lt;p&gt;The plugin package &lt;b&gt;{0}&lt;/b&gt; could not be removed. Aborting...&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
         <translation>&lt;p&gt;Plugin balíček &lt;b&gt;{0}&lt;/b&gt; nelze odebrat. Zrušeno...&lt;/p&gt;&lt;p&gt;Důvod: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginUninstallDialog.py" line="198"/>
+        <location filename="../PluginManager/PluginUninstallDialog.py" line="200"/>
         <source>&lt;p&gt;The plugin &lt;b&gt;{0}&lt;/b&gt; was uninstalled successfully from {1}.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Plugin &lt;b&gt;{0}&lt;/b&gt; byl úspěšně odinstalován z {1}.&lt;/p&gt;</translation>
     </message>
@@ -52362,180 +52362,205 @@
         <translation>Verze</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="49"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="51"/>
         <source>Search</source>
         <translation>Hledat</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="51"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="53"/>
         <source>Press to search for programs</source>
         <translation>Stisknout pro hledání programů</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="207"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="215"/>
         <source>Forms Compiler (Ruby, Qt4)</source>
         <translation>Kompilátor formulářů (Ruby, Qt4)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="212"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="220"/>
         <source>Resource Compiler (Ruby, Qt4)</source>
         <translation>Kompilátor resource (Ruby, Qt4)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="241"/>
-        <source>CORBA IDL Compiler</source>
-        <translation>CORBA IDL kompilátor</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="378"/>
-        <source>(not configured)</source>
-        <translation>(nezkonfigurováno)</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="432"/>
-        <source>(not executable)</source>
-        <translation>(nevykonavatelný)</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="469"/>
-        <source>(not found)</source>
-        <translation>(nenalezeno)</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="430"/>
-        <source>(unknown)</source>
-        <translation>(neznámý)</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="273"/>
-        <source>Spell Checker - PyEnchant</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="173"/>
-        <source>Translation Extractor (Python, PySide)</source>
-        <translation>Vypisovač překladů (Python, PySide)</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="178"/>
-        <source>Forms Compiler (Python, PySide)</source>
-        <translation>Kopilátor formulářů (Python, PySide)</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="183"/>
-        <source>Resource Compiler (Python, PySide)</source>
-        <translation>Kompilátor resourců (Python, PySide)</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="290"/>
-        <source>Source Highlighter - Pygments</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="92"/>
-        <source>Translation Converter (Qt)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="106"/>
-        <source>Qt Designer</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="119"/>
-        <source>Qt Linguist</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="132"/>
-        <source>Qt Assistant</source>
-        <translation type="unfinished">Qt asistent</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="139"/>
-        <source>Translation Extractor (Python, PyQt4)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="144"/>
-        <source>Forms Compiler (Python, PyQt4)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="149"/>
-        <source>Resource Compiler (Python, PyQt4)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="156"/>
-        <source>Translation Extractor (Python, PyQt5)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="161"/>
-        <source>Forms Compiler (Python, PyQt5)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="166"/>
-        <source>Resource Compiler (Python, PyQt5)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../Preferences/ProgramsDialog.py" line="249"/>
+        <source>CORBA IDL Compiler</source>
+        <translation>CORBA IDL kompilátor</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="388"/>
+        <source>(not configured)</source>
+        <translation>(nezkonfigurováno)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="446"/>
+        <source>(not executable)</source>
+        <translation>(nevykonavatelný)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="489"/>
+        <source>(not found)</source>
+        <translation>(nenalezeno)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="443"/>
+        <source>(unknown)</source>
+        <translation>(neznámý)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="281"/>
+        <source>Spell Checker - PyEnchant</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="181"/>
+        <source>Translation Extractor (Python, PySide)</source>
+        <translation>Vypisovač překladů (Python, PySide)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="186"/>
+        <source>Forms Compiler (Python, PySide)</source>
+        <translation>Kopilátor formulářů (Python, PySide)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="191"/>
+        <source>Resource Compiler (Python, PySide)</source>
+        <translation>Kompilátor resourců (Python, PySide)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="298"/>
+        <source>Source Highlighter - Pygments</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="100"/>
+        <source>Translation Converter (Qt)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="114"/>
+        <source>Qt Designer</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="127"/>
+        <source>Qt Linguist</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="140"/>
+        <source>Qt Assistant</source>
+        <translation type="unfinished">Qt asistent</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="147"/>
+        <source>Translation Extractor (Python, PyQt4)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="152"/>
+        <source>Forms Compiler (Python, PyQt4)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="157"/>
+        <source>Resource Compiler (Python, PyQt4)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="164"/>
+        <source>Translation Extractor (Python, PyQt5)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="169"/>
+        <source>Forms Compiler (Python, PyQt5)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="174"/>
+        <source>Resource Compiler (Python, PyQt5)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="257"/>
         <source>Protobuf Compiler</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="255"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="263"/>
         <source>gRPC Compiler</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="411"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="422"/>
         <source>(module not found)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="190"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="198"/>
         <source>Translation Extractor (Python, PySide2)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="200"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="208"/>
         <source>Resource Compiler (Python, PySide2)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="195"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="203"/>
         <source>Forms Compiler (Python, PySide2)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="223"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="231"/>
         <source>conda Manager</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="230"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="238"/>
         <source>PyPI Package Management</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="297"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="305"/>
         <source>MicroPython - MPY Cross Compiler</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="300"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="308"/>
         <source>MicroPython - ESP Tool</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="306"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="314"/>
         <source>MicroPython - PyBoard Flasher</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.ui" line="42"/>
+        <source>Show:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.ui" line="49"/>
+        <source>Select the kind of tools to show</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="56"/>
+        <source>All Supported Tools</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="56"/>
+        <source>Available Tools Only</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="56"/>
+        <source>Unavailable Tools Only</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>Project</name>
Binary file eric6/i18n/eric6_de.qm has changed
--- a/eric6/i18n/eric6_de.ts	Tue Feb 18 19:38:58 2020 +0100
+++ b/eric6/i18n/eric6_de.ts	Wed Feb 19 19:38:36 2020 +0100
@@ -48374,62 +48374,62 @@
 <context>
     <name>PluginManager</name>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="627"/>
+        <location filename="../PluginManager/PluginManager.py" line="631"/>
         <source>Incompatible plugin activation method.</source>
         <translation>Nicht kompatible Plugin-Aktivierungsmethode.</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="405"/>
+        <location filename="../PluginManager/PluginManager.py" line="409"/>
         <source>Module is missing the &apos;autoactivate&apos; attribute.</source>
         <translation>Dem Modul fehlt das Attribut „autoactivate“.</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="416"/>
+        <location filename="../PluginManager/PluginManager.py" line="420"/>
         <source>Module is missing the &apos;pluginType&apos; and/or &apos;pluginTypename&apos; attributes.</source>
         <translation>Dem Modul fehlt das Attribut „pluginType“ und/oder „pluginTypename“.</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="440"/>
+        <location filename="../PluginManager/PluginManager.py" line="444"/>
         <source>Module failed to load. Error: {0}</source>
         <translation>Modul konnte nicht geladen werden. Fehler: {0}</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="1210"/>
+        <location filename="../PluginManager/PluginManager.py" line="1214"/>
         <source>Plugin Manager Error</source>
         <translation>Pluginmanager-Fehler</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="1210"/>
+        <location filename="../PluginManager/PluginManager.py" line="1214"/>
         <source>&lt;p&gt;The plugin download directory &lt;b&gt;{0}&lt;/b&gt; could not be created. Please configure it via the configuration dialog.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
         <translation>&lt;p&gt;Das Downloadverzeichnis für Plugins &lt;b&gt;{0}&lt;/b&gt; konnte nicht erzeugt werden. Bitte über den Konfigurationsdialog einstellen.&lt;/p&gt;&lt;p&gt;Ursache: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="211"/>
+        <location filename="../PluginManager/PluginManager.py" line="212"/>
         <source>Could not create a package for {0}.</source>
         <translation>Konnte kein Package für {0} erzeugen.</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="244"/>
+        <location filename="../PluginManager/PluginManager.py" line="245"/>
         <source>The internal plugin directory &lt;b&gt;{0}&lt;/b&gt; does not exits.</source>
         <translation>Das interne Pluginverzeichnis &lt;b&gt;{0}&lt;/b&gt; existiert nicht.</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="1291"/>
+        <location filename="../PluginManager/PluginManager.py" line="1295"/>
         <source>Error downloading file</source>
         <translation>Fehler beim Herunterladen der Datei</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="1291"/>
+        <location filename="../PluginManager/PluginManager.py" line="1295"/>
         <source>&lt;p&gt;Could not download the requested file from {0}.&lt;/p&gt;&lt;p&gt;Error: {1}&lt;/p&gt;</source>
         <translation>&lt;p&gt;Die angefragte Datei konnte nicht von {0} gedownloaded werden.&lt;/p&gt;&lt;p&gt;Fehler: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="1328"/>
+        <location filename="../PluginManager/PluginManager.py" line="1332"/>
         <source>New plugin versions available</source>
         <translation>Neue Plugin Versionen verfügbar</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="1328"/>
+        <location filename="../PluginManager/PluginManager.py" line="1332"/>
         <source>&lt;p&gt;There are new plug-ins or plug-in updates available. Use the plug-in repository dialog to get them.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Es sind neue Plugins oder neue Plugin Versionen verfügbar. Benutze den Plugin-Repository Dialog, um sie zu laden.&lt;/p&gt;</translation>
     </message>
@@ -48929,7 +48929,7 @@
         <translation>Globales Pluginverzeichnis</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginUninstallDialog.py" line="198"/>
+        <location filename="../PluginManager/PluginUninstallDialog.py" line="200"/>
         <source>Plugin Uninstallation</source>
         <translation>Plugin-Deinstallation</translation>
     </message>
@@ -48939,17 +48939,17 @@
         <translation>&lt;p&gt;Das Plugin &lt;b&gt;{0}&lt;/b&gt; konnte nicht entladen werden. Abbruch...&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginUninstallDialog.py" line="121"/>
+        <location filename="../PluginManager/PluginUninstallDialog.py" line="123"/>
         <source>&lt;p&gt;The plugin &lt;b&gt;{0}&lt;/b&gt; has no &apos;packageName&apos; attribute. Aborting...&lt;/p&gt;</source>
         <translation>&lt;p&gt;Das Plugin &lt;b&gt;{0}&lt;/b&gt; hat kein Attribut „packageName“. Abbruch...&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginUninstallDialog.py" line="177"/>
+        <location filename="../PluginManager/PluginUninstallDialog.py" line="179"/>
         <source>&lt;p&gt;The plugin package &lt;b&gt;{0}&lt;/b&gt; could not be removed. Aborting...&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
         <translation>&lt;p&gt;Das Pluginpacket &lt;b&gt;{0}&lt;/b&gt; konnte nicht gelöscht werden. Abbruch...&lt;/p&gt;&lt;p&gt;Ursache: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginUninstallDialog.py" line="198"/>
+        <location filename="../PluginManager/PluginUninstallDialog.py" line="200"/>
         <source>&lt;p&gt;The plugin &lt;b&gt;{0}&lt;/b&gt; was uninstalled successfully from {1}.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Das Plugin &lt;b&gt;{0}&lt;/b&gt; wurde erfolgreich von {1} deinstalliert.&lt;/p&gt;</translation>
     </message>
@@ -49548,42 +49548,42 @@
         <translation>Version</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="49"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="51"/>
         <source>Search</source>
         <translation>Suchen</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="51"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="53"/>
         <source>Press to search for programs</source>
         <translation>Drücke, um nach Programmen zu suchen</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="207"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="215"/>
         <source>Forms Compiler (Ruby, Qt4)</source>
         <translation>Formularcompiler (Ruby, Qt4)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="212"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="220"/>
         <source>Resource Compiler (Ruby, Qt4)</source>
         <translation>Ressourcencompiler (Ruby, Qt4)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="241"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="249"/>
         <source>CORBA IDL Compiler</source>
         <translation>CORBA IDL Compiler</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="378"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="388"/>
         <source>(not configured)</source>
         <translation>(nicht konfiguriert)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="432"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="446"/>
         <source>(not executable)</source>
         <translation>(nicht ausführbar)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="469"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="489"/>
         <source>(not found)</source>
         <translation>(nicht gefunden)</translation>
     </message>
@@ -49593,140 +49593,165 @@
         <translation>Externe Werkzeuge</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="430"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="443"/>
         <source>(unknown)</source>
         <translation>(unbekannt)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="273"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="281"/>
         <source>Spell Checker - PyEnchant</source>
         <translation>Rechtschreibprüfung – PyEnchant</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="178"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="186"/>
         <source>Forms Compiler (Python, PySide)</source>
         <translation>Formularcompiler (Python, PySide)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="183"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="191"/>
         <source>Resource Compiler (Python, PySide)</source>
         <translation>Ressourcencompiler (Python, PySide)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="173"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="181"/>
         <source>Translation Extractor (Python, PySide)</source>
         <translation>Übersetzungsextraktor (Python, PySide)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="290"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="298"/>
         <source>Source Highlighter - Pygments</source>
         <translation>Quelltextfärber – Pygments</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="92"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="100"/>
         <source>Translation Converter (Qt)</source>
         <translation>Compiler für Übersetzungsdatei (Qt)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="106"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="114"/>
         <source>Qt Designer</source>
         <translation>Qt Designer</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="119"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="127"/>
         <source>Qt Linguist</source>
         <translation>Qt Linguist</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="132"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="140"/>
         <source>Qt Assistant</source>
         <translation>Qt Assistant</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="139"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="147"/>
         <source>Translation Extractor (Python, PyQt4)</source>
         <translation>Übersetzungsextraktor (Python, PyQt4)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="144"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="152"/>
         <source>Forms Compiler (Python, PyQt4)</source>
         <translation>Formularcompiler (Python, PyQt4)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="149"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="157"/>
         <source>Resource Compiler (Python, PyQt4)</source>
         <translation>Ressourcencompiler (Python, PyQt4)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="156"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="164"/>
         <source>Translation Extractor (Python, PyQt5)</source>
         <translation>Übersetzungsextraktor (Python, PyQt5)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="161"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="169"/>
         <source>Forms Compiler (Python, PyQt5)</source>
         <translation>Formularcompiler (Python, PyQt5)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="166"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="174"/>
         <source>Resource Compiler (Python, PyQt5)</source>
         <translation>Ressourcencompiler (Python, PyQt5)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="249"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="257"/>
         <source>Protobuf Compiler</source>
         <translation>Protobuf Compiler</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="255"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="263"/>
         <source>gRPC Compiler</source>
         <translation>gRPC Compiler</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="411"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="422"/>
         <source>(module not found)</source>
         <translation>(Modul nicht gefunden)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="190"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="198"/>
         <source>Translation Extractor (Python, PySide2)</source>
         <translation>Übersetzungsextraktor (Python, PySide2)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="200"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="208"/>
         <source>Resource Compiler (Python, PySide2)</source>
         <translation>Ressourcencompiler (Python, PySide2)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="195"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="203"/>
         <source>Forms Compiler (Python, PySide2)</source>
         <translation>Formularcompiler (Python, PySide2)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="223"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="231"/>
         <source>conda Manager</source>
         <translation>Conda Manager</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="230"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="238"/>
         <source>PyPI Package Management</source>
         <translation>PyPI Paketverwaltung</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="297"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="305"/>
         <source>MicroPython - MPY Cross Compiler</source>
         <translation>MicroPython - MPY Cross Compiler</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="300"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="308"/>
         <source>MicroPython - ESP Tool</source>
         <translation>MicroPython - ESP Werkzeug</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="306"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="314"/>
         <source>MicroPython - PyBoard Flasher</source>
         <translation>MicroPython - PyBoard Flasher</translation>
     </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.ui" line="42"/>
+        <source>Show:</source>
+        <translation>Zeige:</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.ui" line="49"/>
+        <source>Select the kind of tools to show</source>
+        <translation>Wähle die Art der Werkzeuganzeige</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="56"/>
+        <source>All Supported Tools</source>
+        <translation>Alle Unterstützten Werkzeuge</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="56"/>
+        <source>Available Tools Only</source>
+        <translation>Nur Verfügbare Werkzeuge</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="56"/>
+        <source>Unavailable Tools Only</source>
+        <translation>Nur Nicht Verfügbare Werkzeuge</translation>
+    </message>
 </context>
 <context>
     <name>Project</name>
--- a/eric6/i18n/eric6_empty.ts	Tue Feb 18 19:38:58 2020 +0100
+++ b/eric6/i18n/eric6_empty.ts	Wed Feb 19 19:38:36 2020 +0100
@@ -48125,62 +48125,62 @@
 <context>
     <name>PluginManager</name>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="211"/>
+        <location filename="../PluginManager/PluginManager.py" line="212"/>
         <source>Could not create a package for {0}.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="244"/>
+        <location filename="../PluginManager/PluginManager.py" line="245"/>
         <source>The internal plugin directory &lt;b&gt;{0}&lt;/b&gt; does not exits.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="405"/>
+        <location filename="../PluginManager/PluginManager.py" line="409"/>
         <source>Module is missing the &apos;autoactivate&apos; attribute.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="416"/>
+        <location filename="../PluginManager/PluginManager.py" line="420"/>
         <source>Module is missing the &apos;pluginType&apos; and/or &apos;pluginTypename&apos; attributes.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="440"/>
+        <location filename="../PluginManager/PluginManager.py" line="444"/>
         <source>Module failed to load. Error: {0}</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="627"/>
+        <location filename="../PluginManager/PluginManager.py" line="631"/>
         <source>Incompatible plugin activation method.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="1210"/>
+        <location filename="../PluginManager/PluginManager.py" line="1214"/>
         <source>Plugin Manager Error</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="1210"/>
+        <location filename="../PluginManager/PluginManager.py" line="1214"/>
         <source>&lt;p&gt;The plugin download directory &lt;b&gt;{0}&lt;/b&gt; could not be created. Please configure it via the configuration dialog.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="1291"/>
+        <location filename="../PluginManager/PluginManager.py" line="1295"/>
         <source>Error downloading file</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="1291"/>
+        <location filename="../PluginManager/PluginManager.py" line="1295"/>
         <source>&lt;p&gt;Could not download the requested file from {0}.&lt;/p&gt;&lt;p&gt;Error: {1}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="1328"/>
+        <location filename="../PluginManager/PluginManager.py" line="1332"/>
         <source>New plugin versions available</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="1328"/>
+        <location filename="../PluginManager/PluginManager.py" line="1332"/>
         <source>&lt;p&gt;There are new plug-ins or plug-in updates available. Use the plug-in repository dialog to get them.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
@@ -48679,7 +48679,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginUninstallDialog.py" line="198"/>
+        <location filename="../PluginManager/PluginUninstallDialog.py" line="200"/>
         <source>Plugin Uninstallation</source>
         <translation type="unfinished"></translation>
     </message>
@@ -48689,17 +48689,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginUninstallDialog.py" line="121"/>
+        <location filename="../PluginManager/PluginUninstallDialog.py" line="123"/>
         <source>&lt;p&gt;The plugin &lt;b&gt;{0}&lt;/b&gt; has no &apos;packageName&apos; attribute. Aborting...&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginUninstallDialog.py" line="177"/>
+        <location filename="../PluginManager/PluginUninstallDialog.py" line="179"/>
         <source>&lt;p&gt;The plugin package &lt;b&gt;{0}&lt;/b&gt; could not be removed. Aborting...&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginUninstallDialog.py" line="198"/>
+        <location filename="../PluginManager/PluginUninstallDialog.py" line="200"/>
         <source>&lt;p&gt;The plugin &lt;b&gt;{0}&lt;/b&gt; was uninstalled successfully from {1}.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
@@ -49303,180 +49303,205 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="49"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="51"/>
         <source>Search</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="51"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="53"/>
         <source>Press to search for programs</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="92"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="100"/>
         <source>Translation Converter (Qt)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="106"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="114"/>
         <source>Qt Designer</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="119"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="127"/>
         <source>Qt Linguist</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="132"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="140"/>
         <source>Qt Assistant</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="139"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="147"/>
         <source>Translation Extractor (Python, PyQt4)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="144"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="152"/>
         <source>Forms Compiler (Python, PyQt4)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="149"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="157"/>
         <source>Resource Compiler (Python, PyQt4)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="156"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="164"/>
         <source>Translation Extractor (Python, PyQt5)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="161"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="169"/>
         <source>Forms Compiler (Python, PyQt5)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="166"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="174"/>
         <source>Resource Compiler (Python, PyQt5)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="173"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="181"/>
         <source>Translation Extractor (Python, PySide)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="178"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="186"/>
         <source>Forms Compiler (Python, PySide)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="183"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="191"/>
         <source>Resource Compiler (Python, PySide)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="207"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="215"/>
         <source>Forms Compiler (Ruby, Qt4)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="212"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="220"/>
         <source>Resource Compiler (Ruby, Qt4)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="241"/>
-        <source>CORBA IDL Compiler</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="430"/>
-        <source>(unknown)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="273"/>
-        <source>Spell Checker - PyEnchant</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="290"/>
-        <source>Source Highlighter - Pygments</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="378"/>
-        <source>(not configured)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="432"/>
-        <source>(not executable)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="469"/>
-        <source>(not found)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../Preferences/ProgramsDialog.py" line="249"/>
+        <source>CORBA IDL Compiler</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="443"/>
+        <source>(unknown)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="281"/>
+        <source>Spell Checker - PyEnchant</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="298"/>
+        <source>Source Highlighter - Pygments</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="388"/>
+        <source>(not configured)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="446"/>
+        <source>(not executable)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="489"/>
+        <source>(not found)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="257"/>
         <source>Protobuf Compiler</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="255"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="263"/>
         <source>gRPC Compiler</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="411"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="422"/>
         <source>(module not found)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="190"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="198"/>
         <source>Translation Extractor (Python, PySide2)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="200"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="208"/>
         <source>Resource Compiler (Python, PySide2)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="195"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="203"/>
         <source>Forms Compiler (Python, PySide2)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="223"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="231"/>
         <source>conda Manager</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="230"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="238"/>
         <source>PyPI Package Management</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="297"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="305"/>
         <source>MicroPython - MPY Cross Compiler</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="300"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="308"/>
         <source>MicroPython - ESP Tool</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="306"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="314"/>
         <source>MicroPython - PyBoard Flasher</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.ui" line="42"/>
+        <source>Show:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.ui" line="49"/>
+        <source>Select the kind of tools to show</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="56"/>
+        <source>All Supported Tools</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="56"/>
+        <source>Available Tools Only</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="56"/>
+        <source>Unavailable Tools Only</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>Project</name>
--- a/eric6/i18n/eric6_en.ts	Tue Feb 18 19:38:58 2020 +0100
+++ b/eric6/i18n/eric6_en.ts	Wed Feb 19 19:38:36 2020 +0100
@@ -48166,62 +48166,62 @@
 <context>
     <name>PluginManager</name>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="211"/>
+        <location filename="../PluginManager/PluginManager.py" line="212"/>
         <source>Could not create a package for {0}.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="244"/>
+        <location filename="../PluginManager/PluginManager.py" line="245"/>
         <source>The internal plugin directory &lt;b&gt;{0}&lt;/b&gt; does not exits.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="405"/>
+        <location filename="../PluginManager/PluginManager.py" line="409"/>
         <source>Module is missing the &apos;autoactivate&apos; attribute.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="416"/>
+        <location filename="../PluginManager/PluginManager.py" line="420"/>
         <source>Module is missing the &apos;pluginType&apos; and/or &apos;pluginTypename&apos; attributes.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="440"/>
+        <location filename="../PluginManager/PluginManager.py" line="444"/>
         <source>Module failed to load. Error: {0}</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="627"/>
+        <location filename="../PluginManager/PluginManager.py" line="631"/>
         <source>Incompatible plugin activation method.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="1210"/>
+        <location filename="../PluginManager/PluginManager.py" line="1214"/>
         <source>Plugin Manager Error</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="1210"/>
+        <location filename="../PluginManager/PluginManager.py" line="1214"/>
         <source>&lt;p&gt;The plugin download directory &lt;b&gt;{0}&lt;/b&gt; could not be created. Please configure it via the configuration dialog.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="1291"/>
+        <location filename="../PluginManager/PluginManager.py" line="1295"/>
         <source>Error downloading file</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="1291"/>
+        <location filename="../PluginManager/PluginManager.py" line="1295"/>
         <source>&lt;p&gt;Could not download the requested file from {0}.&lt;/p&gt;&lt;p&gt;Error: {1}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="1328"/>
+        <location filename="../PluginManager/PluginManager.py" line="1332"/>
         <source>New plugin versions available</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="1328"/>
+        <location filename="../PluginManager/PluginManager.py" line="1332"/>
         <source>&lt;p&gt;There are new plug-ins or plug-in updates available. Use the plug-in repository dialog to get them.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
@@ -48720,7 +48720,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginUninstallDialog.py" line="198"/>
+        <location filename="../PluginManager/PluginUninstallDialog.py" line="200"/>
         <source>Plugin Uninstallation</source>
         <translation type="unfinished"></translation>
     </message>
@@ -48730,17 +48730,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginUninstallDialog.py" line="121"/>
+        <location filename="../PluginManager/PluginUninstallDialog.py" line="123"/>
         <source>&lt;p&gt;The plugin &lt;b&gt;{0}&lt;/b&gt; has no &apos;packageName&apos; attribute. Aborting...&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginUninstallDialog.py" line="177"/>
+        <location filename="../PluginManager/PluginUninstallDialog.py" line="179"/>
         <source>&lt;p&gt;The plugin package &lt;b&gt;{0}&lt;/b&gt; could not be removed. Aborting...&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginUninstallDialog.py" line="198"/>
+        <location filename="../PluginManager/PluginUninstallDialog.py" line="200"/>
         <source>&lt;p&gt;The plugin &lt;b&gt;{0}&lt;/b&gt; was uninstalled successfully from {1}.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
@@ -49344,180 +49344,205 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="49"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="51"/>
         <source>Search</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="51"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="53"/>
         <source>Press to search for programs</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="173"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="181"/>
         <source>Translation Extractor (Python, PySide)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="178"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="186"/>
         <source>Forms Compiler (Python, PySide)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="183"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="191"/>
         <source>Resource Compiler (Python, PySide)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="207"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="215"/>
         <source>Forms Compiler (Ruby, Qt4)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="212"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="220"/>
         <source>Resource Compiler (Ruby, Qt4)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="241"/>
-        <source>CORBA IDL Compiler</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="430"/>
-        <source>(unknown)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="273"/>
-        <source>Spell Checker - PyEnchant</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="378"/>
-        <source>(not configured)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="432"/>
-        <source>(not executable)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="469"/>
-        <source>(not found)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="290"/>
-        <source>Source Highlighter - Pygments</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="92"/>
-        <source>Translation Converter (Qt)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="106"/>
-        <source>Qt Designer</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="119"/>
-        <source>Qt Linguist</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="132"/>
-        <source>Qt Assistant</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="139"/>
-        <source>Translation Extractor (Python, PyQt4)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="144"/>
-        <source>Forms Compiler (Python, PyQt4)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="149"/>
-        <source>Resource Compiler (Python, PyQt4)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="156"/>
-        <source>Translation Extractor (Python, PyQt5)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="161"/>
-        <source>Forms Compiler (Python, PyQt5)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="166"/>
-        <source>Resource Compiler (Python, PyQt5)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../Preferences/ProgramsDialog.py" line="249"/>
+        <source>CORBA IDL Compiler</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="443"/>
+        <source>(unknown)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="281"/>
+        <source>Spell Checker - PyEnchant</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="388"/>
+        <source>(not configured)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="446"/>
+        <source>(not executable)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="489"/>
+        <source>(not found)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="298"/>
+        <source>Source Highlighter - Pygments</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="100"/>
+        <source>Translation Converter (Qt)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="114"/>
+        <source>Qt Designer</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="127"/>
+        <source>Qt Linguist</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="140"/>
+        <source>Qt Assistant</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="147"/>
+        <source>Translation Extractor (Python, PyQt4)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="152"/>
+        <source>Forms Compiler (Python, PyQt4)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="157"/>
+        <source>Resource Compiler (Python, PyQt4)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="164"/>
+        <source>Translation Extractor (Python, PyQt5)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="169"/>
+        <source>Forms Compiler (Python, PyQt5)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="174"/>
+        <source>Resource Compiler (Python, PyQt5)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="257"/>
         <source>Protobuf Compiler</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="255"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="263"/>
         <source>gRPC Compiler</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="411"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="422"/>
         <source>(module not found)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="190"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="198"/>
         <source>Translation Extractor (Python, PySide2)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="200"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="208"/>
         <source>Resource Compiler (Python, PySide2)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="195"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="203"/>
         <source>Forms Compiler (Python, PySide2)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="223"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="231"/>
         <source>conda Manager</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="230"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="238"/>
         <source>PyPI Package Management</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="297"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="305"/>
         <source>MicroPython - MPY Cross Compiler</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="300"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="308"/>
         <source>MicroPython - ESP Tool</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="306"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="314"/>
         <source>MicroPython - PyBoard Flasher</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.ui" line="42"/>
+        <source>Show:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.ui" line="49"/>
+        <source>Select the kind of tools to show</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="56"/>
+        <source>All Supported Tools</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="56"/>
+        <source>Available Tools Only</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="56"/>
+        <source>Unavailable Tools Only</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>Project</name>
--- a/eric6/i18n/eric6_es.ts	Tue Feb 18 19:38:58 2020 +0100
+++ b/eric6/i18n/eric6_es.ts	Wed Feb 19 19:38:36 2020 +0100
@@ -48376,62 +48376,62 @@
 <context>
     <name>PluginManager</name>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="405"/>
+        <location filename="../PluginManager/PluginManager.py" line="409"/>
         <source>Module is missing the &apos;autoactivate&apos; attribute.</source>
         <translation>El módulo no tiene el atributo &apos;autoactivate&apos;.</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="416"/>
+        <location filename="../PluginManager/PluginManager.py" line="420"/>
         <source>Module is missing the &apos;pluginType&apos; and/or &apos;pluginTypename&apos; attributes.</source>
         <translation>El módulo no tiene el atributo &apos;pluginType&apos; y/o el atributo &apos;pluginTypename&apos;.</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="627"/>
+        <location filename="../PluginManager/PluginManager.py" line="631"/>
         <source>Incompatible plugin activation method.</source>
         <translation>Metodo de activación del plugin incompatible.</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="1210"/>
+        <location filename="../PluginManager/PluginManager.py" line="1214"/>
         <source>Plugin Manager Error</source>
         <translation>Error del Gestor de Plugins</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="211"/>
+        <location filename="../PluginManager/PluginManager.py" line="212"/>
         <source>Could not create a package for {0}.</source>
         <translation>No se ha podido crear un paquete para {0}.</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="244"/>
+        <location filename="../PluginManager/PluginManager.py" line="245"/>
         <source>The internal plugin directory &lt;b&gt;{0}&lt;/b&gt; does not exits.</source>
         <translation>El directorio interno de plugin &lt;b&gt;{0}&lt;/b&gt; no existe.</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="440"/>
+        <location filename="../PluginManager/PluginManager.py" line="444"/>
         <source>Module failed to load. Error: {0}</source>
         <translation>Ha fallado la carga del módulo. Error: {0}</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="1210"/>
+        <location filename="../PluginManager/PluginManager.py" line="1214"/>
         <source>&lt;p&gt;The plugin download directory &lt;b&gt;{0}&lt;/b&gt; could not be created. Please configure it via the configuration dialog.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
         <translation>&lt;p&gt;El directorio de descaga del plugin &lt;b&gt;{0}&lt;/b&gt; no ha podido ser creado. Por favor, configúrelo a través del diálogo de configuración.&lt;/p&gt;&lt;p&gt;Razón: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="1291"/>
+        <location filename="../PluginManager/PluginManager.py" line="1295"/>
         <source>Error downloading file</source>
         <translation>Error al descargar el fichero</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="1291"/>
+        <location filename="../PluginManager/PluginManager.py" line="1295"/>
         <source>&lt;p&gt;Could not download the requested file from {0}.&lt;/p&gt;&lt;p&gt;Error: {1}&lt;/p&gt;</source>
         <translation>&lt;p&gt;No se pudo descargar el archivo solicitado desde {0}.&lt;/p&gt;&lt;p&gt;Error: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="1328"/>
+        <location filename="../PluginManager/PluginManager.py" line="1332"/>
         <source>New plugin versions available</source>
         <translation>Existen nuevas versiones de plugins</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="1328"/>
+        <location filename="../PluginManager/PluginManager.py" line="1332"/>
         <source>&lt;p&gt;There are new plug-ins or plug-in updates available. Use the plug-in repository dialog to get them.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Existen nuevos plug-ins o existen bien actualizaciones para plug-in. Utilice el repositorio de plug-ins para su obtención.&lt;/p&gt;</translation>
     </message>
@@ -48931,7 +48931,7 @@
         <translation>Directorio de plugins global</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginUninstallDialog.py" line="198"/>
+        <location filename="../PluginManager/PluginUninstallDialog.py" line="200"/>
         <source>Plugin Uninstallation</source>
         <translation>Desinstalación de Plugin</translation>
     </message>
@@ -48941,17 +48941,17 @@
         <translation>&lt;p&gt;El plugin &lt;b&gt;{0}&lt;/b&gt; no ha podido descargarse. Abortando...&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginUninstallDialog.py" line="121"/>
+        <location filename="../PluginManager/PluginUninstallDialog.py" line="123"/>
         <source>&lt;p&gt;The plugin &lt;b&gt;{0}&lt;/b&gt; has no &apos;packageName&apos; attribute. Aborting...&lt;/p&gt;</source>
         <translation>&lt;p&gt;El plugin &lt;b&gt;{0}&lt;/b&gt; no tiene atributo  &apos;packageName&apos;. Abortando...&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginUninstallDialog.py" line="177"/>
+        <location filename="../PluginManager/PluginUninstallDialog.py" line="179"/>
         <source>&lt;p&gt;The plugin package &lt;b&gt;{0}&lt;/b&gt; could not be removed. Aborting...&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
         <translation>&lt;p&gt;El paquete de plugin &lt;b&gt;{0}&lt;/b&gt; no ha podido ser eliminado. Abortando...&lt;/p&gt;&lt;p&gt;Razón: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginUninstallDialog.py" line="198"/>
+        <location filename="../PluginManager/PluginUninstallDialog.py" line="200"/>
         <source>&lt;p&gt;The plugin &lt;b&gt;{0}&lt;/b&gt; was uninstalled successfully from {1}.&lt;/p&gt;</source>
         <translation>&lt;p&gt;El plugin &lt;b&gt;{0}&lt;/b&gt; se ha desinstalado de {1} satisfactoriamente.&lt;/p&gt;</translation>
     </message>
@@ -49555,180 +49555,205 @@
         <translation>Versión</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="49"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="51"/>
         <source>Search</source>
         <translation>Buscar</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="51"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="53"/>
         <source>Press to search for programs</source>
         <translation>Presione para buscar programas</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="207"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="215"/>
         <source>Forms Compiler (Ruby, Qt4)</source>
         <translation>Compilador de Formularios (Ruby, Qt4)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="212"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="220"/>
         <source>Resource Compiler (Ruby, Qt4)</source>
         <translation>Compilador de Recursos (Ruby, Qt4)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="241"/>
-        <source>CORBA IDL Compiler</source>
-        <translation>Compilador CORBA IDL</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="378"/>
-        <source>(not configured)</source>
-        <translation>(no configurado)</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="432"/>
-        <source>(not executable)</source>
-        <translation>(no ejecutable)</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="469"/>
-        <source>(not found)</source>
-        <translation>(no encontrado)</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="430"/>
-        <source>(unknown)</source>
-        <translation>(desconocido)</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="273"/>
-        <source>Spell Checker - PyEnchant</source>
-        <translation>Corrección Ortográfica - PyEnchant</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="178"/>
-        <source>Forms Compiler (Python, PySide)</source>
-        <translation>Compilador de Formularios (Python, PySide)</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="183"/>
-        <source>Resource Compiler (Python, PySide)</source>
-        <translation>Compilador de Recursos (Python, PySide)</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="173"/>
-        <source>Translation Extractor (Python, PySide)</source>
-        <translation>Extractor de traducciones (Python, PySide)</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="290"/>
-        <source>Source Highlighter - Pygments</source>
-        <translation>Resaltador de Código Fuente - Pygments</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="92"/>
-        <source>Translation Converter (Qt)</source>
-        <translation>Conversor de Traducciones (Qt)</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="106"/>
-        <source>Qt Designer</source>
-        <translation>Qt Designer</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="119"/>
-        <source>Qt Linguist</source>
-        <translation>Qt Linguist</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="132"/>
-        <source>Qt Assistant</source>
-        <translation>Qt Assistant</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="139"/>
-        <source>Translation Extractor (Python, PyQt4)</source>
-        <translation>Extractor de Traducciones (Python, PyQt4)</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="144"/>
-        <source>Forms Compiler (Python, PyQt4)</source>
-        <translation>Compilador de Forms (Python, PyQt4)</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="149"/>
-        <source>Resource Compiler (Python, PyQt4)</source>
-        <translation>Compilador de Recursos (Python, PyQt4)</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="156"/>
-        <source>Translation Extractor (Python, PyQt5)</source>
-        <translation>Extractor de Traducciones (Python, PyQt5)</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="161"/>
-        <source>Forms Compiler (Python, PyQt5)</source>
-        <translation>Compilador de Forms (Python, PyQt5)</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="166"/>
-        <source>Resource Compiler (Python, PyQt5)</source>
-        <translation>Compilador de Recursos (Python, PyQt5)</translation>
-    </message>
-    <message>
         <location filename="../Preferences/ProgramsDialog.py" line="249"/>
+        <source>CORBA IDL Compiler</source>
+        <translation>Compilador CORBA IDL</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="388"/>
+        <source>(not configured)</source>
+        <translation>(no configurado)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="446"/>
+        <source>(not executable)</source>
+        <translation>(no ejecutable)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="489"/>
+        <source>(not found)</source>
+        <translation>(no encontrado)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="443"/>
+        <source>(unknown)</source>
+        <translation>(desconocido)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="281"/>
+        <source>Spell Checker - PyEnchant</source>
+        <translation>Corrección Ortográfica - PyEnchant</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="186"/>
+        <source>Forms Compiler (Python, PySide)</source>
+        <translation>Compilador de Formularios (Python, PySide)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="191"/>
+        <source>Resource Compiler (Python, PySide)</source>
+        <translation>Compilador de Recursos (Python, PySide)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="181"/>
+        <source>Translation Extractor (Python, PySide)</source>
+        <translation>Extractor de traducciones (Python, PySide)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="298"/>
+        <source>Source Highlighter - Pygments</source>
+        <translation>Resaltador de Código Fuente - Pygments</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="100"/>
+        <source>Translation Converter (Qt)</source>
+        <translation>Conversor de Traducciones (Qt)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="114"/>
+        <source>Qt Designer</source>
+        <translation>Qt Designer</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="127"/>
+        <source>Qt Linguist</source>
+        <translation>Qt Linguist</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="140"/>
+        <source>Qt Assistant</source>
+        <translation>Qt Assistant</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="147"/>
+        <source>Translation Extractor (Python, PyQt4)</source>
+        <translation>Extractor de Traducciones (Python, PyQt4)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="152"/>
+        <source>Forms Compiler (Python, PyQt4)</source>
+        <translation>Compilador de Forms (Python, PyQt4)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="157"/>
+        <source>Resource Compiler (Python, PyQt4)</source>
+        <translation>Compilador de Recursos (Python, PyQt4)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="164"/>
+        <source>Translation Extractor (Python, PyQt5)</source>
+        <translation>Extractor de Traducciones (Python, PyQt5)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="169"/>
+        <source>Forms Compiler (Python, PyQt5)</source>
+        <translation>Compilador de Forms (Python, PyQt5)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="174"/>
+        <source>Resource Compiler (Python, PyQt5)</source>
+        <translation>Compilador de Recursos (Python, PyQt5)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="257"/>
         <source>Protobuf Compiler</source>
         <translation>Compilador de Protobuf</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="255"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="263"/>
         <source>gRPC Compiler</source>
         <translation>Compilador gRPC</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="411"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="422"/>
         <source>(module not found)</source>
         <translation>(módule no encontrado)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="190"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="198"/>
         <source>Translation Extractor (Python, PySide2)</source>
         <translation>Extractor de Traducciones (Python, PySide2)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="200"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="208"/>
         <source>Resource Compiler (Python, PySide2)</source>
         <translation>Compilador de Recursos (Python, PySide2)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="195"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="203"/>
         <source>Forms Compiler (Python, PySide2)</source>
         <translation>Compilador de Formularios (Python, PySide2)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="223"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="231"/>
         <source>conda Manager</source>
         <translation>Gestor de conda</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="230"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="238"/>
         <source>PyPI Package Management</source>
         <translation>Gestor de Packages PyPI</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="297"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="305"/>
         <source>MicroPython - MPY Cross Compiler</source>
         <translation>MicroPython - MPY Cross Compiler</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="300"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="308"/>
         <source>MicroPython - ESP Tool</source>
         <translation>MicroPython - ESP Tool</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="306"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="314"/>
         <source>MicroPython - PyBoard Flasher</source>
         <translation>MicroPython - PyBoard Flasher</translation>
     </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.ui" line="42"/>
+        <source>Show:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.ui" line="49"/>
+        <source>Select the kind of tools to show</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="56"/>
+        <source>All Supported Tools</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="56"/>
+        <source>Available Tools Only</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="56"/>
+        <source>Unavailable Tools Only</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>Project</name>
--- a/eric6/i18n/eric6_fr.ts	Tue Feb 18 19:38:58 2020 +0100
+++ b/eric6/i18n/eric6_fr.ts	Wed Feb 19 19:38:36 2020 +0100
@@ -50356,62 +50356,62 @@
 <context>
     <name>PluginManager</name>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="627"/>
+        <location filename="../PluginManager/PluginManager.py" line="631"/>
         <source>Incompatible plugin activation method.</source>
         <translation>Méthode d&apos;activation du plugin incompatible.</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="405"/>
+        <location filename="../PluginManager/PluginManager.py" line="409"/>
         <source>Module is missing the &apos;autoactivate&apos; attribute.</source>
         <translation>Le module ne comporte pas l&apos;attribut &apos;autoactivate&apos;.</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="416"/>
+        <location filename="../PluginManager/PluginManager.py" line="420"/>
         <source>Module is missing the &apos;pluginType&apos; and/or &apos;pluginTypename&apos; attributes.</source>
         <translation>Le module ne comporte pas le(s) attribut(s) &apos;pluginType&apos; et/ou &apos;pluginTypename&apos;.</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="1210"/>
+        <location filename="../PluginManager/PluginManager.py" line="1214"/>
         <source>Plugin Manager Error</source>
         <translation>Erreur du gestionnaire de plugins</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="211"/>
+        <location filename="../PluginManager/PluginManager.py" line="212"/>
         <source>Could not create a package for {0}.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="244"/>
+        <location filename="../PluginManager/PluginManager.py" line="245"/>
         <source>The internal plugin directory &lt;b&gt;{0}&lt;/b&gt; does not exits.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="440"/>
+        <location filename="../PluginManager/PluginManager.py" line="444"/>
         <source>Module failed to load. Error: {0}</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="1210"/>
+        <location filename="../PluginManager/PluginManager.py" line="1214"/>
         <source>&lt;p&gt;The plugin download directory &lt;b&gt;{0}&lt;/b&gt; could not be created. Please configure it via the configuration dialog.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="1291"/>
+        <location filename="../PluginManager/PluginManager.py" line="1295"/>
         <source>Error downloading file</source>
         <translation type="unfinished">Erreur de téléchargement</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="1291"/>
+        <location filename="../PluginManager/PluginManager.py" line="1295"/>
         <source>&lt;p&gt;Could not download the requested file from {0}.&lt;/p&gt;&lt;p&gt;Error: {1}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="1328"/>
+        <location filename="../PluginManager/PluginManager.py" line="1332"/>
         <source>New plugin versions available</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="1328"/>
+        <location filename="../PluginManager/PluginManager.py" line="1332"/>
         <source>&lt;p&gt;There are new plug-ins or plug-in updates available. Use the plug-in repository dialog to get them.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
@@ -50911,7 +50911,7 @@
         <translation>Répertoire global pour les plugins</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginUninstallDialog.py" line="198"/>
+        <location filename="../PluginManager/PluginUninstallDialog.py" line="200"/>
         <source>Plugin Uninstallation</source>
         <translation>Désinstallation de plugin</translation>
     </message>
@@ -50921,17 +50921,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginUninstallDialog.py" line="121"/>
+        <location filename="../PluginManager/PluginUninstallDialog.py" line="123"/>
         <source>&lt;p&gt;The plugin &lt;b&gt;{0}&lt;/b&gt; has no &apos;packageName&apos; attribute. Aborting...&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginUninstallDialog.py" line="177"/>
+        <location filename="../PluginManager/PluginUninstallDialog.py" line="179"/>
         <source>&lt;p&gt;The plugin package &lt;b&gt;{0}&lt;/b&gt; could not be removed. Aborting...&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginUninstallDialog.py" line="198"/>
+        <location filename="../PluginManager/PluginUninstallDialog.py" line="200"/>
         <source>&lt;p&gt;The plugin &lt;b&gt;{0}&lt;/b&gt; was uninstalled successfully from {1}.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
@@ -51535,180 +51535,205 @@
         <translation>Version</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="49"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="51"/>
         <source>Search</source>
         <translation>Rechercher</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="51"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="53"/>
         <source>Press to search for programs</source>
         <translation>Cliquer pour rechercher les programmes externes</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="207"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="215"/>
         <source>Forms Compiler (Ruby, Qt4)</source>
         <translation>Compilateur de feuilles (Ruby, Qt4)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="212"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="220"/>
         <source>Resource Compiler (Ruby, Qt4)</source>
         <translation>Compilateur de ressources (Ruby, Qt4)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="241"/>
-        <source>CORBA IDL Compiler</source>
-        <translation>Compilateur CORBA IDL</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="378"/>
-        <source>(not configured)</source>
-        <translation>(non configuré)</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="432"/>
-        <source>(not executable)</source>
-        <translation>(non executable)</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="469"/>
-        <source>(not found)</source>
-        <translation>(non trouvé)</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="430"/>
-        <source>(unknown)</source>
-        <translation>(inconnu)</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="273"/>
-        <source>Spell Checker - PyEnchant</source>
-        <translation>Vérification d&apos;orthographe - PyEnchant</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="178"/>
-        <source>Forms Compiler (Python, PySide)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="183"/>
-        <source>Resource Compiler (Python, PySide)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="173"/>
-        <source>Translation Extractor (Python, PySide)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="290"/>
-        <source>Source Highlighter - Pygments</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="92"/>
-        <source>Translation Converter (Qt)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="106"/>
-        <source>Qt Designer</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="119"/>
-        <source>Qt Linguist</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="132"/>
-        <source>Qt Assistant</source>
-        <translation type="unfinished">Qt Assistant</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="139"/>
-        <source>Translation Extractor (Python, PyQt4)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="144"/>
-        <source>Forms Compiler (Python, PyQt4)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="149"/>
-        <source>Resource Compiler (Python, PyQt4)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="156"/>
-        <source>Translation Extractor (Python, PyQt5)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="161"/>
-        <source>Forms Compiler (Python, PyQt5)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="166"/>
-        <source>Resource Compiler (Python, PyQt5)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../Preferences/ProgramsDialog.py" line="249"/>
+        <source>CORBA IDL Compiler</source>
+        <translation>Compilateur CORBA IDL</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="388"/>
+        <source>(not configured)</source>
+        <translation>(non configuré)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="446"/>
+        <source>(not executable)</source>
+        <translation>(non executable)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="489"/>
+        <source>(not found)</source>
+        <translation>(non trouvé)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="443"/>
+        <source>(unknown)</source>
+        <translation>(inconnu)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="281"/>
+        <source>Spell Checker - PyEnchant</source>
+        <translation>Vérification d&apos;orthographe - PyEnchant</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="186"/>
+        <source>Forms Compiler (Python, PySide)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="191"/>
+        <source>Resource Compiler (Python, PySide)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="181"/>
+        <source>Translation Extractor (Python, PySide)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="298"/>
+        <source>Source Highlighter - Pygments</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="100"/>
+        <source>Translation Converter (Qt)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="114"/>
+        <source>Qt Designer</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="127"/>
+        <source>Qt Linguist</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="140"/>
+        <source>Qt Assistant</source>
+        <translation type="unfinished">Qt Assistant</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="147"/>
+        <source>Translation Extractor (Python, PyQt4)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="152"/>
+        <source>Forms Compiler (Python, PyQt4)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="157"/>
+        <source>Resource Compiler (Python, PyQt4)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="164"/>
+        <source>Translation Extractor (Python, PyQt5)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="169"/>
+        <source>Forms Compiler (Python, PyQt5)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="174"/>
+        <source>Resource Compiler (Python, PyQt5)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="257"/>
         <source>Protobuf Compiler</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="255"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="263"/>
         <source>gRPC Compiler</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="411"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="422"/>
         <source>(module not found)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="190"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="198"/>
         <source>Translation Extractor (Python, PySide2)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="200"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="208"/>
         <source>Resource Compiler (Python, PySide2)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="195"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="203"/>
         <source>Forms Compiler (Python, PySide2)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="223"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="231"/>
         <source>conda Manager</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="230"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="238"/>
         <source>PyPI Package Management</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="297"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="305"/>
         <source>MicroPython - MPY Cross Compiler</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="300"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="308"/>
         <source>MicroPython - ESP Tool</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="306"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="314"/>
         <source>MicroPython - PyBoard Flasher</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.ui" line="42"/>
+        <source>Show:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.ui" line="49"/>
+        <source>Select the kind of tools to show</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="56"/>
+        <source>All Supported Tools</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="56"/>
+        <source>Available Tools Only</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="56"/>
+        <source>Unavailable Tools Only</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>Project</name>
--- a/eric6/i18n/eric6_it.ts	Tue Feb 18 19:38:58 2020 +0100
+++ b/eric6/i18n/eric6_it.ts	Wed Feb 19 19:38:36 2020 +0100
@@ -52746,62 +52746,62 @@
 <context>
     <name>PluginManager</name>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="627"/>
+        <location filename="../PluginManager/PluginManager.py" line="631"/>
         <source>Incompatible plugin activation method.</source>
         <translation>Metodo di attivazione del plugin incompatibile.</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="405"/>
+        <location filename="../PluginManager/PluginManager.py" line="409"/>
         <source>Module is missing the &apos;autoactivate&apos; attribute.</source>
         <translation>Il modulo manca dell&apos;attributo &apos;autoactivate&apos;.</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="416"/>
+        <location filename="../PluginManager/PluginManager.py" line="420"/>
         <source>Module is missing the &apos;pluginType&apos; and/or &apos;pluginTypename&apos; attributes.</source>
         <translation>Il modulo manca dell&apos;attributo &apos;pluginType&apos; e/oppure &apos;pluginTypename&apos;.</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="1210"/>
+        <location filename="../PluginManager/PluginManager.py" line="1214"/>
         <source>Plugin Manager Error</source>
         <translation>Errore del gestore dei Plugin</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="211"/>
+        <location filename="../PluginManager/PluginManager.py" line="212"/>
         <source>Could not create a package for {0}.</source>
         <translation>Non posso creare un package per {0}.</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="244"/>
+        <location filename="../PluginManager/PluginManager.py" line="245"/>
         <source>The internal plugin directory &lt;b&gt;{0}&lt;/b&gt; does not exits.</source>
         <translation>La directory dei plugin interni &lt;b&gt;{0}&lt;/b&gt; non esiste.</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="440"/>
+        <location filename="../PluginManager/PluginManager.py" line="444"/>
         <source>Module failed to load. Error: {0}</source>
         <translation>Il modulo ha fallito il caricamento. Errore: {0}</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="1210"/>
+        <location filename="../PluginManager/PluginManager.py" line="1214"/>
         <source>&lt;p&gt;The plugin download directory &lt;b&gt;{0}&lt;/b&gt; could not be created. Please configure it via the configuration dialog.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
         <translation>&lt;p&gt;La directory di download dei plugin &lt;b&gt;{0}&lt;/b&gt; non può essere creata. Per favore configurarla con il dialogo di configurazione.&lt;/p&gt;&lt;p&gt;Motivo: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="1291"/>
+        <location filename="../PluginManager/PluginManager.py" line="1295"/>
         <source>Error downloading file</source>
         <translation>Errone nello scaricamento del file</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="1291"/>
+        <location filename="../PluginManager/PluginManager.py" line="1295"/>
         <source>&lt;p&gt;Could not download the requested file from {0}.&lt;/p&gt;&lt;p&gt;Error: {1}&lt;/p&gt;</source>
         <translation>&lt;p&gt;Non posso scaricare il file richiesto da {0}&lt;/p&gt;&lt;p&gt;Errore: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="1328"/>
+        <location filename="../PluginManager/PluginManager.py" line="1332"/>
         <source>New plugin versions available</source>
         <translation>E&apos; disponibile una nuova versione del plug-in</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="1328"/>
+        <location filename="../PluginManager/PluginManager.py" line="1332"/>
         <source>&lt;p&gt;There are new plug-ins or plug-in updates available. Use the plug-in repository dialog to get them.&lt;/p&gt;</source>
         <translation type="unfinished">&lt;p&gt;Sono disponibili nuovi plug-in o aggiornamenti di plug-in. Usa la finestra di dialogo del repository di plug-in per ottenerli.&lt;/p&gt;</translation>
     </message>
@@ -53301,7 +53301,7 @@
         <translation>Directory dei plugin di sistema</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginUninstallDialog.py" line="198"/>
+        <location filename="../PluginManager/PluginUninstallDialog.py" line="200"/>
         <source>Plugin Uninstallation</source>
         <translation>Rimozione plugin</translation>
     </message>
@@ -53311,17 +53311,17 @@
         <translation>&lt;p&gt;Il plugin &lt;b&gt;{0}&lt;/b&gt; non può essere rimosso. Uscita...&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginUninstallDialog.py" line="121"/>
+        <location filename="../PluginManager/PluginUninstallDialog.py" line="123"/>
         <source>&lt;p&gt;The plugin &lt;b&gt;{0}&lt;/b&gt; has no &apos;packageName&apos; attribute. Aborting...&lt;/p&gt;</source>
         <translation>&lt;p&gt;Il plugin &lt;b&gt;{0}&lt;/b&gt; non ha un attributo &apos;packageName&apos;. Uscita...&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginUninstallDialog.py" line="177"/>
+        <location filename="../PluginManager/PluginUninstallDialog.py" line="179"/>
         <source>&lt;p&gt;The plugin package &lt;b&gt;{0}&lt;/b&gt; could not be removed. Aborting...&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
         <translation>&lt;p&gt;Il pacchetto del plugin &lt;b&gt;{0}&lt;/b&gt; non può essere rimosso. Uscita...&lt;/p&gt;&lt;p&gt;Motivo: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginUninstallDialog.py" line="198"/>
+        <location filename="../PluginManager/PluginUninstallDialog.py" line="200"/>
         <source>&lt;p&gt;The plugin &lt;b&gt;{0}&lt;/b&gt; was uninstalled successfully from {1}.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Il plugin &lt;b&gt;{0}&lt;/b&gt; è stato rimosso correttamente da {1}.&lt;/p&gt;</translation>
     </message>
@@ -53925,180 +53925,205 @@
         <translation>Versione</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="49"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="51"/>
         <source>Search</source>
         <translation>Ricerca</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="51"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="53"/>
         <source>Press to search for programs</source>
         <translation>Premi per cercare per programmi</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="207"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="215"/>
         <source>Forms Compiler (Ruby, Qt4)</source>
         <translation>Compilatore forms (Ruby, Qt4)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="212"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="220"/>
         <source>Resource Compiler (Ruby, Qt4)</source>
         <translation>Compilatore risorse (Ruby, Qt4)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="241"/>
-        <source>CORBA IDL Compiler</source>
-        <translation>Compilatore CORBA IDL</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="378"/>
-        <source>(not configured)</source>
-        <translation>(non configurato)</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="432"/>
-        <source>(not executable)</source>
-        <translation>(non eseguibile)</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="469"/>
-        <source>(not found)</source>
-        <translation>(non trovato)</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="430"/>
-        <source>(unknown)</source>
-        <translation>(sconosciuto)</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="273"/>
-        <source>Spell Checker - PyEnchant</source>
-        <translation>Correttore - PyEnchant</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="173"/>
-        <source>Translation Extractor (Python, PySide)</source>
-        <translation>Estrattore di traduzioni (Python, PySide)</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="178"/>
-        <source>Forms Compiler (Python, PySide)</source>
-        <translation>Compilatore forms (Python, PySide)</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="183"/>
-        <source>Resource Compiler (Python, PySide)</source>
-        <translation>Compilatore Risorse (Python, PySide)</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="290"/>
-        <source>Source Highlighter - Pygments</source>
-        <translation>Evidenziatore Sorgente - Pygments</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="92"/>
-        <source>Translation Converter (Qt)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="106"/>
-        <source>Qt Designer</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="119"/>
-        <source>Qt Linguist</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="132"/>
-        <source>Qt Assistant</source>
-        <translation type="unfinished">Qt Assistant</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="139"/>
-        <source>Translation Extractor (Python, PyQt4)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="144"/>
-        <source>Forms Compiler (Python, PyQt4)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="149"/>
-        <source>Resource Compiler (Python, PyQt4)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="156"/>
-        <source>Translation Extractor (Python, PyQt5)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="161"/>
-        <source>Forms Compiler (Python, PyQt5)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="166"/>
-        <source>Resource Compiler (Python, PyQt5)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../Preferences/ProgramsDialog.py" line="249"/>
+        <source>CORBA IDL Compiler</source>
+        <translation>Compilatore CORBA IDL</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="388"/>
+        <source>(not configured)</source>
+        <translation>(non configurato)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="446"/>
+        <source>(not executable)</source>
+        <translation>(non eseguibile)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="489"/>
+        <source>(not found)</source>
+        <translation>(non trovato)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="443"/>
+        <source>(unknown)</source>
+        <translation>(sconosciuto)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="281"/>
+        <source>Spell Checker - PyEnchant</source>
+        <translation>Correttore - PyEnchant</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="181"/>
+        <source>Translation Extractor (Python, PySide)</source>
+        <translation>Estrattore di traduzioni (Python, PySide)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="186"/>
+        <source>Forms Compiler (Python, PySide)</source>
+        <translation>Compilatore forms (Python, PySide)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="191"/>
+        <source>Resource Compiler (Python, PySide)</source>
+        <translation>Compilatore Risorse (Python, PySide)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="298"/>
+        <source>Source Highlighter - Pygments</source>
+        <translation>Evidenziatore Sorgente - Pygments</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="100"/>
+        <source>Translation Converter (Qt)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="114"/>
+        <source>Qt Designer</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="127"/>
+        <source>Qt Linguist</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="140"/>
+        <source>Qt Assistant</source>
+        <translation type="unfinished">Qt Assistant</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="147"/>
+        <source>Translation Extractor (Python, PyQt4)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="152"/>
+        <source>Forms Compiler (Python, PyQt4)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="157"/>
+        <source>Resource Compiler (Python, PyQt4)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="164"/>
+        <source>Translation Extractor (Python, PyQt5)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="169"/>
+        <source>Forms Compiler (Python, PyQt5)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="174"/>
+        <source>Resource Compiler (Python, PyQt5)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="257"/>
         <source>Protobuf Compiler</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="255"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="263"/>
         <source>gRPC Compiler</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="411"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="422"/>
         <source>(module not found)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="190"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="198"/>
         <source>Translation Extractor (Python, PySide2)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="200"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="208"/>
         <source>Resource Compiler (Python, PySide2)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="195"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="203"/>
         <source>Forms Compiler (Python, PySide2)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="223"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="231"/>
         <source>conda Manager</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="230"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="238"/>
         <source>PyPI Package Management</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="297"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="305"/>
         <source>MicroPython - MPY Cross Compiler</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="300"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="308"/>
         <source>MicroPython - ESP Tool</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="306"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="314"/>
         <source>MicroPython - PyBoard Flasher</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.ui" line="42"/>
+        <source>Show:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.ui" line="49"/>
+        <source>Select the kind of tools to show</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="56"/>
+        <source>All Supported Tools</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="56"/>
+        <source>Available Tools Only</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="56"/>
+        <source>Unavailable Tools Only</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>Project</name>
--- a/eric6/i18n/eric6_pt.ts	Tue Feb 18 19:38:58 2020 +0100
+++ b/eric6/i18n/eric6_pt.ts	Wed Feb 19 19:38:36 2020 +0100
@@ -52163,62 +52163,62 @@
 <context>
     <name>PluginManager</name>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="211"/>
+        <location filename="../PluginManager/PluginManager.py" line="212"/>
         <source>Could not create a package for {0}.</source>
         <translation>Não se pôde criar o pacote para {0}.</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="244"/>
+        <location filename="../PluginManager/PluginManager.py" line="245"/>
         <source>The internal plugin directory &lt;b&gt;{0}&lt;/b&gt; does not exits.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="405"/>
+        <location filename="../PluginManager/PluginManager.py" line="409"/>
         <source>Module is missing the &apos;autoactivate&apos; attribute.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="416"/>
+        <location filename="../PluginManager/PluginManager.py" line="420"/>
         <source>Module is missing the &apos;pluginType&apos; and/or &apos;pluginTypename&apos; attributes.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="440"/>
+        <location filename="../PluginManager/PluginManager.py" line="444"/>
         <source>Module failed to load. Error: {0}</source>
         <translation>Falho na carga de módulo. Erro: {0}</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="627"/>
+        <location filename="../PluginManager/PluginManager.py" line="631"/>
         <source>Incompatible plugin activation method.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="1210"/>
+        <location filename="../PluginManager/PluginManager.py" line="1214"/>
         <source>Plugin Manager Error</source>
         <translation>Erro do Gestor de Complementos</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="1210"/>
+        <location filename="../PluginManager/PluginManager.py" line="1214"/>
         <source>&lt;p&gt;The plugin download directory &lt;b&gt;{0}&lt;/b&gt; could not be created. Please configure it via the configuration dialog.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="1291"/>
+        <location filename="../PluginManager/PluginManager.py" line="1295"/>
         <source>Error downloading file</source>
         <translation>Erro ao descarregar ficheiro</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="1291"/>
+        <location filename="../PluginManager/PluginManager.py" line="1295"/>
         <source>&lt;p&gt;Could not download the requested file from {0}.&lt;/p&gt;&lt;p&gt;Error: {1}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="1328"/>
+        <location filename="../PluginManager/PluginManager.py" line="1332"/>
         <source>New plugin versions available</source>
         <translation>Disponível novas versões de complementos</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="1328"/>
+        <location filename="../PluginManager/PluginManager.py" line="1332"/>
         <source>&lt;p&gt;There are new plug-ins or plug-in updates available. Use the plug-in repository dialog to get them.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
@@ -52727,7 +52727,7 @@
         <translation>Diretório de plugins do global</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginUninstallDialog.py" line="198"/>
+        <location filename="../PluginManager/PluginUninstallDialog.py" line="200"/>
         <source>Plugin Uninstallation</source>
         <translation>Desinstalação de Plugins</translation>
     </message>
@@ -52737,17 +52737,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginUninstallDialog.py" line="121"/>
+        <location filename="../PluginManager/PluginUninstallDialog.py" line="123"/>
         <source>&lt;p&gt;The plugin &lt;b&gt;{0}&lt;/b&gt; has no &apos;packageName&apos; attribute. Aborting...&lt;/p&gt;</source>
         <translation>&lt;p&gt;O complemento &lt;b&gt;{0}&lt;/b&gt; não tem atributo &apos;packageName&apos;. A cancelar...&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginUninstallDialog.py" line="177"/>
+        <location filename="../PluginManager/PluginUninstallDialog.py" line="179"/>
         <source>&lt;p&gt;The plugin package &lt;b&gt;{0}&lt;/b&gt; could not be removed. Aborting...&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
         <translation>&lt;p&gt;O pacote complemento &lt;b&gt;{0}&lt;/b&gt; não pode ser apagado. A cancelar...&lt;/p&gt;&lt;p&gt;Motivo: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginUninstallDialog.py" line="198"/>
+        <location filename="../PluginManager/PluginUninstallDialog.py" line="200"/>
         <source>&lt;p&gt;The plugin &lt;b&gt;{0}&lt;/b&gt; was uninstalled successfully from {1}.&lt;/p&gt;</source>
         <translation>&lt;p&gt;O complemento &lt;b&gt;{0}&lt;/b&gt; foi desinstalado de {1} com êxito.&lt;/p&gt;</translation>
     </message>
@@ -53351,180 +53351,205 @@
         <translation>Versão</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="49"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="51"/>
         <source>Search</source>
         <translation>Procurar</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="51"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="53"/>
         <source>Press to search for programs</source>
         <translation>Pressionar para procurar programas</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="173"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="181"/>
         <source>Translation Extractor (Python, PySide)</source>
         <translation>Extrator de Tradução (Python, PySide)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="178"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="186"/>
         <source>Forms Compiler (Python, PySide)</source>
         <translation>Compilador de Formulários (Python, PySide)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="183"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="191"/>
         <source>Resource Compiler (Python, PySide)</source>
         <translation>Compilador de Recursos (Python, PySide)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="207"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="215"/>
         <source>Forms Compiler (Ruby, Qt4)</source>
         <translation>Compilador de Formulários (Ruby, Qt4)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="212"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="220"/>
         <source>Resource Compiler (Ruby, Qt4)</source>
         <translation>Compilador de Recursos (Ruby, Qt4)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="241"/>
-        <source>CORBA IDL Compiler</source>
-        <translation>Compilador de CORBA IDL</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="430"/>
-        <source>(unknown)</source>
-        <translation>(desconhecido)</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="273"/>
-        <source>Spell Checker - PyEnchant</source>
-        <translation>Corretor Ortográfico - PyEnchant</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="378"/>
-        <source>(not configured)</source>
-        <translation>(não configurado)</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="432"/>
-        <source>(not executable)</source>
-        <translation>(não executável)</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="469"/>
-        <source>(not found)</source>
-        <translation>(não encontrado)</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="290"/>
-        <source>Source Highlighter - Pygments</source>
-        <translation>Realçador de Fonte - Pygments</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="92"/>
-        <source>Translation Converter (Qt)</source>
-        <translation>Conversor de Tradução (Qt)</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="106"/>
-        <source>Qt Designer</source>
-        <translation>Desenhador Qt</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="119"/>
-        <source>Qt Linguist</source>
-        <translation>Linguista Qt</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="132"/>
-        <source>Qt Assistant</source>
-        <translation>Assistente Qt</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="139"/>
-        <source>Translation Extractor (Python, PyQt4)</source>
-        <translation>Extrator de Tradução (Python, PyQt4)</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="144"/>
-        <source>Forms Compiler (Python, PyQt4)</source>
-        <translation>Compilador de Formulários (Python, PyQt4)</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="149"/>
-        <source>Resource Compiler (Python, PyQt4)</source>
-        <translation>Compilador de Recursos (Python, PyQt4)</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="156"/>
-        <source>Translation Extractor (Python, PyQt5)</source>
-        <translation>Extrator de Tradução (Python, PyQt5)</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="161"/>
-        <source>Forms Compiler (Python, PyQt5)</source>
-        <translation>Compilador de Formulários (Python, PyQt5)</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="166"/>
-        <source>Resource Compiler (Python, PyQt5)</source>
-        <translation>Compilador de Recursos (Python, PyQt5)</translation>
-    </message>
-    <message>
         <location filename="../Preferences/ProgramsDialog.py" line="249"/>
+        <source>CORBA IDL Compiler</source>
+        <translation>Compilador de CORBA IDL</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="443"/>
+        <source>(unknown)</source>
+        <translation>(desconhecido)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="281"/>
+        <source>Spell Checker - PyEnchant</source>
+        <translation>Corretor Ortográfico - PyEnchant</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="388"/>
+        <source>(not configured)</source>
+        <translation>(não configurado)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="446"/>
+        <source>(not executable)</source>
+        <translation>(não executável)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="489"/>
+        <source>(not found)</source>
+        <translation>(não encontrado)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="298"/>
+        <source>Source Highlighter - Pygments</source>
+        <translation>Realçador de Fonte - Pygments</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="100"/>
+        <source>Translation Converter (Qt)</source>
+        <translation>Conversor de Tradução (Qt)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="114"/>
+        <source>Qt Designer</source>
+        <translation>Desenhador Qt</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="127"/>
+        <source>Qt Linguist</source>
+        <translation>Linguista Qt</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="140"/>
+        <source>Qt Assistant</source>
+        <translation>Assistente Qt</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="147"/>
+        <source>Translation Extractor (Python, PyQt4)</source>
+        <translation>Extrator de Tradução (Python, PyQt4)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="152"/>
+        <source>Forms Compiler (Python, PyQt4)</source>
+        <translation>Compilador de Formulários (Python, PyQt4)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="157"/>
+        <source>Resource Compiler (Python, PyQt4)</source>
+        <translation>Compilador de Recursos (Python, PyQt4)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="164"/>
+        <source>Translation Extractor (Python, PyQt5)</source>
+        <translation>Extrator de Tradução (Python, PyQt5)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="169"/>
+        <source>Forms Compiler (Python, PyQt5)</source>
+        <translation>Compilador de Formulários (Python, PyQt5)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="174"/>
+        <source>Resource Compiler (Python, PyQt5)</source>
+        <translation>Compilador de Recursos (Python, PyQt5)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="257"/>
         <source>Protobuf Compiler</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="255"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="263"/>
         <source>gRPC Compiler</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="411"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="422"/>
         <source>(module not found)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="190"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="198"/>
         <source>Translation Extractor (Python, PySide2)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="200"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="208"/>
         <source>Resource Compiler (Python, PySide2)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="195"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="203"/>
         <source>Forms Compiler (Python, PySide2)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="223"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="231"/>
         <source>conda Manager</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="230"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="238"/>
         <source>PyPI Package Management</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="297"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="305"/>
         <source>MicroPython - MPY Cross Compiler</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="300"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="308"/>
         <source>MicroPython - ESP Tool</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="306"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="314"/>
         <source>MicroPython - PyBoard Flasher</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.ui" line="42"/>
+        <source>Show:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.ui" line="49"/>
+        <source>Select the kind of tools to show</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="56"/>
+        <source>All Supported Tools</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="56"/>
+        <source>Available Tools Only</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="56"/>
+        <source>Unavailable Tools Only</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>Project</name>
--- a/eric6/i18n/eric6_ru.ts	Tue Feb 18 19:38:58 2020 +0100
+++ b/eric6/i18n/eric6_ru.ts	Wed Feb 19 19:38:36 2020 +0100
@@ -48455,62 +48455,62 @@
 <context>
     <name>PluginManager</name>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="211"/>
+        <location filename="../PluginManager/PluginManager.py" line="212"/>
         <source>Could not create a package for {0}.</source>
         <translation>Невозможно создать пакет для {0}.</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="244"/>
+        <location filename="../PluginManager/PluginManager.py" line="245"/>
         <source>The internal plugin directory &lt;b&gt;{0}&lt;/b&gt; does not exits.</source>
         <translation>Внутренняя директория плагинов &lt;b&gt;{0}&lt;/b&gt; не существует.</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="405"/>
+        <location filename="../PluginManager/PluginManager.py" line="409"/>
         <source>Module is missing the &apos;autoactivate&apos; attribute.</source>
         <translation>Модуль не содержит атрибута &apos;autoactivate&apos;.</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="416"/>
+        <location filename="../PluginManager/PluginManager.py" line="420"/>
         <source>Module is missing the &apos;pluginType&apos; and/or &apos;pluginTypename&apos; attributes.</source>
         <translation>Модуль не содержит атрибутов &apos;pluginType&apos; и/или &apos;pluginTypename&apos;.</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="440"/>
+        <location filename="../PluginManager/PluginManager.py" line="444"/>
         <source>Module failed to load. Error: {0}</source>
         <translation>Неудачная загрузка модуля. Ошибка: {0}</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="627"/>
+        <location filename="../PluginManager/PluginManager.py" line="631"/>
         <source>Incompatible plugin activation method.</source>
         <translation>Несовместимый метод активации плагина.</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="1210"/>
+        <location filename="../PluginManager/PluginManager.py" line="1214"/>
         <source>Plugin Manager Error</source>
         <translation>Ошибка менеджера плагинов</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="1210"/>
+        <location filename="../PluginManager/PluginManager.py" line="1214"/>
         <source>&lt;p&gt;The plugin download directory &lt;b&gt;{0}&lt;/b&gt; could not be created. Please configure it via the configuration dialog.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
         <translation>&lt;p&gt;Директория для загрузки плагинов &lt;b&gt;{0}&lt;/b&gt; не может быть создана. Задайте её посредством диалога конфигурации.&lt;/p&gt;&lt;p&gt;Причина:{1}&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="1291"/>
+        <location filename="../PluginManager/PluginManager.py" line="1295"/>
         <source>Error downloading file</source>
         <translation>Ошибка загрузки файла</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="1291"/>
+        <location filename="../PluginManager/PluginManager.py" line="1295"/>
         <source>&lt;p&gt;Could not download the requested file from {0}.&lt;/p&gt;&lt;p&gt;Error: {1}&lt;/p&gt;</source>
         <translation>&lt;p&gt;Не удалось загрузить запрашиваемый файл из {0}.&lt;/p&gt;&lt;p&gt;Ошибка: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="1328"/>
+        <location filename="../PluginManager/PluginManager.py" line="1332"/>
         <source>New plugin versions available</source>
         <translation>Новые версии плагинов доступны для загрузки</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="1328"/>
+        <location filename="../PluginManager/PluginManager.py" line="1332"/>
         <source>&lt;p&gt;There are new plug-ins or plug-in updates available. Use the plug-in repository dialog to get them.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Имеются новые плагины или их обновления. Воспользуйтесь диалогом репозитория плагинов для их загрузки.&lt;/p&gt;</translation>
     </message>
@@ -49010,7 +49010,7 @@
         <translation>Глобальная директория плагинов</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginUninstallDialog.py" line="198"/>
+        <location filename="../PluginManager/PluginUninstallDialog.py" line="200"/>
         <source>Plugin Uninstallation</source>
         <translation>Деинсталляция плагинов</translation>
     </message>
@@ -49020,17 +49020,17 @@
         <translation>&lt;p&gt;Невозможно выгрузить плагин &lt;b&gt;{0}&lt;/b&gt;. Прерывание...&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginUninstallDialog.py" line="121"/>
+        <location filename="../PluginManager/PluginUninstallDialog.py" line="123"/>
         <source>&lt;p&gt;The plugin &lt;b&gt;{0}&lt;/b&gt; has no &apos;packageName&apos; attribute. Aborting...&lt;/p&gt;</source>
         <translation>&lt;p&gt;Плагин &lt;b&gt;{0}&lt;/b&gt; не содержит атрибута &apos;packageName&apos;. Прерывание...&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginUninstallDialog.py" line="177"/>
+        <location filename="../PluginManager/PluginUninstallDialog.py" line="179"/>
         <source>&lt;p&gt;The plugin package &lt;b&gt;{0}&lt;/b&gt; could not be removed. Aborting...&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
         <translation>&lt;p&gt;Невозможно удалить пакет плагина &lt;b&gt;{0}&lt;/b&gt;. Отмена...&lt;/p&gt;&lt;p&gt;Причина: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginUninstallDialog.py" line="198"/>
+        <location filename="../PluginManager/PluginUninstallDialog.py" line="200"/>
         <source>&lt;p&gt;The plugin &lt;b&gt;{0}&lt;/b&gt; was uninstalled successfully from {1}.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Плагин &lt;b&gt;{0}&lt;/b&gt; был успешно деинсталлирован из {1}.&lt;/p&gt;</translation>
     </message>
@@ -49634,180 +49634,205 @@
         <translation>Версия</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="49"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="51"/>
         <source>Search</source>
         <translation>Поиск</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="51"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="53"/>
         <source>Press to search for programs</source>
         <translation>Искать программы</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="173"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="181"/>
         <source>Translation Extractor (Python, PySide)</source>
         <translation>Извлечение переводов (Python, PySide)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="178"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="186"/>
         <source>Forms Compiler (Python, PySide)</source>
         <translation>Компилятор форм (Python, PySide)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="183"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="191"/>
         <source>Resource Compiler (Python, PySide)</source>
         <translation>Компилятор ресурсов (Python, PySide)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="207"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="215"/>
         <source>Forms Compiler (Ruby, Qt4)</source>
         <translation>Компилятор форм (Ruby, Qt4)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="212"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="220"/>
         <source>Resource Compiler (Ruby, Qt4)</source>
         <translation>Компилятор ресурсов (Ruby, Qt4)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="241"/>
-        <source>CORBA IDL Compiler</source>
-        <translation>Компилятор IDL CORBA</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="430"/>
-        <source>(unknown)</source>
-        <translation>(неизвестный)</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="273"/>
-        <source>Spell Checker - PyEnchant</source>
-        <translation>Проверка орфографии - PyEnchant</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="378"/>
-        <source>(not configured)</source>
-        <translation>(не настроено)</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="432"/>
-        <source>(not executable)</source>
-        <translation>(не исполняемый)</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="469"/>
-        <source>(not found)</source>
-        <translation>(не найдено)</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="290"/>
-        <source>Source Highlighter - Pygments</source>
-        <translation>Подсветка синтаксиса - Pygments</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="92"/>
-        <source>Translation Converter (Qt)</source>
-        <translation>Преобразователь файлов перевода (Qt)</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="106"/>
-        <source>Qt Designer</source>
-        <translation>Qt Designer</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="119"/>
-        <source>Qt Linguist</source>
-        <translation>Qt Linguist</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="132"/>
-        <source>Qt Assistant</source>
-        <translation>Qt Assistant</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="139"/>
-        <source>Translation Extractor (Python, PyQt4)</source>
-        <translation>Извлечение переводов (Python, PyQt4)</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="144"/>
-        <source>Forms Compiler (Python, PyQt4)</source>
-        <translation>Компилятор форм (Python, PyQt4)</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="149"/>
-        <source>Resource Compiler (Python, PyQt4)</source>
-        <translation>Компилятор ресурсов (Python, PyQt4)</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="156"/>
-        <source>Translation Extractor (Python, PyQt5)</source>
-        <translation>Извлечение переводов (Python, PyQt5)</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="161"/>
-        <source>Forms Compiler (Python, PyQt5)</source>
-        <translation>Компилятор форм (Python, PyQt5)</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="166"/>
-        <source>Resource Compiler (Python, PyQt5)</source>
-        <translation>Компилятор ресурсов (Python, PyQt5)</translation>
-    </message>
-    <message>
         <location filename="../Preferences/ProgramsDialog.py" line="249"/>
+        <source>CORBA IDL Compiler</source>
+        <translation>Компилятор IDL CORBA</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="443"/>
+        <source>(unknown)</source>
+        <translation>(неизвестный)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="281"/>
+        <source>Spell Checker - PyEnchant</source>
+        <translation>Проверка орфографии - PyEnchant</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="388"/>
+        <source>(not configured)</source>
+        <translation>(не настроено)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="446"/>
+        <source>(not executable)</source>
+        <translation>(не исполняемый)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="489"/>
+        <source>(not found)</source>
+        <translation>(не найдено)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="298"/>
+        <source>Source Highlighter - Pygments</source>
+        <translation>Подсветка синтаксиса - Pygments</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="100"/>
+        <source>Translation Converter (Qt)</source>
+        <translation>Преобразователь файлов перевода (Qt)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="114"/>
+        <source>Qt Designer</source>
+        <translation>Qt Designer</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="127"/>
+        <source>Qt Linguist</source>
+        <translation>Qt Linguist</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="140"/>
+        <source>Qt Assistant</source>
+        <translation>Qt Assistant</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="147"/>
+        <source>Translation Extractor (Python, PyQt4)</source>
+        <translation>Извлечение переводов (Python, PyQt4)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="152"/>
+        <source>Forms Compiler (Python, PyQt4)</source>
+        <translation>Компилятор форм (Python, PyQt4)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="157"/>
+        <source>Resource Compiler (Python, PyQt4)</source>
+        <translation>Компилятор ресурсов (Python, PyQt4)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="164"/>
+        <source>Translation Extractor (Python, PyQt5)</source>
+        <translation>Извлечение переводов (Python, PyQt5)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="169"/>
+        <source>Forms Compiler (Python, PyQt5)</source>
+        <translation>Компилятор форм (Python, PyQt5)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="174"/>
+        <source>Resource Compiler (Python, PyQt5)</source>
+        <translation>Компилятор ресурсов (Python, PyQt5)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="257"/>
         <source>Protobuf Compiler</source>
         <translation>Компилятор Protobuf</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="255"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="263"/>
         <source>gRPC Compiler</source>
         <translation>Компилятор gRPC</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="411"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="422"/>
         <source>(module not found)</source>
         <translation>(модуль не найден)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="190"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="198"/>
         <source>Translation Extractor (Python, PySide2)</source>
         <translation>Извлечение переводов (Python, PySide2)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="200"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="208"/>
         <source>Resource Compiler (Python, PySide2)</source>
         <translation>Компилятор ресурсов (Python, PySide2)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="195"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="203"/>
         <source>Forms Compiler (Python, PySide2)</source>
         <translation>Компилятор форм (Python, PySide2)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="223"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="231"/>
         <source>conda Manager</source>
         <translation>Менеджер пакетов Conda</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="230"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="238"/>
         <source>PyPI Package Management</source>
         <translation>Менеджер пакетов PyPI</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="297"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="305"/>
         <source>MicroPython - MPY Cross Compiler</source>
         <translation>MicroPython - MPY Cross Compiler</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="300"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="308"/>
         <source>MicroPython - ESP Tool</source>
         <translation>MicroPython - ESP Tool</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="306"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="314"/>
         <source>MicroPython - PyBoard Flasher</source>
         <translation>MicroPython - PyBoard Flasher</translation>
     </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.ui" line="42"/>
+        <source>Show:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.ui" line="49"/>
+        <source>Select the kind of tools to show</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="56"/>
+        <source>All Supported Tools</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="56"/>
+        <source>Available Tools Only</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="56"/>
+        <source>Unavailable Tools Only</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>Project</name>
--- a/eric6/i18n/eric6_tr.ts	Tue Feb 18 19:38:58 2020 +0100
+++ b/eric6/i18n/eric6_tr.ts	Wed Feb 19 19:38:36 2020 +0100
@@ -51450,62 +51450,62 @@
 <context>
     <name>PluginManager</name>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="211"/>
+        <location filename="../PluginManager/PluginManager.py" line="212"/>
         <source>Could not create a package for {0}.</source>
         <translation>{0} için paket üretilemiyor.</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="244"/>
+        <location filename="../PluginManager/PluginManager.py" line="245"/>
         <source>The internal plugin directory &lt;b&gt;{0}&lt;/b&gt; does not exits.</source>
         <translation>Dahili eklenti dizini &lt;b&gt;{0}&lt;/b&gt; mevcut değil.</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="405"/>
+        <location filename="../PluginManager/PluginManager.py" line="409"/>
         <source>Module is missing the &apos;autoactivate&apos; attribute.</source>
         <translation>Modülün &apos;otomatikaktileşme&apos; niteliği eksik.</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="416"/>
+        <location filename="../PluginManager/PluginManager.py" line="420"/>
         <source>Module is missing the &apos;pluginType&apos; and/or &apos;pluginTypename&apos; attributes.</source>
         <translation>Modülün &apos;eklentitipi&apos; ve/veya &apos;eklentiTipadı&apos; niteliği eksik.</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="440"/>
+        <location filename="../PluginManager/PluginManager.py" line="444"/>
         <source>Module failed to load. Error: {0}</source>
         <translation>Modül yüklemede başarısızlık. Hata: {0}</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="627"/>
+        <location filename="../PluginManager/PluginManager.py" line="631"/>
         <source>Incompatible plugin activation method.</source>
         <translation>Eklenti etkinleştirme yöntemi uyuşmuyor.</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="1210"/>
+        <location filename="../PluginManager/PluginManager.py" line="1214"/>
         <source>Plugin Manager Error</source>
         <translation>Eklenti Yöneticisi Hatası</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="1210"/>
+        <location filename="../PluginManager/PluginManager.py" line="1214"/>
         <source>&lt;p&gt;The plugin download directory &lt;b&gt;{0}&lt;/b&gt; could not be created. Please configure it via the configuration dialog.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
         <translation>&lt;p&gt;eklenti dizini &lt;b&gt;{0}&lt;/b&gt; oluşturulamıyor. Lütfen ayarlama diyaloğu aracılığı ile düzenleyin.&lt;/p&gt;&lt;p&gt;Sebep: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="1291"/>
+        <location filename="../PluginManager/PluginManager.py" line="1295"/>
         <source>Error downloading file</source>
         <translation type="unfinished">Dosya yüklenirken hata</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="1291"/>
+        <location filename="../PluginManager/PluginManager.py" line="1295"/>
         <source>&lt;p&gt;Could not download the requested file from {0}.&lt;/p&gt;&lt;p&gt;Error: {1}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="1328"/>
+        <location filename="../PluginManager/PluginManager.py" line="1332"/>
         <source>New plugin versions available</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="1328"/>
+        <location filename="../PluginManager/PluginManager.py" line="1332"/>
         <source>&lt;p&gt;There are new plug-ins or plug-in updates available. Use the plug-in repository dialog to get them.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
@@ -52004,7 +52004,7 @@
         <translation>Evrensel eklentiler dizini</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginUninstallDialog.py" line="198"/>
+        <location filename="../PluginManager/PluginUninstallDialog.py" line="200"/>
         <source>Plugin Uninstallation</source>
         <translation>Eklenti Kaldırımı</translation>
     </message>
@@ -52014,17 +52014,17 @@
         <translation>&lt;p&gt;Eklenti &lt;b&gt;{0}&lt;/b&gt; kaldırılamıyor. İptal ediliyor...&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginUninstallDialog.py" line="121"/>
+        <location filename="../PluginManager/PluginUninstallDialog.py" line="123"/>
         <source>&lt;p&gt;The plugin &lt;b&gt;{0}&lt;/b&gt; has no &apos;packageName&apos; attribute. Aborting...&lt;/p&gt;</source>
         <translation>&lt;p&gt;eklenti &lt;b&gt;{0}&lt;/b&gt; &apos;packageName&apos; özniteliğine sahip değil. İptal ediliyor...&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginUninstallDialog.py" line="177"/>
+        <location filename="../PluginManager/PluginUninstallDialog.py" line="179"/>
         <source>&lt;p&gt;The plugin package &lt;b&gt;{0}&lt;/b&gt; could not be removed. Aborting...&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
         <translation>&lt;p&gt;Eklenti paketi &lt;b&gt;{0}&lt;/b&gt; kaldırılamadı. İptal ediliyor...&lt;/p&gt;&lt;p&gt;Sebep: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginUninstallDialog.py" line="198"/>
+        <location filename="../PluginManager/PluginUninstallDialog.py" line="200"/>
         <source>&lt;p&gt;The plugin &lt;b&gt;{0}&lt;/b&gt; was uninstalled successfully from {1}.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Eklenti &lt;b&gt;{0}&lt;/b&gt; {1}den tam olarak kaldırıldı.&lt;/p&gt;</translation>
     </message>
@@ -52628,180 +52628,205 @@
         <translation>Sürüm</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="49"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="51"/>
         <source>Search</source>
         <translation>Ara</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="51"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="53"/>
         <source>Press to search for programs</source>
         <translation>Programlarda arama için basınız</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="173"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="181"/>
         <source>Translation Extractor (Python, PySide)</source>
         <translation>Çeviri Çıkarıcı (Python, PySide)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="178"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="186"/>
         <source>Forms Compiler (Python, PySide)</source>
         <translation>Form Derleyici (Python, PySide)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="183"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="191"/>
         <source>Resource Compiler (Python, PySide)</source>
         <translation>Kaynak Derleyici (Python, Pyside)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="207"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="215"/>
         <source>Forms Compiler (Ruby, Qt4)</source>
         <translation>Form Derleyici (Ruby, Qt4)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="212"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="220"/>
         <source>Resource Compiler (Ruby, Qt4)</source>
         <translation>Kaynak Derleyici (Ruby, Qt4)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="241"/>
-        <source>CORBA IDL Compiler</source>
-        <translation>CORBA IDL Derleyicisi</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="430"/>
-        <source>(unknown)</source>
-        <translation>(bilinmeyen)</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="273"/>
-        <source>Spell Checker - PyEnchant</source>
-        <translation>Heceleme Kontrolü - PyEnchant</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="378"/>
-        <source>(not configured)</source>
-        <translation>(ayarlanmadı)</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="432"/>
-        <source>(not executable)</source>
-        <translation>(yürütülemez)</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="469"/>
-        <source>(not found)</source>
-        <translation>(bulunamadı)</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="290"/>
-        <source>Source Highlighter - Pygments</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="92"/>
-        <source>Translation Converter (Qt)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="106"/>
-        <source>Qt Designer</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="119"/>
-        <source>Qt Linguist</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="132"/>
-        <source>Qt Assistant</source>
-        <translation type="unfinished">Qt Yardımcı</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="139"/>
-        <source>Translation Extractor (Python, PyQt4)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="144"/>
-        <source>Forms Compiler (Python, PyQt4)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="149"/>
-        <source>Resource Compiler (Python, PyQt4)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="156"/>
-        <source>Translation Extractor (Python, PyQt5)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="161"/>
-        <source>Forms Compiler (Python, PyQt5)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="166"/>
-        <source>Resource Compiler (Python, PyQt5)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../Preferences/ProgramsDialog.py" line="249"/>
+        <source>CORBA IDL Compiler</source>
+        <translation>CORBA IDL Derleyicisi</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="443"/>
+        <source>(unknown)</source>
+        <translation>(bilinmeyen)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="281"/>
+        <source>Spell Checker - PyEnchant</source>
+        <translation>Heceleme Kontrolü - PyEnchant</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="388"/>
+        <source>(not configured)</source>
+        <translation>(ayarlanmadı)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="446"/>
+        <source>(not executable)</source>
+        <translation>(yürütülemez)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="489"/>
+        <source>(not found)</source>
+        <translation>(bulunamadı)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="298"/>
+        <source>Source Highlighter - Pygments</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="100"/>
+        <source>Translation Converter (Qt)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="114"/>
+        <source>Qt Designer</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="127"/>
+        <source>Qt Linguist</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="140"/>
+        <source>Qt Assistant</source>
+        <translation type="unfinished">Qt Yardımcı</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="147"/>
+        <source>Translation Extractor (Python, PyQt4)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="152"/>
+        <source>Forms Compiler (Python, PyQt4)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="157"/>
+        <source>Resource Compiler (Python, PyQt4)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="164"/>
+        <source>Translation Extractor (Python, PyQt5)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="169"/>
+        <source>Forms Compiler (Python, PyQt5)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="174"/>
+        <source>Resource Compiler (Python, PyQt5)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="257"/>
         <source>Protobuf Compiler</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="255"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="263"/>
         <source>gRPC Compiler</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="411"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="422"/>
         <source>(module not found)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="190"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="198"/>
         <source>Translation Extractor (Python, PySide2)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="200"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="208"/>
         <source>Resource Compiler (Python, PySide2)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="195"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="203"/>
         <source>Forms Compiler (Python, PySide2)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="223"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="231"/>
         <source>conda Manager</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="230"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="238"/>
         <source>PyPI Package Management</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="297"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="305"/>
         <source>MicroPython - MPY Cross Compiler</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="300"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="308"/>
         <source>MicroPython - ESP Tool</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="306"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="314"/>
         <source>MicroPython - PyBoard Flasher</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.ui" line="42"/>
+        <source>Show:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.ui" line="49"/>
+        <source>Select the kind of tools to show</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="56"/>
+        <source>All Supported Tools</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="56"/>
+        <source>Available Tools Only</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="56"/>
+        <source>Unavailable Tools Only</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>Project</name>
--- a/eric6/i18n/eric6_zh_CN.ts	Tue Feb 18 19:38:58 2020 +0100
+++ b/eric6/i18n/eric6_zh_CN.ts	Wed Feb 19 19:38:36 2020 +0100
@@ -51955,62 +51955,62 @@
 <context>
     <name>PluginManager</name>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="405"/>
+        <location filename="../PluginManager/PluginManager.py" line="409"/>
         <source>Module is missing the &apos;autoactivate&apos; attribute.</source>
         <translation>模块丢失“autoactivate”属性。</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="416"/>
+        <location filename="../PluginManager/PluginManager.py" line="420"/>
         <source>Module is missing the &apos;pluginType&apos; and/or &apos;pluginTypename&apos; attributes.</source>
         <translation>模块丢失“pluginType”和/或“pluginTypename”属性。</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="627"/>
+        <location filename="../PluginManager/PluginManager.py" line="631"/>
         <source>Incompatible plugin activation method.</source>
         <translation>插件激活方法不兼容。</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="1210"/>
+        <location filename="../PluginManager/PluginManager.py" line="1214"/>
         <source>Plugin Manager Error</source>
         <translation>插件管理错误</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="211"/>
+        <location filename="../PluginManager/PluginManager.py" line="212"/>
         <source>Could not create a package for {0}.</source>
         <translation>无法为 {0} 创建包。</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="244"/>
+        <location filename="../PluginManager/PluginManager.py" line="245"/>
         <source>The internal plugin directory &lt;b&gt;{0}&lt;/b&gt; does not exits.</source>
         <translation>内置的插件目录 &lt;b&gt;{0}&lt;/b&gt; 不存在。</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="440"/>
+        <location filename="../PluginManager/PluginManager.py" line="444"/>
         <source>Module failed to load. Error: {0}</source>
         <translation>模块加载失败。错误:{0}</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="1210"/>
+        <location filename="../PluginManager/PluginManager.py" line="1214"/>
         <source>&lt;p&gt;The plugin download directory &lt;b&gt;{0}&lt;/b&gt; could not be created. Please configure it via the configuration dialog.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
         <translation>&lt;p&gt;插件下载目录 &lt;b&gt;{0}&lt;/b&gt; 无法创建。请使用配置对话框进行配置。&lt;/p&gt;&lt;p&gt;原因:{1}&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="1291"/>
+        <location filename="../PluginManager/PluginManager.py" line="1295"/>
         <source>Error downloading file</source>
         <translation>下载文件出错</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="1291"/>
+        <location filename="../PluginManager/PluginManager.py" line="1295"/>
         <source>&lt;p&gt;Could not download the requested file from {0}.&lt;/p&gt;&lt;p&gt;Error: {1}&lt;/p&gt;</source>
         <translation>&lt;p&gt;无法从 {0} 下载指定文件。&lt;/p&gt;&lt;p&gt;错误:{1}&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="1328"/>
+        <location filename="../PluginManager/PluginManager.py" line="1332"/>
         <source>New plugin versions available</source>
         <translation>新插件版本可用</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginManager.py" line="1328"/>
+        <location filename="../PluginManager/PluginManager.py" line="1332"/>
         <source>&lt;p&gt;There are new plug-ins or plug-in updates available. Use the plug-in repository dialog to get them.&lt;/p&gt;</source>
         <translation>&lt;p&gt;有新的插件或插件更新可用。请使用插件仓库对话框来获取它们。&lt;/p&gt;</translation>
     </message>
@@ -52520,7 +52520,7 @@
         <translation>全局插件文件夹</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginUninstallDialog.py" line="198"/>
+        <location filename="../PluginManager/PluginUninstallDialog.py" line="200"/>
         <source>Plugin Uninstallation</source>
         <translation>插件卸载</translation>
     </message>
@@ -52530,17 +52530,17 @@
         <translation>&lt;p&gt;插件 &lt;b&gt;{0}&lt;/b&gt; 无法反加载。放弃操作…&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginUninstallDialog.py" line="121"/>
+        <location filename="../PluginManager/PluginUninstallDialog.py" line="123"/>
         <source>&lt;p&gt;The plugin &lt;b&gt;{0}&lt;/b&gt; has no &apos;packageName&apos; attribute. Aborting...&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginUninstallDialog.py" line="177"/>
+        <location filename="../PluginManager/PluginUninstallDialog.py" line="179"/>
         <source>&lt;p&gt;The plugin package &lt;b&gt;{0}&lt;/b&gt; could not be removed. Aborting...&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginUninstallDialog.py" line="198"/>
+        <location filename="../PluginManager/PluginUninstallDialog.py" line="200"/>
         <source>&lt;p&gt;The plugin &lt;b&gt;{0}&lt;/b&gt; was uninstalled successfully from {1}.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
@@ -53144,180 +53144,205 @@
         <translation>版本</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="49"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="51"/>
         <source>Search</source>
         <translation>搜索</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="51"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="53"/>
         <source>Press to search for programs</source>
         <translation>点击搜索程序</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="207"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="215"/>
         <source>Forms Compiler (Ruby, Qt4)</source>
         <translation>窗体编译器(Ruby, Qt4)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="212"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="220"/>
         <source>Resource Compiler (Ruby, Qt4)</source>
         <translation>资源编译器(Ruby, Qt4)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="241"/>
-        <source>CORBA IDL Compiler</source>
-        <translation>CORBA IDL 编译器</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="378"/>
-        <source>(not configured)</source>
-        <translation>(未配置)</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="432"/>
-        <source>(not executable)</source>
-        <translation>(不可执行)</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="469"/>
-        <source>(not found)</source>
-        <translation>(未找到)</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="430"/>
-        <source>(unknown)</source>
-        <translation>(未知)</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="273"/>
-        <source>Spell Checker - PyEnchant</source>
-        <translation>拼写检查器——PyEnchant</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="178"/>
-        <source>Forms Compiler (Python, PySide)</source>
-        <translation>窗体编译器(Python, PySide)</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="183"/>
-        <source>Resource Compiler (Python, PySide)</source>
-        <translation>资源编译器(Python, PySide)</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="173"/>
-        <source>Translation Extractor (Python, PySide)</source>
-        <translation>翻译提取工具(Python, PySide)</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="290"/>
-        <source>Source Highlighter - Pygments</source>
-        <translation>代码高亮工具——Pygments</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="92"/>
-        <source>Translation Converter (Qt)</source>
-        <translation>翻译转换器(Qt)</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="106"/>
-        <source>Qt Designer</source>
-        <translation>Qt 设计师</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="119"/>
-        <source>Qt Linguist</source>
-        <translation>Qt 语言家</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="132"/>
-        <source>Qt Assistant</source>
-        <translation>Qt 助手</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="139"/>
-        <source>Translation Extractor (Python, PyQt4)</source>
-        <translation>翻译提取工具(Python, PyQt4)</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="144"/>
-        <source>Forms Compiler (Python, PyQt4)</source>
-        <translation>窗体编译器(Python, PyQt4)</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="149"/>
-        <source>Resource Compiler (Python, PyQt4)</source>
-        <translation>资源编译器(Python, PyQt4)</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="156"/>
-        <source>Translation Extractor (Python, PyQt5)</source>
-        <translation>翻译提取工具(Python, PyQt5)</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="161"/>
-        <source>Forms Compiler (Python, PyQt5)</source>
-        <translation>窗体编译器(Python, PyQt5)</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="166"/>
-        <source>Resource Compiler (Python, PyQt5)</source>
-        <translation>资源编译器(Python, PyQt5)</translation>
-    </message>
-    <message>
         <location filename="../Preferences/ProgramsDialog.py" line="249"/>
+        <source>CORBA IDL Compiler</source>
+        <translation>CORBA IDL 编译器</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="388"/>
+        <source>(not configured)</source>
+        <translation>(未配置)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="446"/>
+        <source>(not executable)</source>
+        <translation>(不可执行)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="489"/>
+        <source>(not found)</source>
+        <translation>(未找到)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="443"/>
+        <source>(unknown)</source>
+        <translation>(未知)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="281"/>
+        <source>Spell Checker - PyEnchant</source>
+        <translation>拼写检查器——PyEnchant</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="186"/>
+        <source>Forms Compiler (Python, PySide)</source>
+        <translation>窗体编译器(Python, PySide)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="191"/>
+        <source>Resource Compiler (Python, PySide)</source>
+        <translation>资源编译器(Python, PySide)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="181"/>
+        <source>Translation Extractor (Python, PySide)</source>
+        <translation>翻译提取工具(Python, PySide)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="298"/>
+        <source>Source Highlighter - Pygments</source>
+        <translation>代码高亮工具——Pygments</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="100"/>
+        <source>Translation Converter (Qt)</source>
+        <translation>翻译转换器(Qt)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="114"/>
+        <source>Qt Designer</source>
+        <translation>Qt 设计师</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="127"/>
+        <source>Qt Linguist</source>
+        <translation>Qt 语言家</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="140"/>
+        <source>Qt Assistant</source>
+        <translation>Qt 助手</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="147"/>
+        <source>Translation Extractor (Python, PyQt4)</source>
+        <translation>翻译提取工具(Python, PyQt4)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="152"/>
+        <source>Forms Compiler (Python, PyQt4)</source>
+        <translation>窗体编译器(Python, PyQt4)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="157"/>
+        <source>Resource Compiler (Python, PyQt4)</source>
+        <translation>资源编译器(Python, PyQt4)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="164"/>
+        <source>Translation Extractor (Python, PyQt5)</source>
+        <translation>翻译提取工具(Python, PyQt5)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="169"/>
+        <source>Forms Compiler (Python, PyQt5)</source>
+        <translation>窗体编译器(Python, PyQt5)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="174"/>
+        <source>Resource Compiler (Python, PyQt5)</source>
+        <translation>资源编译器(Python, PyQt5)</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="257"/>
         <source>Protobuf Compiler</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="255"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="263"/>
         <source>gRPC Compiler</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="411"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="422"/>
         <source>(module not found)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="190"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="198"/>
         <source>Translation Extractor (Python, PySide2)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="200"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="208"/>
         <source>Resource Compiler (Python, PySide2)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="195"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="203"/>
         <source>Forms Compiler (Python, PySide2)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="223"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="231"/>
         <source>conda Manager</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="230"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="238"/>
         <source>PyPI Package Management</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="297"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="305"/>
         <source>MicroPython - MPY Cross Compiler</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="300"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="308"/>
         <source>MicroPython - ESP Tool</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="306"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="314"/>
         <source>MicroPython - PyBoard Flasher</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.ui" line="42"/>
+        <source>Show:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.ui" line="49"/>
+        <source>Select the kind of tools to show</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="56"/>
+        <source>All Supported Tools</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="56"/>
+        <source>Available Tools Only</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="56"/>
+        <source>Unavailable Tools Only</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>Project</name>

eric ide

mercurial