Sun, 21 Jun 2020 18:26:12 +0200
Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
--- a/docs/changelog Sat Jun 20 17:36:20 2020 +0200 +++ b/docs/changelog Sun Jun 21 18:26:12 2020 +0200 @@ -2,6 +2,9 @@ ---------- Version 20.7: - bug fixes +- General + - removed support for Python2 + - removed support for Qt4 (PyQt4 and pyside) - pip Interface -- added menu action for pip cache management - Code Style Checker
--- a/eric6.e4p Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6.e4p Sun Jun 21 18:26:12 2020 +0200 @@ -706,7 +706,6 @@ <Source>eric6/Preferences/ConfigurationPages/CooperationPage.py</Source> <Source>eric6/Preferences/ConfigurationPages/CorbaPage.py</Source> <Source>eric6/Preferences/ConfigurationPages/DebuggerGeneralPage.py</Source> - <Source>eric6/Preferences/ConfigurationPages/DebuggerPython2Page.py</Source> <Source>eric6/Preferences/ConfigurationPages/DebuggerPython3Page.py</Source> <Source>eric6/Preferences/ConfigurationPages/DiffColoursPage.py</Source> <Source>eric6/Preferences/ConfigurationPages/EditorAPIsPage.py</Source> @@ -1873,7 +1872,6 @@ <Form>eric6/Preferences/ConfigurationPages/CooperationPage.ui</Form> <Form>eric6/Preferences/ConfigurationPages/CorbaPage.ui</Form> <Form>eric6/Preferences/ConfigurationPages/DebuggerGeneralPage.ui</Form> - <Form>eric6/Preferences/ConfigurationPages/DebuggerPython2Page.ui</Form> <Form>eric6/Preferences/ConfigurationPages/DebuggerPython3Page.ui</Form> <Form>eric6/Preferences/ConfigurationPages/DiffColoursPage.ui</Form> <Form>eric6/Preferences/ConfigurationPages/EditorAPIsPage.ui</Form>
--- a/eric6/APIs/Python3/eric6.api Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/APIs/Python3/eric6.api Sun Jun 21 18:26:12 2020 +0200 @@ -718,8 +718,7 @@ eric6.Debugger.DebuggerInterfacePython.DebuggerInterfacePython.shutdown?4() eric6.Debugger.DebuggerInterfacePython.DebuggerInterfacePython.startRemote?4(port, runInConsole, venvName, originalPathString, workingDir=None) eric6.Debugger.DebuggerInterfacePython.DebuggerInterfacePython.startRemoteForProject?4(port, runInConsole, venvName, originalPathString, workingDir=None) -eric6.Debugger.DebuggerInterfacePython.DebuggerInterfacePython?1(debugServer, passive, pythonVariant) -eric6.Debugger.DebuggerInterfacePython.createDebuggerInterfacePython2?4(debugServer, passive) +eric6.Debugger.DebuggerInterfacePython.DebuggerInterfacePython?1(debugServer, passive) eric6.Debugger.DebuggerInterfacePython.createDebuggerInterfacePython3?4(debugServer, passive) eric6.Debugger.DebuggerInterfacePython.getRegistryData?4() eric6.Debugger.EditBreakpointDialog.EditBreakpointDialog.getAddData?4() @@ -3432,7 +3431,6 @@ eric6.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckService.SyntaxCheckService.removeLanguage?4(lang) eric6.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckService.SyntaxCheckService.serviceErrorJSON?4(fx, lang, fn, msg) eric6.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckService.SyntaxCheckService.serviceErrorJavaScript?4(fx, lang, fn, msg) -eric6.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckService.SyntaxCheckService.serviceErrorPy2?4(fx, lang, fn, msg) eric6.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckService.SyntaxCheckService.serviceErrorPy3?4(fx, lang, fn, msg) eric6.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckService.SyntaxCheckService.serviceErrorYAML?4(fx, lang, fn, msg) eric6.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckService.SyntaxCheckService.syntaxBatchCheck?4(argumentsList) @@ -3555,7 +3553,6 @@ eric6.Plugins.PluginCodeStyleChecker.CodeStyleCheckerPlugin.cancelStyleBatchCheck?4() eric6.Plugins.PluginCodeStyleChecker.CodeStyleCheckerPlugin.deactivate?4() eric6.Plugins.PluginCodeStyleChecker.CodeStyleCheckerPlugin.error?7 -eric6.Plugins.PluginCodeStyleChecker.CodeStyleCheckerPlugin.serviceErrorPy2?4(fx, lang, fn, msg) eric6.Plugins.PluginCodeStyleChecker.CodeStyleCheckerPlugin.serviceErrorPy3?4(fx, lang, fn, msg) eric6.Plugins.PluginCodeStyleChecker.CodeStyleCheckerPlugin.styleBatchCheck?4(argumentsList) eric6.Plugins.PluginCodeStyleChecker.CodeStyleCheckerPlugin.styleCheck?4(lang, filename, source, args) @@ -3625,7 +3622,6 @@ eric6.Plugins.PluginTabnanny.TabnannyPlugin.indentBatchCheck?4(argumentsList) eric6.Plugins.PluginTabnanny.TabnannyPlugin.indentCheck?4(lang, filename, source) eric6.Plugins.PluginTabnanny.TabnannyPlugin.indentChecked?7 -eric6.Plugins.PluginTabnanny.TabnannyPlugin.serviceErrorPy2?4(fx, lang, fn, msg) eric6.Plugins.PluginTabnanny.TabnannyPlugin.serviceErrorPy3?4(fx, lang, fn, msg) eric6.Plugins.PluginTabnanny.TabnannyPlugin?1(ui) eric6.Plugins.PluginTabnanny.author?7 @@ -6248,11 +6244,6 @@ eric6.Preferences.ConfigurationPages.DebuggerGeneralPage.PreviewModel.setColor?4(key, bgcolour) eric6.Preferences.ConfigurationPages.DebuggerGeneralPage.PreviewModel?1() eric6.Preferences.ConfigurationPages.DebuggerGeneralPage.create?4(dlg) -eric6.Preferences.ConfigurationPages.DebuggerPython2Page.DebuggerPython2Page.on_refreshButton_clicked?4() -eric6.Preferences.ConfigurationPages.DebuggerPython2Page.DebuggerPython2Page.on_venvDlgButton_clicked?4() -eric6.Preferences.ConfigurationPages.DebuggerPython2Page.DebuggerPython2Page.save?4() -eric6.Preferences.ConfigurationPages.DebuggerPython2Page.DebuggerPython2Page?1() -eric6.Preferences.ConfigurationPages.DebuggerPython2Page.create?4(dlg) eric6.Preferences.ConfigurationPages.DebuggerPython3Page.DebuggerPython3Page.on_refreshButton_clicked?4() eric6.Preferences.ConfigurationPages.DebuggerPython3Page.DebuggerPython3Page.on_venvDlgButton_clicked?4() eric6.Preferences.ConfigurationPages.DebuggerPython3Page.DebuggerPython3Page.save?4() @@ -6741,7 +6732,6 @@ eric6.Preferences.getProjectBrowserFlags?4(key, prefClass=Prefs) eric6.Preferences.getProtobuf?4(key, prefClass=Prefs) eric6.Preferences.getPython?4(key, prefClass=Prefs) -eric6.Preferences.getQt4DocDir?4(prefClass=Prefs) eric6.Preferences.getQt5DocDir?4(prefClass=Prefs) eric6.Preferences.getQt?4(key, prefClass=Prefs) eric6.Preferences.getQtTranslationsDir?4(prefClass=Prefs) @@ -6999,7 +6989,6 @@ eric6.Project.Project.Project.isProjectProtocol?4(fn) eric6.Project.Project.Project.isProjectResource?4(fn) eric6.Project.Project.Project.isProjectSource?4(fn) -eric6.Project.Project.Project.isPy2Project?4() eric6.Project.Project.Project.isPy3Project?4() eric6.Project.Project.Project.isPythonProject?4() eric6.Project.Project.Project.isRubyProject?4() @@ -8749,7 +8738,6 @@ eric6.UI.BrowserModel.BrowserFileItem.isPixmapFile?4() eric6.UI.BrowserModel.BrowserFileItem.isProjectFile?4() eric6.UI.BrowserModel.BrowserFileItem.isProtobufFile?4() -eric6.UI.BrowserModel.BrowserFileItem.isPython2File?4() eric6.UI.BrowserModel.BrowserFileItem.isPython3File?4() eric6.UI.BrowserModel.BrowserFileItem.isResourcesFile?4() eric6.UI.BrowserModel.BrowserFileItem.isRubyFile?4() @@ -9822,7 +9810,7 @@ eric6.VirtualEnv.VirtualenvAddEditDialog.VirtualenvAddEditDialog.on_pythonExecPicker_textChanged?4(txt) eric6.VirtualEnv.VirtualenvAddEditDialog.VirtualenvAddEditDialog.on_remoteCheckBox_toggled?4(checked) eric6.VirtualEnv.VirtualenvAddEditDialog.VirtualenvAddEditDialog.on_targetDirectoryPicker_textChanged?4(txt) -eric6.VirtualEnv.VirtualenvAddEditDialog.VirtualenvAddEditDialog?1(manager, venvName="", venvDirectory="", venvInterpreter="", venvVariant=3, isGlobal=False, isConda=False, isRemote=False, execPath="", parent=None) +eric6.VirtualEnv.VirtualenvAddEditDialog.VirtualenvAddEditDialog?1(manager, venvName="", venvDirectory="", venvInterpreter="", isGlobal=False, isConda=False, isRemote=False, execPath="", parent=None) eric6.VirtualEnv.VirtualenvConfigurationDialog.VirtualenvConfigurationDialog.getData?4() eric6.VirtualEnv.VirtualenvConfigurationDialog.VirtualenvConfigurationDialog.on_condaButton_toggled?4(checked) eric6.VirtualEnv.VirtualenvConfigurationDialog.VirtualenvConfigurationDialog.on_condaCloneButton_clicked?4() @@ -9845,7 +9833,7 @@ eric6.VirtualEnv.VirtualenvInterpreterSelectionDialog.VirtualenvInterpreterSelectionDialog.on_pythonExecPicker_textChanged?4(txt) eric6.VirtualEnv.VirtualenvInterpreterSelectionDialog.VirtualenvInterpreterSelectionDialog?1(venvName, venvDirectory, parent=None) eric6.VirtualEnv.VirtualenvManager.VirtualenvManager.DefaultKey?7 -eric6.VirtualEnv.VirtualenvManager.VirtualenvManager.addVirtualEnv?4(venvName, venvDirectory, venvInterpreter="", venvVariant=3, isGlobal=False, isConda=False, isRemote=False, execPath="") +eric6.VirtualEnv.VirtualenvManager.VirtualenvManager.addVirtualEnv?4(venvName, venvDirectory, venvInterpreter="", isGlobal=False, isConda=False, isRemote=False, execPath="") eric6.VirtualEnv.VirtualenvManager.VirtualenvManager.createVirtualEnv?4() eric6.VirtualEnv.VirtualenvManager.VirtualenvManager.deleteVirtualEnvs?4(venvNames) eric6.VirtualEnv.VirtualenvManager.VirtualenvManager.getDefaultEnvironment?4() @@ -9854,15 +9842,13 @@ eric6.VirtualEnv.VirtualenvManager.VirtualenvManager.getVirtualenvExecPath?4(venvName) eric6.VirtualEnv.VirtualenvManager.VirtualenvManager.getVirtualenvInterpreter?4(venvName) eric6.VirtualEnv.VirtualenvManager.VirtualenvManager.getVirtualenvNames?4(noRemote=False) -eric6.VirtualEnv.VirtualenvManager.VirtualenvManager.getVirtualenvNamesForVariant?4(variant) -eric6.VirtualEnv.VirtualenvManager.VirtualenvManager.getVirtualenvVariant?4(venvName) eric6.VirtualEnv.VirtualenvManager.VirtualenvManager.isCondaEnvironment?4(venvName) eric6.VirtualEnv.VirtualenvManager.VirtualenvManager.isGlobalEnvironment?4(venvName) eric6.VirtualEnv.VirtualenvManager.VirtualenvManager.isRemoteEnvironment?4(venvName) eric6.VirtualEnv.VirtualenvManager.VirtualenvManager.isUnique?4(venvName) eric6.VirtualEnv.VirtualenvManager.VirtualenvManager.removeVirtualEnvs?4(venvNames) -eric6.VirtualEnv.VirtualenvManager.VirtualenvManager.renameVirtualEnv?4(oldVenvName, venvName, venvDirectory, venvInterpreter, venvVariant, isGlobal, isConda, isRemote, execPath) -eric6.VirtualEnv.VirtualenvManager.VirtualenvManager.setVirtualEnv?4(venvName, venvDirectory, venvInterpreter, venvVariant, isGlobal, isConda, isRemote, execPath) +eric6.VirtualEnv.VirtualenvManager.VirtualenvManager.renameVirtualEnv?4(oldVenvName, venvName, venvDirectory, venvInterpreter, isGlobal, isConda, isRemote, execPath) +eric6.VirtualEnv.VirtualenvManager.VirtualenvManager.setVirtualEnv?4(venvName, venvDirectory, venvInterpreter, isGlobal, isConda, isRemote, execPath) eric6.VirtualEnv.VirtualenvManager.VirtualenvManager.showVirtualenvManagerDialog?4(modal=False) eric6.VirtualEnv.VirtualenvManager.VirtualenvManager.shutdown?4() eric6.VirtualEnv.VirtualenvManager.VirtualenvManager.virtualEnvironmentAdded?7
--- a/eric6/APIs/Python3/eric6.bas Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/APIs/Python3/eric6.bas Sun Jun 21 18:26:12 2020 +0200 @@ -132,7 +132,6 @@ DebuggerPropertiesDialog QDialog Ui_DebuggerPropertiesDialog DebuggerPropertiesReader XMLStreamReaderBase DebuggerPropertiesWriter XMLStreamWriterBase -DebuggerPython2Page ConfigurationPageBase Ui_DebuggerPython2Page DebuggerPython3Page ConfigurationPageBase Ui_DebuggerPython3Page DeepLEngine TranslationEngine DefaultResolver BaseResolver
--- a/eric6/CodeTemplates/impl_pyqt.py.tmpl Sat Jun 20 17:36:20 2020 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,25 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -Module implementing $CLASSNAME$. -""" - -from PyQt4.QtCore import pyqtSlot -from PyQt4.QtGui import $SUPERCLASS$ - -from .Ui_$FORMFILE$ import Ui_$FORMCLASS$ - - -class $CLASSNAME$($SUPERCLASS$, Ui_$FORMCLASS$): - """ - Class documentation goes here. - """ - def __init__(self, parent=None): - """ - Constructor - - @param parent reference to the parent widget - @type QWidget - """ - super($CLASSNAME$, self).__init__(parent) - self.setupUi(self)
--- a/eric6/CodeTemplates/impl_pyqt.py2.tmpl Sat Jun 20 17:36:20 2020 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,25 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -Module implementing $CLASSNAME$. -""" - -from PyQt4.QtCore import pyqtSignature -from PyQt4.QtGui import $SUPERCLASS$ - -from .Ui_$FORMFILE$ import Ui_$FORMCLASS$ - - -class $CLASSNAME$($SUPERCLASS$, Ui_$FORMCLASS$): - """ - Class documentation goes here. - """ - def __init__(self, parent=None): - """ - Constructor - - @param parent reference to the parent widget - @type QWidget - """ - $SUPERCLASS$.__init__(self, parent) - self.setupUi(self)
--- a/eric6/CodeTemplates/impl_pyqt5.py2.tmpl Sat Jun 20 17:36:20 2020 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,25 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -Module implementing $CLASSNAME$. -""" - -from PyQt5.QtCore import pyqtSlot -from PyQt5.QtWidgets import $SUPERCLASS$ - -from .Ui_$FORMFILE$ import Ui_$FORMCLASS$ - - -class $CLASSNAME$($SUPERCLASS$, Ui_$FORMCLASS$): - """ - Class documentation goes here. - """ - def __init__(self, parent=None): - """ - Constructor - - @param parent reference to the parent widget - @type QWidget - """ - super($CLASSNAME$, self).__init__(parent) - self.setupUi(self)
--- a/eric6/CodeTemplates/impl_pyside.py.tmpl Sat Jun 20 17:36:20 2020 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,25 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -Module implementing $CLASSNAME$. -""" - -from PySide.QtCore import Slot -from PySide.QtGui import $SUPERCLASS$ - -from .Ui_$FORMFILE$ import Ui_$FORMCLASS$ - - -class $CLASSNAME$($SUPERCLASS$, Ui_$FORMCLASS$): - """ - Class documentation goes here. - """ - def __init__(self, parent=None): - """ - Constructor - - @param parent reference to the parent widget - @type QWidget - """ - $SUPERCLASS$.__init__(self, parent) - self.setupUi(self)
--- a/eric6/CodeTemplates/impl_pyside.py2.tmpl Sat Jun 20 17:36:20 2020 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,25 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -Module implementing $CLASSNAME$. -""" - -from PySide.QtCore import Slot -from PySide.QtGui import $SUPERCLASS$ - -from .Ui_$FORMFILE$ import Ui_$FORMCLASS$ - - -class $CLASSNAME$($SUPERCLASS$, Ui_$FORMCLASS$): - """ - Class documentation goes here. - """ - def __init__(self, parent=None): - """ - Constructor - - @param parent reference to the parent widget - @type QWidget - """ - $SUPERCLASS$.__init__(self, parent) - self.setupUi(self)
--- a/eric6/CodeTemplates/impl_pyside2.py2.tmpl Sat Jun 20 17:36:20 2020 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,25 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -Module implementing $CLASSNAME$. -""" - -from PySide2.QtCore import Slot -from PySide2.QtWidgets import $SUPERCLASS$ - -from .Ui_$FORMFILE$ import Ui_$FORMCLASS$ - - -class $CLASSNAME$($SUPERCLASS$, Ui_$FORMCLASS$): - """ - Class documentation goes here. - """ - def __init__(self, parent=None): - """ - Constructor - - @param parent reference to the parent widget - @type QWidget - """ - super($CLASSNAME$, self).__init__(parent) - self.setupUi(self)
--- a/eric6/DebugClients/Python/DebugClientBase.py Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/DebugClients/Python/DebugClientBase.py Sun Jun 21 18:26:12 2020 +0200 @@ -1590,7 +1590,7 @@ def __formatQtVariable(self, value, qttype): """ - Private method to produce a formatted output of a simple Qt4/Qt5 type. + Private method to produce a formatted output of a simple Qt5 type. @param value variable to be formatted @param qttype type of the Qt variable to be formatted (string)
--- a/eric6/DebugClients/Python/DebugConfig.py Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/DebugClients/Python/DebugConfig.py Sun Jun 21 18:26:12 2020 +0200 @@ -26,7 +26,7 @@ BatchSize = 200 ConfigQtNames = ( - 'PyQt5.', 'PyQt4.', 'PySide2.', 'PySide.', 'Shiboken.EnumType' + 'PyQt5.', 'PySide2.', 'Shiboken.EnumType' ) ConfigKnownQtTypes = ( '.QChar', '.QByteArray', '.QString', '.QStringList', '.QPoint', '.QPointF',
--- a/eric6/DebugClients/Python/ThreadExtension.py Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/DebugClients/Python/ThreadExtension.py Sun Jun 21 18:26:12 2020 +0200 @@ -260,9 +260,9 @@ if fullname in sys.modules or not self.debugging: return None - if fullname in [self.threadModName, 'PyQt4.QtCore', 'PyQt5.QtCore', - 'PySide.QtCore', 'PySide2.QtCore', 'greenlet', - 'threading'] and self.enableImportHooks: + if fullname in [self.threadModName, 'PyQt5.QtCore', 'PySide2.QtCore', + 'greenlet', 'threading' + ] and self.enableImportHooks: # Disable hook to be able to import original module self.enableImportHooks = False return self @@ -372,9 +372,8 @@ module._DummyThread = DummyThreadWrapper # Add hook for *.QThread - elif (fullname in ['PyQt4.QtCore', 'PyQt5.QtCore', - 'PySide.QtCore', 'PySide2.QtCore'] and - self.qtThreadAttached is False): + elif (fullname in ['PyQt5.QtCore', 'PySide2.QtCore'] and + self.qtThreadAttached is False): self.qtThreadAttached = True # _debugClient as a class attribute can't be accessed in following # class. Therefore we need a global variable.
--- a/eric6/Debugger/DebugServer.py Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/Debugger/DebugServer.py Sun Jun 21 18:26:12 2020 +0200 @@ -9,7 +9,6 @@ import os -import sys from PyQt5.QtCore import pyqtSignal, QModelIndex from PyQt5.QtNetwork import ( @@ -216,14 +215,6 @@ self.clientType = Preferences.Prefs.settings.value('DebugClient/Type') if self.clientType is None: self.clientType = 'Python3' - # Change clientType if dependent interpreter does not exist anymore - # (maybe deinstalled,...) - elif self.clientType == 'Python2' and Preferences.getDebugger( - "Python2VirtualEnv") == '' and sys.version_info[0] >= 3: - self.clientType = 'Python3' - elif self.clientType == 'Python3' and Preferences.getDebugger( - "Python3VirtualEnv") == '' and sys.version_info[0] == 2: - self.clientType = 'Python2' self.lastClientType = '' self.__autoClearShell = False
--- a/eric6/Debugger/DebugUI.py Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/Debugger/DebugUI.py Sun Jun 21 18:26:12 2020 +0200 @@ -828,9 +828,7 @@ cap = self.debugServer.getClientCapabilities(language) break else: - if editor.isPy2File(): - cap = self.debugServer.getClientCapabilities('Python2') - elif editor.isPy3File(): + if editor.isPy3File(): cap = self.debugServer.getClientCapabilities('Python3') elif editor.isRubyFile(): cap = self.debugServer.getClientCapabilities('Ruby')
--- a/eric6/Debugger/DebuggerInterfacePython.py Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/Debugger/DebuggerInterfacePython.py Sun Jun 21 18:26:12 2020 +0200 @@ -33,10 +33,10 @@ class DebuggerInterfacePython(QObject): """ - Class implementing the debugger interface for the debug server for Python 2 - and Python 3. + Class implementing the debugger interface for the debug server for + Python 3. """ - def __init__(self, debugServer, passive, pythonVariant): + def __init__(self, debugServer, passive): """ Constructor @@ -44,8 +44,6 @@ @type DebugServer @param passive flag indicating passive connection mode @type bool - @param pythonVariant Python variant to instantiate for - @type str (one of Python2 or Python3) """ super(DebuggerInterfacePython, self).__init__() @@ -55,7 +53,6 @@ self.debugServer = debugServer self.passive = passive self.process = None - self.__variant = pythonVariant self.__startedVenv = "" self.qsock = None @@ -171,15 +168,11 @@ global origPathEnv if not venvName: - if self.__variant == "Python2": - venvName = Preferences.getDebugger("Python2VirtualEnv") - else: - venvName = Preferences.getDebugger("Python3VirtualEnv") + venvName = Preferences.getDebugger("Python3VirtualEnv") venvManager = e5App().getObject("VirtualEnvManager") interpreter = venvManager.getVirtualenvInterpreter(venvName) execPath = venvManager.getVirtualenvExecPath(venvName) - if (interpreter == "" and - int(self.__variant[-1]) == sys.version_info[0]): + if interpreter == "": # use the interpreter used to run eric for identical variants interpreter = sys.executable.replace("w.exe", ".exe") if interpreter == "": @@ -187,36 +180,25 @@ None, self.tr("Start Debugger"), self.tr( - """<p>No suitable {0} environment configured.</p>""") - .format(self.__variant)) + """<p>No suitable Python3 environment configured.</p>""") + ) return None, False, "" - if self.__variant == "Python2": - debugClientType = Preferences.getDebugger("DebugClientType") - else: - debugClientType = Preferences.getDebugger("DebugClientType3") + debugClientType = Preferences.getDebugger("DebugClientType3") if debugClientType == "standard": debugClient = os.path.join(getConfig('ericDir'), "DebugClients", "Python", "DebugClient.py") else: - if self.__variant == "Python2": - debugClient = Preferences.getDebugger("DebugClient") - else: - debugClient = Preferences.getDebugger("DebugClient3") + debugClient = Preferences.getDebugger("DebugClient3") if debugClient == "": debugClient = os.path.join(sys.path[0], "DebugClients", "Python", "DebugClient.py") - if self.__variant == "Python2": - redirect = str(Preferences.getDebugger("PythonRedirect")) - noencoding = (Preferences.getDebugger("PythonNoEncoding") and - '--no-encoding' or '') - else: - redirect = str(Preferences.getDebugger("Python3Redirect")) - noencoding = (Preferences.getDebugger("Python3NoEncoding") and - '--no-encoding' or '') + redirect = str(Preferences.getDebugger("Python3Redirect")) + noencoding = (Preferences.getDebugger("Python3NoEncoding") and + '--no-encoding' or '') if Preferences.getDebugger("RemoteDbgEnabled"): ipaddr = self.debugServer.getHostAddress(False) @@ -354,9 +336,7 @@ if not venvName: venvName = project.getDebugProperty("VIRTUALENV") if not venvName: - if project.getProjectLanguage() == "Python2": - venvName = Preferences.getDebugger("Python2VirtualEnv") - elif project.getProjectLanguage() == "Python3": + if project.getProjectLanguage() == "Python3": venvName = Preferences.getDebugger("Python3VirtualEnv") redirect = str(project.getDebugProperty("REDIRECT")) @@ -375,8 +355,8 @@ None, self.tr("Start Debugger"), self.tr( - """<p>No suitable {0} environment configured.</p>""") - .format(self.__variant)) + """<p>No suitable Python3 environment configured.</p>""") + ) return None, self.__isNetworked, "" if project.getDebugProperty("REMOTEDEBUGGER"): @@ -1305,21 +1285,6 @@ self.qsock.flush() -def createDebuggerInterfacePython2(debugServer, passive): - """ - Module function to create a debugger interface instance. - - - @param debugServer reference to the debug server - @type DebugServer - @param passive flag indicating passive connection mode - @type bool - @return instantiated debugger interface - @rtype DebuggerInterfacePython - """ - return DebuggerInterfacePython(debugServer, passive, "Python2") - - def createDebuggerInterfacePython3(debugServer, passive): """ Module function to create a debugger interface instance. @@ -1332,7 +1297,7 @@ @return instantiated debugger interface @rtype DebuggerInterfacePython """ - return DebuggerInterfacePython(debugServer, passive, "Python3") + return DebuggerInterfacePython(debugServer, passive) def getRegistryData(): @@ -1345,13 +1310,6 @@ function @rtype list of tuple of (str, int, list of str, function) """ - py2Exts = [] - for ext in Preferences.getDebugger("PythonExtensions").split(): - if ext.startswith("."): - py2Exts.append(ext) - else: - py2Exts.append(".{0}".format(ext)) - py3Exts = [] for ext in Preferences.getDebugger("Python3Extensions").split(): if ext.startswith("."): @@ -1360,13 +1318,6 @@ py3Exts.append(".{0}".format(ext)) registryData = [] - if py2Exts and (Preferences.getDebugger("Python2VirtualEnv") or - sys.version_info[0] == 2): - registryData.append( - ("Python2", ClientDefaultCapabilities, py2Exts, - createDebuggerInterfacePython2) - ) - if py3Exts and (Preferences.getDebugger("Python3VirtualEnv") or sys.version_info[0] >= 3): registryData.append(
--- a/eric6/Documentation/Help/source.qhp Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/Documentation/Help/source.qhp Sun Jun 21 18:26:12 2020 +0200 @@ -735,7 +735,6 @@ <section title="eric6.Preferences.ConfigurationPages.CooperationPage" ref="eric6.Preferences.ConfigurationPages.CooperationPage.html" /> <section title="eric6.Preferences.ConfigurationPages.CorbaPage" ref="eric6.Preferences.ConfigurationPages.CorbaPage.html" /> <section title="eric6.Preferences.ConfigurationPages.DebuggerGeneralPage" ref="eric6.Preferences.ConfigurationPages.DebuggerGeneralPage.html" /> - <section title="eric6.Preferences.ConfigurationPages.DebuggerPython2Page" ref="eric6.Preferences.ConfigurationPages.DebuggerPython2Page.html" /> <section title="eric6.Preferences.ConfigurationPages.DebuggerPython3Page" ref="eric6.Preferences.ConfigurationPages.DebuggerPython3Page.html" /> <section title="eric6.Preferences.ConfigurationPages.DiffColoursPage" ref="eric6.Preferences.ConfigurationPages.DiffColoursPage.html" /> <section title="eric6.Preferences.ConfigurationPages.EditorAPIsPage" ref="eric6.Preferences.ConfigurationPages.EditorAPIsPage.html" /> @@ -2183,7 +2182,6 @@ <keyword name="BrowserFileItem.isPixmapFile" id="BrowserFileItem.isPixmapFile" ref="eric6.UI.BrowserModel.html#BrowserFileItem.isPixmapFile" /> <keyword name="BrowserFileItem.isProjectFile" id="BrowserFileItem.isProjectFile" ref="eric6.UI.BrowserModel.html#BrowserFileItem.isProjectFile" /> <keyword name="BrowserFileItem.isProtobufFile" id="BrowserFileItem.isProtobufFile" ref="eric6.UI.BrowserModel.html#BrowserFileItem.isProtobufFile" /> - <keyword name="BrowserFileItem.isPython2File" id="BrowserFileItem.isPython2File" ref="eric6.UI.BrowserModel.html#BrowserFileItem.isPython2File" /> <keyword name="BrowserFileItem.isPython3File" id="BrowserFileItem.isPython3File" ref="eric6.UI.BrowserModel.html#BrowserFileItem.isPython3File" /> <keyword name="BrowserFileItem.isResourcesFile" id="BrowserFileItem.isResourcesFile" ref="eric6.UI.BrowserModel.html#BrowserFileItem.isResourcesFile" /> <keyword name="BrowserFileItem.isRubyFile" id="BrowserFileItem.isRubyFile" ref="eric6.UI.BrowserModel.html#BrowserFileItem.isRubyFile" /> @@ -2599,7 +2597,6 @@ <keyword name="CodeStyleCheckerPlugin.batchJobDone" id="CodeStyleCheckerPlugin.batchJobDone" ref="eric6.Plugins.PluginCodeStyleChecker.html#CodeStyleCheckerPlugin.batchJobDone" /> <keyword name="CodeStyleCheckerPlugin.cancelStyleBatchCheck" id="CodeStyleCheckerPlugin.cancelStyleBatchCheck" ref="eric6.Plugins.PluginCodeStyleChecker.html#CodeStyleCheckerPlugin.cancelStyleBatchCheck" /> <keyword name="CodeStyleCheckerPlugin.deactivate" id="CodeStyleCheckerPlugin.deactivate" ref="eric6.Plugins.PluginCodeStyleChecker.html#CodeStyleCheckerPlugin.deactivate" /> - <keyword name="CodeStyleCheckerPlugin.serviceErrorPy2" id="CodeStyleCheckerPlugin.serviceErrorPy2" ref="eric6.Plugins.PluginCodeStyleChecker.html#CodeStyleCheckerPlugin.serviceErrorPy2" /> <keyword name="CodeStyleCheckerPlugin.serviceErrorPy3" id="CodeStyleCheckerPlugin.serviceErrorPy3" ref="eric6.Plugins.PluginCodeStyleChecker.html#CodeStyleCheckerPlugin.serviceErrorPy3" /> <keyword name="CodeStyleCheckerPlugin.styleBatchCheck" id="CodeStyleCheckerPlugin.styleBatchCheck" ref="eric6.Plugins.PluginCodeStyleChecker.html#CodeStyleCheckerPlugin.styleBatchCheck" /> <keyword name="CodeStyleCheckerPlugin.styleCheck" id="CodeStyleCheckerPlugin.styleCheck" ref="eric6.Plugins.PluginCodeStyleChecker.html#CodeStyleCheckerPlugin.styleCheck" /> @@ -3541,13 +3538,6 @@ <keyword name="DebuggerPropertiesWriter (Constructor)" id="DebuggerPropertiesWriter (Constructor)" ref="eric6.E5XML.DebuggerPropertiesWriter.html#DebuggerPropertiesWriter.__init__" /> <keyword name="DebuggerPropertiesWriter (Module)" id="DebuggerPropertiesWriter (Module)" ref="eric6.E5XML.DebuggerPropertiesWriter.html" /> <keyword name="DebuggerPropertiesWriter.writeXML" id="DebuggerPropertiesWriter.writeXML" ref="eric6.E5XML.DebuggerPropertiesWriter.html#DebuggerPropertiesWriter.writeXML" /> - <keyword name="DebuggerPython2Page" id="DebuggerPython2Page" ref="eric6.Preferences.ConfigurationPages.DebuggerPython2Page.html#DebuggerPython2Page" /> - <keyword name="DebuggerPython2Page (Constructor)" id="DebuggerPython2Page (Constructor)" ref="eric6.Preferences.ConfigurationPages.DebuggerPython2Page.html#DebuggerPython2Page.__init__" /> - <keyword name="DebuggerPython2Page (Module)" id="DebuggerPython2Page (Module)" ref="eric6.Preferences.ConfigurationPages.DebuggerPython2Page.html" /> - <keyword name="DebuggerPython2Page.__populateAndSetVenvComboBox" id="DebuggerPython2Page.__populateAndSetVenvComboBox" ref="eric6.Preferences.ConfigurationPages.DebuggerPython2Page.html#DebuggerPython2Page.__populateAndSetVenvComboBox" /> - <keyword name="DebuggerPython2Page.on_refreshButton_clicked" id="DebuggerPython2Page.on_refreshButton_clicked" ref="eric6.Preferences.ConfigurationPages.DebuggerPython2Page.html#DebuggerPython2Page.on_refreshButton_clicked" /> - <keyword name="DebuggerPython2Page.on_venvDlgButton_clicked" id="DebuggerPython2Page.on_venvDlgButton_clicked" ref="eric6.Preferences.ConfigurationPages.DebuggerPython2Page.html#DebuggerPython2Page.on_venvDlgButton_clicked" /> - <keyword name="DebuggerPython2Page.save" id="DebuggerPython2Page.save" ref="eric6.Preferences.ConfigurationPages.DebuggerPython2Page.html#DebuggerPython2Page.save" /> <keyword name="DebuggerPython3Page" id="DebuggerPython3Page" ref="eric6.Preferences.ConfigurationPages.DebuggerPython3Page.html#DebuggerPython3Page" /> <keyword name="DebuggerPython3Page (Constructor)" id="DebuggerPython3Page (Constructor)" ref="eric6.Preferences.ConfigurationPages.DebuggerPython3Page.html#DebuggerPython3Page.__init__" /> <keyword name="DebuggerPython3Page (Module)" id="DebuggerPython3Page (Module)" ref="eric6.Preferences.ConfigurationPages.DebuggerPython3Page.html" /> @@ -9882,7 +9872,6 @@ <keyword name="MiniEditor.__getWord" id="MiniEditor.__getWord" ref="eric6.QScintilla.MiniEditor.html#MiniEditor.__getWord" /> <keyword name="MiniEditor.__initContextMenu" id="MiniEditor.__initContextMenu" ref="eric6.QScintilla.MiniEditor.html#MiniEditor.__initContextMenu" /> <keyword name="MiniEditor.__initContextMenuLanguages" id="MiniEditor.__initContextMenuLanguages" ref="eric6.QScintilla.MiniEditor.html#MiniEditor.__initContextMenuLanguages" /> - <keyword name="MiniEditor.__isPy2File" id="MiniEditor.__isPy2File" ref="eric6.QScintilla.MiniEditor.html#MiniEditor.__isPy2File" /> <keyword name="MiniEditor.__languageMenuTriggered" id="MiniEditor.__languageMenuTriggered" ref="eric6.QScintilla.MiniEditor.html#MiniEditor.__languageMenuTriggered" /> <keyword name="MiniEditor.__loadEditorConfig" id="MiniEditor.__loadEditorConfig" ref="eric6.QScintilla.MiniEditor.html#MiniEditor.__loadEditorConfig" /> <keyword name="MiniEditor.__loadEditorConfigObject" id="MiniEditor.__loadEditorConfigObject" ref="eric6.QScintilla.MiniEditor.html#MiniEditor.__loadEditorConfigObject" /> @@ -11301,7 +11290,6 @@ <keyword name="Project.isProjectProtocol" id="Project.isProjectProtocol" ref="eric6.Project.Project.html#Project.isProjectProtocol" /> <keyword name="Project.isProjectResource" id="Project.isProjectResource" ref="eric6.Project.Project.html#Project.isProjectResource" /> <keyword name="Project.isProjectSource" id="Project.isProjectSource" ref="eric6.Project.Project.html#Project.isProjectSource" /> - <keyword name="Project.isPy2Project" id="Project.isPy2Project" ref="eric6.Project.Project.html#Project.isPy2Project" /> <keyword name="Project.isPy3Project" id="Project.isPy3Project" ref="eric6.Project.Project.html#Project.isPy3Project" /> <keyword name="Project.isPythonProject" id="Project.isPythonProject" ref="eric6.Project.Project.html#Project.isPythonProject" /> <keyword name="Project.isRubyProject" id="Project.isRubyProject" ref="eric6.Project.Project.html#Project.isRubyProject" /> @@ -14458,7 +14446,6 @@ <keyword name="SyntaxCheckService.removeLanguage" id="SyntaxCheckService.removeLanguage" ref="eric6.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckService.html#SyntaxCheckService.removeLanguage" /> <keyword name="SyntaxCheckService.serviceErrorJSON" id="SyntaxCheckService.serviceErrorJSON" ref="eric6.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckService.html#SyntaxCheckService.serviceErrorJSON" /> <keyword name="SyntaxCheckService.serviceErrorJavaScript" id="SyntaxCheckService.serviceErrorJavaScript" ref="eric6.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckService.html#SyntaxCheckService.serviceErrorJavaScript" /> - <keyword name="SyntaxCheckService.serviceErrorPy2" id="SyntaxCheckService.serviceErrorPy2" ref="eric6.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckService.html#SyntaxCheckService.serviceErrorPy2" /> <keyword name="SyntaxCheckService.serviceErrorPy3" id="SyntaxCheckService.serviceErrorPy3" ref="eric6.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckService.html#SyntaxCheckService.serviceErrorPy3" /> <keyword name="SyntaxCheckService.serviceErrorYAML" id="SyntaxCheckService.serviceErrorYAML" ref="eric6.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckService.html#SyntaxCheckService.serviceErrorYAML" /> <keyword name="SyntaxCheckService.syntaxBatchCheck" id="SyntaxCheckService.syntaxBatchCheck" ref="eric6.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckService.html#SyntaxCheckService.syntaxBatchCheck" /> @@ -14635,7 +14622,6 @@ <keyword name="TabnannyPlugin.deactivate" id="TabnannyPlugin.deactivate" ref="eric6.Plugins.PluginTabnanny.html#TabnannyPlugin.deactivate" /> <keyword name="TabnannyPlugin.indentBatchCheck" id="TabnannyPlugin.indentBatchCheck" ref="eric6.Plugins.PluginTabnanny.html#TabnannyPlugin.indentBatchCheck" /> <keyword name="TabnannyPlugin.indentCheck" id="TabnannyPlugin.indentCheck" ref="eric6.Plugins.PluginTabnanny.html#TabnannyPlugin.indentCheck" /> - <keyword name="TabnannyPlugin.serviceErrorPy2" id="TabnannyPlugin.serviceErrorPy2" ref="eric6.Plugins.PluginTabnanny.html#TabnannyPlugin.serviceErrorPy2" /> <keyword name="TabnannyPlugin.serviceErrorPy3" id="TabnannyPlugin.serviceErrorPy3" ref="eric6.Plugins.PluginTabnanny.html#TabnannyPlugin.serviceErrorPy3" /> <keyword name="Tabview" id="Tabview" ref="eric6.Plugins.ViewManagerPlugins.Tabview.Tabview.html#Tabview" /> <keyword name="Tabview (Constructor)" id="Tabview (Constructor)" ref="eric6.Plugins.ViewManagerPlugins.Tabview.Tabview.html#Tabview.__init__" /> @@ -15429,12 +15415,9 @@ <keyword name="UserInterface.__showPluginInfo" id="UserInterface.__showPluginInfo" ref="eric6.UI.UserInterface.html#UserInterface.__showPluginInfo" /> <keyword name="UserInterface.__showPluginToolsMenu" id="UserInterface.__showPluginToolsMenu" ref="eric6.UI.UserInterface.html#UserInterface.__showPluginToolsMenu" /> <keyword name="UserInterface.__showPrevious" id="UserInterface.__showPrevious" ref="eric6.UI.UserInterface.html#UserInterface.__showPrevious" /> - <keyword name="UserInterface.__showPyQt4Doc" id="UserInterface.__showPyQt4Doc" ref="eric6.UI.UserInterface.html#UserInterface.__showPyQt4Doc" /> <keyword name="UserInterface.__showPyQt5Doc" id="UserInterface.__showPyQt5Doc" ref="eric6.UI.UserInterface.html#UserInterface.__showPyQt5Doc" /> <keyword name="UserInterface.__showPySideDoc" id="UserInterface.__showPySideDoc" ref="eric6.UI.UserInterface.html#UserInterface.__showPySideDoc" /> - <keyword name="UserInterface.__showPython2Doc" id="UserInterface.__showPython2Doc" ref="eric6.UI.UserInterface.html#UserInterface.__showPython2Doc" /> <keyword name="UserInterface.__showPythonDoc" id="UserInterface.__showPythonDoc" ref="eric6.UI.UserInterface.html#UserInterface.__showPythonDoc" /> - <keyword name="UserInterface.__showQt4Doc" id="UserInterface.__showQt4Doc" ref="eric6.UI.UserInterface.html#UserInterface.__showQt4Doc" /> <keyword name="UserInterface.__showQt5Doc" id="UserInterface.__showQt5Doc" ref="eric6.UI.UserInterface.html#UserInterface.__showQt5Doc" /> <keyword name="UserInterface.__showQtDoc" id="UserInterface.__showQtDoc" ref="eric6.UI.UserInterface.html#UserInterface.__showQtDoc" /> <keyword name="UserInterface.__showSettingsMenu" id="UserInterface.__showSettingsMenu" ref="eric6.UI.UserInterface.html#UserInterface.__showSettingsMenu" /> @@ -16139,8 +16122,6 @@ <keyword name="VirtualenvManager.getVirtualenvExecPath" id="VirtualenvManager.getVirtualenvExecPath" ref="eric6.VirtualEnv.VirtualenvManager.html#VirtualenvManager.getVirtualenvExecPath" /> <keyword name="VirtualenvManager.getVirtualenvInterpreter" id="VirtualenvManager.getVirtualenvInterpreter" ref="eric6.VirtualEnv.VirtualenvManager.html#VirtualenvManager.getVirtualenvInterpreter" /> <keyword name="VirtualenvManager.getVirtualenvNames" id="VirtualenvManager.getVirtualenvNames" ref="eric6.VirtualEnv.VirtualenvManager.html#VirtualenvManager.getVirtualenvNames" /> - <keyword name="VirtualenvManager.getVirtualenvNamesForVariant" id="VirtualenvManager.getVirtualenvNamesForVariant" ref="eric6.VirtualEnv.VirtualenvManager.html#VirtualenvManager.getVirtualenvNamesForVariant" /> - <keyword name="VirtualenvManager.getVirtualenvVariant" id="VirtualenvManager.getVirtualenvVariant" ref="eric6.VirtualEnv.VirtualenvManager.html#VirtualenvManager.getVirtualenvVariant" /> <keyword name="VirtualenvManager.isCondaEnvironment" id="VirtualenvManager.isCondaEnvironment" ref="eric6.VirtualEnv.VirtualenvManager.html#VirtualenvManager.isCondaEnvironment" /> <keyword name="VirtualenvManager.isGlobalEnvironment" id="VirtualenvManager.isGlobalEnvironment" ref="eric6.VirtualEnv.VirtualenvManager.html#VirtualenvManager.isGlobalEnvironment" /> <keyword name="VirtualenvManager.isRemoteEnvironment" id="VirtualenvManager.isRemoteEnvironment" ref="eric6.VirtualEnv.VirtualenvManager.html#VirtualenvManager.isRemoteEnvironment" /> @@ -17171,7 +17152,6 @@ <keyword name="create" id="create" ref="eric6.Preferences.ConfigurationPages.CooperationPage.html#create" /> <keyword name="create" id="create" ref="eric6.Preferences.ConfigurationPages.CorbaPage.html#create" /> <keyword name="create" id="create" ref="eric6.Preferences.ConfigurationPages.DebuggerGeneralPage.html#create" /> - <keyword name="create" id="create" ref="eric6.Preferences.ConfigurationPages.DebuggerPython2Page.html#create" /> <keyword name="create" id="create" ref="eric6.Preferences.ConfigurationPages.DebuggerPython3Page.html#create" /> <keyword name="create" id="create" ref="eric6.Preferences.ConfigurationPages.DiffColoursPage.html#create" /> <keyword name="create" id="create" ref="eric6.Preferences.ConfigurationPages.EditorAPIsPage.html#create" /> @@ -17235,7 +17215,6 @@ <keyword name="createConfigurationPage" id="createConfigurationPage" ref="eric6.Plugins.PluginVcsPySvn.html#createConfigurationPage" /> <keyword name="createConfigurationPage" id="createConfigurationPage" ref="eric6.Plugins.PluginVcsSubversion.html#createConfigurationPage" /> <keyword name="createDebuggerInterfaceNone" id="createDebuggerInterfaceNone" ref="eric6.Debugger.DebuggerInterfaceNone.html#createDebuggerInterfaceNone" /> - <keyword name="createDebuggerInterfacePython2" id="createDebuggerInterfacePython2" ref="eric6.Debugger.DebuggerInterfacePython.html#createDebuggerInterfacePython2" /> <keyword name="createDebuggerInterfacePython3" id="createDebuggerInterfacePython3" ref="eric6.Debugger.DebuggerInterfacePython.html#createDebuggerInterfacePython3" /> <keyword name="createDefaultConfig" id="createDefaultConfig" ref="eric6.Plugins.VcsPlugins.vcsPySvn.SvnUtilities.html#createDefaultConfig" /> <keyword name="createDefaultConfig" id="createDefaultConfig" ref="eric6.Plugins.VcsPlugins.vcsSubversion.SvnUtilities.html#createDefaultConfig" /> @@ -17527,7 +17506,6 @@ <keyword name="getPythonModulesDirectory" id="getPythonModulesDirectory" ref="eric6.Globals.__init__.html#getPythonModulesDirectory" /> <keyword name="getPythonVersion" id="getPythonVersion" ref="eric6.Utilities.__init__.html#getPythonVersion" /> <keyword name="getQt" id="getQt" ref="eric6.Preferences.__init__.html#getQt" /> - <keyword name="getQt4DocDir" id="getQt4DocDir" ref="eric6.Preferences.__init__.html#getQt4DocDir" /> <keyword name="getQt5DocDir" id="getQt5DocDir" ref="eric6.Preferences.__init__.html#getQt5DocDir" /> <keyword name="getQtBinariesPath" id="getQtBinariesPath" ref="eric6.Globals.__init__.html#getQtBinariesPath" /> <keyword name="getQtMacBundle" id="getQtMacBundle" ref="eric6.Utilities.__init__.html#getQtMacBundle" /> @@ -18637,7 +18615,6 @@ <file>eric6.Preferences.ConfigurationPages.CooperationPage.html</file> <file>eric6.Preferences.ConfigurationPages.CorbaPage.html</file> <file>eric6.Preferences.ConfigurationPages.DebuggerGeneralPage.html</file> - <file>eric6.Preferences.ConfigurationPages.DebuggerPython2Page.html</file> <file>eric6.Preferences.ConfigurationPages.DebuggerPython3Page.html</file> <file>eric6.Preferences.ConfigurationPages.DiffColoursPage.html</file> <file>eric6.Preferences.ConfigurationPages.EditorAPIsPage.html</file>
--- a/eric6/Documentation/Source/eric6.DebugClients.Python.DebugClientBase.html Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/Documentation/Source/eric6.DebugClients.Python.DebugClientBase.html Sun Jun 21 18:26:12 2020 +0200 @@ -140,7 +140,7 @@ </tr> <tr> <td><a href="#DebugClientBase.__formatQtVariable">__formatQtVariable</a></td> -<td>Private method to produce a formatted output of a simple Qt4/Qt5 type.</td> +<td>Private method to produce a formatted output of a simple Qt5 type.</td> </tr> <tr> <td><a href="#DebugClientBase.__formatVariablesList">__formatVariablesList</a></td> @@ -467,7 +467,7 @@ <b>__formatQtVariable</b>(<i>value, qttype</i>) <p> - Private method to produce a formatted output of a simple Qt4/Qt5 type. + Private method to produce a formatted output of a simple Qt5 type. </p> <dl>
--- a/eric6/Documentation/Source/eric6.Debugger.DebuggerInterfacePython.html Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/Documentation/Source/eric6.Debugger.DebuggerInterfacePython.html Sun Jun 21 18:26:12 2020 +0200 @@ -36,7 +36,7 @@ <tr> <td><a href="#DebuggerInterfacePython">DebuggerInterfacePython</a></td> -<td>Class implementing the debugger interface for the debug server for Python 2 and Python 3.</td> +<td>Class implementing the debugger interface for the debug server for Python 3.</td> </tr> </table> <h3>Functions</h3> @@ -44,10 +44,6 @@ <table> <tr> -<td><a href="#createDebuggerInterfacePython2">createDebuggerInterfacePython2</a></td> -<td>Module function to create a debugger interface instance.</td> -</tr> -<tr> <td><a href="#createDebuggerInterfacePython3">createDebuggerInterfacePython3</a></td> <td>Module function to create a debugger interface instance.</td> </tr> @@ -62,8 +58,8 @@ <h2>DebuggerInterfacePython</h2> <p> - Class implementing the debugger interface for the debug server for Python 2 - and Python 3. + Class implementing the debugger interface for the debug server for + Python 3. </p> <h3>Derived from</h3> QObject @@ -282,7 +278,7 @@ <a NAME="DebuggerInterfacePython.__init__" ID="DebuggerInterfacePython.__init__"></a> <h4>DebuggerInterfacePython (Constructor)</h4> -<b>DebuggerInterfacePython</b>(<i>debugServer, passive, pythonVariant</i>) +<b>DebuggerInterfacePython</b>(<i>debugServer, passive</i>) <p> Constructor @@ -297,10 +293,6 @@ <dd> flag indicating passive connection mode </dd> -<dt><i>pythonVariant</i> (str (one of Python2 or Python3))</dt> -<dd> -Python variant to instantiate for -</dd> </dl> <a NAME="DebuggerInterfacePython.__askForkTo" ID="DebuggerInterfacePython.__askForkTo"></a> <h4>DebuggerInterfacePython.__askForkTo</h4> @@ -1224,42 +1216,6 @@ <div align="right"><a href="#top">Up</a></div> <hr /> <hr /> -<a NAME="createDebuggerInterfacePython2" ID="createDebuggerInterfacePython2"></a> -<h2>createDebuggerInterfacePython2</h2> -<b>createDebuggerInterfacePython2</b>(<i>debugServer, passive</i>) - -<p> - Module function to create a debugger interface instance. -</p> -<p> - -</p> -<dl> - -<dt><i>debugServer</i> (DebugServer)</dt> -<dd> -reference to the debug server -</dd> -<dt><i>passive</i> (bool)</dt> -<dd> -flag indicating passive connection mode -</dd> -</dl> -<dl> -<dt>Returns:</dt> -<dd> -instantiated debugger interface -</dd> -</dl> -<dl> -<dt>Return Type:</dt> -<dd> -DebuggerInterfacePython -</dd> -</dl> -<div align="right"><a href="#top">Up</a></div> -<hr /> -<hr /> <a NAME="createDebuggerInterfacePython3" ID="createDebuggerInterfacePython3"></a> <h2>createDebuggerInterfacePython3</h2> <b>createDebuggerInterfacePython3</b>(<i>debugServer, passive</i>)
--- a/eric6/Documentation/Source/eric6.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckService.html Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/Documentation/Source/eric6.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckService.html Sun Jun 21 18:26:12 2020 +0200 @@ -136,10 +136,6 @@ <td>Public method handling service errors for JavaScript.</td> </tr> <tr> -<td><a href="#SyntaxCheckService.serviceErrorPy2">serviceErrorPy2</a></td> -<td>Public method handling service errors for Python 2.</td> -</tr> -<tr> <td><a href="#SyntaxCheckService.serviceErrorPy3">serviceErrorPy3</a></td> <td>Public method handling service errors for Python 2.</td> </tr> @@ -374,32 +370,6 @@ message text (string) </dd> </dl> -<a NAME="SyntaxCheckService.serviceErrorPy2" ID="SyntaxCheckService.serviceErrorPy2"></a> -<h4>SyntaxCheckService.serviceErrorPy2</h4> -<b>serviceErrorPy2</b>(<i>fx, lang, fn, msg</i>) - -<p> - Public method handling service errors for Python 2. -</p> -<dl> - -<dt><i>fx</i></dt> -<dd> -service name (string) -</dd> -<dt><i>lang</i></dt> -<dd> -language (string) -</dd> -<dt><i>fn</i></dt> -<dd> -file name (string) -</dd> -<dt><i>msg</i></dt> -<dd> -message text (string) -</dd> -</dl> <a NAME="SyntaxCheckService.serviceErrorPy3" ID="SyntaxCheckService.serviceErrorPy3"></a> <h4>SyntaxCheckService.serviceErrorPy3</h4> <b>serviceErrorPy3</b>(<i>fx, lang, fn, msg</i>)
--- a/eric6/Documentation/Source/eric6.Plugins.PluginCodeStyleChecker.html Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/Documentation/Source/eric6.Plugins.PluginCodeStyleChecker.html Sun Jun 21 18:26:12 2020 +0200 @@ -150,10 +150,6 @@ <td>Public method to deactivate this plugin.</td> </tr> <tr> -<td><a href="#CodeStyleCheckerPlugin.serviceErrorPy2">serviceErrorPy2</a></td> -<td>Public slot handling service errors for Python 2.</td> -</tr> -<tr> <td><a href="#CodeStyleCheckerPlugin.serviceErrorPy3">serviceErrorPy3</a></td> <td>Public slot handling service errors for Python 2.</td> </tr> @@ -391,32 +387,6 @@ <p> Public method to deactivate this plugin. </p> -<a NAME="CodeStyleCheckerPlugin.serviceErrorPy2" ID="CodeStyleCheckerPlugin.serviceErrorPy2"></a> -<h4>CodeStyleCheckerPlugin.serviceErrorPy2</h4> -<b>serviceErrorPy2</b>(<i>fx, lang, fn, msg</i>) - -<p> - Public slot handling service errors for Python 2. -</p> -<dl> - -<dt><i>fx</i></dt> -<dd> -service name (string) -</dd> -<dt><i>lang</i></dt> -<dd> -language (string) -</dd> -<dt><i>fn</i></dt> -<dd> -file name (string) -</dd> -<dt><i>msg</i></dt> -<dd> -message text (string) -</dd> -</dl> <a NAME="CodeStyleCheckerPlugin.serviceErrorPy3" ID="CodeStyleCheckerPlugin.serviceErrorPy3"></a> <h4>CodeStyleCheckerPlugin.serviceErrorPy3</h4> <b>serviceErrorPy3</b>(<i>fx, lang, fn, msg</i>)
--- a/eric6/Documentation/Source/eric6.Plugins.PluginTabnanny.html Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/Documentation/Source/eric6.Plugins.PluginTabnanny.html Sun Jun 21 18:26:12 2020 +0200 @@ -154,10 +154,6 @@ <td>Public method to prepare an indentation check on one Python source file.</td> </tr> <tr> -<td><a href="#TabnannyPlugin.serviceErrorPy2">serviceErrorPy2</a></td> -<td>Public slot handling service errors for Python 2.</td> -</tr> -<tr> <td><a href="#TabnannyPlugin.serviceErrorPy3">serviceErrorPy3</a></td> <td>Public slot handling service errors for Python 2.</td> </tr> @@ -403,32 +399,6 @@ string containing the code to check (string) </dd> </dl> -<a NAME="TabnannyPlugin.serviceErrorPy2" ID="TabnannyPlugin.serviceErrorPy2"></a> -<h4>TabnannyPlugin.serviceErrorPy2</h4> -<b>serviceErrorPy2</b>(<i>fx, lang, fn, msg</i>) - -<p> - Public slot handling service errors for Python 2. -</p> -<dl> - -<dt><i>fx</i></dt> -<dd> -service name (string) -</dd> -<dt><i>lang</i></dt> -<dd> -language (string) -</dd> -<dt><i>fn</i></dt> -<dd> -file name (string) -</dd> -<dt><i>msg</i></dt> -<dd> -message text (string) -</dd> -</dl> <a NAME="TabnannyPlugin.serviceErrorPy3" ID="TabnannyPlugin.serviceErrorPy3"></a> <h4>TabnannyPlugin.serviceErrorPy3</h4> <b>serviceErrorPy3</b>(<i>fx, lang, fn, msg</i>)
--- a/eric6/Documentation/Source/eric6.Plugins.PluginWizardQFileDialog.html Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/Documentation/Source/eric6.Plugins.PluginWizardQFileDialog.html Sun Jun 21 18:26:12 2020 +0200 @@ -141,7 +141,7 @@ <dt><i>variant</i> (int)</dt> <dd> variant of code to be generated - (-1 = E5FileDialog, 0 = unknown, 4 = PyQt4, 5 = PyQt5) + (-1 = E5FileDialog, 0 = unknown, 5 = PyQt5) </dd> </dl> <dl>
--- a/eric6/Documentation/Source/eric6.Plugins.WizardPlugins.FileDialogWizard.FileDialogWizardDialog.html Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/Documentation/Source/eric6.Plugins.WizardPlugins.FileDialogWizard.FileDialogWizardDialog.html Sun Jun 21 18:26:12 2020 +0200 @@ -98,7 +98,7 @@ </tr> <tr> <td><a href="#FileDialogWizardDialog.getCode">getCode</a></td> -<td>Public method to get the source code for Qt4 and Qt5.</td> +<td>Public method to get the source code for Qt5.</td> </tr> <tr> <td><a href="#FileDialogWizardDialog.on_bTest_clicked">on_bTest_clicked</a></td> @@ -131,7 +131,7 @@ <dt><i>dialogVariant</i> (int)</dt> <dd> variant of the file dialog to be generated - (-1 = E5FileDialog, 0 = unknown, 4 = PyQt4, 5 = PyQt5) + (-1 = E5FileDialog, 0 = unknown, 5 = PyQt5) </dd> <dt><i>parent</i> (QWidget)</dt> <dd> @@ -211,7 +211,7 @@ <b>getCode</b>(<i>indLevel, indString</i>) <p> - Public method to get the source code for Qt4 and Qt5. + Public method to get the source code for Qt5. </p> <dl>
--- a/eric6/Documentation/Source/eric6.Preferences.ConfigurationPages.DebuggerPython2Page.html Sat Jun 20 17:36:20 2020 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,162 +0,0 @@ -<!DOCTYPE html> -<html><head> -<title>eric6.Preferences.ConfigurationPages.DebuggerPython2Page</title> -<meta charset="UTF-8"> -<style> -body { - background: #EDECE6; - margin: 0em 1em 10em 1em; - color: black; -} - -h1 { color: white; background: #85774A; } -h2 { color: white; background: #85774A; } -h3 { color: white; background: #9D936E; } -h4 { color: white; background: #9D936E; } - -a { color: #BA6D36; } - -</style> -</head> -<body> -<a NAME="top" ID="top"></a> -<h1>eric6.Preferences.ConfigurationPages.DebuggerPython2Page</h1> - -<p> -Module implementing the Debugger Python2 configuration page. -</p> -<h3>Global Attributes</h3> - -<table> -<tr><td>None</td></tr> -</table> -<h3>Classes</h3> - -<table> - -<tr> -<td><a href="#DebuggerPython2Page">DebuggerPython2Page</a></td> -<td>Class implementing the Debugger Python2 configuration page.</td> -</tr> -</table> -<h3>Functions</h3> - -<table> - -<tr> -<td><a href="#create">create</a></td> -<td>Module function to create the configuration page.</td> -</tr> -</table> -<hr /> -<hr /> -<a NAME="DebuggerPython2Page" ID="DebuggerPython2Page"></a> -<h2>DebuggerPython2Page</h2> - -<p> - Class implementing the Debugger Python2 configuration page. -</p> -<h3>Derived from</h3> -ConfigurationPageBase, Ui_DebuggerPython2Page -<h3>Class Attributes</h3> - -<table> -<tr><td>None</td></tr> -</table> -<h3>Class Methods</h3> - -<table> -<tr><td>None</td></tr> -</table> -<h3>Methods</h3> - -<table> - -<tr> -<td><a href="#DebuggerPython2Page.__init__">DebuggerPython2Page</a></td> -<td>Constructor</td> -</tr> -<tr> -<td><a href="#DebuggerPython2Page.__populateAndSetVenvComboBox">__populateAndSetVenvComboBox</a></td> -<td>Private method to populate and set the virtual environment combo box.</td> -</tr> -<tr> -<td><a href="#DebuggerPython2Page.on_refreshButton_clicked">on_refreshButton_clicked</a></td> -<td>Private slot handling a click of the refresh button.</td> -</tr> -<tr> -<td><a href="#DebuggerPython2Page.on_venvDlgButton_clicked">on_venvDlgButton_clicked</a></td> -<td>Private slot to show the virtual environment manager dialog.</td> -</tr> -<tr> -<td><a href="#DebuggerPython2Page.save">save</a></td> -<td>Public slot to save the Debugger Python configuration.</td> -</tr> -</table> -<h3>Static Methods</h3> - -<table> -<tr><td>None</td></tr> -</table> - -<a NAME="DebuggerPython2Page.__init__" ID="DebuggerPython2Page.__init__"></a> -<h4>DebuggerPython2Page (Constructor)</h4> -<b>DebuggerPython2Page</b>(<i></i>) - -<p> - Constructor -</p> -<a NAME="DebuggerPython2Page.__populateAndSetVenvComboBox" ID="DebuggerPython2Page.__populateAndSetVenvComboBox"></a> -<h4>DebuggerPython2Page.__populateAndSetVenvComboBox</h4> -<b>__populateAndSetVenvComboBox</b>(<i></i>) - -<p> - Private method to populate and set the virtual environment combo box. -</p> -<a NAME="DebuggerPython2Page.on_refreshButton_clicked" ID="DebuggerPython2Page.on_refreshButton_clicked"></a> -<h4>DebuggerPython2Page.on_refreshButton_clicked</h4> -<b>on_refreshButton_clicked</b>(<i></i>) - -<p> - Private slot handling a click of the refresh button. -</p> -<a NAME="DebuggerPython2Page.on_venvDlgButton_clicked" ID="DebuggerPython2Page.on_venvDlgButton_clicked"></a> -<h4>DebuggerPython2Page.on_venvDlgButton_clicked</h4> -<b>on_venvDlgButton_clicked</b>(<i></i>) - -<p> - Private slot to show the virtual environment manager dialog. -</p> -<a NAME="DebuggerPython2Page.save" ID="DebuggerPython2Page.save"></a> -<h4>DebuggerPython2Page.save</h4> -<b>save</b>(<i></i>) - -<p> - Public slot to save the Debugger Python configuration. -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /> -<hr /> -<a NAME="create" ID="create"></a> -<h2>create</h2> -<b>create</b>(<i>dlg</i>) - -<p> - Module function to create the configuration page. -</p> -<dl> - -<dt><i>dlg</i></dt> -<dd> -reference to the configuration dialog -</dd> -</dl> -<dl> -<dt>Returns:</dt> -<dd> -reference to the instantiated page (ConfigurationPageBase) -</dd> -</dl> -<div align="right"><a href="#top">Up</a></div> -<hr /> -</body></html> \ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Preferences.__init__.html Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/Documentation/Source/eric6.Preferences.__init__.html Sun Jun 21 18:26:12 2020 +0200 @@ -198,10 +198,6 @@ <td>Module function to retrieve the various Qt settings.</td> </tr> <tr> -<td><a href="#getQt4DocDir">getQt4DocDir</a></td> -<td>Module function to retrieve the Qt4DocDir setting.</td> -</tr> -<tr> <td><a href="#getQt5DocDir">getQt5DocDir</a></td> <td>Module function to retrieve the Qt5DocDir setting.</td> </tr> @@ -1522,29 +1518,6 @@ <div align="right"><a href="#top">Up</a></div> <hr /> <hr /> -<a NAME="getQt4DocDir" ID="getQt4DocDir"></a> -<h2>getQt4DocDir</h2> -<b>getQt4DocDir</b>(<i>prefClass=Prefs</i>) - -<p> - Module function to retrieve the Qt4DocDir setting. -</p> -<dl> - -<dt><i>prefClass</i></dt> -<dd> -preferences class used as the storage area -</dd> -</dl> -<dl> -<dt>Returns:</dt> -<dd> -the requested Qt4DocDir setting (string) -</dd> -</dl> -<div align="right"><a href="#top">Up</a></div> -<hr /> -<hr /> <a NAME="getQt5DocDir" ID="getQt5DocDir"></a> <h2>getQt5DocDir</h2> <b>getQt5DocDir</b>(<i>prefClass=Prefs</i>)
--- a/eric6/Documentation/Source/eric6.Project.Project.html Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/Documentation/Source/eric6.Project.Project.html Sun Jun 21 18:26:12 2020 +0200 @@ -905,16 +905,12 @@ <td>Public method used to check, if the passed in filename belongs to the project sources.</td> </tr> <tr> -<td><a href="#Project.isPy2Project">isPy2Project</a></td> -<td>Public method to check, if this project is a Python2 project.</td> -</tr> -<tr> <td><a href="#Project.isPy3Project">isPy3Project</a></td> <td>Public method to check, if this project is a Python3 project.</td> </tr> <tr> <td><a href="#Project.isPythonProject">isPythonProject</a></td> -<td>Public method to check, if this project is a Python2 or Python3 project.</td> +<td>Public method to check, if this project is a Python3 or MicroPython project.</td> </tr> <tr> <td><a href="#Project.isRubyProject">isRubyProject</a></td> @@ -3397,19 +3393,6 @@ flag indicating membership (boolean) </dd> </dl> -<a NAME="Project.isPy2Project" ID="Project.isPy2Project"></a> -<h4>Project.isPy2Project</h4> -<b>isPy2Project</b>(<i></i>) - -<p> - Public method to check, if this project is a Python2 project. -</p> -<dl> -<dt>Returns:</dt> -<dd> -flag indicating a Python2 project (boolean) -</dd> -</dl> <a NAME="Project.isPy3Project" ID="Project.isPy3Project"></a> <h4>Project.isPy3Project</h4> <b>isPy3Project</b>(<i></i>) @@ -3428,7 +3411,7 @@ <b>isPythonProject</b>(<i></i>) <p> - Public method to check, if this project is a Python2 or Python3 + Public method to check, if this project is a Python3 or MicroPython project. </p> <dl>
--- a/eric6/Documentation/Source/eric6.Project.ProjectFormsBrowser.html Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/Documentation/Source/eric6.Project.ProjectFormsBrowser.html Sun Jun 21 18:26:12 2020 +0200 @@ -145,7 +145,7 @@ </tr> <tr> <td><a href="#ProjectFormsBrowser.__generateDialogCode">__generateDialogCode</a></td> -<td>Private method to generate dialog code for the form (Qt4 only).</td> +<td>Private method to generate dialog code for the form (Qt only).</td> </tr> <tr> <td><a href="#ProjectFormsBrowser.__newForm">__newForm</a></td> @@ -165,11 +165,11 @@ </tr> <tr> <td><a href="#ProjectFormsBrowser.__readStderr">__readStderr</a></td> -<td>Private slot to handle the readyReadStandardError signal of the pyuic4/pyuic5/pyside-uic/pyside2-uic/rbuic4 process.</td> +<td>Private slot to handle the readyReadStandardError signal of the pyuic5/pyside2-uic process.</td> </tr> <tr> <td><a href="#ProjectFormsBrowser.__readStdout">__readStdout</a></td> -<td>Private slot to handle the readyReadStandardOutput signal of the pyuic4/pyuic5/pyside-uic/pyside2-uic/rbuic4 process.</td> +<td>Private slot to handle the readyReadStandardOutput signal of the pyuic5/pyside2-uic process.</td> </tr> <tr> <td><a href="#ProjectFormsBrowser.__resetUiCompiler">__resetUiCompiler</a></td> @@ -369,7 +369,7 @@ <b>__generateDialogCode</b>(<i></i>) <p> - Private method to generate dialog code for the form (Qt4 only). + Private method to generate dialog code for the form (Qt only). </p> <a NAME="ProjectFormsBrowser.__newForm" ID="ProjectFormsBrowser.__newForm"></a> <h4>ProjectFormsBrowser.__newForm</h4> @@ -413,7 +413,7 @@ <p> Private slot to handle the readyReadStandardError signal of the - pyuic4/pyuic5/pyside-uic/pyside2-uic/rbuic4 process. + pyuic5/pyside2-uic process. </p> <a NAME="ProjectFormsBrowser.__readStdout" ID="ProjectFormsBrowser.__readStdout"></a> <h4>ProjectFormsBrowser.__readStdout</h4> @@ -421,7 +421,7 @@ <p> Private slot to handle the readyReadStandardOutput signal of the - pyuic4/pyuic5/pyside-uic/pyside2-uic/rbuic4 process. + pyuic5/pyside2-uic process. </p> <a NAME="ProjectFormsBrowser.__resetUiCompiler" ID="ProjectFormsBrowser.__resetUiCompiler"></a> <h4>ProjectFormsBrowser.__resetUiCompiler</h4>
--- a/eric6/Documentation/Source/eric6.Project.ProjectResourcesBrowser.html Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/Documentation/Source/eric6.Project.ProjectResourcesBrowser.html Sun Jun 21 18:26:12 2020 +0200 @@ -136,11 +136,11 @@ </tr> <tr> <td><a href="#ProjectResourcesBrowser.__readStderr">__readStderr</a></td> -<td>Private slot to handle the readyReadStandardError signal of the pyrcc4/pyrcc5/pyside-rcc/pyside2-rcc/rbrcc process.</td> +<td>Private slot to handle the readyReadStandardError signal of the pyrcc5/pyside2-rcc/ process.</td> </tr> <tr> <td><a href="#ProjectResourcesBrowser.__readStdout">__readStdout</a></td> -<td>Private slot to handle the readyReadStandardOutput signal of the pyrcc4/pyrcc5/pyside-rcc/pyside2-rcc/rbrcc process.</td> +<td>Private slot to handle the readyReadStandardOutput signal of the pyrcc5/pyside2-rcc process.</td> </tr> <tr> <td><a href="#ProjectResourcesBrowser.__showContextMenu">__showContextMenu</a></td> @@ -351,7 +351,7 @@ <p> Private slot to handle the readyReadStandardError signal of the - pyrcc4/pyrcc5/pyside-rcc/pyside2-rcc/rbrcc process. + pyrcc5/pyside2-rcc/ process. </p> <a NAME="ProjectResourcesBrowser.__readStdout" ID="ProjectResourcesBrowser.__readStdout"></a> <h4>ProjectResourcesBrowser.__readStdout</h4> @@ -359,7 +359,7 @@ <p> Private slot to handle the readyReadStandardOutput signal of the - pyrcc4/pyrcc5/pyside-rcc/pyside2-rcc/rbrcc process. + pyrcc5/pyside2-rcc process. </p> <a NAME="ProjectResourcesBrowser.__showContextMenu" ID="ProjectResourcesBrowser.__showContextMenu"></a> <h4>ProjectResourcesBrowser.__showContextMenu</h4>
--- a/eric6/Documentation/Source/eric6.Project.ProjectTranslationsBrowser.html Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/Documentation/Source/eric6.Project.ProjectTranslationsBrowser.html Sun Jun 21 18:26:12 2020 +0200 @@ -130,7 +130,7 @@ </tr> <tr> <td><a href="#ProjectTranslationsBrowser.__generateTSFile">__generateTSFile</a></td> -<td>Private method used to run pylupdate4/pylupdate5/pyside-lupdate to generate the .ts files.</td> +<td>Private method used to run pylupdate5/pyside2-lupdate to generate the .ts files.</td> </tr> <tr> <td><a href="#ProjectTranslationsBrowser.__generateTSFileDone">__generateTSFileDone</a></td> @@ -150,7 +150,7 @@ </tr> <tr> <td><a href="#ProjectTranslationsBrowser.__readStderrLupdate">__readStderrLupdate</a></td> -<td>Private slot to handle the readyReadStandardError signal of the pylupdate4/pylupdate5/pyside-lupdate/pyside2-lupdate process.</td> +<td>Private slot to handle the readyReadStandardError signal of the pylupdate5/pyside2-lupdate process.</td> </tr> <tr> <td><a href="#ProjectTranslationsBrowser.__readStdout">__readStdout</a></td> @@ -335,7 +335,7 @@ <b>__generateTSFile</b>(<i>noobsolete=False, generateAll=True</i>) <p> - Private method used to run pylupdate4/pylupdate5/pyside-lupdate to + Private method used to run pylupdate5/pyside2-lupdate to generate the .ts files. </p> <dl> @@ -419,7 +419,7 @@ <p> Private slot to handle the readyReadStandardError signal of the - pylupdate4/pylupdate5/pyside-lupdate/pyside2-lupdate process. + pylupdate5/pyside2-lupdate process. </p> <dl>
--- a/eric6/Documentation/Source/eric6.QScintilla.Editor.html Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/Documentation/Source/eric6.QScintilla.Editor.html Sun Jun 21 18:26:12 2020 +0200 @@ -434,7 +434,7 @@ </tr> <tr> <td><a href="#Editor.__getPyVersion">__getPyVersion</a></td> -<td>Private method to return the Python main version (2 or 3) or 0 if it's not a Python file at all.</td> +<td>Private method to return the Python main version or 0 if it's not a Python file at all.</td> </tr> <tr> <td><a href="#Editor.__getSaveFileName">__getSaveFileName</a></td> @@ -2549,13 +2549,13 @@ <b>__getPyVersion</b>(<i></i>) <p> - Private method to return the Python main version (2 or 3) or 0 if it's + Private method to return the Python main version or 0 if it's not a Python file at all. </p> <dl> <dt>Returns:</dt> <dd> -Python version (2 or 3) or 0 if it's not a Python file (int) +Python version or 0 if it's not a Python file (int) </dd> </dl> <a NAME="Editor.__getSaveFileName" ID="Editor.__getSaveFileName"></a> @@ -5569,7 +5569,13 @@ <dl> <dt>Returns:</dt> <dd> -flag indicating a Python2 file (boolean) +flag reporting always False +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +bool </dd> </dl> <a NAME="Editor.isPy3File" ID="Editor.isPy3File"></a> @@ -5595,7 +5601,7 @@ <dl> <dt>Returns:</dt> <dd> -flag indicating a Python (2 or 3) file (boolean) +flag indicating a Python3 file (boolean) </dd> </dl> <a NAME="Editor.isRubyFile" ID="Editor.isRubyFile"></a>
--- a/eric6/Documentation/Source/eric6.QScintilla.MiniEditor.html Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/Documentation/Source/eric6.QScintilla.MiniEditor.html Sun Jun 21 18:26:12 2020 +0200 @@ -185,10 +185,6 @@ <td>Private method used to setup the Languages context sub menu.</td> </tr> <tr> -<td><a href="#MiniEditor.__isPy2File">__isPy2File</a></td> -<td>Private method to return a flag indicating a Python 2 file.</td> -</tr> -<tr> <td><a href="#MiniEditor.__languageMenuTriggered">__languageMenuTriggered</a></td> <td>Private method to handle the selection of a lexer language.</td> </tr> @@ -749,19 +745,6 @@ reference to the generated menu (QMenu) </dd> </dl> -<a NAME="MiniEditor.__isPy2File" ID="MiniEditor.__isPy2File"></a> -<h4>MiniEditor.__isPy2File</h4> -<b>__isPy2File</b>(<i></i>) - -<p> - Private method to return a flag indicating a Python 2 file. -</p> -<dl> -<dt>Returns:</dt> -<dd> -flag indicating a Python 2 file (boolean) -</dd> -</dl> <a NAME="MiniEditor.__languageMenuTriggered" ID="MiniEditor.__languageMenuTriggered"></a> <h4>MiniEditor.__languageMenuTriggered</h4> <b>__languageMenuTriggered</b>(<i>act</i>)
--- a/eric6/Documentation/Source/eric6.UI.BrowserModel.html Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/Documentation/Source/eric6.UI.BrowserModel.html Sun Jun 21 18:26:12 2020 +0200 @@ -913,10 +913,6 @@ <td>Public method to check, if this file is a Google Protocol Buffer file.</td> </tr> <tr> -<td><a href="#BrowserFileItem.isPython2File">isPython2File</a></td> -<td>Public method to check, if this file is a Python script.</td> -</tr> -<tr> <td><a href="#BrowserFileItem.isPython3File">isPython3File</a></td> <td>Public method to check, if this file is a Python3 script.</td> </tr> @@ -1143,19 +1139,6 @@ bool </dd> </dl> -<a NAME="BrowserFileItem.isPython2File" ID="BrowserFileItem.isPython2File"></a> -<h4>BrowserFileItem.isPython2File</h4> -<b>isPython2File</b>(<i></i>) - -<p> - Public method to check, if this file is a Python script. -</p> -<dl> -<dt>Returns:</dt> -<dd> -flag indicating a Python file (boolean) -</dd> -</dl> <a NAME="BrowserFileItem.isPython3File" ID="BrowserFileItem.isPython3File"></a> <h4>BrowserFileItem.isPython3File</h4> <b>isPython3File</b>(<i></i>)
--- a/eric6/Documentation/Source/eric6.UI.UserInterface.html Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/Documentation/Source/eric6.UI.UserInterface.html Sun Jun 21 18:26:12 2020 +0200 @@ -671,30 +671,18 @@ <td>Private slot used to show the previous tab or file.</td> </tr> <tr> -<td><a href="#UserInterface.__showPyQt4Doc">__showPyQt4Doc</a></td> -<td>Private slot to show the PyQt4 documentation.</td> -</tr> -<tr> <td><a href="#UserInterface.__showPyQt5Doc">__showPyQt5Doc</a></td> <td>Private slot to show the PyQt5 documentation.</td> </tr> <tr> <td><a href="#UserInterface.__showPySideDoc">__showPySideDoc</a></td> -<td>Private slot to show the PySide/PySide2 documentation.</td> -</tr> -<tr> -<td><a href="#UserInterface.__showPython2Doc">__showPython2Doc</a></td> -<td>Private slot to show the Python 2 documentation.</td> +<td>Private slot to show the PySide2 documentation.</td> </tr> <tr> <td><a href="#UserInterface.__showPythonDoc">__showPythonDoc</a></td> <td>Private slot to show the Python 3 documentation.</td> </tr> <tr> -<td><a href="#UserInterface.__showQt4Doc">__showQt4Doc</a></td> -<td>Private slot to show the Qt4 documentation.</td> -</tr> -<tr> <td><a href="#UserInterface.__showQt5Doc">__showQt5Doc</a></td> <td>Private slot to show the Qt5 documentation.</td> </tr> @@ -2302,13 +2290,6 @@ <p> Private slot used to show the previous tab or file. </p> -<a NAME="UserInterface.__showPyQt4Doc" ID="UserInterface.__showPyQt4Doc"></a> -<h4>UserInterface.__showPyQt4Doc</h4> -<b>__showPyQt4Doc</b>(<i></i>) - -<p> - Private slot to show the PyQt4 documentation. -</p> <a NAME="UserInterface.__showPyQt5Doc" ID="UserInterface.__showPyQt5Doc"></a> <h4>UserInterface.__showPyQt5Doc</h4> <b>__showPyQt5Doc</b>(<i></i>) @@ -2318,25 +2299,18 @@ </p> <a NAME="UserInterface.__showPySideDoc" ID="UserInterface.__showPySideDoc"></a> <h4>UserInterface.__showPySideDoc</h4> -<b>__showPySideDoc</b>(<i>variant</i>) +<b>__showPySideDoc</b>(<i>variant="2"</i>) <p> - Private slot to show the PySide/PySide2 documentation. + Private slot to show the PySide2 documentation. </p> <dl> <dt><i>variant</i> (str)</dt> <dd> -PySide variant (1 or 2) +PySide variant (2) </dd> </dl> -<a NAME="UserInterface.__showPython2Doc" ID="UserInterface.__showPython2Doc"></a> -<h4>UserInterface.__showPython2Doc</h4> -<b>__showPython2Doc</b>(<i></i>) - -<p> - Private slot to show the Python 2 documentation. -</p> <a NAME="UserInterface.__showPythonDoc" ID="UserInterface.__showPythonDoc"></a> <h4>UserInterface.__showPythonDoc</h4> <b>__showPythonDoc</b>(<i></i>) @@ -2344,13 +2318,6 @@ <p> Private slot to show the Python 3 documentation. </p> -<a NAME="UserInterface.__showQt4Doc" ID="UserInterface.__showQt4Doc"></a> -<h4>UserInterface.__showQt4Doc</h4> -<b>__showQt4Doc</b>(<i></i>) - -<p> - Private slot to show the Qt4 documentation. -</p> <a NAME="UserInterface.__showQt5Doc" ID="UserInterface.__showQt5Doc"></a> <h4>UserInterface.__showQt5Doc</h4> <b>__showQt5Doc</b>(<i></i>)
--- a/eric6/Documentation/Source/eric6.Utilities.PySideImporter.html Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/Documentation/Source/eric6.Utilities.PySideImporter.html Sun Jun 21 18:26:12 2020 +0200 @@ -23,7 +23,7 @@ <h1>eric6.Utilities.PySideImporter</h1> <p> -Module to check for the presence of PySide/PySide2 by importing it. +Module to check for the presence of PySide2 by importing it. </p> <h3>Global Attributes</h3>
--- a/eric6/Documentation/Source/eric6.Utilities.__init__.html Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/Documentation/Source/eric6.Utilities.__init__.html Sun Jun 21 18:26:12 2020 +0200 @@ -61,7 +61,7 @@ </tr> <tr> <td><a href="#checkPyside">checkPyside</a></td> -<td>Module function to check the presence of PySide/PySide2.</td> +<td>Module function to check the presence of PySide2.</td> </tr> <tr> <td><a href="#compactPath">compactPath</a></td> @@ -141,7 +141,7 @@ </tr> <tr> <td><a href="#generatePySideToolPath">generatePySideToolPath</a></td> -<td>Module function to generate the executable path for a PySide/PySide2 tool.</td> +<td>Module function to generate the executable path for a PySide2 tool.</td> </tr> <tr> <td><a href="#generateQtToolName">generateQtToolName</a></td> @@ -583,26 +583,25 @@ <b>checkPyside</b>(<i>variant="2"</i>) <p> - Module function to check the presence of PySide/PySide2. + Module function to check the presence of PySide2. </p> <dl> <dt><i>variant</i> (str)</dt> <dd> -indicator for the PySide variant +indicator for the PySide variant (not used) </dd> </dl> <dl> <dt>Returns:</dt> <dd> -list of two flags indicating the presence of PySide/PySide2 for - Python2 and PySide/PySide2 for Python3 +flags indicating the presence of PySide2 </dd> </dl> <dl> <dt>Return Type:</dt> <dd> -tuple of (bool, bool) +bool </dd> </dl> <div align="right"><a href="#top">Up</a></div> @@ -762,7 +761,7 @@ <dl> <dt>Returns:</dt> <dd> -Python version if file is Python2 or Python3 (int) +Python version if file is Python3 (int) </dd> </dl> <div align="right"><a href="#top">Up</a></div> @@ -1160,7 +1159,7 @@ <b>generatePySideToolPath</b>(<i>toolname, variant="2"</i>) <p> - Module function to generate the executable path for a PySide/PySide2 tool. + Module function to generate the executable path for a PySide2 tool. </p> <dl> @@ -1170,13 +1169,13 @@ </dd> <dt><i>variant</i> (str)</dt> <dd> -indicator for the PySide variant +indicator for the PySide variant (not used) </dd> </dl> <dl> <dt>Returns:</dt> <dd> -the PySide/PySide2 tool path with extension +the PySide2 tool path with extension </dd> </dl> <dl>
--- a/eric6/Documentation/Source/eric6.VirtualEnv.VirtualenvAddEditDialog.html Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/Documentation/Source/eric6.VirtualEnv.VirtualenvAddEditDialog.html Sun Jun 21 18:26:12 2020 +0200 @@ -113,7 +113,7 @@ <a NAME="VirtualenvAddEditDialog.__init__" ID="VirtualenvAddEditDialog.__init__"></a> <h4>VirtualenvAddEditDialog (Constructor)</h4> -<b>VirtualenvAddEditDialog</b>(<i>manager, venvName="", venvDirectory="", venvInterpreter="", venvVariant=3, isGlobal=False, isConda=False, isRemote=False, execPath="", parent=None</i>) +<b>VirtualenvAddEditDialog</b>(<i>manager, venvName="", venvDirectory="", venvInterpreter="", isGlobal=False, isConda=False, isRemote=False, execPath="", parent=None</i>) <p> Constructor @@ -136,10 +136,6 @@ <dd> Python interpreter of the virtual environment </dd> -<dt><i>venvVariant</i> (int)</dt> -<dd> -Python variant of the virtual environment -</dd> <dt><i>isGlobal</i> (bool)</dt> <dd> flag indicating a global environment @@ -180,17 +176,16 @@ <dt>Returns:</dt> <dd> tuple containing the logical name, the directory, the - interpreter of the virtual environment, the Python variant, - a flag indicating a global environment, a flag indicating an - Anaconda environment, aflag indicating a remotely accessed - environment and a string to be prepended to the PATH environment - variable + interpreter of the virtual environment, a flag indicating a + global environment, a flag indicating an Anaconda environment, + a flag indicating a remotely accessed environment and a string + to be prepended to the PATH environment variable </dd> </dl> <dl> <dt>Return Type:</dt> <dd> -tuple of (str, str, str, int, bool, bool, bool, str) +tuple of (str, str, str, bool, bool, bool, str) </dd> </dl> <a NAME="VirtualenvAddEditDialog.on_anacondaCheckBox_clicked" ID="VirtualenvAddEditDialog.on_anacondaCheckBox_clicked"></a>
--- a/eric6/Documentation/Source/eric6.VirtualEnv.VirtualenvInterpreterSelectionDialog.html Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/Documentation/Source/eric6.VirtualEnv.VirtualenvInterpreterSelectionDialog.html Sun Jun 21 18:26:12 2020 +0200 @@ -132,14 +132,13 @@ <dl> <dt>Returns:</dt> <dd> -tuple containing the path of the selected Python interpreter - and the Python variant +path of the selected Python interpreter </dd> </dl> <dl> <dt>Return Type:</dt> <dd> -tuple of (str, int) +str </dd> </dl> <a NAME="VirtualenvInterpreterSelectionDialog.on_pythonExecPicker_textChanged" ID="VirtualenvInterpreterSelectionDialog.on_pythonExecPicker_textChanged"></a>
--- a/eric6/Documentation/Source/eric6.VirtualEnv.VirtualenvManager.html Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/Documentation/Source/eric6.VirtualEnv.VirtualenvManager.html Sun Jun 21 18:26:12 2020 +0200 @@ -140,14 +140,6 @@ <td>Public method to get a list of defined virtual environments.</td> </tr> <tr> -<td><a href="#VirtualenvManager.getVirtualenvNamesForVariant">getVirtualenvNamesForVariant</a></td> -<td>Public method to get a list of virtual environments for a given Python variant.</td> -</tr> -<tr> -<td><a href="#VirtualenvManager.getVirtualenvVariant">getVirtualenvVariant</a></td> -<td>Public method to get the variant of a virtual environment.</td> -</tr> -<tr> <td><a href="#VirtualenvManager.isCondaEnvironment">isCondaEnvironment</a></td> <td>Public method to test, if a given environment is an Anaconda environment.</td> </tr> @@ -247,7 +239,7 @@ </p> <a NAME="VirtualenvManager.addVirtualEnv" ID="VirtualenvManager.addVirtualEnv"></a> <h4>VirtualenvManager.addVirtualEnv</h4> -<b>addVirtualEnv</b>(<i>venvName, venvDirectory, venvInterpreter="", venvVariant=3, isGlobal=False, isConda=False, isRemote=False, execPath=""</i>) +<b>addVirtualEnv</b>(<i>venvName, venvDirectory, venvInterpreter="", isGlobal=False, isConda=False, isRemote=False, execPath=""</i>) <p> Public method to add a virtual environment. @@ -266,10 +258,6 @@ <dd> interpreter of the virtual environment </dd> -<dt><i>venvVariant</i> (int)</dt> -<dd> -Python variant of the virtual environment -</dd> <dt><i>isGlobal</i> (bool)</dt> <dd> flag indicating a global environment @@ -460,59 +448,6 @@ list of str </dd> </dl> -<a NAME="VirtualenvManager.getVirtualenvNamesForVariant" ID="VirtualenvManager.getVirtualenvNamesForVariant"></a> -<h4>VirtualenvManager.getVirtualenvNamesForVariant</h4> -<b>getVirtualenvNamesForVariant</b>(<i>variant</i>) - -<p> - Public method to get a list of virtual environments for a given - Python variant. -</p> -<dl> - -<dt><i>variant</i> (int)</dt> -<dd> -Python variant (2 or 3) -</dd> -</dl> -<dl> -<dt>Returns:</dt> -<dd> -list of defined virtual environments -</dd> -</dl> -<dl> -<dt>Return Type:</dt> -<dd> -list of str -</dd> -</dl> -<a NAME="VirtualenvManager.getVirtualenvVariant" ID="VirtualenvManager.getVirtualenvVariant"></a> -<h4>VirtualenvManager.getVirtualenvVariant</h4> -<b>getVirtualenvVariant</b>(<i>venvName</i>) - -<p> - Public method to get the variant of a virtual environment. -</p> -<dl> - -<dt><i>venvName</i> (str)</dt> -<dd> -logical name for the virtual environment -</dd> -</dl> -<dl> -<dt>Returns:</dt> -<dd> -Python variant of the environment -</dd> -</dl> -<dl> -<dt>Return Type:</dt> -<dd> -str -</dd> -</dl> <a NAME="VirtualenvManager.isCondaEnvironment" ID="VirtualenvManager.isCondaEnvironment"></a> <h4>VirtualenvManager.isCondaEnvironment</h4> <b>isCondaEnvironment</b>(<i>venvName</i>) @@ -635,7 +570,7 @@ </dl> <a NAME="VirtualenvManager.renameVirtualEnv" ID="VirtualenvManager.renameVirtualEnv"></a> <h4>VirtualenvManager.renameVirtualEnv</h4> -<b>renameVirtualEnv</b>(<i>oldVenvName, venvName, venvDirectory, venvInterpreter, venvVariant, isGlobal, isConda, isRemote, execPath</i>) +<b>renameVirtualEnv</b>(<i>oldVenvName, venvName, venvDirectory, venvInterpreter, isGlobal, isConda, isRemote, execPath</i>) <p> Public method to substitute a virtual environment entry with a new @@ -659,10 +594,6 @@ <dd> interpreter of the virtual environment </dd> -<dt><i>venvVariant</i> (int)</dt> -<dd> -Python variant of the virtual environment -</dd> <dt><i>isGlobal</i> (bool)</dt> <dd> flag indicating a global environment @@ -683,7 +614,7 @@ </dl> <a NAME="VirtualenvManager.setVirtualEnv" ID="VirtualenvManager.setVirtualEnv"></a> <h4>VirtualenvManager.setVirtualEnv</h4> -<b>setVirtualEnv</b>(<i>venvName, venvDirectory, venvInterpreter, venvVariant, isGlobal, isConda, isRemote, execPath</i>) +<b>setVirtualEnv</b>(<i>venvName, venvDirectory, venvInterpreter, isGlobal, isConda, isRemote, execPath</i>) <p> Public method to change a virtual environment. @@ -702,10 +633,6 @@ <dd> interpreter of the virtual environment </dd> -<dt><i>venvVariant</i> (int)</dt> -<dd> -Python variant of the virtual environment -</dd> <dt><i>isGlobal</i> (bool)</dt> <dd> flag indicating a global environment
--- a/eric6/Documentation/Source/index-eric6.Preferences.ConfigurationPages.html Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/Documentation/Source/index-eric6.Preferences.ConfigurationPages.html Sun Jun 21 18:26:12 2020 +0200 @@ -54,10 +54,6 @@ <td>Module implementing the Debugger General configuration page.</td> </tr> <tr> -<td><a href="eric6.Preferences.ConfigurationPages.DebuggerPython2Page.html">DebuggerPython2Page</a></td> -<td>Module implementing the Debugger Python2 configuration page.</td> -</tr> -<tr> <td><a href="eric6.Preferences.ConfigurationPages.DebuggerPython3Page.html">DebuggerPython3Page</a></td> <td>Module implementing the Debugger Python3 configuration page.</td> </tr>
--- a/eric6/Documentation/Source/index-eric6.Utilities.html Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/Documentation/Source/index-eric6.Utilities.html Sun Jun 21 18:26:12 2020 +0200 @@ -79,7 +79,7 @@ </tr> <tr> <td><a href="eric6.Utilities.PySideImporter.html">PySideImporter</a></td> -<td>Module to check for the presence of PySide/PySide2 by importing it.</td> +<td>Module to check for the presence of PySide2 by importing it.</td> </tr> <tr> <td><a href="eric6.Utilities.__init__.html">Utilities</a></td>
--- a/eric6/DocumentationTools/__init__.py Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/DocumentationTools/__init__.py Sun Jun 21 18:26:12 2020 +0200 @@ -8,7 +8,6 @@ """ supportedExtensionsDictForApis = { - "Python2": [".py2", ".pyw2", ".ptl"], "Python3": [".py", ".pyw", ".py3", ".pyw3"], "Ruby": [".rb"] }
--- a/eric6/E5XML/ProjectReader.py Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/E5XML/ProjectReader.py Sun Jun 21 18:26:12 2020 +0200 @@ -68,8 +68,8 @@ ) self.project.pdata["PROGLANGUAGE"] = self.readElementText() if self.project.pdata["PROGLANGUAGE"] == "Python": - # convert Python to the more specific Python2 - self.project.pdata["PROGLANGUAGE"] = "Python2" + # convert Python to the more specific Python3 + self.project.pdata["PROGLANGUAGE"] = "Python3" elif self.name() == "ProjectType": self.project.pdata["PROJECTTYPE"] = self.readElementText() elif self.name() == "Description":
--- a/eric6/Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleChecker.py Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleChecker.py Sun Jun 21 18:26:12 2020 +0200 @@ -364,14 +364,6 @@ fixer = None if not errors: - # avoid 'Encoding declaration in unicode string' exception on Python2 - if sys.version_info[0] == 2: - if encoding == 'utf-8-bom': - enc = 'utf-8' - else: - enc = encoding - source = [line.encode(enc) for line in source] - if includeMessages: select = [s.strip() for s in includeMessages.split(',') if s.strip()]
--- a/eric6/Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheck.py Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheck.py Sun Jun 21 18:26:12 2020 +0200 @@ -240,8 +240,6 @@ else: file_enc = filename - # It also encode the code back to avoid 'Encoding declaration in - # unicode string' exception on Python2 codestring = normalizeCode(codestring) # Check for VCS conflict markers
--- a/eric6/Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py Sun Jun 21 18:26:12 2020 +0200 @@ -195,22 +195,6 @@ """ self.error.emit(fn, msg) - def serviceErrorPy2(self, fx, lang, fn, msg): - """ - Public method handling service errors for Python 2. - - @param fx service name (string) - @param lang language (string) - @param fn file name (string) - @param msg message text (string) - """ - if fx in ['Python2Syntax', 'batch_Python2Syntax']: - if fx == 'Python2Syntax': - self.__serviceError(fn, msg) - else: - self.__serviceError(self.tr("Python 2 batch check"), msg) - self.batchJobDone(fx, lang) - def serviceErrorPy3(self, fx, lang, fn, msg): """ Public method handling service errors for Python 2. @@ -283,7 +267,6 @@ @param lang language (string) """ if fx in [ - 'Python2Syntax', 'batch_Python2Syntax', 'Python3Syntax', 'batch_Python3Syntax', 'JavaScriptSyntax', 'batch_JavaScriptSyntax', 'YAMLSyntax', 'batch_YAMLSyntax',
--- a/eric6/Plugins/CheckerPlugins/SyntaxChecker/pyflakes/messages.py Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/Plugins/CheckerPlugins/SyntaxChecker/pyflakes/messages.py Sun Jun 21 18:26:12 2020 +0200 @@ -4,7 +4,7 @@ # # Original (c) 2005 Divmod, Inc. See __init__.py file for details # -# This module is based on pyflakes for Python2 and Python3, but was modified to +# This module is based on pyflakes, but was modified to # be integrated into eric6 """
--- a/eric6/Plugins/CheckerPlugins/SyntaxChecker/pyflakes/translations.py Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/Plugins/CheckerPlugins/SyntaxChecker/pyflakes/translations.py Sun Jun 21 18:26:12 2020 +0200 @@ -179,7 +179,6 @@ @return translated and formatted message (string) """ if message_id in _messages: - # Avoid leading "u" at Python2 unicode strings msg = _messages[message_id].replace("{0!r}", "'{0}'") msg = msg.replace("{1!r}", "'{1}'") return msg.format(*message_args)
--- a/eric6/Plugins/PluginCodeStyleChecker.py Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/Plugins/PluginCodeStyleChecker.py Sun Jun 21 18:26:12 2020 +0200 @@ -72,11 +72,6 @@ path = os.path.join( os.path.dirname(__file__), 'CheckerPlugins', 'CodeStyleChecker') self.backgroundService.serviceConnect( - 'style', 'Python2', path, 'CodeStyleChecker', - self.__translateStyleCheck, - onErrorCallback=self.serviceErrorPy2, - onBatchDone=self.batchJobDone) - self.backgroundService.serviceConnect( 'style', 'Python3', path, 'CodeStyleChecker', self.__translateStyleCheck, onErrorCallback=self.serviceErrorPy3, @@ -96,22 +91,6 @@ """ self.error.emit(fn, msg) - def serviceErrorPy2(self, fx, lang, fn, msg): - """ - Public slot handling service errors for Python 2. - - @param fx service name (string) - @param lang language (string) - @param fn file name (string) - @param msg message text (string) - """ - if fx in ['style', 'batch_style'] and lang == 'Python2': - if fx == 'style': - self.__serviceError(fn, msg) - else: - self.__serviceError(self.tr("Python 2 batch check"), msg) - self.batchJobDone(fx, lang) - def serviceErrorPy3(self, fx, lang, fn, msg): """ Public slot handling service errors for Python 2. @@ -179,7 +158,7 @@ """ if lang is None: lang = 'Python{0}'.format(determinePythonVersion(filename, source)) - if lang not in ['Python2', 'Python3']: + if lang != 'Python3': return data = [source, args] @@ -195,30 +174,27 @@ @type list of tuple of (str, str, list) """ data = { - "Python2": [], "Python3": [], } for filename, source, args in argumentsList: lang = 'Python{0}'.format(determinePythonVersion(filename, source)) - if lang not in ['Python2', 'Python3']: + if lang != 'Python3': continue else: data[lang].append((filename, source, args)) self.queuedBatches = [] - for lang in ['Python2', 'Python3']: - if data[lang]: - self.queuedBatches.append(lang) - self.backgroundService.enqueueRequest('batch_style', lang, "", - data[lang]) - self.batchesFinished = False + if data['Python3']: + self.queuedBatches.append('Python3') + self.backgroundService.enqueueRequest('batch_style', 'Python3', "", + data['Python3']) + self.batchesFinished = False def cancelStyleBatchCheck(self): """ Public method to cancel all batch jobs. """ - for lang in ['Python2', 'Python3']: - self.backgroundService.requestCancel('batch_style', lang) + self.backgroundService.requestCancel('batch_style', 'Python3') def __translateStyleCheck(self, fn, codeStyleCheckerStats, results): """ @@ -340,7 +316,7 @@ if menuName == "Checks" and self.__projectAct is not None: self.__projectAct.setEnabled( e5App().getObject("Project").getProjectLanguage() in - ["Python3", "Python2", "Python", "MicroPython"]) + ["Python3", "MicroPython"]) def __projectBrowserShowMenu(self, menuName, menu): """ @@ -353,7 +329,7 @@ if ( menuName == "Checks" and e5App().getObject("Project").getProjectLanguage() in - ["Python3", "Python2", "Python", "MicroPython"] + ["Python3", "MicroPython"] ): self.__projectBrowserMenu = menu if self.__projectBrowserAct is None:
--- a/eric6/Plugins/PluginSyntaxChecker.py Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/Plugins/PluginSyntaxChecker.py Sun Jun 21 18:26:12 2020 +0200 @@ -66,20 +66,12 @@ 'SyntaxChecker') self.syntaxCheckService.addLanguage( - 'Python2', 'Python2', path, 'SyntaxCheck', - self.__getPythonOptions, - lambda: Preferences.getPython("PythonExtensions"), - self.__translateSyntaxCheck, - self.syntaxCheckService.serviceErrorPy2) - - self.syntaxCheckService.addLanguage( 'Python3', 'Python3', path, 'SyntaxCheck', self.__getPythonOptions, lambda: Preferences.getPython("Python3Extensions"), self.__translateSyntaxCheck, self.syntaxCheckService.serviceErrorPy3) - # Jasy isn't yet compatible to Python2 self.syntaxCheckService.addLanguage( 'JavaScript', 'Python3', path, 'jsCheckSyntax',
--- a/eric6/Plugins/PluginTabnanny.py Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/Plugins/PluginTabnanny.py Sun Jun 21 18:26:12 2020 +0200 @@ -68,11 +68,6 @@ path = os.path.join( os.path.dirname(__file__), 'CheckerPlugins', 'Tabnanny') self.backgroundService.serviceConnect( - 'indent', 'Python2', path, 'Tabnanny', - lambda *args: self.indentChecked.emit(*args), - onErrorCallback=self.serviceErrorPy2, - onBatchDone=self.batchJobDone) - self.backgroundService.serviceConnect( 'indent', 'Python3', path, 'Tabnanny', lambda *args: self.indentChecked.emit(*args), onErrorCallback=self.serviceErrorPy3, @@ -90,22 +85,6 @@ """ self.error.emit(fn, msg) - def serviceErrorPy2(self, fx, lang, fn, msg): - """ - Public slot handling service errors for Python 2. - - @param fx service name (string) - @param lang language (string) - @param fn file name (string) - @param msg message text (string) - """ - if fx in ['indent', 'batch_indent'] and lang == 'Python2': - if fx == 'indent': - self.__serviceError(fn, msg) - else: - self.__serviceError(self.tr("Python 2 batch check"), msg) - self.batchJobDone(fx, lang) - def serviceErrorPy3(self, fx, lang, fn, msg): """ Public slot handling service errors for Python 2. @@ -164,7 +143,7 @@ """ if lang is None: lang = 'Python{0}'.format(determinePythonVersion(filename, source)) - if lang not in ['Python2', 'Python3']: + if lang != 'Python3': return self.backgroundService.enqueueRequest( @@ -179,30 +158,27 @@ containing filename and source (string, string) """ data = { - "Python2": [], "Python3": [], } for filename, source in argumentsList: lang = 'Python{0}'.format(determinePythonVersion(filename, source)) - if lang not in ['Python2', 'Python3']: + if lang != 'Python3': continue else: data[lang].append((filename, source)) self.queuedBatches = [] - for lang in ['Python2', 'Python3']: - if data[lang]: - self.queuedBatches.append(lang) - self.backgroundService.enqueueRequest('batch_indent', lang, "", - data[lang]) - self.batchesFinished = False + if data['Python3']: + self.queuedBatches.append('Python3') + self.backgroundService.enqueueRequest( + 'batch_indent', 'Python3', "", data['Python3']) + self.batchesFinished = False def cancelIndentBatchCheck(self): """ Public method to cancel all batch jobs. """ - for lang in ['Python2', 'Python3']: - self.backgroundService.requestCancel('batch_style', lang) + self.backgroundService.requestCancel('batch_style', 'Python3') def activate(self): """ @@ -292,7 +268,7 @@ if menuName == "Checks" and self.__projectAct is not None: self.__projectAct.setEnabled( e5App().getObject("Project").getProjectLanguage() in - ["Python3", "Python2", "Python", "MicroPython"]) + ["Python3", "MicroPython"]) def __projectBrowserShowMenu(self, menuName, menu): """ @@ -305,7 +281,7 @@ if ( menuName == "Checks" and e5App().getObject("Project").getProjectLanguage() in - ["Python3", "Python2", "Python", "MicroPython"] + ["Python3", "MicroPython"] ): self.__projectBrowserMenu = menu if self.__projectBrowserAct is None:
--- a/eric6/Plugins/PluginWizardQFileDialog.py Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/Plugins/PluginWizardQFileDialog.py Sun Jun 21 18:26:12 2020 +0200 @@ -48,8 +48,8 @@ super(FileDialogWizard, self).__init__(ui) self.__ui = ui - # PyQt4 or PyQt5 - self.__pyqtRe = re.compile(r"(?:import|from)\s+PyQt([45])") + # PyQt5 + self.__pyqtRe = re.compile(r"(?:import|from)\s+PyQt([5])") def activate(self): """ @@ -124,7 +124,7 @@ @param editor reference to the current editor @type Editor @param variant variant of code to be generated - (-1 = E5FileDialog, 0 = unknown, 4 = PyQt4, 5 = PyQt5) + (-1 = E5FileDialog, 0 = unknown, 5 = PyQt5) @type int @return the generated code (string) """ @@ -166,7 +166,7 @@ # unknown dialogVariant = 0 else: - # PyQt4 or PyQt5 + # PyQt5 dialogVariant = int(match.group(1)) elif variant == "E5FileDialog": # E5FileDialog
--- a/eric6/Plugins/WizardPlugins/FileDialogWizard/FileDialogWizardDialog.py Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/Plugins/WizardPlugins/FileDialogWizard/FileDialogWizardDialog.py Sun Jun 21 18:26:12 2020 +0200 @@ -34,7 +34,7 @@ Constructor @param dialogVariant variant of the file dialog to be generated - (-1 = E5FileDialog, 0 = unknown, 4 = PyQt4, 5 = PyQt5) + (-1 = E5FileDialog, 0 = unknown, 5 = PyQt5) @type int @param parent parent widget @type QWidget @@ -71,7 +71,7 @@ self.pyqtComboBox.setCurrentIndex(0) self.pyqtComboBox.setEnabled(False) else: - self.pyqtComboBox.addItems(["PyQt5", "PyQt4"]) + self.pyqtComboBox.addItems(["PyQt5"]) self.setWindowTitle(self.tr("QFileDialog Wizard")) if self.__dialogVariant == 5: self.pyqtComboBox.setCurrentIndex(0) @@ -113,9 +113,9 @@ @param txt text of the selected combo box entry (string) """ - self.rfOpenFile.setEnabled(txt in ("eric", "PyQt4")) - self.rfOpenFiles.setEnabled(txt in ("eric", "PyQt4")) - self.rfSaveFile.setEnabled(txt in ("eric", "PyQt4")) + self.rfOpenFile.setEnabled(txt == "eric") + self.rfOpenFiles.setEnabled(txt == "eric") + self.rfSaveFile.setEnabled(txt == "eric") self.rOpenFileUrl.setEnabled(txt == "PyQt5") self.rOpenFileUrls.setEnabled(txt == "PyQt5") @@ -143,8 +143,6 @@ self.__dialogVariant = -1 elif txt == "PyQt5": self.__dialogVariant = 5 - elif txt == "PyQt4": - self.__dialogVariant = 4 else: # default is PyQt5 self.__dialogVariant = 5 @@ -364,7 +362,7 @@ def getCode(self, indLevel, indString): """ - Public method to get the source code for Qt4 and Qt5. + Public method to get the source code for Qt5. @param indLevel indentation level (int) @param indString string used for indentation (space or tab) (string)
--- a/eric6/Preferences/ConfigurationDialog.py Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/Preferences/ConfigurationDialog.py Sun Jun 21 18:26:12 2020 +0200 @@ -222,9 +222,6 @@ "debuggerGeneralPage": [self.tr("General"), "preferences-debugger", "DebuggerGeneralPage", "0debuggerPage", None], - "debuggerPython2Page": - [self.tr("Python2"), "preferences-pyDebugger", - "DebuggerPython2Page", "0debuggerPage", None], "debuggerPython3Page": [self.tr("Python3"), "preferences-pyDebugger", "DebuggerPython3Page", "0debuggerPage", None],
--- a/eric6/Preferences/ConfigurationPages/DebuggerPython2Page.py Sat Jun 20 17:36:20 2020 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,132 +0,0 @@ -# -*- coding: utf-8 -*- - -# Copyright (c) 2006 - 2020 Detlev Offenbach <detlev@die-offenbachs.de> -# - -""" -Module implementing the Debugger Python2 configuration page. -""" - - -from PyQt5.QtCore import pyqtSlot - -from E5Gui.E5Application import e5App -from E5Gui.E5PathPicker import E5PathPickerModes - -from .ConfigurationPageBase import ConfigurationPageBase -from .Ui_DebuggerPython2Page import Ui_DebuggerPython2Page - -import Preferences -import UI.PixmapCache - - -class DebuggerPython2Page(ConfigurationPageBase, Ui_DebuggerPython2Page): - """ - Class implementing the Debugger Python2 configuration page. - """ - def __init__(self): - """ - Constructor - """ - super(DebuggerPython2Page, self).__init__() - self.setupUi(self) - self.setObjectName("DebuggerPython2Page") - - try: - self.__virtualenvManager = e5App().getObject("VirtualEnvManager") - except KeyError: - from VirtualEnv.VirtualenvManager import VirtualenvManager - self.__virtualenvManager = VirtualenvManager() - - self.venvDlgButton.setIcon(UI.PixmapCache.getIcon("virtualenv")) - - self.debugClientPicker.setMode(E5PathPickerModes.OpenFileMode) - self.debugClientPicker.setToolTip(self.tr( - "Press to select the Debug Client via a file selection dialog")) - self.debugClientPicker.setFilters(self.tr("Python Files (*.py *.py2)")) - - self.__populateAndSetVenvComboBox() - - # set initial values - dct = Preferences.getDebugger("DebugClientType") - if dct == "standard": - self.standardButton.setChecked(True) - else: - self.customButton.setChecked(True) - self.debugClientPicker.setText( - Preferences.getDebugger("DebugClient"), toNative=False) - self.pyRedirectCheckBox.setChecked( - Preferences.getDebugger("PythonRedirect")) - self.pyNoEncodingCheckBox.setChecked( - Preferences.getDebugger("PythonNoEncoding")) - self.sourceExtensionsEdit.setText( - Preferences.getDebugger("PythonExtensions")) - - def save(self): - """ - Public slot to save the Debugger Python configuration. - """ - Preferences.setDebugger( - "Python2VirtualEnv", - self.venvComboBox.currentText()) - if self.standardButton.isChecked(): - dct = "standard" - else: - dct = "custom" - Preferences.setDebugger("DebugClientType", dct) - Preferences.setDebugger( - "DebugClient", - self.debugClientPicker.text(toNative=False)) - Preferences.setDebugger( - "PythonRedirect", - self.pyRedirectCheckBox.isChecked()) - Preferences.setDebugger( - "PythonNoEncoding", - self.pyNoEncodingCheckBox.isChecked()) - - def __populateAndSetVenvComboBox(self): - """ - Private method to populate and set the virtual environment combo box. - """ - self.venvComboBox.clear() - self.venvComboBox.addItems( - [""] + - sorted(self.__virtualenvManager.getVirtualenvNamesForVariant(2)) - ) - - # set initial value - venvName = Preferences.getDebugger("Python2VirtualEnv") - if venvName: - index = self.venvComboBox.findText(venvName) - if index < 0: - index = 0 - self.venvComboBox.setCurrentIndex(index) - - @pyqtSlot() - def on_refreshButton_clicked(self): - """ - Private slot handling a click of the refresh button. - """ - self.sourceExtensionsEdit.setText( - Preferences.getDebugger("PythonExtensions")) - - @pyqtSlot() - def on_venvDlgButton_clicked(self): - """ - Private slot to show the virtual environment manager dialog. - """ - self.__virtualenvManager.showVirtualenvManagerDialog(modal=True) - self.__populateAndSetVenvComboBox() - self.activateWindow() - self.raise_() - - -def create(dlg): - """ - Module function to create the configuration page. - - @param dlg reference to the configuration dialog - @return reference to the instantiated page (ConfigurationPageBase) - """ - page = DebuggerPython2Page() - return page
--- a/eric6/Preferences/ConfigurationPages/DebuggerPython2Page.ui Sat Jun 20 17:36:20 2020 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,241 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<ui version="4.0"> - <class>DebuggerPython2Page</class> - <widget class="QWidget" name="DebuggerPython2Page"> - <property name="geometry"> - <rect> - <x>0</x> - <y>0</y> - <width>455</width> - <height>500</height> - </rect> - </property> - <layout class="QVBoxLayout" name="verticalLayout_3"> - <item> - <widget class="QLabel" name="headerLabel"> - <property name="text"> - <string><b>Configure Python2 Debugger</b></string> - </property> - </widget> - </item> - <item> - <widget class="Line" name="line11_2"> - <property name="frameShape"> - <enum>QFrame::HLine</enum> - </property> - <property name="frameShadow"> - <enum>QFrame::Sunken</enum> - </property> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - </widget> - </item> - <item> - <widget class="QGroupBox" name="groupBox_4"> - <property name="title"> - <string>Python2 Virtual Environment</string> - </property> - <layout class="QHBoxLayout" name="horizontalLayout_2"> - <item> - <widget class="QComboBox" name="venvComboBox"> - <property name="toolTip"> - <string>Select the virtual environment to be used</string> - </property> - </widget> - </item> - <item> - <widget class="QToolButton" name="venvDlgButton"> - <property name="toolTip"> - <string>Press to open the virtual environment manager dialog</string> - </property> - <property name="text"> - <string notr="true"/> - </property> - </widget> - </item> - </layout> - </widget> - </item> - <item> - <widget class="QGroupBox" name="groupBox_2"> - <property name="title"> - <string>Debug Client Type</string> - </property> - <layout class="QGridLayout" name="gridLayout"> - <item row="1" column="0" colspan="2"> - <widget class="E5PathPicker" name="debugClientPicker" native="true"> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="focusPolicy"> - <enum>Qt::StrongFocus</enum> - </property> - <property name="toolTip"> - <string>Enter the path of the Debug Client to be used. Leave empty to use the default.</string> - </property> - </widget> - </item> - <item row="0" column="0"> - <widget class="QRadioButton" name="standardButton"> - <property name="toolTip"> - <string>Select the standard debug client</string> - </property> - <property name="text"> - <string>Standard</string> - </property> - </widget> - </item> - <item row="0" column="1"> - <widget class="QRadioButton" name="customButton"> - <property name="toolTip"> - <string>Select the custom selected debug client</string> - </property> - <property name="text"> - <string>Custom</string> - </property> - </widget> - </item> - </layout> - </widget> - </item> - <item> - <widget class="QGroupBox" name="groupBox_3"> - <property name="title"> - <string>Source association</string> - </property> - <layout class="QVBoxLayout" name="verticalLayout"> - <item> - <widget class="QLabel" name="label"> - <property name="text"> - <string>Please configure the associated file extensions on the 'Python' page.</string> - </property> - <property name="wordWrap"> - <bool>true</bool> - </property> - </widget> - </item> - <item> - <widget class="QLineEdit" name="sourceExtensionsEdit"> - <property name="readOnly"> - <bool>true</bool> - </property> - </widget> - </item> - <item> - <layout class="QHBoxLayout" name="horizontalLayout"> - <item> - <spacer name="horizontalSpacer"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - <item> - <widget class="QPushButton" name="refreshButton"> - <property name="toolTip"> - <string>Press to update the display of the source associations</string> - </property> - <property name="text"> - <string>Refresh</string> - </property> - </widget> - </item> - <item> - <spacer name="horizontalSpacer_2"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - </layout> - </item> - </layout> - </widget> - </item> - <item> - <widget class="QCheckBox" name="pyRedirectCheckBox"> - <property name="toolTip"> - <string>Select, to redirect stdin, stdout and stderr of the program being debugged to the eric6 IDE</string> - </property> - <property name="text"> - <string>Redirect stdin/stdout/stderr</string> - </property> - </widget> - </item> - <item> - <widget class="QCheckBox" name="pyNoEncodingCheckBox"> - <property name="toolTip"> - <string>Select to not set the debug client encoding</string> - </property> - <property name="text"> - <string>Don't set the encoding of the debug client</string> - </property> - </widget> - </item> - <item> - <spacer> - <property name="orientation"> - <enum>Qt::Vertical</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>435</width> - <height>21</height> - </size> - </property> - </spacer> - </item> - </layout> - </widget> - <customwidgets> - <customwidget> - <class>E5PathPicker</class> - <extends>QWidget</extends> - <header>E5Gui/E5PathPicker.h</header> - <container>1</container> - </customwidget> - </customwidgets> - <tabstops> - <tabstop>venvComboBox</tabstop> - <tabstop>venvDlgButton</tabstop> - <tabstop>standardButton</tabstop> - <tabstop>customButton</tabstop> - <tabstop>debugClientPicker</tabstop> - <tabstop>sourceExtensionsEdit</tabstop> - <tabstop>refreshButton</tabstop> - <tabstop>pyRedirectCheckBox</tabstop> - <tabstop>pyNoEncodingCheckBox</tabstop> - </tabstops> - <resources/> - <connections> - <connection> - <sender>customButton</sender> - <signal>toggled(bool)</signal> - <receiver>debugClientPicker</receiver> - <slot>setEnabled(bool)</slot> - <hints> - <hint type="sourcelabel"> - <x>328</x> - <y>116</y> - </hint> - <hint type="destinationlabel"> - <x>328</x> - <y>135</y> - </hint> - </hints> - </connection> - </connections> -</ui>
--- a/eric6/Preferences/ConfigurationPages/DebuggerPython3Page.py Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/Preferences/ConfigurationPages/DebuggerPython3Page.py Sun Jun 21 18:26:12 2020 +0200 @@ -91,7 +91,7 @@ self.venvComboBox.clear() self.venvComboBox.addItems( [""] + - sorted(self.__virtualenvManager.getVirtualenvNamesForVariant(3)) + sorted(self.__virtualenvManager.getVirtualenvNames()) ) # set initial value
--- a/eric6/Preferences/ConfigurationPages/HelpDocumentationPage.py Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/Preferences/ConfigurationPages/HelpDocumentationPage.py Sun Jun 21 18:26:12 2020 +0200 @@ -32,64 +32,32 @@ self.ericDocDirPicker.setMode(E5PathPickerModes.OpenFileMode) self.ericDocDirPicker.setFilters(self.tr( "HTML Files (*.html *.htm);;All Files (*)")) - self.python2DocDirPicker.setMode(E5PathPickerModes.OpenFileMode) - self.python2DocDirPicker.setFilters(self.tr( - "HTML Files (*.html *.htm);;" - "Compressed Help Files (*.chm);;" - "All Files (*)")) self.pythonDocDirPicker.setMode(E5PathPickerModes.OpenFileMode) self.pythonDocDirPicker.setFilters(self.tr( "HTML Files (*.html *.htm);;" "Compressed Help Files (*.chm);;" "All Files (*)")) - self.qt4DocDirPicker.setMode(E5PathPickerModes.OpenFileMode) - self.qt4DocDirPicker.setFilters(self.tr( - "HTML Files (*.html *.htm);;All Files (*)")) self.qt5DocDirPicker.setMode(E5PathPickerModes.OpenFileMode) self.qt5DocDirPicker.setFilters(self.tr( "HTML Files (*.html *.htm);;All Files (*)")) - self.pyqt4DocDirPicker.setMode(E5PathPickerModes.OpenFileMode) - self.pyqt4DocDirPicker.setFilters(self.tr( - "HTML Files (*.html *.htm);;All Files (*)")) self.pyqt5DocDirPicker.setMode(E5PathPickerModes.OpenFileMode) self.pyqt5DocDirPicker.setFilters(self.tr( "HTML Files (*.html *.htm);;All Files (*)")) - self.pysideDocDirPicker.setMode(E5PathPickerModes.OpenFileMode) - self.pysideDocDirPicker.setFilters(self.tr( - "HTML Files (*.html *.htm);;All Files (*)")) self.pyside2DocDirPicker.setMode(E5PathPickerModes.OpenFileMode) self.pyside2DocDirPicker.setFilters(self.tr( "HTML Files (*.html *.htm);;All Files (*)")) - pyside_py2, pyside_py3 = Utilities.checkPyside("1") - if pyside_py2 or pyside_py3: - self.pysideGroup.setEnabled(True) - else: - self.pysideGroup.setEnabled(False) - - pyside2_py2, pyside2_py3 = Utilities.checkPyside("2") - if pyside2_py2 or pyside2_py3: - self.pyside2Group.setEnabled(True) - else: - self.pyside2Group.setEnabled(False) + self.pyside2Group.setEnabled(Utilities.checkPyside()) # set initial values self.ericDocDirPicker.setText( Preferences.getHelp("EricDocDir"), toNative=False) - self.python2DocDirPicker.setText( - Preferences.getHelp("Python2DocDir"), toNative=False) self.pythonDocDirPicker.setText( Preferences.getHelp("PythonDocDir"), toNative=False) - self.qt4DocDirPicker.setText( - Preferences.getHelp("Qt4DocDir"), toNative=False) self.qt5DocDirPicker.setText( Preferences.getHelp("Qt5DocDir"), toNative=False) - self.pyqt4DocDirPicker.setText( - Preferences.getHelp("PyQt4DocDir"), toNative=False) self.pyqt5DocDirPicker.setText( Preferences.getHelp("PyQt5DocDir"), toNative=False) - self.pysideDocDirPicker.setText( - Preferences.getHelp("PySideDocDir"), toNative=False) self.pyside2DocDirPicker.setText( Preferences.getHelp("PySide2DocDir"), toNative=False) @@ -101,27 +69,15 @@ "EricDocDir", self.ericDocDirPicker.text(toNative=False)) Preferences.setHelp( - "Python2DocDir", - self.python2DocDirPicker.text(toNative=False)) - Preferences.setHelp( "PythonDocDir", self.pythonDocDirPicker.text(toNative=False)) Preferences.setHelp( - "Qt4DocDir", - self.qt4DocDirPicker.text(toNative=False)) - Preferences.setHelp( "Qt5DocDir", self.qt5DocDirPicker.text(toNative=False)) Preferences.setHelp( - "PyQt4DocDir", - self.pyqt4DocDirPicker.text(toNative=False)) - Preferences.setHelp( "PyQt5DocDir", self.pyqt5DocDirPicker.text(toNative=False)) Preferences.setHelp( - "PySideDocDir", - self.pysideDocDirPicker.text(toNative=False)) - Preferences.setHelp( "PySide2DocDir", self.pyside2DocDirPicker.text(toNative=False))
--- a/eric6/Preferences/ConfigurationPages/HelpDocumentationPage.ui Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/Preferences/ConfigurationPages/HelpDocumentationPage.ui Sun Jun 21 18:26:12 2020 +0200 @@ -67,41 +67,6 @@ </widget> </item> <item> - <widget class="QGroupBox" name="groupBox_5"> - <property name="title"> - <string>Python 2 Documentation</string> - </property> - <layout class="QVBoxLayout" name="verticalLayout_2"> - <item> - <widget class="E5PathPicker" name="python2DocDirPicker" native="true"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Expanding" vsizetype="Preferred"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="focusPolicy"> - <enum>Qt::StrongFocus</enum> - </property> - <property name="toolTip"> - <string>Enter the Python 2 documentation directory</string> - </property> - </widget> - </item> - <item> - <widget class="QLabel" name="textLabel1_8_3"> - <property name="text"> - <string><b>Note</b>: Leave empty to use the PYTHON2DOCDIR environment variable, if set.</string> - </property> - <property name="wordWrap"> - <bool>true</bool> - </property> - </widget> - </item> - </layout> - </widget> - </item> - <item> <widget class="QGroupBox" name="groupBox_4"> <property name="title"> <string>Python 3 Documentation</string> @@ -137,41 +102,6 @@ </widget> </item> <item> - <widget class="QGroupBox" name="groupBox_6"> - <property name="title"> - <string>Qt4 Documentation</string> - </property> - <layout class="QVBoxLayout" name="verticalLayout_4"> - <item> - <widget class="E5PathPicker" name="qt4DocDirPicker" native="true"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Expanding" vsizetype="Preferred"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="focusPolicy"> - <enum>Qt::StrongFocus</enum> - </property> - <property name="toolTip"> - <string>Enter the Qt4 documentation directory</string> - </property> - </widget> - </item> - <item> - <widget class="QLabel" name="textLabel1_8_2_2_2"> - <property name="text"> - <string><b>Note</b>: Leave empty to use the QT4DOCDIR environment variable, if set.</string> - </property> - <property name="wordWrap"> - <bool>true</bool> - </property> - </widget> - </item> - </layout> - </widget> - </item> - <item> <widget class="QGroupBox" name="groupBox_8"> <property name="title"> <string>Qt5 Documentation</string> @@ -207,41 +137,6 @@ </widget> </item> <item> - <widget class="QGroupBox" name="groupBox_7"> - <property name="title"> - <string>PyQt4 Documentation</string> - </property> - <layout class="QVBoxLayout" name="verticalLayout_6"> - <item> - <widget class="E5PathPicker" name="pyqt4DocDirPicker" native="true"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Expanding" vsizetype="Preferred"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="focusPolicy"> - <enum>Qt::StrongFocus</enum> - </property> - <property name="toolTip"> - <string>Enter the PyQt4 documentation directory</string> - </property> - </widget> - </item> - <item> - <widget class="QLabel" name="textLabel1_8_2_2_3"> - <property name="text"> - <string><b>Note</b>: Leave empty to use the PYQT4DOCDIR environment variable, if set.</string> - </property> - <property name="wordWrap"> - <bool>true</bool> - </property> - </widget> - </item> - </layout> - </widget> - </item> - <item> <widget class="QGroupBox" name="pyqt5Group"> <property name="title"> <string>PyQt5 Documentation</string> @@ -277,41 +172,6 @@ </widget> </item> <item> - <widget class="QGroupBox" name="pysideGroup"> - <property name="title"> - <string>PySide Documentation</string> - </property> - <layout class="QVBoxLayout" name="verticalLayout_8"> - <item> - <widget class="E5PathPicker" name="pysideDocDirPicker" native="true"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Expanding" vsizetype="Preferred"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="focusPolicy"> - <enum>Qt::StrongFocus</enum> - </property> - <property name="toolTip"> - <string>Enter the PySide documentation directory</string> - </property> - </widget> - </item> - <item> - <widget class="QLabel" name="textLabel1_8_2_2"> - <property name="text"> - <string><b>Note</b>: Leave empty to use the PYSIDEDOCDIR environment variable, if set.</string> - </property> - <property name="wordWrap"> - <bool>true</bool> - </property> - </widget> - </item> - </layout> - </widget> - </item> - <item> <widget class="QGroupBox" name="pyside2Group"> <property name="title"> <string>PySide2 Documentation</string> @@ -371,13 +231,9 @@ </customwidgets> <tabstops> <tabstop>ericDocDirPicker</tabstop> - <tabstop>python2DocDirPicker</tabstop> <tabstop>pythonDocDirPicker</tabstop> - <tabstop>qt4DocDirPicker</tabstop> <tabstop>qt5DocDirPicker</tabstop> - <tabstop>pyqt4DocDirPicker</tabstop> <tabstop>pyqt5DocDirPicker</tabstop> - <tabstop>pysideDocDirPicker</tabstop> </tabstops> <resources/> <connections/>
--- a/eric6/Preferences/ConfigurationPages/PythonPage.py Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/Preferences/ConfigurationPages/PythonPage.py Sun Jun 21 18:26:12 2020 +0200 @@ -41,13 +41,9 @@ self.ioEncodingComboBox.setCurrentIndex(index) # these are the same as in the debugger pages - self.py2ExtensionsEdit.setText( - Preferences.getDebugger("PythonExtensions")) self.py3ExtensionsEdit.setText( Preferences.getDebugger("Python3Extensions")) - self.py2EnvironmentEdit.setText( - Preferences.getDebugger("Python2VirtualEnv")) self.py3EnvironmentEdit.setText( Preferences.getDebugger("Python3VirtualEnv")) @@ -66,9 +62,6 @@ Preferences.setSystem("IOEncoding", enc) Preferences.setDebugger( - "PythonExtensions", - self.py2ExtensionsEdit.text()) - Preferences.setDebugger( "Python3Extensions", self.py3ExtensionsEdit.text()) @@ -77,8 +70,6 @@ """ Private slot handling a click of the refresh button. """ - self.py2EnvironmentEdit.setText( - Preferences.getDebugger("Python2VirtualEnv")) self.py3EnvironmentEdit.setText( Preferences.getDebugger("Python3VirtualEnv"))
--- a/eric6/Preferences/ConfigurationPages/PythonPage.ui Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/Preferences/ConfigurationPages/PythonPage.ui Sun Jun 21 18:26:12 2020 +0200 @@ -89,7 +89,7 @@ <item row="0" column="0" colspan="2"> <widget class="QLabel" name="label_3"> <property name="text"> - <string>Enter the file extensions to be associated with the Python versions separated by a space. They must not overlap with each other.</string> + <string>Enter the file extensions to be associated with Python separated by a space.</string> </property> <property name="wordWrap"> <bool>true</bool> @@ -97,23 +97,13 @@ </widget> </item> <item row="1" column="0"> - <widget class="QLabel" name="label_4"> - <property name="text"> - <string>Python 2:</string> - </property> - </widget> - </item> - <item row="1" column="1"> - <widget class="QLineEdit" name="py2ExtensionsEdit"/> - </item> - <item row="2" column="0"> <widget class="QLabel" name="label_5"> <property name="text"> <string>Python 3:</string> </property> </widget> </item> - <item row="2" column="1"> + <item row="1" column="1"> <widget class="QLineEdit" name="py3ExtensionsEdit"/> </item> </layout> @@ -142,27 +132,13 @@ </property> <layout class="QGridLayout" name="gridLayout_3"> <item row="0" column="0"> - <widget class="QLabel" name="label_7"> - <property name="text"> - <string>Python 2:</string> - </property> - </widget> - </item> - <item row="0" column="1"> - <widget class="QLineEdit" name="py2EnvironmentEdit"> - <property name="readOnly"> - <bool>true</bool> - </property> - </widget> - </item> - <item row="1" column="0"> <widget class="QLabel" name="label_9"> <property name="text"> <string>Python 3:</string> </property> </widget> </item> - <item row="1" column="1"> + <item row="0" column="1"> <widget class="QLineEdit" name="py3EnvironmentEdit"> <property name="readOnly"> <bool>true</bool> @@ -233,9 +209,7 @@ <tabstops> <tabstop>stringEncodingComboBox</tabstop> <tabstop>ioEncodingComboBox</tabstop> - <tabstop>py2ExtensionsEdit</tabstop> <tabstop>py3ExtensionsEdit</tabstop> - <tabstop>py2EnvironmentEdit</tabstop> <tabstop>py3EnvironmentEdit</tabstop> <tabstop>refreshButton</tabstop> </tabstops>
--- a/eric6/Preferences/ConfigurationPages/QtPage.py Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/Preferences/ConfigurationPages/QtPage.py Sun Jun 21 18:26:12 2020 +0200 @@ -58,7 +58,7 @@ self.pyside2uicImportsCheckBox.setChecked( Preferences.getQt("PySide2FromImports")) - self.pyside2Group.setEnabled(any(Utilities.checkPyside())) + self.pyside2Group.setEnabled(Utilities.checkPyside()) def save(self): """
--- a/eric6/Preferences/ProgramsDialog.py Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/Preferences/ProgramsDialog.py Sun Jun 21 18:26:12 2020 +0200 @@ -141,88 +141,42 @@ self.tr("Qt Assistant"), exe, version=version) # 2. do the PyQt programs - # 2.1 do the PyQt4 programs - # deprecated - # 2.1a. Translation Extractor PyQt4 - self.__createProgramEntry( - self.tr("Translation Extractor (Python, PyQt4)"), - Utilities.generatePyQtToolPath("pylupdate4"), - '-version', 'pylupdate', -1) - # 2.1b. Forms Compiler PyQt4 - self.__createProgramEntry( - self.tr("Forms Compiler (Python, PyQt4)"), - Utilities.generatePyQtToolPath("pyuic4", ["py3uic4"]), - '--version', 'Python User', 4) - # 2.1c. Resource Compiler PyQt4 - self.__createProgramEntry( - self.tr("Resource Compiler (Python, PyQt4)"), - Utilities.generatePyQtToolPath("pyrcc4"), - '-version', 'Resource Compiler', -1) - - # 2.2 do the PyQt5 programs - # 2.2a. Translation Extractor PyQt5 + # 2.1 do the PyQt5 programs + # 2.1a. Translation Extractor PyQt5 self.__createProgramEntry( self.tr("Translation Extractor (Python, PyQt5)"), Utilities.generatePyQtToolPath("pylupdate5"), '-version', 'pylupdate', -1) - # 2.2b. Forms Compiler PyQt5 + # 2.1b. Forms Compiler PyQt5 self.__createProgramEntry( self.tr("Forms Compiler (Python, PyQt5)"), Utilities.generatePyQtToolPath("pyuic5", ["py3uic5"]), '--version', 'Python User', 4) - # 2.2c. Resource Compiler PyQt5 + # 2.1c. Resource Compiler PyQt5 self.__createProgramEntry( self.tr("Resource Compiler (Python, PyQt5)"), Utilities.generatePyQtToolPath("pyrcc5"), '-version', '', -1, versionRe='Resource Compiler|pyrcc5') - # 3.1 do the PySide programs - # 3.1a. Translation Extractor PySide - self.__createProgramEntry( - self.tr("Translation Extractor (Python, PySide)"), - Utilities.generatePySideToolPath("pyside-lupdate", "1"), - '-version', '', -1, versionRe='lupdate') - # 3.1b. Forms Compiler PySide - self.__createProgramEntry( - self.tr("Forms Compiler (Python, PySide)"), - Utilities.generatePySideToolPath("pyside-uic", "1"), - '--version', 'PySide User', 5, versionCleanup=(0, -1)) - # 3.1c Resource Compiler PySide - self.__createProgramEntry( - self.tr("Resource Compiler (Python, PySide)"), - Utilities.generatePySideToolPath("pyside-rcc", "1"), - '-version', 'Resource Compiler', -1) - - # 3.2 do the PySide2 programs - # 3.2a. Translation Extractor PySide2 + # 3. do the PySide programs + # 3.1 do the PySide2 programs + # 3.1a. Translation Extractor PySide2 self.__createProgramEntry( self.tr("Translation Extractor (Python, PySide2)"), - Utilities.generatePySideToolPath("pyside2-lupdate", "2"), + Utilities.generatePySideToolPath("pyside2-lupdate"), '-version', '', -1, versionRe='lupdate') - # 3.2b. Forms Compiler PySide2 + # 3.1b. Forms Compiler PySide2 self.__createProgramEntry( self.tr("Forms Compiler (Python, PySide2)"), - Utilities.generatePySideToolPath("pyside2-uic", "2"), + Utilities.generatePySideToolPath("pyside2-uic"), '--version', '', -1, versionRe='uic') - # 3.2c Resource Compiler PySide2 + # 3.1c Resource Compiler PySide2 self.__createProgramEntry( self.tr("Resource Compiler (Python, PySide2)"), - Utilities.generatePySideToolPath("pyside2-rcc", "2"), + Utilities.generatePySideToolPath("pyside2-rcc"), '-version', '', -1, versionRe='rcc') - # 4. do the Ruby programs - # 4a. Forms Compiler for Qt4 - self.__createProgramEntry( - self.tr("Forms Compiler (Ruby, Qt4)"), - Utilities.isWindowsPlatform() and "rbuic4.exe" or "rbuic4", - '-version', 'Qt', -1) - # 4b. Resource Compiler for Qt4 - self.__createProgramEntry( - self.tr("Resource Compiler (Ruby, Qt4)"), - Utilities.isWindowsPlatform() and "rbrcc.exe" or "rbrcc", - '-version', 'Ruby Resource Compiler', -1) - - # 5. do the Conda program(s) + # 4. do the Conda program(s) exe = Preferences.getConda("CondaExecutable") if not exe: exe = "conda" @@ -231,7 +185,7 @@ self.__createProgramEntry( self.tr("conda Manager"), exe, '--version', 'conda', -1) - # 6. do the pip program(s) + # 5. do the pip program(s) virtualenvManager = e5App().getObject("VirtualEnvManager") for venvName in virtualenvManager.getVirtualenvNames(): interpreter = virtualenvManager.getVirtualenvInterpreter(venvName) @@ -239,8 +193,8 @@ self.tr("PyPI Package Management"), interpreter, '--version', 'pip', 1, exeModule=["-m", "pip"]) - # 7. do the CORBA and Protobuf programs - # 7a. omniORB + # 6. do the CORBA and Protobuf programs + # 6a. omniORB exe = Preferences.getCorba("omniidl") if not exe: exe = "omniidl" @@ -248,7 +202,7 @@ exe += ".exe" self.__createProgramEntry( self.tr("CORBA IDL Compiler"), exe, '-V', 'omniidl', -1) - # 7b. protobuf + # 6b. protobuf exe = Preferences.getProtobuf("protoc") if not exe: exe = "protoc" @@ -256,7 +210,7 @@ exe += ".exe" self.__createProgramEntry( self.tr("Protobuf Compiler"), exe, '--version', 'libprotoc', -1) - # 7c. grpc + # 6c. grpc exe = Preferences.getProtobuf("grpcPython") if not exe: exe = sys.executable @@ -264,7 +218,7 @@ self.tr("gRPC Compiler"), exe, '--version', 'libprotoc', -1, exeModule=['-m', 'grpc_tools.protoc']) - # 8. do the spell checking entry + # 7. do the spell checking entry try: import enchant try: @@ -281,7 +235,7 @@ self.__createEntry( self.tr("Spell Checker - PyEnchant"), text, version) - # 9. do the pygments entry + # 8. do the pygments entry try: import pygments try: @@ -298,7 +252,7 @@ self.__createEntry( self.tr("Source Highlighter - Pygments"), text, version) - # 10. do the MicroPython related entries + # 9. do the MicroPython related entries exe = Preferences.getMicroPython("MpyCrossCompiler") if not exe: exe = "mpy-cross"
--- a/eric6/Preferences/__init__.py Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/Preferences/__init__.py Sun Jun 21 18:26:12 2020 +0200 @@ -82,12 +82,8 @@ "SuppressClientExit": False, "BreakAlways": False, "ShowExceptionInShell": True, - "Python2VirtualEnv": "", "Python3VirtualEnv": "", "RubyInterpreter": "", - "DebugClientType": "standard", - # supported "standard", "custom" - "DebugClient": "", "DebugClientType3": "standard", # supported "standard", "custom" "DebugClient3": "", @@ -109,8 +105,6 @@ "BgColorNew": QColor("#28FFEEAA"), "BgColorChanged": QColor("#2870FF66"), "AllowedHosts": ["127.0.0.1", "::1%0"], - # space separated list of Python2 extensions - "PythonExtensions": ".py2 .pyw2 .ptl", # space separated list of Python3 extensions "Python3Extensions": ".py .pyw .py3 .pyw3" } @@ -806,23 +800,6 @@ # defaults for the project browser flags settings projectBrowserFlagsDefaults = { - # deprecated - "Qt4": ( - SourcesBrowserFlag | - FormsBrowserFlag | - ResourcesBrowserFlag | - TranslationsBrowserFlag | - InterfacesBrowserFlag | - OthersBrowserFlag | - ProtocolsBrowserFlag), - # deprecated - "Qt4C": ( - SourcesBrowserFlag | - ResourcesBrowserFlag | - TranslationsBrowserFlag | - InterfacesBrowserFlag | - OthersBrowserFlag | - ProtocolsBrowserFlag), "PyQt5": ( SourcesBrowserFlag | FormsBrowserFlag | @@ -856,21 +833,6 @@ InterfacesBrowserFlag | OthersBrowserFlag | ProtocolsBrowserFlag), - "PySide": ( - SourcesBrowserFlag | - FormsBrowserFlag | - ResourcesBrowserFlag | - TranslationsBrowserFlag | - InterfacesBrowserFlag | - OthersBrowserFlag | - ProtocolsBrowserFlag), - "PySideC": ( - SourcesBrowserFlag | - ResourcesBrowserFlag | - TranslationsBrowserFlag | - InterfacesBrowserFlag | - OthersBrowserFlag | - ProtocolsBrowserFlag), "PySide2": ( SourcesBrowserFlag | FormsBrowserFlag | @@ -904,12 +866,8 @@ helpDefaults = { "CustomViewer": "", "PythonDocDir": "", - "Python2DocDir": "", - "Qt4DocDir": "", "Qt5DocDir": "", - "PyQt4DocDir": "", "PyQt5DocDir": "", - "PySideDocDir": "", "PySide2DocDir": "", "EricDocDir": "", } @@ -1761,10 +1719,8 @@ "Debugger/" + key, prefClass.debuggerDefaults[key])) elif key in ["PythonInterpreter", "Python3Interpreter"]: # This code is here to ensure backward compatibility. - if key == "PythonInterpreter": - newKey = "Python2VirtualEnv" - else: - newKey = "Python3VirtualEnv" + # Keep "PythonInterpreter" for backward compatibility. + newKey = "Python3VirtualEnv" venvName = prefClass.settings.value( "Debugger/" + newKey, prefClass.debuggerDefaults[newKey]) if venvName: @@ -1778,11 +1734,9 @@ else: interpreter = "" if not interpreter: - pyVersion = 2 if key == "PythonInterpreter" else 3 - if sys.version_info[0] == pyVersion: - return sys.executable + return sys.executable return interpreter - elif key in ["DebugClientType", "DebugClientType3"]: + elif key == "DebugClientType3": debugClientType = prefClass.settings.value( "Debugger/" + key, prefClass.debuggerDefaults[key]) # Correct obsolete entry "threaded" @@ -1790,6 +1744,12 @@ return "standard" else: return debugClientType + elif key == "PythonExtensions": + # we don't support Python2 anymore + return "" + elif key == "Python2VirtualEnv": + # we don't support Python2 anymore + return "" else: return prefClass.settings.value( "Debugger/" + key, prefClass.debuggerDefaults[key]) @@ -1814,7 +1774,11 @@ @param prefClass preferences class used as the storage area @return the requested debugger setting """ - if key in ["PythonExtensions", "Python3Extensions"]: + if key == "PythonExtensions": + # we don't support Python2 anymore + return [] + + if key == "Python3Extensions": exts = [] for ext in getDebugger(key, prefClass).split(): if ext.startswith("."): @@ -1834,7 +1798,7 @@ @param value the value to be set @param prefClass preferences class used as the storage area """ - if key in ["PythonExtensions", "Python3Extensions"]: + if key == "Python3Extensions": setDebugger(key, value, prefClass) @@ -2631,7 +2595,7 @@ else: return prefClass.settings.value( "MultiProject/" + key, prefClass.multiProjectDefaults[key]) - + def setMultiProject(key, value, prefClass=Prefs): """ @@ -2642,24 +2606,7 @@ @param prefClass preferences class used as the storage area """ prefClass.settings.setValue("MultiProject/" + key, value) - -def getQt4DocDir(prefClass=Prefs): - """ - Module function to retrieve the Qt4DocDir setting. - - @param prefClass preferences class used as the storage area - @return the requested Qt4DocDir setting (string) - """ - s = prefClass.settings.value( - "Help/Qt4DocDir", prefClass.helpDefaults["Qt4DocDir"]) - if s == "": - s = os.getenv("QT4DOCDIR", "") - if s == "": - s = os.path.join( - QLibraryInfo.location(QLibraryInfo.DocumentationPath), "html") - return s - def getQt5DocDir(prefClass=Prefs): """
--- a/eric6/Project/CreateDialogCodeDialog.py Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/Project/CreateDialogCodeDialog.py Sun Jun 21 18:26:12 2020 +0200 @@ -288,22 +288,18 @@ # I. always check for * mapped = mapped.replace("*", "") - if ( - self.project.getProjectLanguage() != "Python2" or - self.project.getProjectType in ("PySide", "PySide2") - ): - # 1. check for const - mapped = mapped.replace("const ", "") - - # 2. replace QString and QStringList - mapped = ( - mapped - .replace("QStringList", "list") - .replace("QString", "str") - ) - - # 3. replace double by float - mapped = mapped.replace("double", "float") + # 1. check for const + mapped = mapped.replace("const ", "") + + # 2. replace QString and QStringList + mapped = ( + mapped + .replace("QStringList", "list") + .replace("QString", "str") + ) + + # 3. replace double by float + mapped = mapped.replace("double", "float") return mapped @@ -377,7 +373,7 @@ elif self.filenameEdit.text().endswith(".rb"): pass # second decide on project language - elif self.project.getProjectLanguage() in ["Python2", "Python3"]: + elif self.project.getProjectLanguage() == "Python3": self.__generatePythonCode() elif self.project.getProjectLanguage() == "Ruby": pass @@ -389,6 +385,16 @@ """ Private slot to generate Python code as requested by the user. """ + if self.project.getProjectLanguage() != "Python3": + E5MessageBox.critical( + self, + self.tr("Code Generation"), + self.tr( + """<p>Code generation for project language""" + """ "{0}" is not supported.</p>""") + .format(self.project.getProjectLanguage())) + return + # init some variables sourceImpl = [] appendAtIndex = -1 @@ -398,41 +404,24 @@ if self.__module is None: # new file try: - if self.project.getProjectLanguage() == "Python2": - if self.project.getProjectType() == "PySide": - tmplName = os.path.join( - getConfig('ericCodeTemplatesDir'), - "impl_pyside.py2.tmpl") - elif self.project.getProjectType() == "PySide2": - tmplName = os.path.join( - getConfig('ericCodeTemplatesDir'), - "impl_pyside2.py2.tmpl") - elif self.project.getProjectType() == "PyQt5": - tmplName = os.path.join( - getConfig('ericCodeTemplatesDir'), - "impl_pyqt5.py2.tmpl") - else: - tmplName = os.path.join( - getConfig('ericCodeTemplatesDir'), - "impl_pyqt.py2.tmpl") + if self.project.getProjectType() == "PySide2": + tmplName = os.path.join( + getConfig('ericCodeTemplatesDir'), + "impl_pyside2.py.tmpl") + elif self.project.getProjectType() in [ + "PyQt5", "E6Plugin"]: + tmplName = os.path.join( + getConfig('ericCodeTemplatesDir'), + "impl_pyqt5.py.tmpl") else: - if self.project.getProjectType() == "PySide": - tmplName = os.path.join( - getConfig('ericCodeTemplatesDir'), - "impl_pyside.py.tmpl") - elif self.project.getProjectType() == "PySide2": - tmplName = os.path.join( - getConfig('ericCodeTemplatesDir'), - "impl_pyside2.py.tmpl") - elif self.project.getProjectType() in [ - "PyQt5", "E6Plugin"]: - tmplName = os.path.join( - getConfig('ericCodeTemplatesDir'), - "impl_pyqt5.py.tmpl") - else: - tmplName = os.path.join( - getConfig('ericCodeTemplatesDir'), - "impl_pyqt.py.tmpl") + E5MessageBox.critical( + self, + self.tr("Code Generation"), + self.tr( + """<p>No code template file available for""" + """ project type "{0}".</p>""") + .format(self.project.getProjectType())) + return tmplFile = open(tmplName, 'r', encoding="utf-8") template = tmplFile.read() tmplFile.close() @@ -503,18 +492,10 @@ break # do the coding stuff - if self.project.getProjectLanguage() == "Python2": - if self.project.getProjectType() in ("PySide", "PySide2"): - pyqtSignatureFormat = '@Slot({0})' - elif self.project.getProjectType() == "PyQt5": - pyqtSignatureFormat = '@pyqtSlot({0})' - else: - pyqtSignatureFormat = '@pyqtSignature("{0}")' + if self.project.getProjectType() in ("PySide2",): + pyqtSignatureFormat = '@Slot({0})' else: - if self.project.getProjectType() in ("PySide", "PySide2"): - pyqtSignatureFormat = '@Slot({0})' - else: - pyqtSignatureFormat = '@pyqtSlot({0})' + pyqtSignatureFormat = '@pyqtSlot({0})' for row in range(self.slotsModel.rowCount()): topItem = self.slotsModel.item(row) for childRow in range(topItem.rowCount()):
--- a/eric6/Project/DebuggerPropertiesDialog.py Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/Project/DebuggerPropertiesDialog.py Sun Jun 21 18:26:12 2020 +0200 @@ -68,9 +68,7 @@ venvIndex = max(0, self.venvComboBox.findText( self.project.debugProperties["VIRTUALENV"])) else: - if self.project.pdata["PROGLANGUAGE"] == "Python2": - venvName = Preferences.getDebugger("Python2VirtualEnv") - elif self.project.pdata["PROGLANGUAGE"] == "Python3": + if self.project.pdata["PROGLANGUAGE"] == "Python3": venvName = Preferences.getDebugger("Python3VirtualEnv") else: venvName = "" @@ -86,8 +84,7 @@ self.project.debugProperties["DEBUGCLIENT"], toNative=False) else: - if self.project.pdata["PROGLANGUAGE"] in ["Python", "Python2", - "Python3"]: + if self.project.pdata["PROGLANGUAGE"] == "Python3": debugClient = os.path.join( getConfig('ericDir'), "DebugClients", "Python", "DebugClient.py") @@ -145,8 +142,7 @@ self.debugClientPicker.text(toNative=False) ) if not self.project.debugProperties["DEBUGCLIENT"]: - if self.project.pdata["PROGLANGUAGE"] in ["Python", "Python2", - "Python3"]: + if self.project.pdata["PROGLANGUAGE"] == "Python3": debugClient = os.path.join( getConfig('ericDir'), "DebugClients", "Python", "DebugClient.py")
--- a/eric6/Project/Project.py Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/Project/Project.py Sun Jun 21 18:26:12 2020 +0200 @@ -164,7 +164,6 @@ self.ui = parent self.__progLanguages = [ - "Python2", "Python3", "MicroPython", "Ruby", @@ -172,9 +171,6 @@ ] self.__dbgFilters = { - "Python2": self.tr( - "Python2 Files (*.py2);;" - "Python2 GUI Files (*.pyw2);;"), "Python3": self.tr( "Python3 Files (*.py *.py3);;" "Python3 GUI Files (*.pyw *.pyw3);;"), @@ -212,14 +208,7 @@ @param language programming language (string) @return source extensions (list of string) """ - if language == "Python2": - extensions = Preferences.getPython("PythonExtensions") - # *.py and *.pyw should always be associated with source files - for ext in [".py", ".pyw"]: - if ext not in extensions: - extensions.append(ext) - return extensions - elif language == "Python3": + if language == "Python3": extensions = Preferences.getPython("Python3Extensions") # *.py and *.pyw should always be associated with source files for ext in [".py", ".pyw"]: @@ -275,8 +264,6 @@ self.__binaryTranslationsCallbacks = {} self.__projectTypes = { - "Qt4": self.tr("PyQt4 GUI (deprecated)"), - "Qt4C": self.tr("PyQt4 Console (deprecated)"), "PyQt5": self.tr("PyQt5 GUI"), "PyQt5C": self.tr("PyQt5 Console"), "E6Plugin": self.tr("Eric6 Plugin"), @@ -285,36 +272,17 @@ } self.__projectProgLanguages = { - "Python2": ["Qt4", "Qt4C", "PyQt5", "PyQt5C", - "E6Plugin", "Console", "Other"], - "Python3": ["Qt4", "Qt4C", "PyQt5", "PyQt5C", - "E6Plugin", "Console", "Other"], + "Python3": ["PyQt5", "PyQt5C", "E6Plugin", "Console", "Other"], "MicroPython": ["Console", "Other"], - "Ruby": ["Qt4", "Qt4C", "Console", "Other"], + "Ruby": ["Console", "Other"], "JavaScript": ["Other"], } - pyside_py2, pyside_py3 = Utilities.checkPyside("1") - if pyside_py2 or pyside_py3: - self.__projectTypes["PySide"] = self.tr("PySide GUI") - self.__projectTypes["PySideC"] = self.tr("PySide Console") - if pyside_py2: - self.__projectProgLanguages["Python2"].extend( - ["PySide", "PySideC"]) - if pyside_py3: - self.__projectProgLanguages["Python3"].extend( - ["PySide", "PySideC"]) - - pyside2_py2, pyside2_py3 = Utilities.checkPyside("2") - if pyside2_py2 or pyside2_py3: + if Utilities.checkPyside(): self.__projectTypes["PySide2"] = self.tr("PySide2 GUI") self.__projectTypes["PySide2C"] = self.tr("PySide2 Console") - if pyside2_py2: - self.__projectProgLanguages["Python2"].extend( - ["PySide2", "PySide2C"]) - if pyside2_py3: - self.__projectProgLanguages["Python3"].extend( - ["PySide2", "PySide2C"]) + self.__projectProgLanguages["Python3"].extend( + ["PySide2", "PySide2C"]) def getProjectTypes(self, progLanguage=""): """ @@ -369,14 +337,18 @@ """ if progLanguages: for progLanguage in progLanguages: + if progLanguage in ["Python", "Python2"]: + # ignore that silently for Python2 + return + if progLanguage not in self.__projectProgLanguages: E5MessageBox.critical( self.ui, self.tr("Registering Project Type"), self.tr( """<p>The Programming Language <b>{0}</b> is not""" - """ supported.</p>""") - .format(progLanguage) + """ supported (project type: {1}).</p>""") + .format(progLanguage, type_) ) return @@ -616,24 +588,20 @@ self.pdata["FILETYPES"]["*.proto"] = "PROTOCOLS" # Forms - if self.pdata["PROJECTTYPE"] in ["Qt4", "PyQt5", - "E6Plugin", "PySide", + if self.pdata["PROJECTTYPE"] in ["E6Plugin", + "PyQt5", "PySide2"]: self.pdata["FILETYPES"]["*.ui"] = "FORMS" # Resources - if self.pdata["PROJECTTYPE"] in ["Qt4", "Qt4C", - "E6Plugin", + if self.pdata["PROJECTTYPE"] in ["E6Plugin", "PyQt5", "PyQt5C", - "PySide", "PySideC", "PySide2", "PySide2C"]: self.pdata["FILETYPES"]["*.qrc"] = "RESOURCES" # Translations - if self.pdata["PROJECTTYPE"] in ["Qt4", "Qt4C", - "E6Plugin", + if self.pdata["PROJECTTYPE"] in ["E6Plugin", "PyQt5", "PyQt5C", - "PySide", "PySideC", "PySide2", "PySide2C"]: self.pdata["FILETYPES"]["*.ts"] = "TRANSLATIONS" self.pdata["FILETYPES"]["*.qm"] = "TRANSLATIONS" @@ -654,10 +622,8 @@ Public method to update the filetype associations with new default values. """ - if self.pdata["PROJECTTYPE"] in ["Qt4", "Qt4C", - "E6Plugin", + if self.pdata["PROJECTTYPE"] in ["E6Plugin", "PyQt5", "PyQt5C", - "PySide", "PySideC", "PySide2", "PySide2C"]: if "*.ts" not in self.pdata["FILETYPES"]: self.pdata["FILETYPES"]["*.ts"] = "TRANSLATIONS" @@ -1414,8 +1380,7 @@ if dlg.exec_() == QDialog.Accepted: lang = dlg.getSelectedLanguage() if self.pdata["PROJECTTYPE"] in [ - "Qt4", "Qt4C", "PyQt5", "PyQt5C", "E6Plugin", - "PySide", "PySideC", "PySide2", "PySide2C" + "PyQt5", "PyQt5C", "E6Plugin", "PySide2", "PySide2C" ]: langFile = self.pdata["TRANSLATIONPATTERN"].replace( "%language%", lang) @@ -2385,7 +2350,7 @@ # create an empty __init__.py file to make it a Python package # (only for Python and Python3) if self.pdata["PROGLANGUAGE"] in [ - "Python", "Python2", "Python3", "MicroPython" + "Python3", "MicroPython" ]: fn = os.path.join(self.ppath, "__init__.py") f = open(fn, "w", encoding="utf-8") @@ -2499,7 +2464,7 @@ # create an empty __init__.py file to make it a Python package # if none exists (only for Python and Python3) if self.pdata["PROGLANGUAGE"] in [ - "Python", "Python2", "Python3", "MicroPython" + "Python3", "MicroPython" ]: fn = os.path.join(self.ppath, "__init__.py") if not os.path.exists(fn): @@ -2731,7 +2696,7 @@ self.projectLanguageAdded.emit(qm) if not self.pdata["MAINSCRIPT"] and bool(mainscriptname): if self.pdata["PROGLANGUAGE"] in [ - "Python", "Python2", "Python3", "MicroPython" + "Python3", "MicroPython" ]: self.pdata["MAINSCRIPT"] = '{0}.py'.format(mainscriptname) elif self.pdata["PROGLANGUAGE"] == "Ruby": @@ -3444,13 +3409,12 @@ def isPythonProject(self): """ - Public method to check, if this project is a Python2 or Python3 + Public method to check, if this project is a Python3 or MicroPython project. @return flag indicating a Python project (boolean) """ - return self.pdata["PROGLANGUAGE"] in ["Python", "Python2", - "Python3", "MicroPython"] + return self.pdata["PROGLANGUAGE"] in ["Python3", "MicroPython"] def isPy3Project(self): """ @@ -3459,15 +3423,7 @@ @return flag indicating a Python3 project (boolean) """ return self.pdata["PROGLANGUAGE"] == "Python3" - - def isPy2Project(self): - """ - Public method to check, if this project is a Python2 project. - - @return flag indicating a Python2 project (boolean) - """ - return self.pdata["PROGLANGUAGE"] in ["Python", "Python2"] - + def isMicroPythonProject(self): """ Public method to check, if this project is a MicroPython project. @@ -3529,7 +3485,7 @@ if lang == "": lang = "Python3" elif lang == "Python": - lang = "Python2" + lang = "Python3" return self.__sourceExtensions(lang)[0] def getProjectPath(self): @@ -5116,7 +5072,7 @@ os.path.isfile("{0}.profile".format(basename)) or os.path.isfile("{0}.profile".format(tbasename))) self.codeCoverageAct.setEnabled( - (self.isPy3Project() or self.isPy2Project()) and + self.isPy3Project() and (os.path.isfile("{0}.coverage".format(basename)) or os.path.isfile("{0}.coverage".format(tbasename)))) else:
--- a/eric6/Project/ProjectBrowser.py Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/Project/ProjectBrowser.py Sun Jun 21 18:26:12 2020 +0200 @@ -283,9 +283,7 @@ if not self.project.isOpen(): icon = UI.PixmapCache.getIcon("projectSources") else: - if self.project.getProjectLanguage() in [ - "Python", "Python2", "Python3" - ]: + if self.project.getProjectLanguage() == "Python3": if self.project.isMixedLanguageProject(): icon = UI.PixmapCache.getIcon("projectSourcesPyMixed") else:
--- a/eric6/Project/ProjectFormsBrowser.py Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/Project/ProjectFormsBrowser.py Sun Jun 21 18:26:12 2020 +0200 @@ -74,7 +74,7 @@ """ context menu.</p>""" )) - # templates for Qt4 + # templates for Qt # these two lists have to stay in sync self.templates4 = [ 'dialog4.tmpl', 'widget4.tmpl', 'mainwindow4.tmpl', @@ -125,9 +125,7 @@ self.menusAboutToBeCreated.emit() self.menu = QMenu(self) - if self.project.getProjectType() in [ - "Qt4", "PyQt5", "E6Plugin", "PySide", "PySide2" - ]: + if self.project.getProjectType() in ["PyQt5", "E6Plugin", "PySide2"]: self.menu.addAction( self.tr('Compile form'), self.__compileForm) self.menu.addAction( @@ -187,9 +185,7 @@ act = self.menu.addAction(self.tr('Delete'), self.__deleteFile) self.menuActions.append(act) self.menu.addSeparator() - if self.project.getProjectType() in [ - "Qt4", "PyQt5", "E6Plugin", "PySide", "PySide2" - ]: + if self.project.getProjectType() in ["PyQt5", "E6Plugin", "PySide2"]: self.menu.addAction(self.tr('New form...'), self.__newForm) else: if self.hooks["newForm"] is not None: @@ -213,7 +209,7 @@ self.backMenu = QMenu(self) if ( self.project.getProjectType() in [ - "Qt4", "PyQt5", "E6Plugin", "PySide", "PySide2" + "PyQt5", "E6Plugin", "PySide2" ] or self.hooks["compileAllForms"] is not None ): @@ -245,9 +241,7 @@ # create the menu for multiple selected files self.multiMenu = QMenu(self) - if self.project.getProjectType() in [ - "Qt4", "PyQt5", "E6Plugin", "PySide", "PySide2" - ]: + if self.project.getProjectType() in ["PyQt5", "E6Plugin", "PySide2"]: self.multiMenu.addAction( self.tr('Compile forms'), self.__compileSelectedForms) self.multiMenu.addSeparator() @@ -292,9 +286,7 @@ self.multiMenu.addAction(self.tr('Configure...'), self._configure) self.dirMenu = QMenu(self) - if self.project.getProjectType() in [ - "Qt4", "PyQt5", "E6Plugin", "PySide", "PySide2" - ]: + if self.project.getProjectType() in ["PyQt5", "E6Plugin", "PySide2"]: self.dirMenu.addAction( self.tr('Compile all forms'), self.__compileAllForms) self.dirMenu.addSeparator() @@ -317,9 +309,7 @@ self.tr('Delete'), self._deleteDirectory) self.dirMenuActions.append(act) self.dirMenu.addSeparator() - if self.project.getProjectType() in [ - "Qt4", "PyQt5", "E6Plugin", "PySide", "PySide2" - ]: + if self.project.getProjectType() in ["PyQt5", "E6Plugin", "PySide2"]: self.dirMenu.addAction(self.tr('New form...'), self.__newForm) else: if self.hooks["newForm"] is not None: @@ -343,9 +333,7 @@ self.dirMenu.addAction(self.tr('Configure...'), self._configure) self.dirMultiMenu = QMenu(self) - if self.project.getProjectType() in [ - "Qt4", "PyQt5", "E6Plugin", "PySide", "PySide2" - ]: + if self.project.getProjectType() in ["PyQt5", "E6Plugin", "PySide2"]: self.dirMultiMenu.addAction( self.tr('Compile all forms'), self.__compileAllForms) self.dirMultiMenu.addSeparator() @@ -390,7 +378,7 @@ if not self.project.isOpen(): return - enable = self.project.getProjectType() in ("Qt4", "PyQt5", "E6Plugin") + enable = self.project.getProjectType() in ("PyQt5", "E6Plugin") self.__pyuicConfigAct.setEnabled(enable) self.__pyuicMultiConfigAct.setEnabled(enable) self.__pyuicDirConfigAct.setEnabled(enable) @@ -578,7 +566,7 @@ self.hooks["newForm"](path) else: if self.project.getProjectType() in [ - "Qt4", "PyQt5", "E6Plugin", "PySide", "PySide2" + "PyQt5", "E6Plugin", "PySide2" ]: self.__newUiForm(path) @@ -690,30 +678,16 @@ """ self.__resetUiCompiler() - if self.project.getProjectLanguage() in [ - "Python", "Python2", "Python3" - ]: - if self.project.getProjectType() in ["Qt4", ]: - self.__uicompiler = Utilities.generatePyQtToolPath( - 'pyuic4', ["py3uic4"]) - elif self.project.getProjectType() in ["PyQt5"]: + if self.project.getProjectLanguage() == "Python3": + if self.project.getProjectType() in ["PyQt5"]: self.__uicompiler = Utilities.generatePyQtToolPath( 'pyuic5', ["py3uic5"]) elif self.project.getProjectType() in ["E6Plugin"]: self.__uicompiler = Utilities.generatePyQtToolPath( 'pyuic5', ["py3uic5"]) - elif self.project.getProjectType() == "PySide": - self.__uicompiler = Utilities.generatePySideToolPath( - 'pyside-uic', "1") elif self.project.getProjectType() == "PySide2": self.__uicompiler = Utilities.generatePySideToolPath( - 'pyside2-uic', "2") - elif self.project.getProjectLanguage() == "Ruby": - if self.project.getProjectType() == "Qt4": - self.__uicompiler = 'rbuic4' - if Utilities.isWindowsPlatform(): - self.__uicompiler = Utilities.getWindowsExecutablePath( - self.__uicompiler) + 'pyside2-uic') def getUiCompiler(self): """ @@ -730,7 +704,7 @@ def __readStdout(self): """ Private slot to handle the readyReadStandardOutput signal of the - pyuic4/pyuic5/pyside-uic/pyside2-uic/rbuic4 process. + pyuic5/pyside2-uic process. """ if self.compileProc is None: return @@ -743,7 +717,7 @@ def __readStderr(self): """ Private slot to handle the readyReadStandardError signal of the - pyuic4/pyuic5/pyside-uic/pyside2-uic/rbuic4 process. + pyuic5/pyside2-uic process. """ if self.compileProc is None: return @@ -842,18 +816,16 @@ ofn, ext = os.path.splitext(fn) fn = os.path.join(self.project.ppath, fn) - if self.project.getProjectLanguage() in [ - "Python", "Python2", "Python3" - ]: + if self.project.getProjectLanguage() == "Python3": dirname, filename = os.path.split(ofn) self.compiledFile = os.path.join(dirname, "Ui_" + filename + ".py") - if self.project.getProjectType() in ["PySide", "PySide2"]: - # PySide and PySide2 + if self.project.getProjectType() == "PySide2": + # PySide2 if Preferences.getQt("PySide2FromImports"): args.append("--from-imports") else: - # PyQt4 and PyQt5 + # PyQt5 if Preferences.getQt("PyuicExecute"): args.append("-x") indentWidth = Preferences.getQt("PyuicIndent") @@ -902,7 +874,7 @@ def __generateDialogCode(self): """ - Private method to generate dialog code for the form (Qt4 only). + Private method to generate dialog code for the form (Qt only). """ itm = self.model().item(self.currentIndex()) fn = itm.fileName() @@ -1017,7 +989,7 @@ self.hooks["compileChangedForms"](self.project.pdata["FORMS"]) else: if self.project.getProjectType() not in [ - "Qt4", "PyQt5", "E6Plugin", "PySide", "PySide2" + "PyQt5", "E6Plugin", "PySide2" ]: # ignore the request for non Qt GUI projects return @@ -1037,9 +1009,7 @@ QApplication.processEvents() ifn = os.path.join(self.project.ppath, fn) - if self.project.getProjectLanguage() in [ - "Python", "Python2", "Python3" - ]: + if self.project.getProjectLanguage() == "Python3": dirname, filename = os.path.split(os.path.splitext(ifn)[0]) ofn = os.path.join(dirname, "Ui_" + filename + ".py") elif self.project.getProjectLanguage() == "Ruby": @@ -1093,7 +1063,7 @@ params = self.project.pdata["UICPARAMS"] - if self.project.getProjectType() in ["Qt4", "PyQt5", "E6Plugin"]: + if self.project.getProjectType() in ["PyQt5", "E6Plugin"]: dlg = UicCompilerOptionsDialog(params, self.getUiCompiler()) if dlg.exec_() == QDialog.Accepted: package, suffix, root = dlg.getData()
--- a/eric6/Project/ProjectResourcesBrowser.py Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/Project/ProjectResourcesBrowser.py Sun Jun 21 18:26:12 2020 +0200 @@ -79,8 +79,7 @@ self.menu = QMenu(self) if self.project.getProjectType() in [ - "Qt4", "Qt4C", "PyQt5", "PyQt5C", "E6Plugin", - "PySide", "PySideC", "PySide2", "PySideC2" + "PyQt5", "PyQt5C", "E6Plugin", "PySide2", "PySide2C" ]: self.menu.addAction( self.tr('Compile resource'), @@ -122,8 +121,7 @@ self.menuActions.append(act) self.menu.addSeparator() if self.project.getProjectType() in [ - "Qt4", "Qt4C", "PyQt5", "PyQt5C", "E6Plugin", - "PySide", "PySideC", "PySide2", "PySideC2" + "PyQt5", "PyQt5C", "E6Plugin", "PySide2", "PySide2C" ]: self.menu.addAction( self.tr('New resource...'), self.__newResource) @@ -151,8 +149,7 @@ self.backMenu = QMenu(self) if self.project.getProjectType() in [ - "Qt4", "Qt4C", "PyQt5", "PyQt5C", "E6Plugin", - "PySide", "PySideC", "PySide2", "PySideC2" + "PyQt5", "PyQt5C", "E6Plugin", "PySide2", "PySide2C" ]: self.backMenu.addAction( self.tr('Compile all resources'), @@ -194,8 +191,7 @@ # create the menu for multiple selected files self.multiMenu = QMenu(self) if self.project.getProjectType() in [ - "Qt4", "Qt4C", "PyQt5", "PyQt5C", "E6Plugin", - "PySide", "PySideC", "PySide2", "PySideC2" + "PyQt5", "PyQt5C", "E6Plugin", "PySide2", "PySide2C" ]: act = self.multiMenu.addAction( self.tr('Compile resources'), @@ -231,8 +227,7 @@ self.dirMenu = QMenu(self) if self.project.getProjectType() in [ - "Qt4", "Qt4C", "PyQt5", "PyQt5C", "E6Plugin", - "PySide", "PySideC", "PySide2", "PySideC2" + "PyQt5", "PyQt5C", "E6Plugin", "PySide2", "PySide2C" ]: self.dirMenu.addAction( self.tr('Compile all resources'), @@ -277,8 +272,7 @@ self.dirMultiMenu = QMenu(self) if self.project.getProjectType() in [ - "Qt4", "Qt4C", "PyQt5", "PyQt5C", "E6Plugin", - "PySide", "PySideC", "PySide2", "PySideC2" + "PyQt5", "PyQt5C", "E6Plugin", "PySide2", "PySide2C" ]: self.dirMultiMenu.addAction( self.tr('Compile all resources'), @@ -556,7 +550,7 @@ def __readStdout(self): """ Private slot to handle the readyReadStandardOutput signal of the - pyrcc4/pyrcc5/pyside-rcc/pyside2-rcc/rbrcc process. + pyrcc5/pyside2-rcc process. """ if self.compileProc is None: return @@ -570,7 +564,7 @@ def __readStderr(self): """ Private slot to handle the readyReadStandardError signal of the - pyrcc4/pyrcc5/pyside-rcc/pyside2-rcc/rbrcc process. + pyrcc5/pyside2-rcc/ process. """ if self.compileProc is None: return @@ -656,33 +650,14 @@ args = [] self.buf = "" - if self.project.getProjectLanguage() in [ - "Python", "Python2", "Python3" - ]: - if self.project.getProjectType() in ["Qt4", "Qt4C"]: - self.rccCompiler = Utilities.generatePyQtToolPath('pyrcc4') - if self.project.getProjectLanguage() in [ - "Python", "Python2" - ]: - args.append("-py2") - else: - args.append("-py3") - elif self.project.getProjectType() in ["PyQt5", "PyQt5C"]: + if self.project.getProjectLanguage() == "Python3": + if self.project.getProjectType() in ["PyQt5", "PyQt5C"]: self.rccCompiler = Utilities.generatePyQtToolPath('pyrcc5') elif self.project.getProjectType() in ["E6Plugin"]: self.rccCompiler = Utilities.generatePyQtToolPath('pyrcc5') - elif self.project.getProjectType() in ["PySide", "PySideC"]: - self.rccCompiler = Utilities.generatePySideToolPath( - 'pyside-rcc', "1") - if self.project.getProjectLanguage() in [ - "Python", "Python2" - ]: - args.append("-py2") - else: - args.append("-py3") elif self.project.getProjectType() in ["PySide2", "PySide2C"]: self.rccCompiler = Utilities.generatePySideToolPath( - 'pyside2-rcc', "2") + 'pyside2-rcc') else: return None defaultParameters = self.project.getDefaultRccCompilerParameters() @@ -707,13 +682,6 @@ if rccParameters["PathPrefix"] != defaultParameters["PathPrefix"]: args.append("-root") args.append(rccParameters["PathPrefix"]) - elif self.project.getProjectLanguage() == "Ruby": - if self.project.getProjectType() == "Qt4": - self.rccCompiler = 'rbrcc' - if Utilities.isWindowsPlatform(): - self.rccCompiler += '.exe' - else: - return None else: return None @@ -723,9 +691,7 @@ fn = os.path.join(self.project.ppath, fn) dirname, filename = os.path.split(ofn) - if self.project.getProjectLanguage() in [ - "Python", "Python2", "Python3" - ]: + if self.project.getProjectLanguage() == "Python3": self.compiledFile = os.path.join( dirname, self.RCFilenameFormatPython.format(filename)) elif self.project.getProjectLanguage() == "Ruby": @@ -903,9 +869,7 @@ progress.setValue(i) QApplication.processEvents() ifn = os.path.join(self.project.ppath, fn) - if self.project.getProjectLanguage() in [ - "Python", "Python2", "Python3" - ]: + if self.project.getProjectLanguage() == "Python3": dirname, filename = os.path.split(os.path.splitext(ifn)[0]) ofn = os.path.join( dirname, self.RCFilenameFormatPython.format(filename))
--- a/eric6/Project/ProjectSourcesBrowser.py Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/Project/ProjectSourcesBrowser.py Sun Jun 21 18:26:12 2020 +0200 @@ -736,8 +736,7 @@ (coEnable or os.path.isfile("{0}.coverage".format(basename)) or os.path.isfile("{0}.coverage".format(tbasename))) and - (self.project.isPy3Project() or - self.project.isPy2Project()) + self.project.isPy3Project() ) # now check the selected item @@ -752,7 +751,7 @@ coEnable = ( (coEnable or os.path.isfile("{0}.coverage".format(basename))) and - (itm.isPython3File() or itm.isPython2File()) + itm.isPython3File() ) self.profileMenuAction.setEnabled(prEnable) @@ -770,9 +769,7 @@ for itm in itmList: if isinstance(itm, BrowserFileItem): - if itm.isPython2File(): - self.sourceFile[str].emit(itm.fileName()) - elif itm.isPython3File(): + if itm.isPython3File(): self.sourceFile[str].emit(itm.fileName()) elif itm.isRubyFile(): self.sourceFile[str, int, str].emit(
--- a/eric6/Project/ProjectTranslationsBrowser.py Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/Project/ProjectTranslationsBrowser.py Sun Jun 21 18:26:12 2020 +0200 @@ -102,8 +102,7 @@ self.menu = QMenu(self) if self.project.getProjectType() in [ - "Qt4", "Qt4C", "PyQt5", "PyQt5C", "E6Plugin", - "PySide", "PySideC", "PySide2", "PySideC2" + "PyQt5", "PyQt5C", "E6Plugin", "PySide2", "PySide2C" ]: act = self.menu.addAction( self.tr('Generate translation'), self.__generateSelected) @@ -230,8 +229,7 @@ self.backMenu = QMenu(self) if self.project.getProjectType() in [ - "Qt4", "Qt4C", "PyQt5", "PyQt5C", "E6Plugin", - "PySide", "PySideC", "PySide2", "PySideC2" + "PyQt5", "PyQt5C", "E6Plugin", "PySide2", "PySide2C" ]: act = self.backMenu.addAction( self.tr('Generate all translations'), @@ -292,8 +290,7 @@ # create the menu for multiple selected files self.multiMenu = QMenu(self) if self.project.getProjectType() in [ - "Qt4", "Qt4C", "PyQt5", "PyQt5C", "E6Plugin", - "PySide", "PySideC", "PySide2", "PySideC2" + "PyQt5", "PyQt5C", "E6Plugin", "PySide2", "PySide2C" ]: act = self.multiMenu.addAction( self.tr('Generate translations'), @@ -377,8 +374,7 @@ self.dirMenu = QMenu(self) if self.project.getProjectType() in [ - "Qt4", "Qt4C", "PyQt5", "PyQt5C", "E6Plugin", - "PySide", "PySideC", "PySide2", "PySideC2" + "PyQt5", "PyQt5C", "E6Plugin", "PySide2", "PySide2C" ]: act = self.dirMenu.addAction( self.tr('Generate all translations'), @@ -496,8 +492,7 @@ Private slot called by the menu aboutToShow signal. """ if self.project.getProjectType() in [ - "Qt4", "Qt4C", "PyQt5", "PyQt5C", "E6Plugin", - "PySide", "PySideC", "PySide2", "PySideC2" + "PyQt5", "PyQt5C", "E6Plugin", "PySide2", "PySide2C" ]: tsFiles = 0 qmFiles = 0 @@ -541,8 +536,7 @@ Private slot called by the multiMenu aboutToShow signal. """ if self.project.getProjectType() in [ - "Qt4", "Qt4C", "PyQt5", "PyQt5C", "E6Plugin", - "PySide", "PySideC", "PySide2", "PySideC2" + "PyQt5", "PyQt5C", "E6Plugin", "PySide2", "PySide2C" ]: tsFiles = 0 qmFiles = 0 @@ -584,8 +578,7 @@ Private slot called by the dirMenu aboutToShow signal. """ if self.project.getProjectType() in [ - "Qt4", "Qt4C", "PyQt5", "PyQt5C", "E6Plugin", - "PySide", "PySideC", "PySide2", "PySideC2" + "PyQt5", "PyQt5C", "E6Plugin", "PySide2", "PySide2C" ]: if self.pylupdateProcRunning: for act in self.tsprocDirMenuActions: @@ -605,8 +598,7 @@ Private slot called by the backMenu aboutToShow signal. """ if self.project.getProjectType() in [ - "Qt4", "Qt4C", "PyQt5", "PyQt5C", "E6Plugin", - "PySide", "PySideC", "PySide2", "PySideC2" + "PyQt5", "PyQt5C", "E6Plugin", "PySide2", "PySide2C" ]: if self.pylupdateProcRunning: for act in self.tsprocBackMenuActions: @@ -880,7 +872,7 @@ def __readStderrLupdate(self, proc): """ Private slot to handle the readyReadStandardError signal of the - pylupdate4/pylupdate5/pyside-lupdate/pyside2-lupdate process. + pylupdate5/pyside2-lupdate process. @param proc reference to the process @type QProcess @@ -979,7 +971,7 @@ def __generateTSFile(self, noobsolete=False, generateAll=True): """ - Private method used to run pylupdate4/pylupdate5/pyside-lupdate to + Private method used to run pylupdate5/pyside2-lupdate to generate the .ts files. @param noobsolete flag indicating whether obsolete entries should be @@ -1021,7 +1013,7 @@ # generate a minimal temporary projectfile suitable for pylupdate self.__tmpProjects = [] if self.project.getProjectLanguage() in [ - "Python", "Python2", "Python3" + "Python", "Python3" ]: ok = self.__writeTempProjectFile(langs, [".py"]) else: @@ -1029,18 +1021,13 @@ if not ok: return - if self.project.getProjectType() in ["Qt4", "Qt4C"]: - self.pylupdate = Utilities.generatePyQtToolPath('pylupdate4') - elif self.project.getProjectType() in ["PyQt5", "PyQt5C"]: + if self.project.getProjectType() in ["PyQt5", "PyQt5C"]: self.pylupdate = Utilities.generatePyQtToolPath('pylupdate5') elif self.project.getProjectType() in ["E6Plugin"]: self.pylupdate = Utilities.generatePyQtToolPath('pylupdate5') - elif self.project.getProjectType() in ["PySide", "PySideC"]: - self.pylupdate = Utilities.generatePySideToolPath( - 'pyside-lupdate', "1") elif self.project.getProjectType() in ["PySide2", "PySide2C"]: self.pylupdate = Utilities.generatePySideToolPath( - 'pyside2-lupdate', "2") + 'pyside2-lupdate') else: return @@ -1197,8 +1184,7 @@ return if self.project.getProjectType() in [ - "Qt4", "Qt4C", "PyQt5", "PyQt5C", "E6Plugin", - "PySide", "PySideC", "PySide2", "PySideC2" + "PyQt5", "PyQt5C", "E6Plugin", "PySide2", "PySide2C" ]: lrelease = os.path.join( Utilities.getQtBinariesPath(),
--- a/eric6/PyUnit/UnittestDialog.py Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/PyUnit/UnittestDialog.py Sun Jun 21 18:26:12 2020 +0200 @@ -30,7 +30,6 @@ import UI.PixmapCache -import Utilities import Preferences @@ -288,17 +287,13 @@ Private slot called before the test suite selection dialog is shown. """ if self.__dbs: - py2Extensions = ' '.join( - ["*{0}".format(ext) - for ext in self.__dbs.getExtensions('Python2')] - ) py3Extensions = ' '.join( ["*{0}".format(ext) for ext in self.__dbs.getExtensions('Python3')] ) fileFilter = self.tr( - "Python3 Files ({1});;Python2 Files ({0});;All Files (*)" - ).format(py2Extensions, py3Extensions) + "Python3 Files ({0});;All Files (*)" + ).format(py3Extensions) else: fileFilter = self.tr("Python Files (*.py);;All Files (*)") self.testsuitePicker.setFilters(fileFilter) @@ -407,10 +402,7 @@ return workdir = "" - clientType = self.__venvManager.getVirtualenvVariant(venvName) - if not clientType: - # assume Python 3 - clientType = "Python3" + clientType = "Python3" sysPath = [] self.__dbs.remoteUTDiscover(clientType, self.__forProject, venvName, sysPath, workdir, @@ -756,34 +748,16 @@ coverageFile = os.path.join(discoveryStart, "unittest") workdir = "" - clientType = self.__venvManager.getVirtualenvVariant( - venvName) - if not clientType: - # assume Python 3 - clientType = "Python3" + clientType = "Python3" elif testFileName: mainScript = os.path.abspath(testFileName) - flags = Utilities.extractFlagsFromFile(mainScript) workdir = os.path.dirname(mainScript) - if ( - mainScript.endswith(tuple( - Preferences.getPython("PythonExtensions"))) or - ("FileType" in flags and - flags["FileType"] in ["Python", "Python2"]) - ): - clientType = "Python2" - else: - # if it is not Python2 it must be Python3! - clientType = "Python3" + clientType = "Python3" coverageFile = os.path.splitext(mainScript)[0] else: coverageFile = os.path.abspath("unittest") workdir = "" - clientType = self.__venvManager.getVirtualenvVariant( - venvName) - if not clientType: - # assume Python 3 - clientType = "Python3" + clientType = "Python3" sysPath = [] if failedOnly and self.__failedTests: failed = self.__failedTests[:]
--- a/eric6/QScintilla/Editor.py Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/QScintilla/Editor.py Sun Jun 21 18:26:12 2020 +0200 @@ -655,8 +655,7 @@ supportedLanguages = Lexers.getSupportedLanguages() if self.filetype in supportedLanguages: bindName = supportedLanguages[self.filetype][1] - elif self.filetype in ["Python", "Python2", "Python3", - "MicroPython"]: + elif self.filetype in ["Python", "Python3", "MicroPython"]: bindName = "dummy.py" if not bindName and line0.startswith("#!"): @@ -664,21 +663,15 @@ if "python3" in line0: bindName = "dummy.py" self.filetype = "Python3" - elif "python2" in line0: - bindName = "dummy.py" - self.filetype = "Python2" elif "python" in line0: bindName = "dummy.py" - self.filetype = "Python2" + self.filetype = "Python3" elif "pypy3" in line0: bindName = "dummy.py" self.filetype = "Python3" - elif "pypy2" in line0: - bindName = "dummy.py" - self.filetype = "Python2" elif "pypy" in line0: bindName = "dummy.py" - self.filetype = "Python2" + self.filetype = "Python3" elif ("/bash" in line0 or "/sh" in line0): bindName = "dummy.sh" elif "ruby" in line0: @@ -700,9 +693,6 @@ if mode in ["python3", "pypy3"]: bindName = "dummy.py" self.filetype = "Python3" - elif mode in ["python2", "pypy2", "python", "pypy"]: - bindName = "dummy.py" - self.filetype = "Python2" elif mode == "ruby": bindName = "dummy.rb" self.filetype = "Ruby" @@ -1741,7 +1731,7 @@ pyVer = Utilities.determinePythonVersion( filename, self.text(0), self) language = "Python{0}".format(pyVer) - if language in ['Python2', 'Python3', 'MicroPython', 'Ruby', + if language in ['Python3', 'MicroPython', 'Ruby', 'JavaScript', 'YAML', 'JSON']: self.filetype = language else: @@ -1843,17 +1833,13 @@ lang = self.lexer_.name() if normalized: # adjust some Pygments lexer names - if lang == "Python": - lang = "Python2" - elif lang == "Python 3": + if lang == "Python 3": lang = "Python3" else: lang = self.apiLanguage if forPygments: # adjust some names to Pygments lexer names - if lang == "Python2": - lang = "Python" - elif lang == "Python3": + if lang == "Python3": lang = "Python 3" return lang @@ -2032,10 +2018,10 @@ def __getPyVersion(self): """ - Private method to return the Python main version (2 or 3) or 0 if it's + Private method to return the Python main version or 0 if it's not a Python file at all. - @return Python version (2 or 3) or 0 if it's not a Python file (int) + @return Python version or 0 if it's not a Python file (int) """ return Utilities.determinePythonVersion( self.fileName, self.text(0), self) @@ -2044,17 +2030,19 @@ """ Public method to return a flag indicating a Python (2 or 3) file. - @return flag indicating a Python (2 or 3) file (boolean) - """ - return self.__getPyVersion() in [2, 3] + @return flag indicating a Python3 file (boolean) + """ + return self.__getPyVersion() == 3 def isPy2File(self): """ Public method to return a flag indicating a Python2 file. - @return flag indicating a Python2 file (boolean) - """ - return self.__getPyVersion() == 2 + @return flag reporting always False + @rtype bool + """ + # kept to kep the API compatible for plugins + return False def isPy3File(self): """ @@ -5535,8 +5523,7 @@ (coEnable or os.path.isfile("{0}.coverage".format(basename)) or os.path.isfile("{0}.coverage".format(tbasename))) and - (self.project.isPy3Project() or - self.project.isPy2Project()) + self.project.isPy3Project() ) # now check ourselves
--- a/eric6/QScintilla/Lexers/LexerPython.py Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/QScintilla/Lexers/LexerPython.py Sun Jun 21 18:26:12 2020 +0200 @@ -233,12 +233,7 @@ @return string giving the keywords (string) or None """ if kwSet == 1: - if self.language() in ["Python", "Python2"]: - keywords = ("and as assert break class continue def del elif " - "else except exec finally for from global if " - "import in is lambda not or pass print raise " - "return try while with yield") - elif self.language() == "Python3": + if self.language() == "Python3": keywords = ("False None True and as assert break class " "continue def del elif else except finally for " "from global if import in is lambda nonlocal not "
--- a/eric6/QScintilla/Lexers/__init__.py Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/QScintilla/Lexers/__init__.py Sun Jun 21 18:26:12 2020 +0200 @@ -134,8 +134,6 @@ "Protocol": [QCoreApplication.translate('Lexers', "Protocol (protobuf)"), 'dummy.proto', "protobuf"], - "Python2": [QCoreApplication.translate('Lexers', "Python2"), - 'dummy.py', "lexerPython"], "Python3": [QCoreApplication.translate('Lexers', "Python3"), 'dummy.py', "lexerPython3"], "MicroPython": [QCoreApplication.translate('Lexers', "MicroPython"), @@ -231,8 +229,7 @@ """ if not pyname: try: - if language in ["Python", "Python2", "Python3", "Cython", - "MicroPython"]: + if language in ["Python", "Python3", "Cython", "MicroPython"]: from .LexerPython import LexerPython return LexerPython(language, parent) elif language == "C++": @@ -562,15 +559,9 @@ saveFileFiltersList = [ QCoreApplication.translate( 'Lexers', - "Python2 Files (*.py2)"), - QCoreApplication.translate( - 'Lexers', "Python3 Files (*.py)"), QCoreApplication.translate( 'Lexers', - "Python2 GUI Files (*.pyw2)"), - QCoreApplication.translate( - 'Lexers', "Python3 GUI Files (*.pyw)"), QCoreApplication.translate( 'Lexers',
--- a/eric6/QScintilla/MiniEditor.py Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/QScintilla/MiniEditor.py Sun Jun 21 18:26:12 2020 +0200 @@ -3034,10 +3034,7 @@ filename = os.path.basename(filename) language = Preferences.getEditorLexerAssoc(filename) if language == "Python": - if self.__isPy2File(): - language = "Python2" - else: - language = "Python3" + language = "Python3" if language.startswith("Pygments|"): pyname = language.split("|", 1)[1] language = "" @@ -3078,39 +3075,7 @@ self.lexer_.setDefaultColor(self.lexer_.color(0)) self.lexer_.setDefaultPaper(self.lexer_.paper(0)) - - def __isPy2File(self): - """ - Private method to return a flag indicating a Python 2 file. - - @return flag indicating a Python 2 file (boolean) - """ - if self.filetype in ["Python", "Python2"]: - return True - - if self.filetype == "": - line0 = self.__textEdit.text(0) - if ( - line0.startswith("#!") and - ("python2" in line0 or - ("python" in line0 and "python3" not in line0)) - ): - return True - - if self.__curFile is not None: - exts = [] - for ext in Preferences.getDebugger("PythonExtensions").split(): - if ext.startswith("."): - exts.append(ext) - else: - exts.append(".{0}".format(ext)) - - ext = os.path.splitext(self.__curFile)[1] - if ext in exts: - return True - - return False - + def __styleNeeded(self, position): """ Private slot to handle the need for more styling. @@ -3146,8 +3111,7 @@ supportedLanguages = Lexers.getSupportedLanguages() if self.filetype in supportedLanguages: bindName = supportedLanguages[self.filetype][1] - elif self.filetype in ["Python", "Python2", "Python3", - "MicroPython"]: + elif self.filetype in ["Python", "Python3", "MicroPython"]: bindName = "dummy.py" if not bindName and line0.startswith("#!"): @@ -3155,12 +3119,9 @@ if "python3" in line0: bindName = "dummy.py" self.filetype = "Python3" - elif "python2" in line0: - bindName = "dummy.py" - self.filetype = "Python2" elif "python" in line0: bindName = "dummy.py" - self.filetype = "Python2" + self.filetype = "Python3" elif ("/bash" in line0 or "/sh" in line0): bindName = "dummy.sh" elif "ruby" in line0: @@ -3182,9 +3143,6 @@ if mode in ["python3", "pypy3"]: bindName = "dummy.py" self.filetype = "Python3" - elif mode in ["python2", "pypy2", "python", "pypy"]: - bindName = "dummy.py" - self.filetype = "Python2" elif mode == "ruby": bindName = "dummy.rb" self.filetype = "Ruby"
--- a/eric6/QScintilla/TypingCompleters/__init__.py Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/QScintilla/TypingCompleters/__init__.py Sun Jun 21 18:26:12 2020 +0200 @@ -18,7 +18,7 @@ @return reference to the instanciated lexer object (QsciLexer) """ try: - if language in ["Python", "Python2", "Python3", "MicroPython"]: + if language in ["Python", "Python3", "MicroPython"]: from .CompleterPython import CompleterPython return CompleterPython(editor, parent) elif language == "Ruby":
--- a/eric6/UI/Browser.py Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/UI/Browser.py Sun Jun 21 18:26:12 2020 +0200 @@ -412,9 +412,7 @@ self._activating = True for itm in itmList: if isinstance(itm, BrowserFileItem): - if itm.isPython2File(): - self.sourceFile[str].emit(itm.fileName()) - elif itm.isPython3File(): + if itm.isPython3File(): self.sourceFile[str].emit(itm.fileName()) elif itm.isRubyFile(): self.sourceFile[str, int, str].emit(
--- a/eric6/UI/BrowserModel.py Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/UI/BrowserModel.py Sun Jun 21 18:26:12 2020 +0200 @@ -630,7 +630,7 @@ try: dictionary = Utilities.ClassBrowsers.readmodule( moduleName, [parentItem.dirName()], - parentItem.isPython2File() or parentItem.isPython3File()) + parentItem.isPython3File()) except ImportError: return @@ -1112,15 +1112,7 @@ self._moduleName = '' pixName = "" - if self.isPython2File(): - if self.fileext == '.py': - pixName = "filePython" - else: - pixName = "filePython2" - self._populated = False - self._lazyPopulation = True - self._moduleName = os.path.basename(finfo) - elif self.isPython3File(): + if self.isPython3File(): pixName = "filePython" self._populated = False self._lazyPopulation = True @@ -1183,7 +1175,6 @@ self._filename = os.path.abspath(finfo) self.itemData[0] = os.path.basename(finfo) if ( - self.isPython2File() or self.isPython3File() or self.isRubyFile() or self.isIdlFile() or @@ -1232,18 +1223,6 @@ """ return self._moduleName - def isPython2File(self): - """ - Public method to check, if this file is a Python script. - - @return flag indicating a Python file (boolean) - """ - return ( - self.fileext in Preferences.getPython("PythonExtensions") or - (self.fileext == "" and - self.sourceLanguage in ["Python", "Python2"]) - ) - def isPython3File(self): """ Public method to check, if this file is a Python3 script.
--- a/eric6/UI/UserInterface.py Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/UI/UserInterface.py Sun Jun 21 18:26:12 2020 +0200 @@ -2198,7 +2198,7 @@ self.utProjectAct.setEnabled(False) self.actions.append(self.utProjectAct) - # check for Qt4/Qt5 designer and linguist + # check for Qt5 designer and linguist if Utilities.isWindowsPlatform(): designerExe = os.path.join( Utilities.getQtBinariesPath(), @@ -2732,21 +2732,6 @@ """ Private slot to initialize the action to show the Qt documentation. """ - self.qt4DocAct = E5Action( - self.tr('Qt4 Documentation'), - self.tr('Qt&4 Documentation'), - 0, 0, self, 'qt4_documentation') - self.qt4DocAct.setStatusTip(self.tr('Open Qt4 Documentation')) - self.qt4DocAct.setWhatsThis(self.tr( - """<b>Qt4 Documentation</b>""" - """<p>Display the Qt4 Documentation. Dependent upon your""" - """ settings, this will either show the help in Eric's internal""" - """ help viewer/web browser, or execute a web browser or Qt""" - """ Assistant. </p>""" - )) - self.qt4DocAct.triggered.connect(self.__showQt4Doc) - self.actions.append(self.qt4DocAct) - self.qt5DocAct = E5Action( self.tr('Qt5 Documentation'), self.tr('Qt&5 Documentation'), @@ -2762,25 +2747,6 @@ self.qt5DocAct.triggered.connect(self.__showQt5Doc) self.actions.append(self.qt5DocAct) - try: - import PyQt4 # __IGNORE_WARNING__ - self.pyqt4DocAct = E5Action( - self.tr('PyQt4 Documentation'), - self.tr('PyQt&4 Documentation'), - 0, 0, self, 'pyqt4_documentation') - self.pyqt4DocAct.setStatusTip(self.tr('Open PyQt4 Documentation')) - self.pyqt4DocAct.setWhatsThis(self.tr( - """<b>PyQt4 Documentation</b>""" - """<p>Display the PyQt4 Documentation. Dependent upon your""" - """ settings, this will either show the help in Eric's""" - """ internal help viewer/web browser, or execute a web""" - """ browser or Qt Assistant. </p>""" - )) - self.pyqt4DocAct.triggered.connect(self.__showPyQt4Doc) - self.actions.append(self.pyqt4DocAct) - except ImportError: - self.pyqt4DocAct = None - self.pyqt5DocAct = E5Action( self.tr('PyQt5 Documentation'), self.tr('PyQt&5 Documentation'), @@ -2819,27 +2785,7 @@ )) self.pythonDocAct.triggered.connect(self.__showPythonDoc) self.actions.append(self.pythonDocAct) - - self.python2DocAct = E5Action( - self.tr('Python 2 Documentation'), - self.tr('Python &2 Documentation'), - 0, 0, self, 'python2_documentation') - self.python2DocAct.setStatusTip(self.tr( - 'Open Python 2 Documentation')) - self.python2DocAct.setWhatsThis(self.tr( - """<b>Python 2 Documentation</b>""" - """<p>Display the Python 2 documentation. If no documentation""" - """ directory is configured, the location of the Python 2""" - """ documentation is assumed to be the doc directory underneath""" - """ the location of the configured Python 2 executable on""" - """ Windows and""" - """ <i>/usr/share/doc/packages/python/html/python-docs-html</i>""" - """ on Unix. Set PYTHON2DOCDIR in your environment to override""" - """ this. </p>""" - )) - self.python2DocAct.triggered.connect(self.__showPython2Doc) - self.actions.append(self.python2DocAct) - + def __initEricDocAction(self): """ Private slot to initialize the action to show the eric6 documentation. @@ -2864,29 +2810,7 @@ Private slot to initialize the actions to show the PySide documentation. """ - pyside_py2, pyside_py3 = Utilities.checkPyside("1") - if pyside_py2 or pyside_py3: - self.pysideDocAct = E5Action( - self.tr('PySide Documentation'), - self.tr('Py&Side Documentation'), - 0, 0, self, 'pyside_documentation') - self.pysideDocAct.setStatusTip(self.tr( - 'Open PySide Documentation')) - self.pysideDocAct.setWhatsThis(self.tr( - """<b>PySide Documentation</b>""" - """<p>Display the PySide Documentation. Dependent upon your""" - """ settings, this will either show the help in Eric's""" - """ internal help viewer/web browser, or execute a web""" - """ browser or Qt Assistant. </p>""" - )) - self.pysideDocAct.triggered.connect( - lambda: self.__showPySideDoc("1")) - self.actions.append(self.pysideDocAct) - else: - self.pysideDocAct = None - - pyside2_py2, pyside2_py3 = Utilities.checkPyside("2") - if pyside2_py2 or pyside2_py3: + if Utilities.checkPyside(): self.pyside2DocAct = E5Action( self.tr('PySide2 Documentation'), self.tr('PySide&2 Documentation'), @@ -3192,15 +3116,9 @@ self.__menus["help"].addSeparator() self.__menus["help"].addAction(self.ericDocAct) self.__menus["help"].addAction(self.pythonDocAct) - self.__menus["help"].addAction(self.python2DocAct) - self.__menus["help"].addAction(self.qt4DocAct) self.__menus["help"].addAction(self.qt5DocAct) - if self.pyqt4DocAct is not None: - self.__menus["help"].addAction(self.pyqt4DocAct) if self.pyqt5DocAct is not None: self.__menus["help"].addAction(self.pyqt5DocAct) - if self.pysideDocAct is not None: - self.__menus["help"].addAction(self.pysideDocAct) if self.pyside2DocAct is not None: self.__menus["help"].addAction(self.pyside2DocAct) self.__menus["help"].addSeparator() @@ -5552,75 +5470,6 @@ else: self.__customViewer(home) - def __showPython2Doc(self): - """ - Private slot to show the Python 2 documentation. - """ - pythonDocDir = Preferences.getHelp("Python2DocDir") - if not pythonDocDir: - if Utilities.isWindowsPlatform(): - venvName = Preferences.getDebugger("Python2VirtualEnv") - interpreter = ( - e5App().getObject("VirtualEnvManager") - .getVirtualenvInterpreter(venvName) - ) - if interpreter: - default = os.path.join(os.path.dirname(interpreter), "doc") - else: - default = "" - pythonDocDir = Utilities.getEnvironmentEntry( - "PYTHON2DOCDIR", default) - else: - pythonDocDir = Utilities.getEnvironmentEntry( - "PYTHON2DOCDIR", - '/usr/share/doc/packages/python/html') - if not pythonDocDir.startswith(("http://", "https://", "qthelp://")): - if pythonDocDir.startswith("file://"): - pythonDocDir = pythonDocDir[7:] - if not os.path.splitext(pythonDocDir)[1]: - home = Utilities.normjoinpath(pythonDocDir, 'index.html') - else: - home = pythonDocDir - - if not os.path.exists(home): - E5MessageBox.warning( - self, - self.tr("Documentation Missing"), - self.tr("""<p>The documentation starting point""" - """ "<b>{0}</b>" could not be found.</p>""") - .format(home)) - return - - if not home.endswith(".chm"): - if Utilities.isWindowsPlatform(): - home = "file:///" + Utilities.fromNativeSeparators(home) - else: - home = "file://" + home - else: - home = pythonDocDir - - if home.endswith(".chm"): - self.__chmViewer(home) - else: - hvType = Preferences.getWebBrowser("HelpViewerType") - if hvType == 1: - self.launchHelpViewer(home) - elif hvType == 2: - if home.startswith("qthelp://"): - self.__assistant(home) - else: - self.__webBrowser(home) - elif hvType == 3: - self.__webBrowser(home) - else: - self.__customViewer(home) - - def __showQt4Doc(self): - """ - Private slot to show the Qt4 documentation. - """ - self.__showQtDoc(4) - def __showQt5Doc(self): """ Private slot to show the Qt5 documentation. @@ -5633,9 +5482,7 @@ @param version Qt version to show documentation for (integer) """ - if version == 4: - qtDocDir = Preferences.getQt4DocDir() - elif version == 5: + if version == 5: qtDocDir = Preferences.getQt5DocDir() if qtDocDir.startswith("qthelp://"): @@ -5680,68 +5527,6 @@ else: self.__customViewer(home) - def __showPyQt4Doc(self): - """ - Private slot to show the PyQt4 documentation. - """ - pyqt4DocDir = Preferences.getHelp("PyQt4DocDir") - if not pyqt4DocDir: - pyqt4DocDir = Utilities.getEnvironmentEntry("PYQT4DOCDIR", None) - - if not pyqt4DocDir: - E5MessageBox.warning( - self, - self.tr("Documentation"), - self.tr("""<p>The PyQt4 documentation starting point""" - """ has not been configured.</p>""")) - return - - if not pyqt4DocDir.startswith(("http://", "https://", "qthelp://")): - home = "" - if pyqt4DocDir: - if pyqt4DocDir.startswith("file://"): - pyqt4DocDir = pyqt4DocDir[7:] - if not os.path.splitext(pyqt4DocDir)[1]: - possibleHomes = [ - Utilities.normjoinpath(pyqt4DocDir, 'index.html'), - Utilities.normjoinpath(pyqt4DocDir, 'classes.html'), - ] - for possibleHome in possibleHomes: - if os.path.exists(possibleHome): - home = possibleHome - break - else: - home = pyqt4DocDir - - if not home or not os.path.exists(home): - E5MessageBox.warning( - self, - self.tr("Documentation Missing"), - self.tr("""<p>The documentation starting point""" - """ "<b>{0}</b>" could not be found.</p>""") - .format(home)) - return - - if Utilities.isWindowsPlatform(): - home = "file:///" + Utilities.fromNativeSeparators(home) - else: - home = "file://" + home - else: - home = pyqt4DocDir - - hvType = Preferences.getWebBrowser("HelpViewerType") - if hvType == 1: - self.launchHelpViewer(home) - elif hvType == 2: - if home.startswith("qthelp://"): - self.__assistant(home) - else: - self.__webBrowser(home) - elif hvType == 3: - self.__webBrowser(home) - else: - self.__customViewer(home) - def __showPyQt5Doc(self): """ Private slot to show the PyQt5 documentation. @@ -5842,24 +5627,18 @@ self.__webBrowser(home) else: self.__customViewer(home) - - def __showPySideDoc(self, variant): - """ - Private slot to show the PySide/PySide2 documentation. - - @param variant PySide variant (1 or 2) + + def __showPySideDoc(self, variant="2"): + """ + Private slot to show the PySide2 documentation. + + @param variant PySide variant (2) @type str """ - if variant == "1": - pysideDocDir = Preferences.getHelp("PySideDocDir") - if not pysideDocDir: - pysideDocDir = Utilities.getEnvironmentEntry( - "PYSIDEDOCDIR", None) - else: - pysideDocDir = Preferences.getHelp("PySide2DocDir") - if not pysideDocDir: - pysideDocDir = Utilities.getEnvironmentEntry( - "PYSIDE2DOCDIR", None) + pysideDocDir = Preferences.getHelp("PySide2DocDir") + if not pysideDocDir: + pysideDocDir = Utilities.getEnvironmentEntry( + "PYSIDE2DOCDIR", None) if not pysideDocDir: E5MessageBox.warning( @@ -5867,7 +5646,7 @@ self.tr("Documentation"), self.tr("""<p>The PySide{0} documentation starting point""" """ has not been configured.</p>""").format( - "" if variant == "1" else variant) + variant) ) return
--- a/eric6/Utilities/BackgroundClient.py Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/Utilities/BackgroundClient.py Sun Jun 21 18:26:12 2020 +0200 @@ -45,7 +45,7 @@ self.batchServices = {} self.connection = socket.create_connection((host, port)) - ver = b'Python2' if sys.version_info[0] == 2 else b'Python3' + ver = b'Python3' self.connection.sendall(ver) self.__maxProcs = maxProcs
--- a/eric6/Utilities/BackgroundService.py Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/Utilities/BackgroundService.py Sun Jun 21 18:26:12 2020 +0200 @@ -67,17 +67,15 @@ ## Note: Need the port if started external in debugger: print('BackgroundService listening on: {0:d}'.format(port)) # __IGNORE_WARNING__ - for pyName in ['Python2', 'Python3']: - venvName = Preferences.getDebugger( - pyName + "VirtualEnv") - interpreter = e5App().getObject( - "VirtualEnvManager").getVirtualenvInterpreter(venvName) - if not interpreter and int(pyName[-1]) == sys.version_info[0]: - interpreter = sys.executable.replace("w.exe", ".exe") - if interpreter: - process = self.__startExternalClient(interpreter, port) - if process: - self.processes[pyName] = process, interpreter + venvName = Preferences.getDebugger("Python3VirtualEnv") + interpreter = e5App().getObject( + "VirtualEnvManager").getVirtualenvInterpreter(venvName) + if not interpreter: + interpreter = sys.executable.replace("w.exe", ".exe") + if interpreter: + process = self.__startExternalClient(interpreter, port) + if process: + self.processes['Python3'] = process, interpreter def __startExternalClient(self, interpreter, port): """ @@ -247,19 +245,17 @@ """ Public slot to restart the built in languages. """ - for pyName in ['Python2', 'Python3']: - venvName = Preferences.getDebugger( - pyName + "VirtualEnv") - interpreter = e5App().getObject( - "VirtualEnvManager").getVirtualenvInterpreter(venvName) - if not interpreter and int(pyName[-1]) == sys.version_info[0]: - interpreter = sys.executable.replace("w.exe", ".exe") - - # Tweak the processes list to reflect the changed interpreter - proc, inter = self.processes.pop(pyName, [None, None]) - self.processes[pyName] = proc, interpreter - - self.restartService(pyName) + venvName = Preferences.getDebugger("Python3VirtualEnv") + interpreter = e5App().getObject( + "VirtualEnvManager").getVirtualenvInterpreter(venvName) + if not interpreter: + interpreter = sys.executable.replace("w.exe", ".exe") + + # Tweak the processes list to reflect the changed interpreter + proc, inter = self.processes.pop('Python3', [None, None]) + self.processes['Python3'] = proc, interpreter + + self.restartService('Python3') def restartService(self, language, forceKill=False): """
--- a/eric6/Utilities/ModuleParser.py Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/Utilities/ModuleParser.py Sun Jun 21 18:26:12 2020 +0200 @@ -24,7 +24,6 @@ import Utilities from functools import reduce -import Preferences __all__ = ["Module", "Class", "Function", "Attribute", "RbModule", "readModule", "getTypeFromTypeName"] @@ -39,7 +38,6 @@ SUPPORTED_TYPES = [PY_SOURCE, PTL_SOURCE, RB_SOURCE] TYPE_MAPPING = { "Python": PY_SOURCE, - "Python2": PY_SOURCE, "Python3": PY_SOURCE, "MicroPython": PY_SOURCE, "Ruby": RB_SOURCE, @@ -1274,11 +1272,7 @@ @return type of the modules's source (string) """ if self.type in [PY_SOURCE, PTL_SOURCE]: - py3ExtList = Preferences.getDebugger("Python3Extensions").split() - if self.file.endswith(tuple(py3ExtList)): - moduleType = "Python3" - else: - moduleType = "Python2" + moduleType = "Python3" elif self.type == RB_SOURCE: moduleType = "Ruby" else:
--- a/eric6/Utilities/PySideImporter.py Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/Utilities/PySideImporter.py Sun Jun 21 18:26:12 2020 +0200 @@ -4,7 +4,7 @@ # """ -Module to check for the presence of PySide/PySide2 by importing it. +Module to check for the presence of PySide2 by importing it. """ import sys @@ -15,11 +15,8 @@ pySideVariant = sys.argv[1].replace("-", "") if pySideVariant == "1": - try: - import PySide # __IGNORE_EXCEPTION__ __IGNORE_WARNING__ - ret = 0 - except ImportError: - ret = 1 + # no PySide support anymore + ret = 1 elif pySideVariant == "2": try:
--- a/eric6/Utilities/__init__.py Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/Utilities/__init__.py Sun Jun 21 18:26:12 2020 +0200 @@ -1601,11 +1601,9 @@ @param source of the file (str) @keyparam editor reference to the editor, if the file is opened already (Editor object) - @return Python version if file is Python2 or Python3 (int) + @return Python version if file is Python3 (int) """ pyAssignment = { - "Python": 2, - "Python2": 2, "Python3": 3, "MicroPython": 3, } @@ -1635,7 +1633,7 @@ language = project.getEditorLexerAssoc(basename) if not language: language = Preferences.getEditorLexerAssoc(basename) - if language in ['Python2', 'Python3']: + if language == 'Python3': pyVer = pyAssignment[language] if pyVer: @@ -1820,36 +1818,38 @@ return exe ############################################################################### -# PySide/PySide2 utility functions below +# PySide2 utility functions below ############################################################################### def generatePySideToolPath(toolname, variant="2"): """ - Module function to generate the executable path for a PySide/PySide2 tool. + Module function to generate the executable path for a PySide2 tool. @param toolname base name of the tool @type str - @param variant indicator for the PySide variant + @param variant indicator for the PySide variant (not used) @type str - @return the PySide/PySide2 tool path with extension + @return the PySide2 tool path with extension @rtype str """ + if variant == 1: + # no PySide support anymore + return "" + if isWindowsPlatform(): pysideInterpreters = checkPyside(variant) interpreterIndex = sys.version_info[0] - 2 hasPyside = pysideInterpreters[interpreterIndex] - # if it isn't the internal interpreter, it has to be the external one if not hasPyside: - interpreterIndex = not interpreterIndex - if interpreterIndex: + return "" + + if interpreterIndex == 1: venvName = Preferences.getDebugger("Python3VirtualEnv") - else: - venvName = Preferences.getDebugger("Python2VirtualEnv") interpreter = e5App().getObject( "VirtualEnvManager").getVirtualenvInterpreter(venvName) prefix = os.path.dirname(interpreter) - if toolname in ["pyside-uic", "pyside2-uic"]: + if toolname in ["pyside2-uic"]: return os.path.join(prefix, "Scripts", toolname + '.exe') else: path = os.path.join(prefix, "Scripts", toolname + '.exe') @@ -1859,63 +1859,59 @@ # report it the old style return os.path.join( prefix, "Lib", "site-packages", - "PySide{0}".format("" if variant == "1" else variant), + "PySide{0}".format(variant), toolname + ".exe") else: - if variant == "1": + # step 1: check, if the user has configured a tools path + path = Preferences.getQt("PySide2ToolsDir") + if path: + return os.path.join(path, toolname) + + # step 2: determine from used Python interpreter + dirName = os.path.dirname(sys.executable) + if os.path.exists(os.path.join(dirName, toolname)): + return os.path.join(dirName, toolname) + + # step 3: if it is not 'pyside2-uic' look in the package directory + if toolname == "pyside2-uic": return toolname else: - # step 1: check, if the user has configured a tools path - path = Preferences.getQt("PySide2ToolsDir") - if path: - return os.path.join(path, toolname) - - # step 2: determine from used Python interpreter - dirName = os.path.dirname(sys.executable) - if os.path.exists(os.path.join(dirName, toolname)): - return os.path.join(dirName, toolname) - - # step 3: if it is not 'pyside2-uic' look in the package directory - if toolname == "pyside2-uic": - return toolname - else: - import distutils.sysconfig - return os.path.join(distutils.sysconfig.get_python_lib(True), - "PySide2", toolname) + import distutils.sysconfig + return os.path.join(distutils.sysconfig.get_python_lib(True), + "PySide2", toolname) def checkPyside(variant="2"): """ - Module function to check the presence of PySide/PySide2. + Module function to check the presence of PySide2. - @param variant indicator for the PySide variant + @param variant indicator for the PySide variant (not used) @type str - @return list of two flags indicating the presence of PySide/PySide2 for - Python2 and PySide/PySide2 for Python3 - @rtype tuple of (bool, bool) + @return flags indicating the presence of PySide2 + @rtype bool """ - pysideInformation = [] - for venvNameKey in ["Python2VirtualEnv", "Python3VirtualEnv"]: - venvName = Preferences.getDebugger(venvNameKey) - interpreter = e5App().getObject( - "VirtualEnvManager").getVirtualenvInterpreter(venvName) - if interpreter == "" or not isinpath(interpreter): - hasPyside = False - else: - hasPyside = False - checker = os.path.join(getConfig('ericDir'), - "Utilities", "PySideImporter.py") - args = [checker, "-" + variant] - proc = QProcess() - proc.setProcessChannelMode(QProcess.MergedChannels) - proc.start(interpreter, args) - finished = proc.waitForFinished(30000) - if finished: - if proc.exitCode() == 0: - hasPyside = True - pysideInformation.append(hasPyside) + if variant == 1: + # no longer supported PySide + return [False, False] - return pysideInformation + venvName = Preferences.getDebugger("Python3VirtualEnv") + interpreter = e5App().getObject( + "VirtualEnvManager").getVirtualenvInterpreter(venvName) + if interpreter == "" or not isinpath(interpreter): + return False + else: + checker = os.path.join( + getConfig('ericDir'), "Utilities", "PySideImporter.py") + args = [checker, "-" + variant] + proc = QProcess() + proc.setProcessChannelMode(QProcess.MergedChannels) + proc.start(interpreter, args) + finished = proc.waitForFinished(30000) + if finished: + if proc.exitCode() == 0: + return True + + return False ############################################################################### # Other utility functions below
--- a/eric6/VirtualEnv/VirtualenvAddEditDialog.py Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/VirtualEnv/VirtualenvAddEditDialog.py Sun Jun 21 18:26:12 2020 +0200 @@ -26,8 +26,8 @@ Class implementing a dialog to enter the data of a virtual environment. """ def __init__(self, manager, venvName="", venvDirectory="", - venvInterpreter="", venvVariant=3, isGlobal=False, - isConda=False, isRemote=False, execPath="", parent=None): + venvInterpreter="", isGlobal=False, isConda=False, + isRemote=False, execPath="", parent=None): """ Constructor @@ -39,8 +39,6 @@ @type str @param venvInterpreter Python interpreter of the virtual environment @type str - @param venvVariant Python variant of the virtual environment - @type int @param isGlobal flag indicating a global environment @type bool @param isConda flag indicating an Anaconda virtual environment @@ -82,7 +80,6 @@ toNative=not isRemote) self.pythonExecPicker.setText(venvInterpreter, toNative=not isRemote) - self.variantComboBox.setCurrentIndex(3 - venvVariant) self.globalCheckBox.setChecked(isGlobal) self.anacondaCheckBox.setChecked(isConda) self.remoteCheckBox.setChecked(isRemote) @@ -211,19 +208,17 @@ Public method to retrieve the entered data. @return tuple containing the logical name, the directory, the - interpreter of the virtual environment, the Python variant, - a flag indicating a global environment, a flag indicating an - Anaconda environment, aflag indicating a remotely accessed - environment and a string to be prepended to the PATH environment - variable - @rtype tuple of (str, str, str, int, bool, bool, bool, str) + interpreter of the virtual environment, a flag indicating a + global environment, a flag indicating an Anaconda environment, + a flag indicating a remotely accessed environment and a string + to be prepended to the PATH environment variable + @rtype tuple of (str, str, str, bool, bool, bool, str) """ nativePaths = not self.remoteCheckBox.isChecked() return ( self.nameEdit.text(), self.targetDirectoryPicker.text(toNative=nativePaths), self.pythonExecPicker.text(toNative=nativePaths), - 3 - self.variantComboBox.currentIndex(), self.globalCheckBox.isChecked(), self.anacondaCheckBox.isChecked(), self.remoteCheckBox.isChecked(),
--- a/eric6/VirtualEnv/VirtualenvAddEditDialog.ui Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/VirtualEnv/VirtualenvAddEditDialog.ui Sun Jun 21 18:26:12 2020 +0200 @@ -7,98 +7,24 @@ <x>0</x> <y>0</y> <width>700</width> - <height>220</height> + <height>188</height> </rect> </property> <property name="sizeGripEnabled"> <bool>true</bool> </property> <layout class="QGridLayout" name="gridLayout"> - <item row="0" column="0"> - <widget class="QLabel" name="label"> - <property name="text"> - <string>Logical Name:</string> - </property> - </widget> - </item> - <item row="0" column="1"> - <widget class="E5ClearableLineEdit" name="nameEdit"> - <property name="toolTip"> - <string>Enter a unique name for the virtual environment</string> - </property> - </widget> - </item> - <item row="1" column="0"> - <widget class="QLabel" name="label_2"> + <item row="4" column="0"> + <widget class="QLabel" name="label_5"> <property name="text"> - <string>Directory:</string> - </property> - </widget> - </item> - <item row="1" column="1"> - <widget class="E5PathPicker" name="targetDirectoryPicker" native="true"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Expanding" vsizetype="Preferred"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="focusPolicy"> - <enum>Qt::WheelFocus</enum> - </property> - <property name="toolTip"> - <string>Enter the directory of the virtual environment</string> + <string>PATH Prefix:</string> </property> </widget> </item> - <item row="2" column="0"> - <widget class="QLabel" name="label_3"> - <property name="text"> - <string>Python Interpreter:</string> - </property> - </widget> - </item> - <item row="2" column="1"> - <widget class="E5PathPicker" name="pythonExecPicker" native="true"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Expanding" vsizetype="Preferred"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="focusPolicy"> - <enum>Qt::WheelFocus</enum> - </property> - <property name="toolTip"> - <string>Enter the Python interpreter of the virtual environment</string> - </property> - </widget> + <item row="4" column="1"> + <widget class="E5ClearableLineEdit" name="execPathEdit"/> </item> - <item row="3" column="0"> - <widget class="QLabel" name="label_4"> - <property name="text"> - <string>Python Variant:</string> - </property> - </widget> - </item> - <item row="3" column="1"> - <widget class="QComboBox" name="variantComboBox"> - <property name="toolTip"> - <string>Select the Python variant</string> - </property> - <item> - <property name="text"> - <string notr="true">Python 3</string> - </property> - </item> - <item> - <property name="text"> - <string notr="true">Python 2</string> - </property> - </item> - </widget> - </item> - <item row="4" column="0" colspan="2"> + <item row="3" column="0" colspan="2"> <layout class="QHBoxLayout" name="horizontalLayout"> <item> <widget class="QCheckBox" name="globalCheckBox"> @@ -149,17 +75,7 @@ </item> </layout> </item> - <item row="5" column="0"> - <widget class="QLabel" name="label_5"> - <property name="text"> - <string>PATH Prefix:</string> - </property> - </widget> - </item> - <item row="5" column="1"> - <widget class="E5ClearableLineEdit" name="execPathEdit"/> - </item> - <item row="6" column="0" colspan="2"> + <item row="5" column="0" colspan="2"> <widget class="QDialogButtonBox" name="buttonBox"> <property name="orientation"> <enum>Qt::Horizontal</enum> @@ -169,6 +85,66 @@ </property> </widget> </item> + <item row="2" column="1"> + <widget class="E5PathPicker" name="pythonExecPicker" native="true"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="focusPolicy"> + <enum>Qt::WheelFocus</enum> + </property> + <property name="toolTip"> + <string>Enter the Python interpreter of the virtual environment</string> + </property> + </widget> + </item> + <item row="1" column="1"> + <widget class="E5PathPicker" name="targetDirectoryPicker" native="true"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="focusPolicy"> + <enum>Qt::WheelFocus</enum> + </property> + <property name="toolTip"> + <string>Enter the directory of the virtual environment</string> + </property> + </widget> + </item> + <item row="0" column="1"> + <widget class="E5ClearableLineEdit" name="nameEdit"> + <property name="toolTip"> + <string>Enter a unique name for the virtual environment</string> + </property> + </widget> + </item> + <item row="2" column="0"> + <widget class="QLabel" name="label_3"> + <property name="text"> + <string>Python Interpreter:</string> + </property> + </widget> + </item> + <item row="0" column="0"> + <widget class="QLabel" name="label"> + <property name="text"> + <string>Logical Name:</string> + </property> + </widget> + </item> + <item row="1" column="0"> + <widget class="QLabel" name="label_2"> + <property name="text"> + <string>Directory:</string> + </property> + </widget> + </item> </layout> </widget> <customwidgets> @@ -188,7 +164,6 @@ <tabstop>nameEdit</tabstop> <tabstop>targetDirectoryPicker</tabstop> <tabstop>pythonExecPicker</tabstop> - <tabstop>variantComboBox</tabstop> <tabstop>globalCheckBox</tabstop> <tabstop>anacondaCheckBox</tabstop> <tabstop>remoteCheckBox</tabstop>
--- a/eric6/VirtualEnv/VirtualenvConfigurationDialog.ui Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/VirtualEnv/VirtualenvConfigurationDialog.ui Sun Jun 21 18:26:12 2020 +0200 @@ -289,16 +289,6 @@ </item> <item> <property name="text"> - <string notr="true">2.6</string> - </property> - </item> - <item> - <property name="text"> - <string notr="true">2.7</string> - </property> - </item> - <item> - <property name="text"> <string notr="true">3.4</string> </property> </item> @@ -322,6 +312,11 @@ <string notr="true">3.8</string> </property> </item> + <item> + <property name="text"> + <string notr="true">3.9</string> + </property> + </item> </widget> </item> <item>
--- a/eric6/VirtualEnv/VirtualenvInterpreterSelectionDialog.py Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/VirtualEnv/VirtualenvInterpreterSelectionDialog.py Sun Jun 21 18:26:12 2020 +0200 @@ -73,11 +73,7 @@ """ Public method to get the entered data. - @return tuple containing the path of the selected Python interpreter - and the Python variant - @rtype tuple of (str, int) + @return path of the selected Python interpreter + @rtype str """ - return ( - self.pythonExecPicker.text(), - 3 - self.variantComboBox.currentIndex(), - ) + return self.pythonExecPicker.text(),
--- a/eric6/VirtualEnv/VirtualenvInterpreterSelectionDialog.ui Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/VirtualEnv/VirtualenvInterpreterSelectionDialog.ui Sun Jun 21 18:26:12 2020 +0200 @@ -7,7 +7,7 @@ <x>0</x> <y>0</y> <width>550</width> - <height>150</height> + <height>118</height> </rect> </property> <property name="windowTitle"> @@ -59,23 +59,6 @@ </widget> </item> <item> - <widget class="QComboBox" name="variantComboBox"> - <property name="toolTip"> - <string>Select the Python variant</string> - </property> - <item> - <property name="text"> - <string notr="true">Python 3</string> - </property> - </item> - <item> - <property name="text"> - <string notr="true">Python 2</string> - </property> - </item> - </widget> - </item> - <item> <widget class="QDialogButtonBox" name="buttonBox"> <property name="orientation"> <enum>Qt::Horizontal</enum> @@ -97,7 +80,6 @@ </customwidgets> <tabstops> <tabstop>pythonExecPicker</tabstop> - <tabstop>variantComboBox</tabstop> <tabstop>nameEdit</tabstop> </tabstops> <resources/>
--- a/eric6/VirtualEnv/VirtualenvManager.py Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/VirtualEnv/VirtualenvManager.py Sun Jun 21 18:26:12 2020 +0200 @@ -68,15 +68,21 @@ # path: the directory of the virtual environment # (empty for a global environment) # interpreter: the path of the Python interpreter - # variant: Python variant (2 or 3) + # variant: Python variant (always 3) # is_global: a flag indicating a global environment # is_conda: a flag indicating an Anaconda environment # is_remote: a flag indicating a remotely accessed environment # exec_path: a string to be prefixed to the PATH environment # setting # + envsToDelete = [] for venvName in environments: environment = environments[venvName] + if environment["variant"] == 2: + # Python2 environment are not supported anymore, delete them + envsToDelete.append(venvName) + continue + if ( ("is_remote" in environment and environment["is_remote"]) or os.access(environment["interpreter"], os.X_OK) @@ -91,6 +97,10 @@ environment["exec_path"] = "" self.__virtualEnvironments[venvName] = environment + # now remove unsupported environments + for venvName in envsToDelete: + del environments[venvName] + # check, if the interpreter used to run eric is in the environments defaultPy = sys.executable.replace("w.exe", ".exe") found = False @@ -104,7 +114,7 @@ self.__virtualEnvironments[VirtualenvManager.DefaultKey] = { "path": "", "interpreter": defaultPy, - "variant": sys.version_info[0], + "variant": 3, "is_global": True, "is_conda": False, "is_remote": False, @@ -186,8 +196,8 @@ dia.exec_() def addVirtualEnv(self, venvName, venvDirectory, venvInterpreter="", - venvVariant=3, isGlobal=False, isConda=False, - isRemote=False, execPath=""): + isGlobal=False, isConda=False, isRemote=False, + execPath=""): """ Public method to add a virtual environment. @@ -197,8 +207,6 @@ @type str @param venvInterpreter interpreter of the virtual environment @type str - @param venvVariant Python variant of the virtual environment - @type int @param isGlobal flag indicating a global environment @type bool @param isConda flag indicating an Anaconda virtual environment @@ -233,13 +241,13 @@ ) dlg = VirtualenvInterpreterSelectionDialog(venvName, venvDirectory) if dlg.exec_() == QDialog.Accepted: - venvInterpreter, venvVariant = dlg.getData() + venvInterpreter = dlg.getData() if venvInterpreter: self.__virtualEnvironments[venvName] = { "path": venvDirectory, "interpreter": venvInterpreter, - "variant": venvVariant, + "variant": 3, # always 3 "is_global": isGlobal, "is_conda": isConda, "is_remote": isRemote, @@ -253,8 +261,7 @@ self.__virtualenvManagerDialog.refresh() def setVirtualEnv(self, venvName, venvDirectory, venvInterpreter, - venvVariant, isGlobal, isConda, isRemote, - execPath): + isGlobal, isConda, isRemote, execPath): """ Public method to change a virtual environment. @@ -264,8 +271,6 @@ @type str @param venvInterpreter interpreter of the virtual environment @type str - @param venvVariant Python variant of the virtual environment - @type int @param isGlobal flag indicating a global environment @type bool @param isConda flag indicating an Anaconda virtual environment @@ -289,7 +294,7 @@ self.__virtualEnvironments[venvName] = { "path": venvDirectory, "interpreter": venvInterpreter, - "variant": venvVariant, + "variant": 3, # always 3 "is_global": isGlobal, "is_conda": isConda, "is_remote": isRemote, @@ -303,7 +308,7 @@ self.__virtualenvManagerDialog.refresh() def renameVirtualEnv(self, oldVenvName, venvName, venvDirectory, - venvInterpreter, venvVariant, isGlobal, isConda, + venvInterpreter, isGlobal, isConda, isRemote, execPath): """ Public method to substitute a virtual environment entry with a new @@ -317,8 +322,6 @@ @type str @param venvInterpreter interpreter of the virtual environment @type str - @param venvVariant Python variant of the virtual environment - @type int @param isGlobal flag indicating a global environment @type bool @param isConda flag indicating an Anaconda virtual environment @@ -341,8 +344,7 @@ del self.__virtualEnvironments[oldVenvName] self.addVirtualEnv(venvName, venvDirectory, venvInterpreter, - venvVariant, isGlobal, isConda, isRemote, - execPath) + isGlobal, isConda, isRemote, execPath) def deleteVirtualEnvs(self, venvNames): """ @@ -539,38 +541,6 @@ return environments - def getVirtualenvNamesForVariant(self, variant): - """ - Public method to get a list of virtual environments for a given - Python variant. - - @param variant Python variant (2 or 3) - @type int - @return list of defined virtual environments - @rtype list of str - """ - environments = [] - for venvName in self.__virtualEnvironments: - if self.__virtualEnvironments[venvName]["variant"] == variant: - environments.append(venvName) - - return environments - - def getVirtualenvVariant(self, venvName): - """ - Public method to get the variant of a virtual environment. - - @param venvName logical name for the virtual environment - @type str - @return Python variant of the environment - @rtype str - """ - if venvName in self.__virtualEnvironments: - return "Python{0}".format( - self.__virtualEnvironments[venvName]["variant"]) - else: - return "" - def isGlobalEnvironment(self, venvName): """ Public method to test, if a given environment is a global one.
--- a/eric6/VirtualEnv/VirtualenvManagerDialog.py Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/VirtualEnv/VirtualenvManagerDialog.py Sun Jun 21 18:26:12 2020 +0200 @@ -98,12 +98,12 @@ from .VirtualenvAddEditDialog import VirtualenvAddEditDialog dlg = VirtualenvAddEditDialog(self.__manager) if dlg.exec_() == QDialog.Accepted: - (venvName, venvDirectory, venvInterpreter, venvVariant, - isGlobal, isConda, isRemote, execPath) = dlg.getData() + (venvName, venvDirectory, venvInterpreter, isGlobal, isConda, + isRemote, execPath) = dlg.getData() self.__manager.addVirtualEnv( - venvName, venvDirectory, venvInterpreter, venvVariant, - isGlobal, isConda, isRemote, execPath) + venvName, venvDirectory, venvInterpreter, isGlobal, isConda, + isRemote, execPath) @pyqtSlot() def on_newButton_clicked(self): @@ -131,16 +131,16 @@ selectedItem.data(0, VirtualenvManagerDialog.ExecPathRole), ) if dlg.exec_() == QDialog.Accepted: - (venvName, venvDirectory, venvInterpreter, venvVariant, - isGlobal, isConda, isRemote, execPath) = dlg.getData() + (venvName, venvDirectory, venvInterpreter, isGlobal, isConda, + isRemote, execPath) = dlg.getData() if venvName != oldVenvName: self.__manager.renameVirtualEnv( oldVenvName, venvName, venvDirectory, venvInterpreter, - venvVariant, isGlobal, isConda, isRemote, execPath) + isGlobal, isConda, isRemote, execPath) else: self.__manager.setVirtualEnv( - venvName, venvDirectory, venvInterpreter, venvVariant, - isGlobal, isConda, isRemote, execPath) + venvName, venvDirectory, venvInterpreter, isGlobal, + isConda, isRemote, execPath) @pyqtSlot() def on_removeButton_clicked(self):
--- a/eric6/WebBrowser/QtHelp/HelpDocsInstaller.py Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/WebBrowser/QtHelp/HelpDocsInstaller.py Sun Jun 21 18:26:12 2020 +0200 @@ -70,7 +70,6 @@ engine = QHelpEngineCore(self.__collection) changes = False - qt4Docs = ["designer", "linguist", "qt"] qt5Docs = [ "activeqt", "qdoc", "qmake", "qt3d", "qt3drenderer", "qtandroidextras", "qtassistant", "qtbluetooth", "qtcanvas3d", @@ -91,7 +90,7 @@ "qtwebengine", "qtwebenginewidgets", "qtwebkit", "qtwebkitexamples", "qtwebsockets", "qtwebview", "qtwidgets", "qtwinextras", "qtx11extras", "qtxml", "qtxmlpatterns"] - for qtDocs, version in [(qt4Docs, 4), (qt5Docs, 5)]: + for qtDocs, version in [(qt5Docs, 5)]: for doc in qtDocs: changes |= self.__installQtDoc(doc, version, engine) self.__mutex.lock()
--- a/eric6/eric6.py Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/eric6.py Sun Jun 21 18:26:12 2020 +0200 @@ -11,8 +11,6 @@ of the IDE and starts the Qt event loop. """ -# TODO: remove support for Qt4 and pyside (1) - import sys import os
--- a/eric6/i18n/eric6_cs.ts Sat Jun 20 17:36:20 2020 +0200 +++ b/eric6/i18n/eric6_cs.ts Sun Jun 21 18:26:12 2020 +0200 @@ -1549,37 +1549,37 @@ <context> <name>BackgroundService</name> <message> - <location filename="../Utilities/BackgroundService.py" line="131"/> + <location filename="../Utilities/BackgroundService.py" line="129"/> <source>{0} not configured.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Utilities/BackgroundService.py" line="185"/> + <location filename="../Utilities/BackgroundService.py" line="183"/> <source>Restart background client?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Utilities/BackgroundService.py" line="211"/> + <location filename="../Utilities/BackgroundService.py" line="209"/> <source>An error in Erics background client stopped the service.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Utilities/BackgroundService.py" line="424"/> + <location filename="../Utilities/BackgroundService.py" line="420"/> <source>Eric's background client disconnected because of an unknown reason.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Utilities/BackgroundService.py" line="430"/> + <location filename="../Utilities/BackgroundService.py" line="426"/> <source>Background client disconnected.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Utilities/BackgroundService.py" line="185"/> + <location filename="../Utilities/BackgroundService.py" line="183"/> <source><p>The background client for <b>{0}</b> has stopped due to an exception. It's used by various plug-ins like the different checkers.</p><p>Select<ul><li><b>'Yes'</b> to restart the client, but abort the last job</li><li><b>'Retry'</b> to restart the client and the last job</li><li><b>'No'</b> to leave the client off.</li></ul></p><p>Note: The client can be restarted by opening and accepting the preferences dialog or reloading/changing the project.</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Utilities/BackgroundService.py" line="430"/> + <location filename="../Utilities/BackgroundService.py" line="426"/> <source>The background client for <b>{0}</b> disconnected because of an unknown reason.<br>Should it be restarted?</source> <translation type="unfinished"></translation> </message> @@ -2327,7 +2327,7 @@ <translation>Hledat v tomto adresáři</translation> </message> <message> - <location filename="../UI/Browser.py" line="572"/> + <location filename="../UI/Browser.py" line="570"/> <source>New toplevel directory</source> <translation>Nový toplevel adresář</translation> </message> @@ -2372,22 +2372,22 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../UI/Browser.py" line="503"/> + <location filename="../UI/Browser.py" line="501"/> <source>Show Mime-Type</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../UI/Browser.py" line="476"/> + <location filename="../UI/Browser.py" line="474"/> <source>The mime type of the file could not be determined.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../UI/Browser.py" line="494"/> + <location filename="../UI/Browser.py" line="492"/> <source>The file has the mime type <b>{0}</b>.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../UI/Browser.py" line="503"/> + <location filename="../UI/Browser.py" line="501"/> <source>The file has the mime type <b>{0}</b>.<br/> Shall it be added to the list of text mime types?</source> <translation type="unfinished"></translation> </message> @@ -3591,7 +3591,7 @@ <translation type="unfinished">Chyby: {0}</translation> </message> <message> - <location filename="../Plugins/PluginCodeStyleChecker.py" line="248"/> + <location filename="../Plugins/PluginCodeStyleChecker.py" line="224"/> <source>Fix: {0}</source> <translation type="unfinished"></translation> </message> @@ -4049,32 +4049,27 @@ <context> <name>CodeStyleCheckerPlugin</name> <message> - <location filename="../Plugins/PluginCodeStyleChecker.py" line="360"/> + <location filename="../Plugins/PluginCodeStyleChecker.py" line="336"/> <source>Check Code Style</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Plugins/PluginCodeStyleChecker.py" line="360"/> + <location filename="../Plugins/PluginCodeStyleChecker.py" line="336"/> <source>&Code Style...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Plugins/PluginCodeStyleChecker.py" line="266"/> + <location filename="../Plugins/PluginCodeStyleChecker.py" line="242"/> <source>Check code style.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Plugins/PluginCodeStyleChecker.py" line="364"/> + <location filename="../Plugins/PluginCodeStyleChecker.py" line="340"/> <source><b>Check Code Style...</b><p>This checks Python files for compliance to the code style conventions given in various PEPs.</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Plugins/PluginCodeStyleChecker.py" line="112"/> - <source>Python 2 batch check</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../Plugins/PluginCodeStyleChecker.py" line="128"/> + <location filename="../Plugins/PluginCodeStyleChecker.py" line="107"/> <source>Python 3 batch check</source> <translation type="unfinished"></translation> </message> @@ -5675,7 +5670,7 @@ <translation>Plugin Manažer</translation> </message> <message> - <location filename="../Preferences/ConfigurationDialog.py" line="386"/> + <location filename="../Preferences/ConfigurationDialog.py" line="383"/> <source>Printer</source> <translation>Tiskárna</translation> </message> @@ -5715,163 +5710,163 @@ <translation>Debugger</translation> </message> <message> - <location filename="../Preferences/ConfigurationDialog.py" line="233"/> + <location filename="../Preferences/ConfigurationDialog.py" line="230"/> <source>Editor</source> <translation>Editor</translation> </message> <message> + <location filename="../Preferences/ConfigurationDialog.py" line="233"/> + <source>APIs</source> + <translation>APIs</translation> + </message> + <message> <location filename="../Preferences/ConfigurationDialog.py" line="236"/> - <source>APIs</source> - <translation>APIs</translation> - </message> - <message> - <location filename="../Preferences/ConfigurationDialog.py" line="239"/> <source>Autocompletion</source> <translation>Autodoplňování</translation> </message> <message> - <location filename="../Preferences/ConfigurationDialog.py" line="247"/> + <location filename="../Preferences/ConfigurationDialog.py" line="244"/> <source>Calltips</source> <translation>Rychlé tipy</translation> </message> <message> - <location filename="../Preferences/ConfigurationDialog.py" line="256"/> + <location filename="../Preferences/ConfigurationDialog.py" line="253"/> <source>General</source> <translation>Hlavní</translation> </message> <message> + <location filename="../Preferences/ConfigurationDialog.py" line="273"/> + <source>Typing</source> + <translation>Psaní</translation> + </message> + <message> <location filename="../Preferences/ConfigurationDialog.py" line="276"/> - <source>Typing</source> - <translation>Psaní</translation> - </message> - <message> - <location filename="../Preferences/ConfigurationDialog.py" line="279"/> <source>Exporters</source> <translation>Exportery</translation> </message> <message> - <location filename="../Preferences/ConfigurationDialog.py" line="283"/> + <location filename="../Preferences/ConfigurationDialog.py" line="280"/> <source>Highlighters</source> <translation>Zvýrazňovače</translation> </message> <message> - <location filename="../Preferences/ConfigurationDialog.py" line="287"/> + <location filename="../Preferences/ConfigurationDialog.py" line="284"/> <source>Filetype Associations</source> <translation>Asociace typů souborů</translation> </message> <message> - <location filename="../Preferences/ConfigurationDialog.py" line="291"/> + <location filename="../Preferences/ConfigurationDialog.py" line="288"/> <source>Styles</source> <translation>Styly</translation> </message> <message> - <location filename="../Preferences/ConfigurationDialog.py" line="307"/> + <location filename="../Preferences/ConfigurationDialog.py" line="304"/> <source>Help</source> <translation>Nápověda</translation> </message> <message> - <location filename="../Preferences/ConfigurationDialog.py" line="393"/> + <location filename="../Preferences/ConfigurationDialog.py" line="390"/> <source>Help Documentation</source> <translation>Dokumenty nápovědy</translation> </message> <message> - <location filename="../Preferences/ConfigurationDialog.py" line="314"/> + <location filename="../Preferences/ConfigurationDialog.py" line="311"/> <source>Help Viewers</source> <translation>Prohlížeče nápovědy</translation> </message> <message> - <location filename="../Preferences/ConfigurationDialog.py" line="325"/> - <source>Project</source> - <translation>Projekt</translation> - </message> - <message> <location filename="../Preferences/ConfigurationDialog.py" line="322"/> + <source>Project</source> + <translation>Projekt</translation> + </message> + <message> + <location filename="../Preferences/ConfigurationDialog.py" line="319"/> <source>Project Viewer</source> <translation>Prohlížeč projektu</translation> </message> <message> - <location filename="../Preferences/ConfigurationDialog.py" line="328"/> + <location filename="../Preferences/ConfigurationDialog.py" line="325"/> <source>Multiproject</source> <translation>Multiprojekt</translation> </message> <message> + <location filename="../Preferences/ConfigurationDialog.py" line="377"/> + <source>Interface</source> + <translation>Interface</translation> + </message> + <message> + <location filename="../Preferences/ConfigurationDialog.py" line="336"/> + <source>Viewmanager</source> + <translation>Viewmanager</translation> + </message> + <message> + <location filename="../Preferences/ConfigurationDialog.py" line="660"/> + <source>Configuration Page Error</source> + <translation>Chyba na straně konfigurace</translation> + </message> + <message> + <location filename="../Preferences/ConfigurationDialog.py" line="256"/> + <source>Filehandling</source> + <translation>Manažer souborů</translation> + </message> + <message> + <location filename="../Preferences/ConfigurationDialog.py" line="260"/> + <source>Searching</source> + <translation>Vyhledávání</translation> + </message> + <message> + <location filename="../Preferences/ConfigurationDialog.py" line="395"/> + <source>Appearance</source> + <translation>Vzhled</translation> + </message> + <message> + <location filename="../Preferences/ConfigurationDialog.py" line="247"/> + <source>QScintilla</source> + <translation>QScintilla</translation> + </message> + <message> + <location filename="../Preferences/ConfigurationDialog.py" line="267"/> + <source>Style</source> + <translation>Styl</translation> + </message> + <message> + <location filename="../Preferences/ConfigurationDialog.py" line="295"/> + <source>Properties</source> + <translation>Nastavení</translation> + </message> + <message> + <location filename="../Preferences/ConfigurationDialog.py" line="578"/> + <source>Preferences</source> + <translation>Předvolby</translation> + </message> + <message> + <location filename="../Preferences/ConfigurationDialog.py" line="583"/> + <source>Please select an entry of the list +to display the configuration page.</source> + <translation>Pro zobrazení strany s konfigurací vyberte položku ze seznamu.</translation> + </message> + <message> <location filename="../Preferences/ConfigurationDialog.py" line="380"/> - <source>Interface</source> - <translation>Interface</translation> - </message> - <message> - <location filename="../Preferences/ConfigurationDialog.py" line="339"/> - <source>Viewmanager</source> - <translation>Viewmanager</translation> - </message> - <message> - <location filename="../Preferences/ConfigurationDialog.py" line="663"/> - <source>Configuration Page Error</source> - <translation>Chyba na straně konfigurace</translation> - </message> - <message> - <location filename="../Preferences/ConfigurationDialog.py" line="259"/> - <source>Filehandling</source> - <translation>Manažer souborů</translation> - </message> - <message> - <location filename="../Preferences/ConfigurationDialog.py" line="263"/> - <source>Searching</source> - <translation>Vyhledávání</translation> - </message> - <message> - <location filename="../Preferences/ConfigurationDialog.py" line="398"/> - <source>Appearance</source> - <translation>Vzhled</translation> - </message> - <message> - <location filename="../Preferences/ConfigurationDialog.py" line="250"/> - <source>QScintilla</source> - <translation>QScintilla</translation> - </message> - <message> - <location filename="../Preferences/ConfigurationDialog.py" line="270"/> - <source>Style</source> - <translation>Styl</translation> - </message> - <message> - <location filename="../Preferences/ConfigurationDialog.py" line="298"/> - <source>Properties</source> - <translation>Nastavení</translation> - </message> - <message> - <location filename="../Preferences/ConfigurationDialog.py" line="581"/> - <source>Preferences</source> - <translation>Předvolby</translation> - </message> - <message> - <location filename="../Preferences/ConfigurationDialog.py" line="586"/> - <source>Please select an entry of the list -to display the configuration page.</source> - <translation>Pro zobrazení strany s konfigurací vyberte položku ze seznamu.</translation> - </message> - <message> - <location filename="../Preferences/ConfigurationDialog.py" line="383"/> <source>Network</source> <translation>Síť</translation> </message> <message> - <location filename="../Preferences/ConfigurationDialog.py" line="413"/> + <location filename="../Preferences/ConfigurationDialog.py" line="410"/> <source>Spell checking</source> <translation>Kontrola pravopisu</translation> </message> <message> - <location filename="../Preferences/ConfigurationDialog.py" line="229"/> + <location filename="../Preferences/ConfigurationDialog.py" line="226"/> <source>Python3</source> <translation></translation> </message> <message> - <location filename="../Preferences/ConfigurationDialog.py" line="663"/> + <location filename="../Preferences/ConfigurationDialog.py" line="660"/> <source><p>The configuration page <b>{0}</b> could not be loaded.</p></source> <translation><p>Konfigurační stranu <b>{0}</b> nelze načíst.</p></translation> </message> <message> - <location filename="../Preferences/ConfigurationDialog.py" line="295"/> + <location filename="../Preferences/ConfigurationDialog.py" line="292"/> <source>Keywords</source> <translation>Klíčová slova</translation> </message> @@ -5881,17 +5876,17 @@ <translation>Spolupráce</translation> </message> <message> - <location filename="../Preferences/ConfigurationDialog.py" line="427"/> + <location filename="../Preferences/ConfigurationDialog.py" line="424"/> <source>Tray Starter</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Preferences/ConfigurationDialog.py" line="409"/> + <location filename="../Preferences/ConfigurationDialog.py" line="406"/> <source>VirusTotal Interface</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Preferences/ConfigurationDialog.py" line="389"/> + <location filename="../Preferences/ConfigurationDialog.py" line="386"/> <source>Security</source> <translation type="unfinished">Bezpečnost</translation> </message> @@ -5906,12 +5901,12 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../Preferences/ConfigurationDialog.py" line="273"/> + <location filename="../Preferences/ConfigurationDialog.py" line="270"/> <source>Code Checkers</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Preferences/ConfigurationDialog.py" line="401"/> + <location filename="../Preferences/ConfigurationDialog.py" line="398"/> <source>eric6 Web Browser</source> <translation type="unfinished">eric5 web prohlížeč {6 ?}</translation> </message> @@ -5926,27 +5921,27 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../Preferences/ConfigurationDialog.py" line="517"/> + <location filename="../Preferences/ConfigurationDialog.py" line="514"/> <source>Enter search text...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Preferences/ConfigurationDialog.py" line="302"/> + <location filename="../Preferences/ConfigurationDialog.py" line="299"/> <source>Mouse Click Handlers</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Preferences/ConfigurationDialog.py" line="405"/> + <location filename="../Preferences/ConfigurationDialog.py" line="402"/> <source>Flash Cookie Manager</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Preferences/ConfigurationDialog.py" line="440"/> + <location filename="../Preferences/ConfigurationDialog.py" line="437"/> <source>Hex Editor</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Preferences/ConfigurationDialog.py" line="343"/> + <location filename="../Preferences/ConfigurationDialog.py" line="340"/> <source>Web Browser</source> <translation type="unfinished"></translation> </message> @@ -5956,7 +5951,7 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../Preferences/ConfigurationDialog.py" line="253"/> + <location filename="../Preferences/ConfigurationDialog.py" line="250"/> <source>Documentation Viewer</source> <translation type="unfinished"></translation> </message> @@ -5966,11 +5961,6 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../Preferences/ConfigurationDialog.py" line="226"/> - <source>Python2</source> - <translation type="unfinished"></translation> - </message> - <message> <location filename="../Preferences/ConfigurationDialog.py" line="138"/> <source>Conda</source> <translation type="unfinished"></translation> @@ -6635,7 +6625,7 @@ <translation>&Filtr pro:</translation> </message> <message> - <location filename="../Project/CreateDialogCodeDialog.py" line="580"/> + <location filename="../Project/CreateDialogCodeDialog.py" line="561"/> <source>Code Generation</source> <translation>Generování kódu</translation> </message> @@ -6660,17 +6650,17 @@ <translation><p>Byla nalezena chyba načtená z <b>{0}</b>.</p><p>{1}</p></translation> </message> <message> - <location filename="../Project/CreateDialogCodeDialog.py" line="440"/> + <location filename="../Project/CreateDialogCodeDialog.py" line="429"/> <source><p>Could not open the code template file "{0}".</p><p>Reason: {1}</p></source> <translation><p>Template soubor <b>{0}</b> nelze otevřít.</p><p>Důvod: {1}</p></translation> </message> <message> - <location filename="../Project/CreateDialogCodeDialog.py" line="478"/> + <location filename="../Project/CreateDialogCodeDialog.py" line="467"/> <source><p>Could not open the source file "{0}".</p><p>Reason: {1}</p></source> <translation><p>Nelze ovevřít source soubor "{0}".</p><p>Důvod: {1}</p></translation> </message> <message> - <location filename="../Project/CreateDialogCodeDialog.py" line="580"/> + <location filename="../Project/CreateDialogCodeDialog.py" line="561"/> <source><p>Could not write the source file "{0}".</p><p>Reason: {1}</p></source> <translation><p>Nelze zapsat do source souboru "{0}".</p><p>Důvod: {1}</p></translation> </message> @@ -6679,6 +6669,16 @@ <source><p>The project specific Python interpreter <b>{0}</b> could not be started or did not finish within 30 seconds.</p></source> <translation type="unfinished"></translation> </message> + <message> + <location filename="../Project/CreateDialogCodeDialog.py" line="389"/> + <source><p>Code generation for project language "{0}" is not supported.</p></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../Project/CreateDialogCodeDialog.py" line="417"/> + <source><p>No code template file available for project type "{0}".</p></source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>Crypto</name> @@ -6706,24 +6706,24 @@ <context> <name>DebugServer</name> <message> - <location filename="../Debugger/DebugServer.py" line="184"/> + <location filename="../Debugger/DebugServer.py" line="183"/> <source>created</source> <comment>must be same as in EditWatchpointDialog</comment> <translation>vytvořeno</translation> </message> <message> - <location filename="../Debugger/DebugServer.py" line="186"/> + <location filename="../Debugger/DebugServer.py" line="185"/> <source>changed</source> <comment>must be same as in EditWatchpointDialog</comment> <translation>změněno</translation> </message> <message> - <location filename="../Debugger/DebugServer.py" line="783"/> + <location filename="../Debugger/DebugServer.py" line="774"/> <source>Connection from illegal host</source> <translation>Spojení z ilegálního hosta</translation> </message> <message> - <location filename="../Debugger/DebugServer.py" line="1578"/> + <location filename="../Debugger/DebugServer.py" line="1569"/> <source> Not connected </source> @@ -6732,39 +6732,39 @@ </translation> </message> <message> - <location filename="../Debugger/DebugServer.py" line="783"/> + <location filename="../Debugger/DebugServer.py" line="774"/> <source><p>A connection was attempted by the illegal host <b>{0}</b>. Accept this connection?</p></source> <translation><p>Pokus o spojení z ilegálního hosta <b>{0}</b>. Přijmout toto spojení?</p></translation> </message> <message> - <location filename="../Debugger/DebugServer.py" line="1791"/> + <location filename="../Debugger/DebugServer.py" line="1782"/> <source>Passive debug connection received </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugServer.py" line="1805"/> + <location filename="../Debugger/DebugServer.py" line="1796"/> <source>Passive debug connection closed </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugServer.py" line="330"/> + <location filename="../Debugger/DebugServer.py" line="321"/> <source>Register Debugger Interface</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugServer.py" line="330"/> + <location filename="../Debugger/DebugServer.py" line="321"/> <source><p>The debugger interface <b>{0}</b> has already been registered. Ignoring this request.</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugServer.py" line="1394"/> + <location filename="../Debugger/DebugServer.py" line="1385"/> <source>Start Debugger</source> <translation type="unfinished">Spustit debuger</translation> </message> <message> - <location filename="../Debugger/DebugServer.py" line="1394"/> + <location filename="../Debugger/DebugServer.py" line="1385"/> <source><p>The debugger type <b>{0}</b> is not supported or not configured.</p></source> <translation type="unfinished"></translation> </message> @@ -6772,7 +6772,7 @@ <context> <name>DebugUI</name> <message> - <location filename="../Debugger/DebugUI.py" line="1838"/> + <location filename="../Debugger/DebugUI.py" line="1836"/> <source>Run Script</source> <translation>Spustit skript</translation> </message> @@ -6792,7 +6792,7 @@ <translation><b>Spustit skript</b><p>Nastavení parametrů příkazové řádky a spuštění skriptu bez debugeru. Pokud jsou v souboru neuložené změny, měly by se nejdříve uložit.</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1853"/> + <location filename="../Debugger/DebugUI.py" line="1851"/> <source>Run Project</source> <translation>Spustit projekt</translation> </message> @@ -6892,7 +6892,7 @@ <translation><b>Profilovat projekt</b><p>Nastavení parametrů příkazové řádky a spuštění projektu s profilováním kódu. Pokud jsou v projektu neuložené změny, měly by se nejdříve uložit.</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1977"/> + <location filename="../Debugger/DebugUI.py" line="1975"/> <source>Debug Script</source> <translation>Debugovat skript</translation> </message> @@ -6912,7 +6912,7 @@ <translation><b>Debugovat skript</b><p>Nastavení parametrů příkazové řádky a aktuální řádky jako první python příkaz v aktuálním editačním okně. Pokud jsou ve skriptu neuložené změny, měly by se nejdříve uložit.</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1993"/> + <location filename="../Debugger/DebugUI.py" line="1991"/> <source>Debug Project</source> <translation>Debugovat projekt</translation> </message> @@ -7189,52 +7189,52 @@ <translation>Debug</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1102"/> + <location filename="../Debugger/DebugUI.py" line="1100"/> <source>The program being debugged contains an unspecified syntax error.</source> <translation>Program, který je právě debugován, obsahuje nespecifikovanou syntaktickou chybu.</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1139"/> + <location filename="../Debugger/DebugUI.py" line="1137"/> <source>An unhandled exception occured. See the shell window for details.</source> <translation>Objevila se neošetřená výjimka. Detaily naleznete v shell okně.</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1268"/> + <location filename="../Debugger/DebugUI.py" line="1266"/> <source>The program being debugged has terminated unexpectedly.</source> <translation>Debugovaný program byl neočekávaně ukončen.</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1339"/> + <location filename="../Debugger/DebugUI.py" line="1337"/> <source>Breakpoint Condition Error</source> <translation>Chyba v podmíněném breakpointu</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1581"/> + <location filename="../Debugger/DebugUI.py" line="1579"/> <source>Coverage of Project</source> <translation>Pokrytí projektu</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1568"/> + <location filename="../Debugger/DebugUI.py" line="1566"/> <source>Coverage of Script</source> <translation>Pokrytí skriptu</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1853"/> + <location filename="../Debugger/DebugUI.py" line="1851"/> <source>There is no main script defined for the current project. Aborting</source> <translation>V aktuálním projektu není definován hlavní skript. Zrušeno</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1716"/> + <location filename="../Debugger/DebugUI.py" line="1714"/> <source>Profile of Project</source> <translation>Profilovat projekt</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1703"/> + <location filename="../Debugger/DebugUI.py" line="1701"/> <source>Profile of Script</source> <translation>Profilovat skript</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1993"/> + <location filename="../Debugger/DebugUI.py" line="1991"/> <source>There is no main script defined for the current project. No debugging possible.</source> <translation>V aktuálním projektu není definován hlavní skript. Debugování není možné.</translation> </message> @@ -7244,12 +7244,12 @@ <translation>Zastavit běžící skript.</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1375"/> + <location filename="../Debugger/DebugUI.py" line="1373"/> <source>Watch Expression Error</source> <translation>Chyba sledovacího bodu</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1415"/> + <location filename="../Debugger/DebugUI.py" line="1413"/> <source>Watch expression already exists</source> <translation>Sledovací bod již existuje</translation> </message> @@ -7286,42 +7286,42 @@ <translation></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1121"/> + <location filename="../Debugger/DebugUI.py" line="1119"/> <source><p>The file <b>{0}</b> contains the syntax error <b>{1}</b> at line <b>{2}</b>, character <b>{3}</b>.</p></source> <translation><p>Soubor <b>{0}</b> na řádce <b>{1}</b>, písmeno <b>{2}</b>, obsahuje syntaktickou chybu <b>{3}</b>.</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1189"/> + <location filename="../Debugger/DebugUI.py" line="1187"/> <source><p>The debugged program raised the exception <b>{0}</b><br>"<b>{1}</b>"<br>File: <b>{2}</b>, Line: <b>{3}</b></p><p>Break here?</p></source> <translation><p>Debugovaný program vyvolal výjimku <b>{0}</b><br>"<b>{1}</b>"<br>Soubor: <b>{2}</b>, řádek: <b>{3}</b></p><p>Zastavit zde?</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1204"/> + <location filename="../Debugger/DebugUI.py" line="1202"/> <source><p>The debugged program raised the exception <b>{0}</b><br>"<b>{1}</b>"</p></source> <translation><p>Debugovaný program vyvolal výjimku <b>{0}</b><br>"<b>{1}</b>"</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1339"/> + <location filename="../Debugger/DebugUI.py" line="1337"/> <source><p>The condition of the breakpoint <b>{0}, {1}</b> contains a syntax error.</p></source> <translation><p>Podmínka breakpointu <b>{0}, {1}</b> obsahuje syntaktickou chybu.</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1375"/> + <location filename="../Debugger/DebugUI.py" line="1373"/> <source><p>The watch expression <b>{0}</b> contains a syntax error.</p></source> <translation><p>Sledovací bod <b>{0}</b> obsahuje syntaktickou chybu.</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1405"/> + <location filename="../Debugger/DebugUI.py" line="1403"/> <source><p>A watch expression '<b>{0}</b>' already exists.</p></source> <translation><p>Sledovací bod '<b>{0}</b>' již existuje.</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1410"/> + <location filename="../Debugger/DebugUI.py" line="1408"/> <source><p>A watch expression '<b>{0}</b>' for the variable <b>{1}</b> already exists.</p></source> <translation><p>Sledovací bod '<b>{0}</b>' pro proměnnou <b>{1}</b> již existuje.</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1071"/> + <location filename="../Debugger/DebugUI.py" line="1069"/> <source>Program terminated</source> <translation type="unfinished"></translation> </message> @@ -7341,51 +7341,51 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1254"/> + <location filename="../Debugger/DebugUI.py" line="1252"/> <source><p>The program generate the signal "{0}".<br/>File: <b>{1}</b>, Line: <b>{2}</b></p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1038"/> + <location filename="../Debugger/DebugUI.py" line="1036"/> <source><p>Message: {0}</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1043"/> + <location filename="../Debugger/DebugUI.py" line="1041"/> <source><p>The program has terminated with an exit status of {0}.</p>{1}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1048"/> + <location filename="../Debugger/DebugUI.py" line="1046"/> <source><p><b>{0}</b> has terminated with an exit status of {1}.</p>{2}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1056"/> + <location filename="../Debugger/DebugUI.py" line="1054"/> <source>Message: {0}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1062"/> + <location filename="../Debugger/DebugUI.py" line="1060"/> <source>The program has terminated with an exit status of {0}. {1}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1066"/> + <location filename="../Debugger/DebugUI.py" line="1064"/> <source>"{0}" has terminated with an exit status of {1}. {2}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1076"/> + <location filename="../Debugger/DebugUI.py" line="1074"/> <source>The program has terminated with an exit status of {0}. {1} </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1080"/> + <location filename="../Debugger/DebugUI.py" line="1078"/> <source>"{0}" has terminated with an exit status of {1}. {2} </source> @@ -7412,7 +7412,7 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1314"/> + <location filename="../Debugger/DebugUI.py" line="1312"/> <source>No locals available.</source> <translation type="unfinished"></translation> </message> @@ -7911,48 +7911,48 @@ <context> <name>DebuggerInterfacePython</name> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="479"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="459"/> <source>Start Debugger</source> <translation type="unfinished">Spustit debuger</translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1032"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1012"/> <source>Parent Process</source> <translation type="unfinished">Rodičovský proces</translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1033"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1013"/> <source>Child process</source> <translation type="unfinished">Dětský proces</translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1034"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1014"/> <source>Client forking</source> <translation type="unfinished">Větvení klienta</translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1034"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1014"/> <source>Select the fork branch to follow.</source> <translation type="unfinished">Pokračovat ve fork větvi.</translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="479"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="459"/> <source><p>The debugger backend could not be started.</p></source> <translation type="unfinished"><p>Debugovací backend nelze spustit.</p></translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1080"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1060"/> <source>Debug Protocol Error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1080"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1060"/> <source><p>The response received from the debugger backend could not be decoded. Please report this issue with the received data to the eric bugs email address.</p><p>Error: {0}</p><p>Data:<br/>{1}</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="374"/> - <source><p>No suitable {0} environment configured.</p></source> + <location filename="../Debugger/DebuggerInterfacePython.py" line="354"/> + <source><p>No suitable Python3 environment configured.</p></source> <translation type="unfinished"></translation> </message> </context> @@ -8097,7 +8097,7 @@ <translation>Nenastavovat kódování debug klienta</translation> </message> <message> - <location filename="../Project/DebuggerPropertiesDialog.py" line="133"/> + <location filename="../Project/DebuggerPropertiesDialog.py" line="130"/> <source>All Files (*)</source> <translation>Všechny soubory (*)</translation> </message> @@ -8149,102 +8149,77 @@ <message> <location filename="../Preferences/ConfigurationPages/DebuggerPython2Page.ui" line="17"/> <source><b>Configure Python2 Debugger</b></source> - <translation type="unfinished"><b>Konfigurace Python debugeru</b></translation> + <translation type="obsolete"><b>Konfigurace Python debugeru</b></translation> </message> <message> <location filename="../Preferences/ConfigurationPages/DebuggerPython2Page.ui" line="37"/> <source>Python2 Virtual Environment</source> - <translation type="unfinished">Python interpret pro Debug klienta</translation> - </message> - <message> - <location filename="../Preferences/ConfigurationPages/DebuggerPython2Page.ui" line="43"/> - <source>Select the virtual environment to be used</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../Preferences/ConfigurationPages/DebuggerPython2Page.ui" line="50"/> - <source>Press to open the virtual environment manager dialog</source> - <translation type="unfinished"></translation> + <translation type="obsolete">Python interpret pro Debug klienta</translation> </message> <message> <location filename="../Preferences/ConfigurationPages/DebuggerPython2Page.ui" line="63"/> <source>Debug Client Type</source> - <translation type="unfinished">Typ Debug klienta</translation> - </message> - <message> - <location filename="../Preferences/ConfigurationPages/DebuggerPython2Page.ui" line="75"/> - <source>Enter the path of the Debug Client to be used. Leave empty to use the default.</source> - <translation type="unfinished"></translation> + <translation type="obsolete">Typ Debug klienta</translation> </message> <message> <location filename="../Preferences/ConfigurationPages/DebuggerPython2Page.ui" line="82"/> <source>Select the standard debug client</source> - <translation type="unfinished">Výběr multi threadového debug klienta</translation> + <translation type="obsolete">Výběr multi threadového debug klienta</translation> </message> <message> <location filename="../Preferences/ConfigurationPages/DebuggerPython2Page.ui" line="85"/> <source>Standard</source> - <translation type="unfinished">Standard</translation> + <translation type="obsolete">Standard</translation> </message> <message> <location filename="../Preferences/ConfigurationPages/DebuggerPython2Page.ui" line="92"/> <source>Select the custom selected debug client</source> - <translation type="unfinished">Zapnout vybraného obvyklého debug klienta</translation> + <translation type="obsolete">Zapnout vybraného obvyklého debug klienta</translation> </message> <message> <location filename="../Preferences/ConfigurationPages/DebuggerPython2Page.ui" line="95"/> <source>Custom</source> - <translation type="unfinished">Obvyklý</translation> + <translation type="obsolete">Obvyklý</translation> </message> <message> <location filename="../Preferences/ConfigurationPages/DebuggerPython2Page.ui" line="105"/> <source>Source association</source> - <translation type="unfinished">Asociace zdroje</translation> - </message> - <message> - <location filename="../Preferences/ConfigurationPages/DebuggerPython2Page.ui" line="111"/> - <source>Please configure the associated file extensions on the 'Python' page.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../Preferences/ConfigurationPages/DebuggerPython2Page.ui" line="143"/> - <source>Press to update the display of the source associations</source> - <translation type="unfinished"></translation> + <translation type="obsolete">Asociace zdroje</translation> </message> <message> <location filename="../Preferences/ConfigurationPages/DebuggerPython2Page.ui" line="146"/> <source>Refresh</source> - <translation type="unfinished">Obnovit</translation> + <translation type="obsolete">Obnovit</translation> </message> <message> <location filename="../Preferences/ConfigurationPages/DebuggerPython2Page.ui" line="171"/> <source>Select, to redirect stdin, stdout and stderr of the program being debugged to the eric6 IDE</source> - <translation type="unfinished">Vyberte pro přesměrování stdin, stdout, a stderr programu, který je debugován v eric5 IDE {6 ?}</translation> + <translation type="obsolete">Vyberte pro přesměrování stdin, stdout, a stderr programu, který je debugován v eric5 IDE {6 ?}</translation> </message> <message> <location filename="../Preferences/ConfigurationPages/DebuggerPython2Page.ui" line="174"/> <source>Redirect stdin/stdout/stderr</source> - <translation type="unfinished">Přesměrování stdin/stdout/stderr</translation> + <translation type="obsolete">Přesměrování stdin/stdout/stderr</translation> </message> <message> <location filename="../Preferences/ConfigurationPages/DebuggerPython2Page.ui" line="181"/> <source>Select to not set the debug client encoding</source> - <translation type="unfinished">Nenastavovat kódování debug klienta</translation> + <translation type="obsolete">Nenastavovat kódování debug klienta</translation> </message> <message> <location filename="../Preferences/ConfigurationPages/DebuggerPython2Page.ui" line="184"/> <source>Don't set the encoding of the debug client</source> - <translation type="unfinished">Nenastavovat kódování debug klienta</translation> + <translation type="obsolete">Nenastavovat kódování debug klienta</translation> </message> <message> <location filename="../Preferences/ConfigurationPages/DebuggerPython2Page.py" line="44"/> <source>Press to select the Debug Client via a file selection dialog</source> - <translation type="unfinished">Stisknout pro výběr klienta debugeru přes dialog výběru souborů</translation> + <translation type="obsolete">Stisknout pro výběr klienta debugeru přes dialog výběru souborů</translation> </message> <message> <location filename="../Preferences/ConfigurationPages/DebuggerPython2Page.py" line="46"/> <source>Python Files (*.py *.py2)</source> - <translation type="unfinished">Python soubory (*.py *.py3) {2)?}</translation> + <translation type="obsolete">Python soubory (*.py *.py3) {2)?}</translation> </message> </context> <context> @@ -11218,562 +11193,562 @@ <context> <name>Editor</name> <message> - <location filename="../QScintilla/Editor.py" line="3107"/> + <location filename="../QScintilla/Editor.py" line="3095"/> <source>Open File</source> <translation>Otevřít soubor</translation> </message> <message> + <location filename="../QScintilla/Editor.py" line="769"/> + <source>Undo</source> + <translation>Vrátit</translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="772"/> + <source>Redo</source> + <translation>Znovu použít</translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="775"/> + <source>Revert to last saved state</source> + <translation>Vrátit k poslednímu uloženému stavu</translation> + </message> + <message> <location filename="../QScintilla/Editor.py" line="779"/> - <source>Undo</source> - <translation>Vrátit</translation> + <source>Cut</source> + <translation>Vyjmout</translation> </message> <message> <location filename="../QScintilla/Editor.py" line="782"/> - <source>Redo</source> - <translation>Znovu použít</translation> + <source>Copy</source> + <translation>Kopírovat</translation> </message> <message> <location filename="../QScintilla/Editor.py" line="785"/> - <source>Revert to last saved state</source> - <translation>Vrátit k poslednímu uloženému stavu</translation> - </message> - <message> - <location filename="../QScintilla/Editor.py" line="789"/> - <source>Cut</source> - <translation>Vyjmout</translation> - </message> - <message> - <location filename="../QScintilla/Editor.py" line="792"/> - <source>Copy</source> - <translation>Kopírovat</translation> - </message> - <message> - <location filename="../QScintilla/Editor.py" line="795"/> <source>Paste</source> <translation>Vložit</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="803"/> + <location filename="../QScintilla/Editor.py" line="793"/> <source>Indent</source> <translation>Odsadit</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="806"/> + <location filename="../QScintilla/Editor.py" line="796"/> <source>Unindent</source> <translation>Zrušit odsazení</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="809"/> + <location filename="../QScintilla/Editor.py" line="799"/> <source>Comment</source> <translation>Vytvořit komentář</translation> </message> <message> + <location filename="../QScintilla/Editor.py" line="802"/> + <source>Uncomment</source> + <translation>Zrušit komentář</translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="805"/> + <source>Stream Comment</source> + <translation>Proudový komentář</translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="808"/> + <source>Box Comment</source> + <translation>Obdélníkový komentář</translation> + </message> + <message> <location filename="../QScintilla/Editor.py" line="812"/> - <source>Uncomment</source> - <translation>Zrušit komentář</translation> + <source>Select to brace</source> + <translation>Vybrat až po závorku</translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="814"/> + <source>Select all</source> + <translation>Vybrat vše</translation> </message> <message> <location filename="../QScintilla/Editor.py" line="815"/> - <source>Stream Comment</source> - <translation>Proudový komentář</translation> - </message> - <message> - <location filename="../QScintilla/Editor.py" line="818"/> - <source>Box Comment</source> - <translation>Obdélníkový komentář</translation> - </message> - <message> - <location filename="../QScintilla/Editor.py" line="822"/> - <source>Select to brace</source> - <translation>Vybrat až po závorku</translation> - </message> - <message> - <location filename="../QScintilla/Editor.py" line="824"/> - <source>Select all</source> - <translation>Vybrat vše</translation> - </message> - <message> - <location filename="../QScintilla/Editor.py" line="825"/> <source>Deselect all</source> <translation>Zrušit celý výběr</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="843"/> + <location filename="../QScintilla/Editor.py" line="833"/> <source>Shorten empty lines</source> <translation>Zkrátit prázdné řádky</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="850"/> + <location filename="../QScintilla/Editor.py" line="840"/> <source>Use Monospaced Font</source> <translation>Použít neporoporcionální font</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="855"/> + <location filename="../QScintilla/Editor.py" line="845"/> <source>Autosave enabled</source> <translation>Zapnout autosave</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="898"/> + <location filename="../QScintilla/Editor.py" line="888"/> <source>Close</source> <translation>Zavřít</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="904"/> + <location filename="../QScintilla/Editor.py" line="894"/> <source>Save</source> <translation>Uložit</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="907"/> + <location filename="../QScintilla/Editor.py" line="897"/> <source>Save As...</source> <translation>Uložit jako...</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="923"/> + <location filename="../QScintilla/Editor.py" line="913"/> <source>Print</source> <translation>Tisk</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="952"/> + <location filename="../QScintilla/Editor.py" line="942"/> <source>Complete from Document</source> <translation type="unfinished">z dokumentu</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="954"/> + <location filename="../QScintilla/Editor.py" line="944"/> <source>Complete from APIs</source> <translation type="unfinished">z API</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="956"/> + <location filename="../QScintilla/Editor.py" line="946"/> <source>Complete from Document and APIs</source> <translation type="unfinished">z dokumentu a API</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="970"/> + <location filename="../QScintilla/Editor.py" line="960"/> <source>Check</source> <translation>Zkontrolovat</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="990"/> + <location filename="../QScintilla/Editor.py" line="980"/> <source>Show</source> <translation>Zobrazit</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="992"/> + <location filename="../QScintilla/Editor.py" line="982"/> <source>Code metrics...</source> <translation>Metrika kódu...</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="993"/> + <location filename="../QScintilla/Editor.py" line="983"/> <source>Code coverage...</source> <translation>Pokrytí kódu...</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="995"/> + <location filename="../QScintilla/Editor.py" line="985"/> <source>Show code coverage annotations</source> <translation>Zobrazit poznámky pokrytí kódu</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="998"/> + <location filename="../QScintilla/Editor.py" line="988"/> <source>Hide code coverage annotations</source> <translation>Skrýt poznámky pokrytí kódu</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1001"/> + <location filename="../QScintilla/Editor.py" line="991"/> <source>Profile data...</source> <translation>Profilovat data...</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1014"/> + <location filename="../QScintilla/Editor.py" line="1004"/> <source>Diagrams</source> <translation>Diagramy</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1016"/> + <location filename="../QScintilla/Editor.py" line="1006"/> <source>Class Diagram...</source> <translation>Diagram třídy...</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1018"/> + <location filename="../QScintilla/Editor.py" line="1008"/> <source>Package Diagram...</source> <translation>Diagram balíčku...</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1020"/> + <location filename="../QScintilla/Editor.py" line="1010"/> <source>Imports Diagram...</source> <translation>Diagram importů...</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1022"/> + <location filename="../QScintilla/Editor.py" line="1012"/> <source>Application Diagram...</source> <translation>Diagram aplikace...</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1040"/> + <location filename="../QScintilla/Editor.py" line="1030"/> <source>Languages</source> <translation>Jazyky</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1173"/> + <location filename="../QScintilla/Editor.py" line="1163"/> <source>No Language</source> <translation>Žádný jazyk</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1220"/> + <location filename="../QScintilla/Editor.py" line="1210"/> <source>Toggle bookmark</source> <translation>Přepnout záložku</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1222"/> + <location filename="../QScintilla/Editor.py" line="1212"/> <source>Next bookmark</source> <translation>Následující záložka</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1224"/> + <location filename="../QScintilla/Editor.py" line="1214"/> <source>Previous bookmark</source> <translation>Předchozí záložka</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1226"/> + <location filename="../QScintilla/Editor.py" line="1216"/> <source>Clear all bookmarks</source> <translation>Zrušit všechny záložky</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1300"/> + <location filename="../QScintilla/Editor.py" line="1290"/> <source>Goto syntax error</source> <translation>Jít na chybu syntaxe</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1304"/> + <location filename="../QScintilla/Editor.py" line="1294"/> <source>Show syntax error message</source> <translation>Zobrazit hlášení syntaktické chyby</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1309"/> + <location filename="../QScintilla/Editor.py" line="1299"/> <source>Clear syntax error</source> <translation>Zrušit chybu syntaxe</translation> </message> <message> + <location filename="../QScintilla/Editor.py" line="1225"/> + <source>Toggle breakpoint</source> + <translation>Přepnout breakpoint</translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="1227"/> + <source>Toggle temporary breakpoint</source> + <translation>Přepnout dočasný breakpoint</translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="1230"/> + <source>Edit breakpoint...</source> + <translation>Editovat breakpoint...</translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="5603"/> + <source>Enable breakpoint</source> + <translation>Aktivovat breakpoint</translation> + </message> + <message> <location filename="../QScintilla/Editor.py" line="1235"/> - <source>Toggle breakpoint</source> - <translation>Přepnout breakpoint</translation> + <source>Next breakpoint</source> + <translation>Následující breakpoint</translation> </message> <message> <location filename="../QScintilla/Editor.py" line="1237"/> - <source>Toggle temporary breakpoint</source> - <translation>Přepnout dočasný breakpoint</translation> - </message> - <message> - <location filename="../QScintilla/Editor.py" line="1240"/> - <source>Edit breakpoint...</source> - <translation>Editovat breakpoint...</translation> - </message> - <message> - <location filename="../QScintilla/Editor.py" line="5616"/> - <source>Enable breakpoint</source> - <translation>Aktivovat breakpoint</translation> - </message> - <message> - <location filename="../QScintilla/Editor.py" line="1245"/> - <source>Next breakpoint</source> - <translation>Následující breakpoint</translation> - </message> - <message> - <location filename="../QScintilla/Editor.py" line="1247"/> <source>Previous breakpoint</source> <translation>Předchozí breakpoint</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1252"/> + <location filename="../QScintilla/Editor.py" line="1242"/> <source>Clear all breakpoints</source> <translation>Zrušit všechny breakpointy</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1331"/> + <location filename="../QScintilla/Editor.py" line="1321"/> <source>Next uncovered line</source> <translation>Následující odkrytá řádka</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1335"/> + <location filename="../QScintilla/Editor.py" line="1325"/> <source>Previous uncovered line</source> <translation>Předchozí odkrytá řádka</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1340"/> + <location filename="../QScintilla/Editor.py" line="1330"/> <source>Next task</source> <translation>Následující úloha</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1344"/> + <location filename="../QScintilla/Editor.py" line="1334"/> <source>Previous task</source> <translation>Předchozí úloha</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1956"/> + <location filename="../QScintilla/Editor.py" line="1942"/> <source>Modification of Read Only file</source> <translation>Modifikace souboru otevřeného jen pro čtení</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1956"/> + <location filename="../QScintilla/Editor.py" line="1942"/> <source>You are attempting to change a read only file. Please save to a different file first.</source> <translation>Pokoušíte se změnit soubor, který je otevřen jen pro čtení. Prosím, uložte jej nejdříve do jiného souboru.</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="2664"/> + <location filename="../QScintilla/Editor.py" line="2652"/> <source>Printing...</source> <translation>Tisk...</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="2681"/> + <location filename="../QScintilla/Editor.py" line="2669"/> <source>Printing completed</source> <translation>Tisk je hotov</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="2683"/> + <location filename="../QScintilla/Editor.py" line="2671"/> <source>Error while printing</source> <translation>Chyba během tisku</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="2686"/> + <location filename="../QScintilla/Editor.py" line="2674"/> <source>Printing aborted</source> <translation>Tisk byl zrušen</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="3296"/> + <location filename="../QScintilla/Editor.py" line="3284"/> <source>Save File</source> <translation>Uložit soubor</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="3047"/> + <location filename="../QScintilla/Editor.py" line="3035"/> <source>File Modified</source> <translation>Soubor je modifikován</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="4777"/> + <location filename="../QScintilla/Editor.py" line="4765"/> <source>Autocompletion</source> <translation>Autodoplňování</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="4777"/> + <location filename="../QScintilla/Editor.py" line="4765"/> <source>Autocompletion is not available because there is no autocompletion source set.</source> <translation>Autodoplňování není dostupné protože zdrojová část autodoplňování nebyla nalezena.</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="5619"/> + <location filename="../QScintilla/Editor.py" line="5606"/> <source>Disable breakpoint</source> <translation>Deaktivovat breakpoint</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="5994"/> + <location filename="../QScintilla/Editor.py" line="5981"/> <source>Code Coverage</source> <translation>Pokrytí kódu</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="5994"/> + <location filename="../QScintilla/Editor.py" line="5981"/> <source>Please select a coverage file</source> <translation>Prosím, vyberte soubor s pokrytím kódu</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="6057"/> + <location filename="../QScintilla/Editor.py" line="6044"/> <source>Show Code Coverage Annotations</source> <translation>Zobrazit poznámky pokrytí kódu</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="6050"/> + <location filename="../QScintilla/Editor.py" line="6037"/> <source>All lines have been covered.</source> <translation>Všechny řádky byly pokryty.</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="6057"/> + <location filename="../QScintilla/Editor.py" line="6044"/> <source>There is no coverage file available.</source> <translation>Soubor s pokrytím není dostupný.</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="6174"/> + <location filename="../QScintilla/Editor.py" line="6161"/> <source>Profile Data</source> <translation>Profilovat data</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="6174"/> + <location filename="../QScintilla/Editor.py" line="6161"/> <source>Please select a profile file</source> <translation>Prosím, vyberte soubor s profilem</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="6336"/> + <location filename="../QScintilla/Editor.py" line="6323"/> <source>Syntax Error</source> <translation>Chyba syntaxe</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="6336"/> + <location filename="../QScintilla/Editor.py" line="6323"/> <source>No syntax error message available.</source> <translation>Hlášení syntaktické chyby není dostupné.</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="6725"/> + <location filename="../QScintilla/Editor.py" line="6712"/> <source>Macro Name</source> <translation>Název makra</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="6725"/> + <location filename="../QScintilla/Editor.py" line="6712"/> <source>Select a macro name:</source> <translation>Vyberte název makra:</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="6753"/> + <location filename="../QScintilla/Editor.py" line="6740"/> <source>Load macro file</source> <translation>Načíst soubor makra</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="6796"/> + <location filename="../QScintilla/Editor.py" line="6783"/> <source>Macro files (*.macro)</source> <translation>Macro soubory (*.macro)</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="6776"/> + <location filename="../QScintilla/Editor.py" line="6763"/> <source>Error loading macro</source> <translation>Chyba při načítání makra</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="6796"/> + <location filename="../QScintilla/Editor.py" line="6783"/> <source>Save macro file</source> <translation>Uložit soubor s makrem</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="6813"/> + <location filename="../QScintilla/Editor.py" line="6800"/> <source>Save macro</source> <translation>Uložit makro</translation> </message> <message> + <location filename="../QScintilla/Editor.py" line="6816"/> + <source>Error saving macro</source> + <translation>Chyba při ukládání makra</translation> + </message> + <message> <location filename="../QScintilla/Editor.py" line="6829"/> - <source>Error saving macro</source> - <translation>Chyba při ukládání makra</translation> - </message> - <message> - <location filename="../QScintilla/Editor.py" line="6842"/> <source>Start Macro Recording</source> <translation>Spustit záznam makra</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="6842"/> + <location filename="../QScintilla/Editor.py" line="6829"/> <source>Macro recording is already active. Start new?</source> <translation>Nahrávání makra již probíhá. Spustit nové?</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="6868"/> + <location filename="../QScintilla/Editor.py" line="6855"/> <source>Macro Recording</source> <translation>Záznam makra</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="6868"/> + <location filename="../QScintilla/Editor.py" line="6855"/> <source>Enter name of the macro:</source> <translation>Vložte název makra:</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="7008"/> + <location filename="../QScintilla/Editor.py" line="6995"/> <source>File changed</source> <translation>Soubor změněn</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="7319"/> + <location filename="../QScintilla/Editor.py" line="7306"/> <source>Drop Error</source> <translation>Zahodit chybu</translation> </message> <message> + <location filename="../QScintilla/Editor.py" line="7327"/> + <source>Resources</source> + <translation>Zdroje</translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="7329"/> + <source>Add file...</source> + <translation>Přidat soubor...</translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="7331"/> + <source>Add files...</source> + <translation>Přidat soubory...</translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="7333"/> + <source>Add aliased file...</source> + <translation>Přidat zástupce souboru...</translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="7336"/> + <source>Add localized resource...</source> + <translation>Přidat lokalizované resource...</translation> + </message> + <message> <location filename="../QScintilla/Editor.py" line="7340"/> - <source>Resources</source> - <translation>Zdroje</translation> - </message> - <message> - <location filename="../QScintilla/Editor.py" line="7342"/> - <source>Add file...</source> - <translation>Přidat soubor...</translation> - </message> - <message> - <location filename="../QScintilla/Editor.py" line="7344"/> - <source>Add files...</source> - <translation>Přidat soubory...</translation> - </message> - <message> - <location filename="../QScintilla/Editor.py" line="7346"/> - <source>Add aliased file...</source> - <translation>Přidat zástupce souboru...</translation> - </message> - <message> - <location filename="../QScintilla/Editor.py" line="7349"/> - <source>Add localized resource...</source> - <translation>Přidat lokalizované resource...</translation> - </message> - <message> - <location filename="../QScintilla/Editor.py" line="7353"/> <source>Add resource frame</source> <translation>Přidat resource frame</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="7372"/> + <location filename="../QScintilla/Editor.py" line="7359"/> <source>Add file resource</source> <translation>Přidat soubor resource</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="7388"/> + <location filename="../QScintilla/Editor.py" line="7375"/> <source>Add file resources</source> <translation>Přidat soubory resource</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="7415"/> + <location filename="../QScintilla/Editor.py" line="7402"/> <source>Add aliased file resource</source> <translation>Přidat zástupce souboru resource</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="7481"/> + <location filename="../QScintilla/Editor.py" line="7468"/> <source>Package Diagram</source> <translation>Diagram balíčku</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="7481"/> + <location filename="../QScintilla/Editor.py" line="7468"/> <source>Include class attributes?</source> <translation>Včetně atributů třídy?</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="7517"/> + <location filename="../QScintilla/Editor.py" line="7504"/> <source>Application Diagram</source> <translation>Diagram aplikace</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="7517"/> + <location filename="../QScintilla/Editor.py" line="7504"/> <source>Include module names?</source> <translation>Včetně jmen modulů?</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1198"/> + <location filename="../QScintilla/Editor.py" line="1188"/> <source>Export as</source> <translation>Exportovat jako</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1394"/> + <location filename="../QScintilla/Editor.py" line="1384"/> <source>Export source</source> <translation>Export zdroj</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1394"/> + <location filename="../QScintilla/Editor.py" line="1384"/> <source>No export format given. Aborting...</source> <translation>Nebyl zadán forám exportu. Zrušeno....</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="7503"/> + <location filename="../QScintilla/Editor.py" line="7490"/> <source>Imports Diagram</source> <translation>Importovat diagram</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="7503"/> + <location filename="../QScintilla/Editor.py" line="7490"/> <source>Include imports from external modules?</source> <translation>Zahrnout importy z externích modulů?</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="874"/> + <location filename="../QScintilla/Editor.py" line="864"/> <source>Calltip</source> <translation>Rychlé tipy</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="920"/> + <location filename="../QScintilla/Editor.py" line="910"/> <source>Print Preview</source> <translation>Náhled tisku</translation> </message> @@ -11783,77 +11758,77 @@ <translation><b>Okno editoru zdrojového kódu</b><p>V tomto okně se zobrazuje a edituje soubor se zdrojovým kódem. Můžete otevřít oken podle libosti. Jméno souboru se zobrazuje v titlebaru okna.</p><p>Kliknutím do prostoru mezi čísly řádku a značkami skládání nastavíte breakpoint. Přes kontextové menu je pak lze editovat.</p><p>Záložka se vkládá kliknutím na stejné místo se stisknutou klávesou Shift.</p><p>Tyto akce mohou být navráceny zpět i opětovným kliknutím nebo přes kontextové menu.</p></translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="859"/> + <location filename="../QScintilla/Editor.py" line="849"/> <source>Typing aids enabled</source> <translation>Pomůcky při psaní zapnuty</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1130"/> + <location filename="../QScintilla/Editor.py" line="1120"/> <source>End-of-Line Type</source> <translation>Typ Konec-řádku</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1134"/> + <location filename="../QScintilla/Editor.py" line="1124"/> <source>Unix</source> <translation>Unix</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1141"/> + <location filename="../QScintilla/Editor.py" line="1131"/> <source>Windows</source> <translation></translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1148"/> + <location filename="../QScintilla/Editor.py" line="1138"/> <source>Macintosh</source> <translation>Macintosh</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1089"/> + <location filename="../QScintilla/Editor.py" line="1079"/> <source>Encodings</source> <translation>Kódování</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1069"/> + <location filename="../QScintilla/Editor.py" line="1059"/> <source>Guessed</source> <translation>Odhadem</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1409"/> + <location filename="../QScintilla/Editor.py" line="1399"/> <source>Alternatives</source> <translation>Alternativy</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1425"/> + <location filename="../QScintilla/Editor.py" line="1415"/> <source>Pygments Lexer</source> <translation></translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1425"/> + <location filename="../QScintilla/Editor.py" line="1415"/> <source>Select the Pygments lexer to apply.</source> <translation>Použít Pygments lexer.</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="7846"/> + <location filename="../QScintilla/Editor.py" line="7833"/> <source>Check spelling...</source> <translation>Zatrhnout kontrolu...</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="833"/> + <location filename="../QScintilla/Editor.py" line="823"/> <source>Check spelling of selection...</source> <translation>Zatrhnout výběr kontroly...</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="7849"/> + <location filename="../QScintilla/Editor.py" line="7836"/> <source>Add to dictionary</source> <translation>Přidat do slovníku</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="7851"/> + <location filename="../QScintilla/Editor.py" line="7838"/> <source>Ignore All</source> <translation>Ignorovat vše</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="837"/> + <location filename="../QScintilla/Editor.py" line="827"/> <source>Remove from dictionary</source> <translation>Odebrat ze slovníku</translation> </message> @@ -11863,282 +11838,282 @@ <translation><p>Velikost souboru <b>{0}</b> je <b>{1} KB</b>. Opravdu jej chcete načíst?</p></translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1386"/> + <location filename="../QScintilla/Editor.py" line="1376"/> <source><p>No exporter available for the export format <b>{0}</b>. Aborting...</p></source> <translation><p>Pro formát exportu <b>{0}</b> není exportér dostupný. Zrušeno.</p></translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1405"/> + <location filename="../QScintilla/Editor.py" line="1395"/> <source>Alternatives ({0})</source> <translation>Alternativy ({0})</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="3047"/> + <location filename="../QScintilla/Editor.py" line="3035"/> <source><p>The file <b>{0}</b> has unsaved changes.</p></source> <translation><p>Soubor <b>{0}</b> obsahuje neuložené změny.</p></translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="3107"/> + <location filename="../QScintilla/Editor.py" line="3095"/> <source><p>The file <b>{0}</b> could not be opened.</p><p>Reason: {1}</p></source> <translation><p>Soubor <b>{0}</b> nemůže být přejmenován.<br />Důvod: {1}</p></translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="3233"/> + <location filename="../QScintilla/Editor.py" line="3221"/> <source><p>The file <b>{0}</b> could not be saved.<br/>Reason: {1}</p></source> <translation><p>Soubor <b>{0}</b> nemůže být přejmenován.<br />Důvod: {1}</p></translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="6767"/> + <location filename="../QScintilla/Editor.py" line="6754"/> <source><p>The macro file <b>{0}</b> could not be read.</p></source> <translation><p>Soubor s makrem <b>{0}</b> nelze načíst.</p></translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="6776"/> + <location filename="../QScintilla/Editor.py" line="6763"/> <source><p>The macro file <b>{0}</b> is corrupt.</p></source> <translation><p>Soubor s makrem <b>{0}</b> je poškozen.</p></translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="6829"/> + <location filename="../QScintilla/Editor.py" line="6816"/> <source><p>The macro file <b>{0}</b> could not be written.</p></source> <translation><p>So souboru s makrem <b>{0}</b> nelze zapisovat.</p></translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="7178"/> + <location filename="../QScintilla/Editor.py" line="7165"/> <source>{0} (ro)</source> <translation>{0} (ro)</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="7319"/> + <location filename="../QScintilla/Editor.py" line="7306"/> <source><p><b>{0}</b> is not a file.</p></source> <translation><p><b>{0}</b> není soubor.</p></translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="7415"/> + <location filename="../QScintilla/Editor.py" line="7402"/> <source>Alias for file <b>{0}</b>:</source> <translation>Zástupce pro soubor <b>{0}</b>:</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1314"/> + <location filename="../QScintilla/Editor.py" line="1304"/> <source>Next warning</source> <translation>Následující varování</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1318"/> + <location filename="../QScintilla/Editor.py" line="1308"/> <source>Previous warning</source> <translation>Předchozí varování</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1322"/> + <location filename="../QScintilla/Editor.py" line="1312"/> <source>Show warning message</source> <translation>Zobrazit varování</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1326"/> + <location filename="../QScintilla/Editor.py" line="1316"/> <source>Clear warnings</source> <translation>Vyčistit varování</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="3296"/> + <location filename="../QScintilla/Editor.py" line="3284"/> <source><p>The file <b>{0}</b> already exists. Overwrite it?</p></source> <translation type="unfinished"><p>Soubor <b>{0}</b> již existuje.</p><p>Má se přepsat?</p></translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="6813"/> + <location filename="../QScintilla/Editor.py" line="6800"/> <source><p>The macro file <b>{0}</b> already exists. Overwrite it?</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="6613"/> + <location filename="../QScintilla/Editor.py" line="6600"/> <source>Warning: {0}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="6620"/> + <location filename="../QScintilla/Editor.py" line="6607"/> <source>Error: {0}</source> <translation type="unfinished">Chyby: {0}</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="7004"/> + <location filename="../QScintilla/Editor.py" line="6991"/> <source><br><b>Warning:</b> You will lose your changes upon reopening it.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="916"/> + <location filename="../QScintilla/Editor.py" line="906"/> <source>Open 'rejection' file</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1026"/> + <location filename="../QScintilla/Editor.py" line="1016"/> <source>Load Diagram...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1349"/> + <location filename="../QScintilla/Editor.py" line="1339"/> <source>Next change</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1353"/> + <location filename="../QScintilla/Editor.py" line="1343"/> <source>Previous change</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="8267"/> + <location filename="../QScintilla/Editor.py" line="8254"/> <source>Sort Lines</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="8267"/> + <location filename="../QScintilla/Editor.py" line="8254"/> <source>The selection contains illegal data for a numerical sort.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="6548"/> + <location filename="../QScintilla/Editor.py" line="6535"/> <source>Warning</source> <translation type="unfinished">Varování</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="6548"/> + <location filename="../QScintilla/Editor.py" line="6535"/> <source>No warning messages available.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="6610"/> + <location filename="../QScintilla/Editor.py" line="6597"/> <source>Style: {0}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="890"/> + <location filename="../QScintilla/Editor.py" line="880"/> <source>New Document View</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="893"/> + <location filename="../QScintilla/Editor.py" line="883"/> <source>New Document View (with new split)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="980"/> + <location filename="../QScintilla/Editor.py" line="970"/> <source>Tools</source> <translation type="unfinished">Nástroje</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1111"/> + <location filename="../QScintilla/Editor.py" line="1101"/> <source>Re-Open With Encoding</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="6998"/> + <location filename="../QScintilla/Editor.py" line="6985"/> <source><p>The file <b>{0}</b> has been changed while it was opened in eric6. Reread it?</p></source> <translation type="unfinished"><p>Soubor <b>{0}</b> byl změněn po té co již byl načten do eric5. Znovu načíst?</p> {0}?} {6.?}</translation> </message> <message> + <location filename="../QScintilla/Editor.py" line="856"/> + <source>Automatic Completion enabled</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="936"/> + <source>Complete</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="4895"/> + <source>Auto-Completion Provider</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="4895"/> + <source>The completion list provider '{0}' was already registered. Ignoring duplicate request.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="5174"/> + <source>Call-Tips Provider</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="5174"/> + <source>The call-tips provider '{0}' was already registered. Ignoring duplicate request.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="8343"/> + <source>Register Mouse Click Handler</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="8343"/> + <source>A mouse click handler for "{0}" was already registered by "{1}". Aborting request by "{2}"...</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="900"/> + <source>Save Copy...</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="939"/> + <source>Clear Completions Cache</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../QScintilla/Editor.py" line="866"/> - <source>Automatic Completion enabled</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../QScintilla/Editor.py" line="946"/> - <source>Complete</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../QScintilla/Editor.py" line="4907"/> - <source>Auto-Completion Provider</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../QScintilla/Editor.py" line="4907"/> - <source>The completion list provider '{0}' was already registered. Ignoring duplicate request.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../QScintilla/Editor.py" line="5186"/> - <source>Call-Tips Provider</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../QScintilla/Editor.py" line="5186"/> - <source>The call-tips provider '{0}' was already registered. Ignoring duplicate request.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../QScintilla/Editor.py" line="8356"/> - <source>Register Mouse Click Handler</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../QScintilla/Editor.py" line="8356"/> - <source>A mouse click handler for "{0}" was already registered by "{1}". Aborting request by "{2}"...</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../QScintilla/Editor.py" line="910"/> - <source>Save Copy...</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../QScintilla/Editor.py" line="949"/> - <source>Clear Completions Cache</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../QScintilla/Editor.py" line="876"/> <source>Code Info</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1357"/> + <location filename="../QScintilla/Editor.py" line="1347"/> <source>Clear changes</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="799"/> + <location filename="../QScintilla/Editor.py" line="789"/> <source>Execute Selection In Console</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="8477"/> + <location filename="../QScintilla/Editor.py" line="8464"/> <source>EditorConfig Properties</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="8477"/> + <location filename="../QScintilla/Editor.py" line="8464"/> <source><p>The EditorConfig properties for file <b>{0}</b> could not be loaded.</p></source> <translation type="unfinished"></translation> </message> <message> + <location filename="../QScintilla/Editor.py" line="1251"/> + <source>Toggle all folds</source> + <translation type="unfinished">Složit/rozložit všechna skládání</translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="1256"/> + <source>Toggle all folds (including children)</source> + <translation type="unfinished">Složit/rozložit všechna skládání (i s podsložkami)</translation> + </message> + <message> <location filename="../QScintilla/Editor.py" line="1261"/> - <source>Toggle all folds</source> - <translation type="unfinished">Složit/rozložit všechna skládání</translation> - </message> - <message> - <location filename="../QScintilla/Editor.py" line="1266"/> - <source>Toggle all folds (including children)</source> - <translation type="unfinished">Složit/rozložit všechna skládání (i s podsložkami)</translation> - </message> - <message> - <location filename="../QScintilla/Editor.py" line="1271"/> <source>Toggle current fold</source> <translation type="unfinished">Složit/rozložit aktuální složený blok</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1277"/> + <location filename="../QScintilla/Editor.py" line="1267"/> <source>Expand (including children)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1282"/> + <location filename="../QScintilla/Editor.py" line="1272"/> <source>Collapse (including children)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1288"/> + <location filename="../QScintilla/Editor.py" line="1278"/> <source>Clear all folds</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="1169"/> + <location filename="../QScintilla/Editor.py" line="1159"/> <source>Spell Check Languages</source> <translation type="unfinished"></translation> </message> @@ -27267,7 +27242,7 @@ <context> <name>HelpDocsInstaller</name> <message> - <location filename="../WebBrowser/QtHelp/HelpDocsInstaller.py" line="242"/> + <location filename="../WebBrowser/QtHelp/HelpDocsInstaller.py" line="241"/> <source><p>The file <b>{0}</b> could not be registered. <br/>Reason: {1}</p></source> <translation type="unfinished"></translation> </message> @@ -27282,115 +27257,100 @@ <message> <location filename="../Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="142"/> <source>Qt4 Documentation</source> - <translation>Qt4 dokumentace</translation> + <translation type="obsolete">Qt4 dokumentace</translation> </message> <message> <location filename="../Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="157"/> <source>Enter the Qt4 documentation directory</source> - <translation>Zadejte adresář Qt4 dokumentace</translation> + <translation type="obsolete">Zadejte adresář Qt4 dokumentace</translation> </message> <message> <location filename="../Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="164"/> <source><b>Note</b>: Leave empty to use the QT4DOCDIR environment variable, if set.</source> - <translation><b>Poznámka</b>: Ponechte prázdné má-li se použít proměnná prostředí QT4DOCDIR, je-li nastavena.</translation> + <translation type="obsolete"><b>Poznámka</b>: Ponechte prázdné má-li se použít proměnná prostředí QT4DOCDIR, je-li nastavena.</translation> </message> <message> <location filename="../Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="212"/> <source>PyQt4 Documentation</source> - <translation>PyQt4 dokumentace</translation> + <translation type="obsolete">PyQt4 dokumentace</translation> </message> <message> <location filename="../Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="227"/> <source>Enter the PyQt4 documentation directory</source> - <translation>Zadejte adresář PyQt4 dokumentace</translation> + <translation type="obsolete">Zadejte adresář PyQt4 dokumentace</translation> </message> <message> <location filename="../Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="234"/> <source><b>Note</b>: Leave empty to use the PYQT4DOCDIR environment variable, if set.</source> - <translation><b>Poznámka</b>: Ponechte prázdné má-li se použít proměnná prostředí PYQT4DOCDIR, je-li nastavena.</translation> + <translation type="obsolete"><b>Poznámka</b>: Ponechte prázdné má-li se použít proměnná prostředí PYQT4DOCDIR, je-li nastavena.</translation> </message> <message> <location filename="../Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="282"/> <source>PySide Documentation</source> - <translation>PySide dokumentace</translation> + <translation type="obsolete">PySide dokumentace</translation> </message> <message> <location filename="../Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="297"/> <source>Enter the PySide documentation directory</source> - <translation>Zadejte adresář pro PySide dokumentaci</translation> + <translation type="obsolete">Zadejte adresář pro PySide dokumentaci</translation> </message> <message> <location filename="../Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="304"/> <source><b>Note</b>: Leave empty to use the PYSIDEDOCDIR environment variable, if set.</source> - <translation><b>Poznámka</b>: Ponechte prázdné má-li se použít proměnná prostředí PYSIDEDOCDIR, je-li nastavena.</translation> - </message> - <message> - <location filename="../Preferences/ConfigurationPages/HelpDocumentationPage.py" line="61"/> + <translation type="obsolete"><b>Poznámka</b>: Ponechte prázdné má-li se použít proměnná prostředí PYSIDEDOCDIR, je-li nastavena.</translation> + </message> + <message> + <location filename="../Preferences/ConfigurationPages/HelpDocumentationPage.py" line="47"/> <source>HTML Files (*.html *.htm);;All Files (*)</source> <translation>HTML soubory (*.html *.htm);;Všechny soubory (*)</translation> </message> <message> - <location filename="../Preferences/ConfigurationPages/HelpDocumentationPage.py" line="41"/> + <location filename="../Preferences/ConfigurationPages/HelpDocumentationPage.py" line="36"/> <source>HTML Files (*.html *.htm);;Compressed Help Files (*.chm);;All Files (*)</source> <translation type="unfinished"></translation> </message> <message> <location filename="../Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="72"/> - <source>Python 2 Documentation</source> + <source>Python 3 Documentation</source> <translation type="unfinished"></translation> </message> <message> <location filename="../Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="87"/> - <source>Enter the Python 2 documentation directory</source> + <source>Enter the Python 3 documentation directory</source> <translation type="unfinished"></translation> </message> <message> <location filename="../Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="94"/> - <source><b>Note</b>: Leave empty to use the PYTHON2DOCDIR environment variable, if set.</source> + <source><b>Note</b>: Leave empty to use the PYTHON3DOCDIR environment variable, if set.</source> <translation type="unfinished"></translation> </message> <message> <location filename="../Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="107"/> - <source>Python 3 Documentation</source> - <translation type="unfinished"></translation> + <source>Qt5 Documentation</source> + <translation type="unfinished">Qt4 dokumentace {5 ?}</translation> </message> <message> <location filename="../Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="122"/> - <source>Enter the Python 3 documentation directory</source> - <translation type="unfinished"></translation> + <source>Enter the Qt5 documentation directory</source> + <translation type="unfinished">Zadejte adresář Qt4 dokumentace {5 ?}</translation> </message> <message> <location filename="../Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="129"/> - <source><b>Note</b>: Leave empty to use the PYTHON3DOCDIR environment variable, if set.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="177"/> - <source>Qt5 Documentation</source> - <translation type="unfinished">Qt4 dokumentace {5 ?}</translation> - </message> - <message> - <location filename="../Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="192"/> - <source>Enter the Qt5 documentation directory</source> - <translation type="unfinished">Zadejte adresář Qt4 dokumentace {5 ?}</translation> - </message> - <message> - <location filename="../Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="199"/> <source><b>Note</b>: Leave empty to use the QT5DOCDIR environment variable, if set.</source> <translation type="unfinished"><b>Poznámka</b>: Ponechte prázdné má-li se použít proměnná prostředí QT4DOCDIR, je-li nastavena. {5D?}</translation> </message> <message> - <location filename="../Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="247"/> + <location filename="../Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="142"/> <source>PyQt5 Documentation</source> <translation type="unfinished">PyQt4 dokumentace {5 ?}</translation> </message> <message> - <location filename="../Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="262"/> + <location filename="../Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="157"/> <source>Enter the PyQt5 documentation directory</source> <translation type="unfinished">Zadejte adresář PyQt4 dokumentace {5 ?}</translation> </message> <message> - <location filename="../Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="269"/> + <location filename="../Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="164"/> <source><b>Note</b>: Leave empty to use the PYQT5DOCDIR environment variable, if set.</source> <translation type="unfinished"><b>Poznámka</b>: Ponechte prázdné má-li se použít proměnná prostředí PYQT4DOCDIR, je-li nastavena. {5D?}</translation> </message> @@ -27410,17 +27370,17 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="317"/> + <location filename="../Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="177"/> <source>PySide2 Documentation</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="332"/> + <location filename="../Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="192"/> <source>Enter the PySide2 documentation directory</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="339"/> + <location filename="../Preferences/ConfigurationPages/HelpDocumentationPage.ui" line="199"/> <source><b>Note</b>: Leave empty to use the PYSIDE2DOCDIR environment variable, if set.</source> <translation type="unfinished"></translation> </message> @@ -45051,297 +45011,297 @@ <translation>Nastavení</translation> </message> <message> - <location filename="../QScintilla/Lexers/__init__.py" line="145"/> + <location filename="../QScintilla/Lexers/__init__.py" line="143"/> <source>Ruby</source> <translation>Ruby</translation> </message> <message> - <location filename="../QScintilla/Lexers/__init__.py" line="147"/> + <location filename="../QScintilla/Lexers/__init__.py" line="145"/> <source>SQL</source> <translation></translation> </message> <message> + <location filename="../QScintilla/Lexers/__init__.py" line="149"/> + <source>TeX</source> + <translation></translation> + </message> + <message> <location filename="../QScintilla/Lexers/__init__.py" line="151"/> - <source>TeX</source> - <translation></translation> - </message> - <message> - <location filename="../QScintilla/Lexers/__init__.py" line="153"/> <source>VHDL</source> <translation></translation> </message> <message> - <location filename="../QScintilla/Lexers/__init__.py" line="584"/> + <location filename="../QScintilla/Lexers/__init__.py" line="575"/> <source>Quixote Template Files (*.ptl)</source> <translation>Quixote Template soubory (*.ptl)</translation> </message> <message> - <location filename="../QScintilla/Lexers/__init__.py" line="587"/> + <location filename="../QScintilla/Lexers/__init__.py" line="578"/> <source>Ruby Files (*.rb)</source> <translation>Ruby soubory (*.rb)</translation> </message> <message> - <location filename="../QScintilla/Lexers/__init__.py" line="590"/> + <location filename="../QScintilla/Lexers/__init__.py" line="581"/> <source>IDL Files (*.idl)</source> <translation>IDL soubory (*.idl)</translation> </message> <message> + <location filename="../QScintilla/Lexers/__init__.py" line="408"/> + <source>C Files (*.h *.c)</source> + <translation>C soubory (*.h *.c)</translation> + </message> + <message> <location filename="../QScintilla/Lexers/__init__.py" line="411"/> - <source>C Files (*.h *.c)</source> - <translation>C soubory (*.h *.c)</translation> - </message> - <message> - <location filename="../QScintilla/Lexers/__init__.py" line="414"/> <source>C++ Files (*.h *.hpp *.hh *.cxx *.cpp *.cc)</source>